pystage 0.1.0.dev0__tar.gz → 0.1.1__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 (1043) hide show
  1. pystage-0.1.1/.gitignore +21 -0
  2. pystage-0.1.1/.readthedocs.yaml +20 -0
  3. pystage-0.1.1/CONTRIBUTING.md +26 -0
  4. {pystage-0.1.0.dev0/src/pystage.egg-info → pystage-0.1.1}/PKG-INFO +9 -2
  5. {pystage-0.1.0.dev0 → pystage-0.1.1}/README.md +7 -0
  6. pystage-0.1.1/block-images/.gitignore +3 -0
  7. pystage-0.1.1/block-images/cleanup.sh +7 -0
  8. pystage-0.1.1/block-images/crawl-images.md +250 -0
  9. pystage-0.1.1/block-images/export-png.sh +19 -0
  10. pystage-0.1.1/block-images/langs.json +73 -0
  11. pystage-0.1.1/docs/Makefile +20 -0
  12. pystage-0.1.1/docs/README.md +29 -0
  13. pystage-0.1.1/docs/build.bat +2 -0
  14. pystage-0.1.1/docs/make.bat +35 -0
  15. pystage-0.1.1/docs/pystage.png +0 -0
  16. pystage-0.1.1/docs/requirements.txt +6 -0
  17. pystage-0.1.1/docs/source/_templates/module.rst_t +8 -0
  18. pystage-0.1.1/docs/source/_templates/package.rst_t +51 -0
  19. pystage-0.1.1/docs/source/conf.py +148 -0
  20. pystage-0.1.1/docs/source/index.rst +31 -0
  21. pystage-0.1.1/docs/source/languages.rst +16 -0
  22. pystage-0.1.1/docs/source/logo.png +0 -0
  23. pystage-0.1.1/docs/source/modules.rst +7 -0
  24. pystage-0.1.1/docs/source/pystage.convert.rst +26 -0
  25. pystage-0.1.1/docs/source/pystage.core.rst +44 -0
  26. pystage-0.1.1/docs/source/pystage.de.rst +20 -0
  27. pystage-0.1.1/docs/source/pystage.en.rst +20 -0
  28. pystage-0.1.1/docs/source/pystage.rst +26 -0
  29. pystage-0.1.1/graphics/pen.svg +95 -0
  30. pystage-0.1.1/pytest.ini +6 -0
  31. pystage-0.1.1/requirements.txt +5 -0
  32. {pystage-0.1.0.dev0 → pystage-0.1.1}/setup.cfg +2 -2
  33. pystage-0.1.1/src/example.py +71 -0
  34. pystage-0.1.1/src/example_bounce.py +20 -0
  35. pystage-0.1.1/src/example_de.py +22 -0
  36. pystage-0.1.1/src/example_en.py +15 -0
  37. pystage-0.1.1/src/example_en_ask.py +16 -0
  38. pystage-0.1.1/src/example_en_ghost.py +17 -0
  39. pystage-0.1.1/src/example_en_pen.py +16 -0
  40. pystage-0.1.1/src/example_en_turtle1.py +22 -0
  41. pystage-0.1.1/src/example_messages.py +20 -0
  42. pystage-0.1.1/src/example_monitors.py +32 -0
  43. pystage-0.1.1/src/example_positiontests.py +26 -0
  44. pystage-0.1.1/src/example_say.py +37 -0
  45. pystage-0.1.1/src/pystage/__init__.py +16 -0
  46. {pystage-0.1.0.dev0 → pystage-0.1.1}/src/pystage/convert/sb3_templates.py +3 -1
  47. {pystage-0.1.0.dev0 → pystage-0.1.1}/src/pystage/core/_base_sprite.py +2 -0
  48. pystage-0.1.1/src/pystage/core/_control.py +114 -0
  49. {pystage-0.1.0.dev0 → pystage-0.1.1}/src/pystage/core/_events.py +2 -1
  50. {pystage-0.1.0.dev0 → pystage-0.1.1}/src/pystage/core/_looks.py +3 -2
  51. {pystage-0.1.0.dev0 → pystage-0.1.1}/src/pystage/core/_sensing.py +11 -2
  52. {pystage-0.1.0.dev0 → pystage-0.1.1}/src/pystage/core/asking.py +5 -0
  53. {pystage-0.1.0.dev0 → pystage-0.1.1}/src/pystage/core/assets.py +27 -15
  54. {pystage-0.1.0.dev0 → pystage-0.1.1}/src/pystage/core/code_block.py +44 -1
  55. {pystage-0.1.0.dev0 → pystage-0.1.1}/src/pystage/core/gui.py +18 -0
  56. {pystage-0.1.0.dev0 → pystage-0.1.1}/src/pystage/core/sprite.py +2 -1
  57. {pystage-0.1.0.dev0 → pystage-0.1.1}/src/pystage/core/stage.py +2 -0
  58. {pystage-0.1.0.dev0 → pystage-0.1.1}/src/pystage/de/sprite.py +17 -3
  59. {pystage-0.1.0.dev0 → pystage-0.1.1}/src/pystage/de/stage.py +2 -2
  60. {pystage-0.1.0.dev0 → pystage-0.1.1}/src/pystage/en/sprite.py +24 -10
  61. {pystage-0.1.0.dev0 → pystage-0.1.1}/src/pystage/en/stage.py +2 -2
  62. {pystage-0.1.0.dev0 → pystage-0.1.1/src/pystage.egg-info}/PKG-INFO +9 -2
  63. pystage-0.1.1/src/pystage.egg-info/SOURCES.txt +1039 -0
  64. {pystage-0.1.0.dev0 → pystage-0.1.1}/src/pystage.egg-info/requires.txt +1 -1
  65. pystage-0.1.1/tests/README.md +9 -0
  66. pystage-0.1.1/tests/__init__.py +1 -0
  67. pystage-0.1.1/tests/compare.py +51 -0
  68. pystage-0.1.1/tests/diff.py +51 -0
  69. pystage-0.1.1/tests/generate.py +237 -0
  70. pystage-0.1.1/tests/src/correct_results/block/block2/block2.py +25 -0
  71. pystage-0.1.1/tests/src/correct_results/block/block2/images/backdrop1.svg +3 -0
  72. pystage-0.1.1/tests/src/correct_results/block/block2/images/bear_a.svg +152 -0
  73. pystage-0.1.1/tests/src/correct_results/block/block2/images/bear_b.svg +1 -0
  74. pystage-0.1.1/tests/src/correct_results/block/block2/project.json +544 -0
  75. pystage-0.1.1/tests/src/correct_results/block/block2/project_intermediate.json +134 -0
  76. pystage-0.1.1/tests/src/correct_results/block/block2/sounds/pop.wav +0 -0
  77. pystage-0.1.1/tests/src/correct_results/block/blocks1/blocks1.py +23 -0
  78. pystage-0.1.1/tests/src/correct_results/block/blocks1/images/backdrop1.svg +3 -0
  79. pystage-0.1.1/tests/src/correct_results/block/blocks1/images/costume1.svg +42 -0
  80. pystage-0.1.1/tests/src/correct_results/block/blocks1/images/costume2.svg +42 -0
  81. pystage-0.1.1/tests/src/correct_results/block/blocks1/project.json +199 -0
  82. pystage-0.1.1/tests/src/correct_results/block/blocks1/project_intermediate.json +116 -0
  83. pystage-0.1.1/tests/src/correct_results/block/blocks1/sounds/meow.wav +0 -0
  84. pystage-0.1.1/tests/src/correct_results/block/blocks1/sounds/pop.wav +0 -0
  85. pystage-0.1.1/tests/src/correct_results/block/blocks2/blocks2.py +23 -0
  86. pystage-0.1.1/tests/src/correct_results/block/blocks2/images/backdrop1.svg +3 -0
  87. pystage-0.1.1/tests/src/correct_results/block/blocks2/images/costume1.svg +42 -0
  88. pystage-0.1.1/tests/src/correct_results/block/blocks2/images/costume2.svg +42 -0
  89. pystage-0.1.1/tests/src/correct_results/block/blocks2/project.json +364 -0
  90. pystage-0.1.1/tests/src/correct_results/block/blocks2/project_intermediate.json +119 -0
  91. pystage-0.1.1/tests/src/correct_results/block/blocks2/sounds/meow.wav +0 -0
  92. pystage-0.1.1/tests/src/correct_results/block/blocks2/sounds/pop.wav +0 -0
  93. pystage-0.1.1/tests/src/correct_results/block/blocks3/blocks3.py +23 -0
  94. pystage-0.1.1/tests/src/correct_results/block/blocks3/images/backdrop1.svg +3 -0
  95. pystage-0.1.1/tests/src/correct_results/block/blocks3/images/costume1.svg +42 -0
  96. pystage-0.1.1/tests/src/correct_results/block/blocks3/images/costume2.svg +42 -0
  97. pystage-0.1.1/tests/src/correct_results/block/blocks3/project.json +364 -0
  98. pystage-0.1.1/tests/src/correct_results/block/blocks3/project_intermediate.json +119 -0
  99. pystage-0.1.1/tests/src/correct_results/block/blocks3/sounds/meow.wav +0 -0
  100. pystage-0.1.1/tests/src/correct_results/block/blocks3/sounds/pop.wav +0 -0
  101. pystage-0.1.1/tests/src/correct_results/block/blocks4/blocks4.py +22 -0
  102. pystage-0.1.1/tests/src/correct_results/block/blocks4/images/backdrop1.svg +3 -0
  103. pystage-0.1.1/tests/src/correct_results/block/blocks4/images/costume1.svg +42 -0
  104. pystage-0.1.1/tests/src/correct_results/block/blocks4/images/costume2.svg +42 -0
  105. pystage-0.1.1/tests/src/correct_results/block/blocks4/project.json +262 -0
  106. pystage-0.1.1/tests/src/correct_results/block/blocks4/project_intermediate.json +127 -0
  107. pystage-0.1.1/tests/src/correct_results/block/blocks4/sounds/meow.wav +0 -0
  108. pystage-0.1.1/tests/src/correct_results/block/blocks4/sounds/pop.wav +0 -0
  109. pystage-0.1.1/tests/src/correct_results/cloning/block3/block3.py +28 -0
  110. pystage-0.1.1/tests/src/correct_results/cloning/block3/images/backdrop1.svg +3 -0
  111. pystage-0.1.1/tests/src/correct_results/cloning/block3/images/convertible_3.svg +36 -0
  112. pystage-0.1.1/tests/src/correct_results/cloning/block3/project.json +805 -0
  113. pystage-0.1.1/tests/src/correct_results/cloning/block3/project_intermediate.json +183 -0
  114. pystage-0.1.1/tests/src/correct_results/cloning/block3/sounds/pop.wav +0 -0
  115. pystage-0.1.1/tests/src/correct_results/cloning/cloning2/cloning2.py +54 -0
  116. pystage-0.1.1/tests/src/correct_results/cloning/cloning2/images/backdrop1.svg +3 -0
  117. pystage-0.1.1/tests/src/correct_results/cloning/cloning2/images/cheesy_puffs.png +0 -0
  118. pystage-0.1.1/tests/src/correct_results/cloning/cloning2/images/dinosaur1_a.svg +35 -0
  119. pystage-0.1.1/tests/src/correct_results/cloning/cloning2/images/dinosaur1_b.svg +28 -0
  120. pystage-0.1.1/tests/src/correct_results/cloning/cloning2/images/dinosaur1_c.svg +39 -0
  121. pystage-0.1.1/tests/src/correct_results/cloning/cloning2/images/dinosaur1_d.svg +36 -0
  122. pystage-0.1.1/tests/src/correct_results/cloning/cloning2/project.json +457 -0
  123. pystage-0.1.1/tests/src/correct_results/cloning/cloning2/project_intermediate.json +324 -0
  124. pystage-0.1.1/tests/src/correct_results/cloning/cloning2/sounds/pop.wav +0 -0
  125. pystage-0.1.1/tests/src/correct_results/cloning/cloning4/cloning4.py +72 -0
  126. pystage-0.1.1/tests/src/correct_results/cloning/cloning4/images/backdrop1.svg +3 -0
  127. pystage-0.1.1/tests/src/correct_results/cloning/cloning4/images/button4_a.svg +7 -0
  128. pystage-0.1.1/tests/src/correct_results/cloning/cloning4/images/button4_b.svg +23 -0
  129. pystage-0.1.1/tests/src/correct_results/cloning/cloning4/images/dm_freeze.png +0 -0
  130. pystage-0.1.1/tests/src/correct_results/cloning/cloning4/images/dm_pop_down.png +0 -0
  131. pystage-0.1.1/tests/src/correct_results/cloning/cloning4/images/dm_pop_front.png +0 -0
  132. pystage-0.1.1/tests/src/correct_results/cloning/cloning4/images/dm_pop_l_arm.png +0 -0
  133. pystage-0.1.1/tests/src/correct_results/cloning/cloning4/images/dm_pop_left.png +0 -0
  134. pystage-0.1.1/tests/src/correct_results/cloning/cloning4/images/dm_pop_r_arm.png +0 -0
  135. pystage-0.1.1/tests/src/correct_results/cloning/cloning4/images/dm_pop_right.png +0 -0
  136. pystage-0.1.1/tests/src/correct_results/cloning/cloning4/images/dm_pop_stand.png +0 -0
  137. pystage-0.1.1/tests/src/correct_results/cloning/cloning4/images/dm_stance.png +0 -0
  138. pystage-0.1.1/tests/src/correct_results/cloning/cloning4/images/dm_top_l_leg.png +0 -0
  139. pystage-0.1.1/tests/src/correct_results/cloning/cloning4/images/dm_top_r_leg.png +0 -0
  140. pystage-0.1.1/tests/src/correct_results/cloning/cloning4/images/dm_top_stand.png +0 -0
  141. pystage-0.1.1/tests/src/correct_results/cloning/cloning4/project.json +658 -0
  142. pystage-0.1.1/tests/src/correct_results/cloning/cloning4/project_intermediate.json +468 -0
  143. pystage-0.1.1/tests/src/correct_results/cloning/cloning4/sounds/dance_celebrate.wav +0 -0
  144. pystage-0.1.1/tests/src/correct_results/cloning/cloning4/sounds/pop.wav +0 -0
  145. pystage-0.1.1/tests/src/correct_results/cloning/cloning_sprites_and_testing_variables_using_lists/cloning_sprites_and_testing_variables_using_lists.py +298 -0
  146. pystage-0.1.1/tests/src/correct_results/cloning/control4/control4.py +34 -0
  147. pystage-0.1.1/tests/src/correct_results/cloning/control4/images/backdrop1.svg +3 -0
  148. pystage-0.1.1/tests/src/correct_results/cloning/control4/images/costume1.svg +42 -0
  149. pystage-0.1.1/tests/src/correct_results/cloning/control4/images/costume2.svg +42 -0
  150. pystage-0.1.1/tests/src/correct_results/cloning/control4/project.json +266 -0
  151. pystage-0.1.1/tests/src/correct_results/cloning/control4/project_intermediate.json +195 -0
  152. pystage-0.1.1/tests/src/correct_results/cloning/control4/sounds/meow.wav +0 -0
  153. pystage-0.1.1/tests/src/correct_results/cloning/control4/sounds/pop.wav +0 -0
  154. pystage-0.1.1/tests/src/correct_results/cloning/testing_lists/images/backdrop1.svg +3 -0
  155. pystage-0.1.1/tests/src/correct_results/cloning/testing_lists/images/cassy_a.png +0 -0
  156. pystage-0.1.1/tests/src/correct_results/cloning/testing_lists/images/cassy_b.png +0 -0
  157. pystage-0.1.1/tests/src/correct_results/cloning/testing_lists/images/cassy_c.png +0 -0
  158. pystage-0.1.1/tests/src/correct_results/cloning/testing_lists/images/cassy_d.png +0 -0
  159. pystage-0.1.1/tests/src/correct_results/cloning/testing_lists/images/champ99_a.png +0 -0
  160. pystage-0.1.1/tests/src/correct_results/cloning/testing_lists/images/champ99_b.png +0 -0
  161. pystage-0.1.1/tests/src/correct_results/cloning/testing_lists/images/champ99_c.png +0 -0
  162. pystage-0.1.1/tests/src/correct_results/cloning/testing_lists/images/champ99_d.png +0 -0
  163. pystage-0.1.1/tests/src/correct_results/cloning/testing_lists/images/champ99_e.png +0 -0
  164. pystage-0.1.1/tests/src/correct_results/cloning/testing_lists/images/champ99_f.png +0 -0
  165. pystage-0.1.1/tests/src/correct_results/cloning/testing_lists/images/champ99_g.png +0 -0
  166. pystage-0.1.1/tests/src/correct_results/cloning/testing_lists/images/elephant_a.svg +72 -0
  167. pystage-0.1.1/tests/src/correct_results/cloning/testing_lists/images/elephant_b.svg +65 -0
  168. pystage-0.1.1/tests/src/correct_results/cloning/testing_lists/images/field_at_mit.png +0 -0
  169. pystage-0.1.1/tests/src/correct_results/cloning/testing_lists/project.json +1431 -0
  170. pystage-0.1.1/tests/src/correct_results/cloning/testing_lists/project_intermediate.json +837 -0
  171. pystage-0.1.1/tests/src/correct_results/cloning/testing_lists/sounds/dance_around.wav +0 -0
  172. pystage-0.1.1/tests/src/correct_results/cloning/testing_lists/sounds/dance_celebrate.wav +0 -0
  173. pystage-0.1.1/tests/src/correct_results/cloning/testing_lists/sounds/pop.wav +0 -0
  174. pystage-0.1.1/tests/src/correct_results/cloning/testing_lists/testing_lists.py +93 -0
  175. pystage-0.1.1/tests/src/correct_results/control/control1/control1.py +31 -0
  176. pystage-0.1.1/tests/src/correct_results/control/control1/images/backdrop1.svg +3 -0
  177. pystage-0.1.1/tests/src/correct_results/control/control1/images/costume1.svg +42 -0
  178. pystage-0.1.1/tests/src/correct_results/control/control1/images/costume2.svg +42 -0
  179. pystage-0.1.1/tests/src/correct_results/control/control1/project.json +302 -0
  180. pystage-0.1.1/tests/src/correct_results/control/control1/project_intermediate.json +207 -0
  181. pystage-0.1.1/tests/src/correct_results/control/control1/sounds/meow.wav +0 -0
  182. pystage-0.1.1/tests/src/correct_results/control/control1/sounds/pop.wav +0 -0
  183. pystage-0.1.1/tests/src/correct_results/control/control3/control3.py +27 -0
  184. pystage-0.1.1/tests/src/correct_results/control/control3/images/backdrop1.svg +3 -0
  185. pystage-0.1.1/tests/src/correct_results/control/control3/images/costume1.svg +42 -0
  186. pystage-0.1.1/tests/src/correct_results/control/control3/images/costume2.svg +42 -0
  187. pystage-0.1.1/tests/src/correct_results/control/control3/project.json +229 -0
  188. pystage-0.1.1/tests/src/correct_results/control/control3/project_intermediate.json +173 -0
  189. pystage-0.1.1/tests/src/correct_results/control/control3/sounds/meow.wav +0 -0
  190. pystage-0.1.1/tests/src/correct_results/control/control3/sounds/pop.wav +0 -0
  191. pystage-0.1.1/tests/src/correct_results/control/control4/control4.py +34 -0
  192. pystage-0.1.1/tests/src/correct_results/control/control4/images/backdrop1.svg +3 -0
  193. pystage-0.1.1/tests/src/correct_results/control/control4/images/costume1.svg +42 -0
  194. pystage-0.1.1/tests/src/correct_results/control/control4/images/costume2.svg +42 -0
  195. pystage-0.1.1/tests/src/correct_results/control/control4/project.json +266 -0
  196. pystage-0.1.1/tests/src/correct_results/control/control4/project_intermediate.json +195 -0
  197. pystage-0.1.1/tests/src/correct_results/control/control4/sounds/meow.wav +0 -0
  198. pystage-0.1.1/tests/src/correct_results/control/control4/sounds/pop.wav +0 -0
  199. pystage-0.1.1/tests/src/correct_results/control/control5/control5.py +43 -0
  200. pystage-0.1.1/tests/src/correct_results/control/control5/images/backdrop1.svg +3 -0
  201. pystage-0.1.1/tests/src/correct_results/control/control5/images/boardwalk.png +0 -0
  202. pystage-0.1.1/tests/src/correct_results/control/control5/images/broom.svg +1 -0
  203. pystage-0.1.1/tests/src/correct_results/control/control5/images/costume1.svg +1 -0
  204. pystage-0.1.1/tests/src/correct_results/control/control5/images/costume2.svg +42 -0
  205. pystage-0.1.1/tests/src/correct_results/control/control5/project.json +329 -0
  206. pystage-0.1.1/tests/src/correct_results/control/control5/project_intermediate.json +245 -0
  207. pystage-0.1.1/tests/src/correct_results/control/control5/sounds/meow.wav +0 -0
  208. pystage-0.1.1/tests/src/correct_results/control/control5/sounds/pop.wav +0 -0
  209. pystage-0.1.1/tests/src/correct_results/events/events1/events1.py +22 -0
  210. pystage-0.1.1/tests/src/correct_results/events/events1/images/backdrop1.svg +3 -0
  211. pystage-0.1.1/tests/src/correct_results/events/events1/images/costume1.svg +42 -0
  212. pystage-0.1.1/tests/src/correct_results/events/events1/images/costume2.svg +42 -0
  213. pystage-0.1.1/tests/src/correct_results/events/events1/project.json +137 -0
  214. pystage-0.1.1/tests/src/correct_results/events/events1/project_intermediate.json +120 -0
  215. pystage-0.1.1/tests/src/correct_results/events/events1/sounds/meow.wav +0 -0
  216. pystage-0.1.1/tests/src/correct_results/events/events1/sounds/pop.wav +0 -0
  217. pystage-0.1.1/tests/src/correct_results/events/events3/events3.py +32 -0
  218. pystage-0.1.1/tests/src/correct_results/events/events3/images/backdrop1.svg +3 -0
  219. pystage-0.1.1/tests/src/correct_results/events/events3/images/costume1.svg +42 -0
  220. pystage-0.1.1/tests/src/correct_results/events/events3/images/costume2.svg +42 -0
  221. pystage-0.1.1/tests/src/correct_results/events/events3/project.json +193 -0
  222. pystage-0.1.1/tests/src/correct_results/events/events3/project_intermediate.json +150 -0
  223. pystage-0.1.1/tests/src/correct_results/events/events3/sounds/meow.wav +0 -0
  224. pystage-0.1.1/tests/src/correct_results/events/events3/sounds/pop.wav +0 -0
  225. pystage-0.1.1/tests/src/correct_results/events/events4/events4.py +30 -0
  226. pystage-0.1.1/tests/src/correct_results/events/events4/images/backdrop1.svg +3 -0
  227. pystage-0.1.1/tests/src/correct_results/events/events4/images/blue_sky.svg +19 -0
  228. pystage-0.1.1/tests/src/correct_results/events/events4/images/costume1.svg +42 -0
  229. pystage-0.1.1/tests/src/correct_results/events/events4/images/costume2.svg +42 -0
  230. pystage-0.1.1/tests/src/correct_results/events/events4/project.json +230 -0
  231. pystage-0.1.1/tests/src/correct_results/events/events4/project_intermediate.json +178 -0
  232. pystage-0.1.1/tests/src/correct_results/events/events4/sounds/meow.wav +0 -0
  233. pystage-0.1.1/tests/src/correct_results/events/events4/sounds/pop.wav +0 -0
  234. pystage-0.1.1/tests/src/correct_results/events/events5/events5.py +29 -0
  235. pystage-0.1.1/tests/src/correct_results/events/events5/images/backdrop1.svg +3 -0
  236. pystage-0.1.1/tests/src/correct_results/events/events5/images/costume1.svg +42 -0
  237. pystage-0.1.1/tests/src/correct_results/events/events5/images/costume2.svg +42 -0
  238. pystage-0.1.1/tests/src/correct_results/events/events5/project.json +235 -0
  239. pystage-0.1.1/tests/src/correct_results/events/events5/project_intermediate.json +152 -0
  240. pystage-0.1.1/tests/src/correct_results/events/events5/sounds/meow.wav +0 -0
  241. pystage-0.1.1/tests/src/correct_results/events/events5/sounds/pop.wav +0 -0
  242. pystage-0.1.1/tests/src/correct_results/looks/control2/control2.py +40 -0
  243. pystage-0.1.1/tests/src/correct_results/looks/control2/images/backdrop1.svg +3 -0
  244. pystage-0.1.1/tests/src/correct_results/looks/control2/images/beach_rio.png +0 -0
  245. pystage-0.1.1/tests/src/correct_results/looks/control2/images/costume1.svg +42 -0
  246. pystage-0.1.1/tests/src/correct_results/looks/control2/images/costume2.svg +42 -0
  247. pystage-0.1.1/tests/src/correct_results/looks/control2/project.json +445 -0
  248. pystage-0.1.1/tests/src/correct_results/looks/control2/project_intermediate.json +274 -0
  249. pystage-0.1.1/tests/src/correct_results/looks/control2/sounds/meow.wav +0 -0
  250. pystage-0.1.1/tests/src/correct_results/looks/control2/sounds/pop.wav +0 -0
  251. pystage-0.1.1/tests/src/correct_results/looks/looks1/images/backdrop1.svg +3 -0
  252. pystage-0.1.1/tests/src/correct_results/looks/looks1/images/costume1.svg +42 -0
  253. pystage-0.1.1/tests/src/correct_results/looks/looks1/images/costume2.svg +42 -0
  254. pystage-0.1.1/tests/src/correct_results/looks/looks1/looks1.py +28 -0
  255. pystage-0.1.1/tests/src/correct_results/looks/looks1/project.json +248 -0
  256. pystage-0.1.1/tests/src/correct_results/looks/looks1/project_intermediate.json +168 -0
  257. pystage-0.1.1/tests/src/correct_results/looks/looks1/sounds/meow.wav +0 -0
  258. pystage-0.1.1/tests/src/correct_results/looks/looks1/sounds/pop.wav +0 -0
  259. pystage-0.1.1/tests/src/correct_results/looks/looks2/images/backdrop1.svg +3 -0
  260. pystage-0.1.1/tests/src/correct_results/looks/looks2/images/costume1.svg +42 -0
  261. pystage-0.1.1/tests/src/correct_results/looks/looks2/images/costume2.svg +42 -0
  262. pystage-0.1.1/tests/src/correct_results/looks/looks2/looks2.py +26 -0
  263. pystage-0.1.1/tests/src/correct_results/looks/looks2/project.json +214 -0
  264. pystage-0.1.1/tests/src/correct_results/looks/looks2/project_intermediate.json +164 -0
  265. pystage-0.1.1/tests/src/correct_results/looks/looks2/sounds/meow.wav +0 -0
  266. pystage-0.1.1/tests/src/correct_results/looks/looks2/sounds/pop.wav +0 -0
  267. pystage-0.1.1/tests/src/correct_results/looks/looks3/images/backdrop1.svg +1 -0
  268. pystage-0.1.1/tests/src/correct_results/looks/looks3/images/blue_sky.svg +19 -0
  269. pystage-0.1.1/tests/src/correct_results/looks/looks3/images/costume1.svg +42 -0
  270. pystage-0.1.1/tests/src/correct_results/looks/looks3/images/costume2.svg +42 -0
  271. pystage-0.1.1/tests/src/correct_results/looks/looks3/images/next_backdrop.svg +1 -0
  272. pystage-0.1.1/tests/src/correct_results/looks/looks3/images/random_one.svg +1 -0
  273. pystage-0.1.1/tests/src/correct_results/looks/looks3/looks3.py +36 -0
  274. pystage-0.1.1/tests/src/correct_results/looks/looks3/project.json +377 -0
  275. pystage-0.1.1/tests/src/correct_results/looks/looks3/project_intermediate.json +269 -0
  276. pystage-0.1.1/tests/src/correct_results/looks/looks3/sounds/meow.wav +0 -0
  277. pystage-0.1.1/tests/src/correct_results/looks/looks3/sounds/pop.wav +0 -0
  278. pystage-0.1.1/tests/src/correct_results/looks/looks4/images/backdrop1.svg +3 -0
  279. pystage-0.1.1/tests/src/correct_results/looks/looks4/images/costume1.svg +42 -0
  280. pystage-0.1.1/tests/src/correct_results/looks/looks4/images/costume2.svg +42 -0
  281. pystage-0.1.1/tests/src/correct_results/looks/looks4/looks4.py +104 -0
  282. pystage-0.1.1/tests/src/correct_results/looks/looks4/project.json +792 -0
  283. pystage-0.1.1/tests/src/correct_results/looks/looks4/project_intermediate.json +436 -0
  284. pystage-0.1.1/tests/src/correct_results/looks/looks4/sounds/meow.wav +0 -0
  285. pystage-0.1.1/tests/src/correct_results/looks/looks4/sounds/pop.wav +0 -0
  286. pystage-0.1.1/tests/src/correct_results/messages/events6/events6.py +36 -0
  287. pystage-0.1.1/tests/src/correct_results/messages/events6/images/backdrop1.svg +3 -0
  288. pystage-0.1.1/tests/src/correct_results/messages/events6/images/costume1.svg +42 -0
  289. pystage-0.1.1/tests/src/correct_results/messages/events6/images/costume2.svg +42 -0
  290. pystage-0.1.1/tests/src/correct_results/messages/events6/project.json +271 -0
  291. pystage-0.1.1/tests/src/correct_results/messages/events6/project_intermediate.json +184 -0
  292. pystage-0.1.1/tests/src/correct_results/messages/events6/sounds/meow.wav +0 -0
  293. pystage-0.1.1/tests/src/correct_results/messages/events6/sounds/pop.wav +0 -0
  294. pystage-0.1.1/tests/src/correct_results/messages/username1/images/backdrop1.svg +3 -0
  295. pystage-0.1.1/tests/src/correct_results/messages/username1/images/bowl_a.svg +17 -0
  296. pystage-0.1.1/tests/src/correct_results/messages/username1/project.json +238 -0
  297. pystage-0.1.1/tests/src/correct_results/messages/username1/project_intermediate.json +152 -0
  298. pystage-0.1.1/tests/src/correct_results/messages/username1/sounds/pop.wav +0 -0
  299. pystage-0.1.1/tests/src/correct_results/messages/username1/username1.py +24 -0
  300. pystage-0.1.1/tests/src/correct_results/motion/collision/collision.py +89 -0
  301. pystage-0.1.1/tests/src/correct_results/motion/collision/images/backdrop1.svg +3 -0
  302. pystage-0.1.1/tests/src/correct_results/motion/collision/images/bat_a.svg +54 -0
  303. pystage-0.1.1/tests/src/correct_results/motion/collision/images/bat_b.svg +52 -0
  304. pystage-0.1.1/tests/src/correct_results/motion/collision/images/bat_c.svg +54 -0
  305. pystage-0.1.1/tests/src/correct_results/motion/collision/images/bat_d.svg +57 -0
  306. pystage-0.1.1/tests/src/correct_results/motion/collision/images/canyon.png +0 -0
  307. pystage-0.1.1/tests/src/correct_results/motion/collision/images/dinosaur5_a.png +0 -0
  308. pystage-0.1.1/tests/src/correct_results/motion/collision/images/dinosaur5_b.png +0 -0
  309. pystage-0.1.1/tests/src/correct_results/motion/collision/images/dinosaur5_c.png +0 -0
  310. pystage-0.1.1/tests/src/correct_results/motion/collision/images/dinosaur5_d.png +0 -0
  311. pystage-0.1.1/tests/src/correct_results/motion/collision/images/dinosaur5_e.png +0 -0
  312. pystage-0.1.1/tests/src/correct_results/motion/collision/images/dinosaur5_f.png +0 -0
  313. pystage-0.1.1/tests/src/correct_results/motion/collision/images/dinosaur5_g.png +0 -0
  314. pystage-0.1.1/tests/src/correct_results/motion/collision/images/dinosaur5_h.png +0 -0
  315. pystage-0.1.1/tests/src/correct_results/motion/collision/images/hall.png +0 -0
  316. pystage-0.1.1/tests/src/correct_results/motion/collision/images/octopus_a.svg +91 -0
  317. pystage-0.1.1/tests/src/correct_results/motion/collision/images/octopus_b.svg +100 -0
  318. pystage-0.1.1/tests/src/correct_results/motion/collision/images/octopus_c.svg +134 -0
  319. pystage-0.1.1/tests/src/correct_results/motion/collision/images/octopus_d.svg +99 -0
  320. pystage-0.1.1/tests/src/correct_results/motion/collision/images/octopus_e.svg +126 -0
  321. pystage-0.1.1/tests/src/correct_results/motion/collision/project.json +935 -0
  322. pystage-0.1.1/tests/src/correct_results/motion/collision/project_intermediate.json +660 -0
  323. pystage-0.1.1/tests/src/correct_results/motion/collision/sounds/bite.wav +0 -0
  324. pystage-0.1.1/tests/src/correct_results/motion/collision/sounds/dance_funky.wav +0 -0
  325. pystage-0.1.1/tests/src/correct_results/motion/collision/sounds/ocean_wave.wav +0 -0
  326. pystage-0.1.1/tests/src/correct_results/motion/collision/sounds/owl.wav +0 -0
  327. pystage-0.1.1/tests/src/correct_results/motion/collision/sounds/pop.wav +0 -0
  328. pystage-0.1.1/tests/src/correct_results/motion/collision/sounds/splash.wav +0 -0
  329. pystage-0.1.1/tests/src/correct_results/motion/collision_and_list_test/__pycache__/collision_and_list_test.cpython-39-pytest-7.3.1.pyc +0 -0
  330. pystage-0.1.1/tests/src/correct_results/motion/collision_and_list_test/__pycache__/collision_and_list_test.cpython-39-pytest-7.4.0.pyc +0 -0
  331. pystage-0.1.1/tests/src/correct_results/motion/collision_and_list_test/collision_and_list_test.py +89 -0
  332. pystage-0.1.1/tests/src/correct_results/motion/collision_and_list_test/images/backdrop1.svg +3 -0
  333. pystage-0.1.1/tests/src/correct_results/motion/collision_and_list_test/images/bat_a.svg +54 -0
  334. pystage-0.1.1/tests/src/correct_results/motion/collision_and_list_test/images/bat_b.svg +52 -0
  335. pystage-0.1.1/tests/src/correct_results/motion/collision_and_list_test/images/bat_c.svg +54 -0
  336. pystage-0.1.1/tests/src/correct_results/motion/collision_and_list_test/images/bat_d.svg +57 -0
  337. pystage-0.1.1/tests/src/correct_results/motion/collision_and_list_test/images/canyon.png +0 -0
  338. pystage-0.1.1/tests/src/correct_results/motion/collision_and_list_test/images/dinosaur5_a.png +0 -0
  339. pystage-0.1.1/tests/src/correct_results/motion/collision_and_list_test/images/dinosaur5_b.png +0 -0
  340. pystage-0.1.1/tests/src/correct_results/motion/collision_and_list_test/images/dinosaur5_c.png +0 -0
  341. pystage-0.1.1/tests/src/correct_results/motion/collision_and_list_test/images/dinosaur5_d.png +0 -0
  342. pystage-0.1.1/tests/src/correct_results/motion/collision_and_list_test/images/dinosaur5_e.png +0 -0
  343. pystage-0.1.1/tests/src/correct_results/motion/collision_and_list_test/images/dinosaur5_f.png +0 -0
  344. pystage-0.1.1/tests/src/correct_results/motion/collision_and_list_test/images/dinosaur5_g.png +0 -0
  345. pystage-0.1.1/tests/src/correct_results/motion/collision_and_list_test/images/dinosaur5_h.png +0 -0
  346. pystage-0.1.1/tests/src/correct_results/motion/collision_and_list_test/images/hall.png +0 -0
  347. pystage-0.1.1/tests/src/correct_results/motion/collision_and_list_test/images/octopus_a.svg +91 -0
  348. pystage-0.1.1/tests/src/correct_results/motion/collision_and_list_test/images/octopus_b.svg +100 -0
  349. pystage-0.1.1/tests/src/correct_results/motion/collision_and_list_test/images/octopus_c.svg +134 -0
  350. pystage-0.1.1/tests/src/correct_results/motion/collision_and_list_test/images/octopus_d.svg +99 -0
  351. pystage-0.1.1/tests/src/correct_results/motion/collision_and_list_test/images/octopus_e.svg +126 -0
  352. pystage-0.1.1/tests/src/correct_results/motion/collision_and_list_test/project.json +935 -0
  353. pystage-0.1.1/tests/src/correct_results/motion/collision_and_list_test/project_intermediate.json +660 -0
  354. pystage-0.1.1/tests/src/correct_results/motion/collision_and_list_test/sounds/bite.wav +0 -0
  355. pystage-0.1.1/tests/src/correct_results/motion/collision_and_list_test/sounds/dance_funky.wav +0 -0
  356. pystage-0.1.1/tests/src/correct_results/motion/collision_and_list_test/sounds/ocean_wave.wav +0 -0
  357. pystage-0.1.1/tests/src/correct_results/motion/collision_and_list_test/sounds/owl.wav +0 -0
  358. pystage-0.1.1/tests/src/correct_results/motion/collision_and_list_test/sounds/pop.wav +0 -0
  359. pystage-0.1.1/tests/src/correct_results/motion/collision_and_list_test/sounds/splash.wav +0 -0
  360. pystage-0.1.1/tests/src/correct_results/motion/motion1/images/backdrop1.svg +3 -0
  361. pystage-0.1.1/tests/src/correct_results/motion/motion1/images/costume1.svg +42 -0
  362. pystage-0.1.1/tests/src/correct_results/motion/motion1/images/costume2.svg +42 -0
  363. pystage-0.1.1/tests/src/correct_results/motion/motion1/motion1.py +31 -0
  364. pystage-0.1.1/tests/src/correct_results/motion/motion1/project.json +347 -0
  365. pystage-0.1.1/tests/src/correct_results/motion/motion1/project_intermediate.json +219 -0
  366. pystage-0.1.1/tests/src/correct_results/motion/motion1/sounds/meow.wav +0 -0
  367. pystage-0.1.1/tests/src/correct_results/motion/motion1/sounds/pop.wav +0 -0
  368. pystage-0.1.1/tests/src/correct_results/motion/motion2/images/backdrop1.svg +3 -0
  369. pystage-0.1.1/tests/src/correct_results/motion/motion2/images/costume1.svg +42 -0
  370. pystage-0.1.1/tests/src/correct_results/motion/motion2/images/costume2.svg +42 -0
  371. pystage-0.1.1/tests/src/correct_results/motion/motion2/motion2.py +29 -0
  372. pystage-0.1.1/tests/src/correct_results/motion/motion2/project.json +312 -0
  373. pystage-0.1.1/tests/src/correct_results/motion/motion2/project_intermediate.json +183 -0
  374. pystage-0.1.1/tests/src/correct_results/motion/motion2/sounds/meow.wav +0 -0
  375. pystage-0.1.1/tests/src/correct_results/motion/motion2/sounds/pop.wav +0 -0
  376. pystage-0.1.1/tests/src/correct_results/motion/motion3/images/backdrop1.svg +3 -0
  377. pystage-0.1.1/tests/src/correct_results/motion/motion3/images/costume1.svg +42 -0
  378. pystage-0.1.1/tests/src/correct_results/motion/motion3/images/costume2.svg +42 -0
  379. pystage-0.1.1/tests/src/correct_results/motion/motion3/motion3.py +36 -0
  380. pystage-0.1.1/tests/src/correct_results/motion/motion3/project.json +360 -0
  381. pystage-0.1.1/tests/src/correct_results/motion/motion3/project_intermediate.json +217 -0
  382. pystage-0.1.1/tests/src/correct_results/motion/motion3/sounds/meow.wav +0 -0
  383. pystage-0.1.1/tests/src/correct_results/motion/motion3/sounds/pop.wav +0 -0
  384. pystage-0.1.1/tests/src/correct_results/motion/motion5/images/backdrop1.svg +3 -0
  385. pystage-0.1.1/tests/src/correct_results/motion/motion5/images/blue_sky_2.svg +6 -0
  386. pystage-0.1.1/tests/src/correct_results/motion/motion5/images/bread.svg +33 -0
  387. pystage-0.1.1/tests/src/correct_results/motion/motion5/images/dot_a.svg +22 -0
  388. pystage-0.1.1/tests/src/correct_results/motion/motion5/images/dot_b.svg +21 -0
  389. pystage-0.1.1/tests/src/correct_results/motion/motion5/images/dot_c.svg +1 -0
  390. pystage-0.1.1/tests/src/correct_results/motion/motion5/images/dot_d.svg +1 -0
  391. pystage-0.1.1/tests/src/correct_results/motion/motion5/images/forest.png +0 -0
  392. pystage-0.1.1/tests/src/correct_results/motion/motion5/motion5.py +206 -0
  393. pystage-0.1.1/tests/src/correct_results/motion/motion5/project.json +1673 -0
  394. pystage-0.1.1/tests/src/correct_results/motion/motion5/project_intermediate.json +1004 -0
  395. pystage-0.1.1/tests/src/correct_results/motion/motion5/sounds/bark.wav +0 -0
  396. pystage-0.1.1/tests/src/correct_results/motion/motion5/sounds/pop.wav +0 -0
  397. pystage-0.1.1/tests/src/correct_results/operators/operators1/images/backdrop1.svg +3 -0
  398. pystage-0.1.1/tests/src/correct_results/operators/operators1/images/costume1.svg +42 -0
  399. pystage-0.1.1/tests/src/correct_results/operators/operators1/images/costume2.svg +42 -0
  400. pystage-0.1.1/tests/src/correct_results/operators/operators1/operators1.py +46 -0
  401. pystage-0.1.1/tests/src/correct_results/operators/operators1/project.json +963 -0
  402. pystage-0.1.1/tests/src/correct_results/operators/operators1/project_intermediate.json +471 -0
  403. pystage-0.1.1/tests/src/correct_results/operators/operators1/sounds/meow.wav +0 -0
  404. pystage-0.1.1/tests/src/correct_results/operators/operators1/sounds/pop.wav +0 -0
  405. pystage-0.1.1/tests/src/correct_results/operators/operators2/images/backdrop1.svg +3 -0
  406. pystage-0.1.1/tests/src/correct_results/operators/operators2/images/costume1.svg +42 -0
  407. pystage-0.1.1/tests/src/correct_results/operators/operators2/images/costume2.svg +42 -0
  408. pystage-0.1.1/tests/src/correct_results/operators/operators2/operators2.py +34 -0
  409. pystage-0.1.1/tests/src/correct_results/operators/operators2/project.json +490 -0
  410. pystage-0.1.1/tests/src/correct_results/operators/operators2/project_intermediate.json +274 -0
  411. pystage-0.1.1/tests/src/correct_results/operators/operators2/sounds/meow.wav +0 -0
  412. pystage-0.1.1/tests/src/correct_results/operators/operators2/sounds/pop.wav +0 -0
  413. pystage-0.1.1/tests/src/correct_results/operators/operators3/images/backdrop1.svg +3 -0
  414. pystage-0.1.1/tests/src/correct_results/operators/operators3/images/costume1.svg +42 -0
  415. pystage-0.1.1/tests/src/correct_results/operators/operators3/images/costume2.svg +42 -0
  416. pystage-0.1.1/tests/src/correct_results/operators/operators3/operators3.py +49 -0
  417. pystage-0.1.1/tests/src/correct_results/operators/operators3/project.json +913 -0
  418. pystage-0.1.1/tests/src/correct_results/operators/operators3/project_intermediate.json +460 -0
  419. pystage-0.1.1/tests/src/correct_results/operators/operators3/sounds/meow.wav +0 -0
  420. pystage-0.1.1/tests/src/correct_results/operators/operators3/sounds/pop.wav +0 -0
  421. pystage-0.1.1/tests/src/correct_results/operators/operators5/images/backdrop1.svg +3 -0
  422. pystage-0.1.1/tests/src/correct_results/operators/operators5/images/cake_a.svg +70 -0
  423. pystage-0.1.1/tests/src/correct_results/operators/operators5/images/cake_b.svg +65 -0
  424. pystage-0.1.1/tests/src/correct_results/operators/operators5/operators5.py +26 -0
  425. pystage-0.1.1/tests/src/correct_results/operators/operators5/project.json +273 -0
  426. pystage-0.1.1/tests/src/correct_results/operators/operators5/project_intermediate.json +179 -0
  427. pystage-0.1.1/tests/src/correct_results/operators/operators5/sounds/birthday.wav +0 -0
  428. pystage-0.1.1/tests/src/correct_results/operators/operators5/sounds/pop.wav +0 -0
  429. pystage-0.1.1/tests/src/correct_results/sensing/draggable/draggable.py +78 -0
  430. pystage-0.1.1/tests/src/correct_results/sensing/draggable/images/backdrop1.svg +3 -0
  431. pystage-0.1.1/tests/src/correct_results/sensing/draggable/images/bear_a.svg +152 -0
  432. pystage-0.1.1/tests/src/correct_results/sensing/draggable/images/bear_b.svg +1 -0
  433. pystage-0.1.1/tests/src/correct_results/sensing/draggable/images/cat_2.svg +33 -0
  434. pystage-0.1.1/tests/src/correct_results/sensing/draggable/images/costume1.svg +42 -0
  435. pystage-0.1.1/tests/src/correct_results/sensing/draggable/images/costume2.svg +42 -0
  436. pystage-0.1.1/tests/src/correct_results/sensing/draggable/images/farm.png +0 -0
  437. pystage-0.1.1/tests/src/correct_results/sensing/draggable/project.json +365 -0
  438. pystage-0.1.1/tests/src/correct_results/sensing/draggable/project_intermediate.json +279 -0
  439. pystage-0.1.1/tests/src/correct_results/sensing/draggable/sounds/meow.wav +0 -0
  440. pystage-0.1.1/tests/src/correct_results/sensing/draggable/sounds/meow2.wav +0 -0
  441. pystage-0.1.1/tests/src/correct_results/sensing/draggable/sounds/pop.wav +0 -0
  442. pystage-0.1.1/tests/src/correct_results/sensing/sensing1/images/backdrop1.svg +3 -0
  443. pystage-0.1.1/tests/src/correct_results/sensing/sensing1/images/costume1.svg +42 -0
  444. pystage-0.1.1/tests/src/correct_results/sensing/sensing1/images/costume2.svg +42 -0
  445. pystage-0.1.1/tests/src/correct_results/sensing/sensing1/images/farm.png +0 -0
  446. pystage-0.1.1/tests/src/correct_results/sensing/sensing1/project.json +392 -0
  447. pystage-0.1.1/tests/src/correct_results/sensing/sensing1/project_intermediate.json +264 -0
  448. pystage-0.1.1/tests/src/correct_results/sensing/sensing1/sensing1.py +41 -0
  449. pystage-0.1.1/tests/src/correct_results/sensing/sensing1/sounds/meow.wav +0 -0
  450. pystage-0.1.1/tests/src/correct_results/sensing/sensing1/sounds/pop.wav +0 -0
  451. pystage-0.1.1/tests/src/correct_results/sensing/sensing2/images/backdrop1.svg +3 -0
  452. pystage-0.1.1/tests/src/correct_results/sensing/sensing2/images/costume1.svg +42 -0
  453. pystage-0.1.1/tests/src/correct_results/sensing/sensing2/images/costume2.svg +42 -0
  454. pystage-0.1.1/tests/src/correct_results/sensing/sensing2/project.json +444 -0
  455. pystage-0.1.1/tests/src/correct_results/sensing/sensing2/project_intermediate.json +274 -0
  456. pystage-0.1.1/tests/src/correct_results/sensing/sensing2/sensing2.py +38 -0
  457. pystage-0.1.1/tests/src/correct_results/sensing/sensing2/sounds/meow.wav +0 -0
  458. pystage-0.1.1/tests/src/correct_results/sensing/sensing2/sounds/pop.wav +0 -0
  459. pystage-0.1.1/tests/src/correct_results/sensing/sensing3/images/backdrop1.svg +3 -0
  460. pystage-0.1.1/tests/src/correct_results/sensing/sensing3/images/castle_3.png +0 -0
  461. pystage-0.1.1/tests/src/correct_results/sensing/sensing3/images/costume1.svg +42 -0
  462. pystage-0.1.1/tests/src/correct_results/sensing/sensing3/images/costume2.svg +42 -0
  463. pystage-0.1.1/tests/src/correct_results/sensing/sensing3/project.json +705 -0
  464. pystage-0.1.1/tests/src/correct_results/sensing/sensing3/project_intermediate.json +408 -0
  465. pystage-0.1.1/tests/src/correct_results/sensing/sensing3/sensing3.py +82 -0
  466. pystage-0.1.1/tests/src/correct_results/sensing/sensing3/sounds/meow.wav +0 -0
  467. pystage-0.1.1/tests/src/correct_results/sensing/sensing3/sounds/pop.wav +0 -0
  468. pystage-0.1.1/tests/src/correct_results/sensing/sensing_dayssince2000/images/backdrop1.svg +3 -0
  469. pystage-0.1.1/tests/src/correct_results/sensing/sensing_dayssince2000/images/costume1.svg +42 -0
  470. pystage-0.1.1/tests/src/correct_results/sensing/sensing_dayssince2000/images/costume2.svg +42 -0
  471. pystage-0.1.1/tests/src/correct_results/sensing/sensing_dayssince2000/project.json +142 -0
  472. pystage-0.1.1/tests/src/correct_results/sensing/sensing_dayssince2000/project_intermediate.json +124 -0
  473. pystage-0.1.1/tests/src/correct_results/sensing/sensing_dayssince2000/sensing_dayssince2000.py +22 -0
  474. pystage-0.1.1/tests/src/correct_results/sensing/sensing_dayssince2000/sounds/meow.wav +0 -0
  475. pystage-0.1.1/tests/src/correct_results/sensing/sensing_dayssince2000/sounds/pop.wav +0 -0
  476. pystage-0.1.1/tests/src/correct_results/sensing/spriteclicked/images/apple.svg +1 -0
  477. pystage-0.1.1/tests/src/correct_results/sensing/spriteclicked/images/apple2.svg +1 -0
  478. pystage-0.1.1/tests/src/correct_results/sensing/spriteclicked/images/backdrop1.svg +3 -0
  479. pystage-0.1.1/tests/src/correct_results/sensing/spriteclicked/images/costume1.svg +42 -0
  480. pystage-0.1.1/tests/src/correct_results/sensing/spriteclicked/images/costume2.svg +42 -0
  481. pystage-0.1.1/tests/src/correct_results/sensing/spriteclicked/project.json +239 -0
  482. pystage-0.1.1/tests/src/correct_results/sensing/spriteclicked/project_intermediate.json +199 -0
  483. pystage-0.1.1/tests/src/correct_results/sensing/spriteclicked/sounds/chomp.wav +0 -0
  484. pystage-0.1.1/tests/src/correct_results/sensing/spriteclicked/sounds/meow.wav +0 -0
  485. pystage-0.1.1/tests/src/correct_results/sensing/spriteclicked/sounds/pop.wav +0 -0
  486. pystage-0.1.1/tests/src/correct_results/sensing/spriteclicked/spriteclicked.py +39 -0
  487. pystage-0.1.1/tests/src/correct_results/sensing/time_sensing_functions/images/anina_pop_down.png +0 -0
  488. pystage-0.1.1/tests/src/correct_results/sensing/time_sensing_functions/images/anina_pop_front.png +0 -0
  489. pystage-0.1.1/tests/src/correct_results/sensing/time_sensing_functions/images/anina_pop_l_arm.png +0 -0
  490. pystage-0.1.1/tests/src/correct_results/sensing/time_sensing_functions/images/anina_pop_left.png +0 -0
  491. pystage-0.1.1/tests/src/correct_results/sensing/time_sensing_functions/images/anina_pop_r_arm.png +0 -0
  492. pystage-0.1.1/tests/src/correct_results/sensing/time_sensing_functions/images/anina_pop_right.png +0 -0
  493. pystage-0.1.1/tests/src/correct_results/sensing/time_sensing_functions/images/anina_pop_stand.png +0 -0
  494. pystage-0.1.1/tests/src/correct_results/sensing/time_sensing_functions/images/anina_r_cross.png +0 -0
  495. pystage-0.1.1/tests/src/correct_results/sensing/time_sensing_functions/images/anina_stance.png +0 -0
  496. pystage-0.1.1/tests/src/correct_results/sensing/time_sensing_functions/images/anina_top_freeze.png +0 -0
  497. pystage-0.1.1/tests/src/correct_results/sensing/time_sensing_functions/images/anina_top_l_step.png +0 -0
  498. pystage-0.1.1/tests/src/correct_results/sensing/time_sensing_functions/images/anina_top_r_step.png +0 -0
  499. pystage-0.1.1/tests/src/correct_results/sensing/time_sensing_functions/images/anina_top_stand.png +0 -0
  500. pystage-0.1.1/tests/src/correct_results/sensing/time_sensing_functions/images/backdrop1.svg +3 -0
  501. pystage-0.1.1/tests/src/correct_results/sensing/time_sensing_functions/project.json +586 -0
  502. pystage-0.1.1/tests/src/correct_results/sensing/time_sensing_functions/project_intermediate.json +428 -0
  503. pystage-0.1.1/tests/src/correct_results/sensing/time_sensing_functions/sounds/dance_celebrate.wav +0 -0
  504. pystage-0.1.1/tests/src/correct_results/sensing/time_sensing_functions/sounds/dance_magic.wav +0 -0
  505. pystage-0.1.1/tests/src/correct_results/sensing/time_sensing_functions/sounds/pop.wav +0 -0
  506. pystage-0.1.1/tests/src/correct_results/sensing/time_sensing_functions/time_sensing_functions.py +71 -0
  507. pystage-0.1.1/tests/src/correct_results/sensing/touchingobject_pointer/images/backdrop1.svg +3 -0
  508. pystage-0.1.1/tests/src/correct_results/sensing/touchingobject_pointer/images/costume1.svg +1 -0
  509. pystage-0.1.1/tests/src/correct_results/sensing/touchingobject_pointer/images/costume2.svg +42 -0
  510. pystage-0.1.1/tests/src/correct_results/sensing/touchingobject_pointer/project.json +204 -0
  511. pystage-0.1.1/tests/src/correct_results/sensing/touchingobject_pointer/project_intermediate.json +154 -0
  512. pystage-0.1.1/tests/src/correct_results/sensing/touchingobject_pointer/sounds/meow.wav +0 -0
  513. pystage-0.1.1/tests/src/correct_results/sensing/touchingobject_pointer/sounds/pop.wav +0 -0
  514. pystage-0.1.1/tests/src/correct_results/sensing/touchingobject_pointer/touchingobject_pointer.py +25 -0
  515. pystage-0.1.1/tests/src/correct_results/sounds/sound1/images/backdrop1.svg +3 -0
  516. pystage-0.1.1/tests/src/correct_results/sounds/sound1/images/costume1.svg +42 -0
  517. pystage-0.1.1/tests/src/correct_results/sounds/sound1/images/costume2.svg +42 -0
  518. pystage-0.1.1/tests/src/correct_results/sounds/sound1/project.json +180 -0
  519. pystage-0.1.1/tests/src/correct_results/sounds/sound1/project_intermediate.json +148 -0
  520. pystage-0.1.1/tests/src/correct_results/sounds/sound1/sound1.py +24 -0
  521. pystage-0.1.1/tests/src/correct_results/sounds/sound1/sounds/meow.wav +0 -0
  522. pystage-0.1.1/tests/src/correct_results/sounds/sound1/sounds/pop.wav +0 -0
  523. pystage-0.1.1/tests/src/correct_results/sounds/sound2/images/backdrop1.svg +3 -0
  524. pystage-0.1.1/tests/src/correct_results/sounds/sound2/images/costume1.svg +42 -0
  525. pystage-0.1.1/tests/src/correct_results/sounds/sound2/images/costume2.svg +42 -0
  526. pystage-0.1.1/tests/src/correct_results/sounds/sound2/images/dan_a.png +0 -0
  527. pystage-0.1.1/tests/src/correct_results/sounds/sound2/images/dan_b.png +0 -0
  528. pystage-0.1.1/tests/src/correct_results/sounds/sound2/project.json +264 -0
  529. pystage-0.1.1/tests/src/correct_results/sounds/sound2/project_intermediate.json +216 -0
  530. pystage-0.1.1/tests/src/correct_results/sounds/sound2/sound2.py +38 -0
  531. pystage-0.1.1/tests/src/correct_results/sounds/sound2/sounds/dance_magic.wav +0 -0
  532. pystage-0.1.1/tests/src/correct_results/sounds/sound2/sounds/meow.wav +0 -0
  533. pystage-0.1.1/tests/src/correct_results/sounds/sound2/sounds/pop.wav +0 -0
  534. pystage-0.1.1/tests/src/correct_results/sounds/sound3/images/backdrop1.svg +3 -0
  535. pystage-0.1.1/tests/src/correct_results/sounds/sound3/images/costume1.svg +42 -0
  536. pystage-0.1.1/tests/src/correct_results/sounds/sound3/images/costume2.svg +42 -0
  537. pystage-0.1.1/tests/src/correct_results/sounds/sound3/project.json +368 -0
  538. pystage-0.1.1/tests/src/correct_results/sounds/sound3/project_intermediate.json +246 -0
  539. pystage-0.1.1/tests/src/correct_results/sounds/sound3/sound3.py +32 -0
  540. pystage-0.1.1/tests/src/correct_results/sounds/sound3/sounds/meow.wav +0 -0
  541. pystage-0.1.1/tests/src/correct_results/sounds/sound3/sounds/pop.wav +0 -0
  542. pystage-0.1.1/tests/src/correct_results/sounds/sound5/images/backdrop1.svg +3 -0
  543. pystage-0.1.1/tests/src/correct_results/sounds/sound5/images/drum_kit.svg +75 -0
  544. pystage-0.1.1/tests/src/correct_results/sounds/sound5/images/drum_kit_b.svg +83 -0
  545. pystage-0.1.1/tests/src/correct_results/sounds/sound5/images/guitar_electric1_a.svg +80 -0
  546. pystage-0.1.1/tests/src/correct_results/sounds/sound5/images/guitar_electric1_b.svg +88 -0
  547. pystage-0.1.1/tests/src/correct_results/sounds/sound5/images/saxophone_a.svg +46 -0
  548. pystage-0.1.1/tests/src/correct_results/sounds/sound5/images/saxophone_b.svg +51 -0
  549. pystage-0.1.1/tests/src/correct_results/sounds/sound5/images/witch_house.svg +1125 -0
  550. pystage-0.1.1/tests/src/correct_results/sounds/sound5/project.json +778 -0
  551. pystage-0.1.1/tests/src/correct_results/sounds/sound5/project_intermediate.json +565 -0
  552. pystage-0.1.1/tests/src/correct_results/sounds/sound5/sound5.py +84 -0
  553. pystage-0.1.1/tests/src/correct_results/sounds/sound5/sounds/a_elec_guitar.wav +0 -0
  554. pystage-0.1.1/tests/src/correct_results/sounds/sound5/sounds/a_sax.wav +0 -0
  555. pystage-0.1.1/tests/src/correct_results/sounds/sound5/sounds/b_elec_guitar.wav +0 -0
  556. pystage-0.1.1/tests/src/correct_results/sounds/sound5/sounds/b_sax.wav +0 -0
  557. pystage-0.1.1/tests/src/correct_results/sounds/sound5/sounds/c2_elec_guitar.wav +0 -0
  558. pystage-0.1.1/tests/src/correct_results/sounds/sound5/sounds/c2_sax.wav +0 -0
  559. pystage-0.1.1/tests/src/correct_results/sounds/sound5/sounds/c_elec_guitar.wav +0 -0
  560. pystage-0.1.1/tests/src/correct_results/sounds/sound5/sounds/c_sax.wav +0 -0
  561. pystage-0.1.1/tests/src/correct_results/sounds/sound5/sounds/d_elec_guitar.wav +0 -0
  562. pystage-0.1.1/tests/src/correct_results/sounds/sound5/sounds/d_sax.wav +0 -0
  563. pystage-0.1.1/tests/src/correct_results/sounds/sound5/sounds/drum_bass1.wav +0 -0
  564. pystage-0.1.1/tests/src/correct_results/sounds/sound5/sounds/drum_bass2.wav +0 -0
  565. pystage-0.1.1/tests/src/correct_results/sounds/sound5/sounds/drum_bass3.wav +0 -0
  566. pystage-0.1.1/tests/src/correct_results/sounds/sound5/sounds/e_elec_guitar.wav +0 -0
  567. pystage-0.1.1/tests/src/correct_results/sounds/sound5/sounds/e_sax.wav +0 -0
  568. pystage-0.1.1/tests/src/correct_results/sounds/sound5/sounds/f_elec_guitar.wav +0 -0
  569. pystage-0.1.1/tests/src/correct_results/sounds/sound5/sounds/f_sax.wav +0 -0
  570. pystage-0.1.1/tests/src/correct_results/sounds/sound5/sounds/g_elec_guitar.wav +0 -0
  571. pystage-0.1.1/tests/src/correct_results/sounds/sound5/sounds/g_sax.wav +0 -0
  572. pystage-0.1.1/tests/src/correct_results/sounds/sound5/sounds/high_tom.wav +0 -0
  573. pystage-0.1.1/tests/src/correct_results/sounds/sound5/sounds/low_tom.wav +0 -0
  574. pystage-0.1.1/tests/src/correct_results/sounds/sound5/sounds/pop.wav +0 -0
  575. pystage-0.1.1/tests/src/correct_results/stage/looks5/images/backdrop1.svg +3 -0
  576. pystage-0.1.1/tests/src/correct_results/stage/looks5/images/blue_sky.svg +19 -0
  577. pystage-0.1.1/tests/src/correct_results/stage/looks5/images/blue_sky_2.svg +6 -0
  578. pystage-0.1.1/tests/src/correct_results/stage/looks5/images/costume1.svg +42 -0
  579. pystage-0.1.1/tests/src/correct_results/stage/looks5/images/costume2.svg +42 -0
  580. pystage-0.1.1/tests/src/correct_results/stage/looks5/looks5.py +35 -0
  581. pystage-0.1.1/tests/src/correct_results/stage/looks5/project.json +345 -0
  582. pystage-0.1.1/tests/src/correct_results/stage/looks5/project_intermediate.json +226 -0
  583. pystage-0.1.1/tests/src/correct_results/stage/looks5/sounds/meow.wav +0 -0
  584. pystage-0.1.1/tests/src/correct_results/stage/looks5/sounds/pop.wav +0 -0
  585. pystage-0.1.1/tests/src/correct_results/stage/stage1/images/blue_sky.svg +19 -0
  586. pystage-0.1.1/tests/src/correct_results/stage/stage1/images/canyon.png +0 -0
  587. pystage-0.1.1/tests/src/correct_results/stage/stage1/images/costume1.svg +42 -0
  588. pystage-0.1.1/tests/src/correct_results/stage/stage1/images/costume2.svg +42 -0
  589. pystage-0.1.1/tests/src/correct_results/stage/stage1/project.json +400 -0
  590. pystage-0.1.1/tests/src/correct_results/stage/stage1/project_intermediate.json +240 -0
  591. pystage-0.1.1/tests/src/correct_results/stage/stage1/sounds/meow.wav +0 -0
  592. pystage-0.1.1/tests/src/correct_results/stage/stage1/sounds/pop.wav +0 -0
  593. pystage-0.1.1/tests/src/correct_results/stage/stage1/stage1.py +53 -0
  594. pystage-0.1.1/tests/src/correct_results/stage/stage2/images/amon.png +0 -0
  595. pystage-0.1.1/tests/src/correct_results/stage/stage2/images/anina_pop_down.png +0 -0
  596. pystage-0.1.1/tests/src/correct_results/stage/stage2/images/anina_pop_front.png +0 -0
  597. pystage-0.1.1/tests/src/correct_results/stage/stage2/images/anina_pop_l_arm.png +0 -0
  598. pystage-0.1.1/tests/src/correct_results/stage/stage2/images/anina_pop_left.png +0 -0
  599. pystage-0.1.1/tests/src/correct_results/stage/stage2/images/anina_pop_r_arm.png +0 -0
  600. pystage-0.1.1/tests/src/correct_results/stage/stage2/images/anina_pop_right.png +0 -0
  601. pystage-0.1.1/tests/src/correct_results/stage/stage2/images/anina_pop_stand.png +0 -0
  602. pystage-0.1.1/tests/src/correct_results/stage/stage2/images/anina_r_cross.png +0 -0
  603. pystage-0.1.1/tests/src/correct_results/stage/stage2/images/anina_stance.png +0 -0
  604. pystage-0.1.1/tests/src/correct_results/stage/stage2/images/anina_top_freeze.png +0 -0
  605. pystage-0.1.1/tests/src/correct_results/stage/stage2/images/anina_top_l_step.png +0 -0
  606. pystage-0.1.1/tests/src/correct_results/stage/stage2/images/anina_top_r_step.png +0 -0
  607. pystage-0.1.1/tests/src/correct_results/stage/stage2/images/anina_top_stand.png +0 -0
  608. pystage-0.1.1/tests/src/correct_results/stage/stage2/images/backdrop1.svg +3 -0
  609. pystage-0.1.1/tests/src/correct_results/stage/stage2/images/basketball_2.png +0 -0
  610. pystage-0.1.1/tests/src/correct_results/stage/stage2/images/boardwalk.png +0 -0
  611. pystage-0.1.1/tests/src/correct_results/stage/stage2/images/city_with_water.png +0 -0
  612. pystage-0.1.1/tests/src/correct_results/stage/stage2/images/farm.png +0 -0
  613. pystage-0.1.1/tests/src/correct_results/stage/stage2/project.json +947 -0
  614. pystage-0.1.1/tests/src/correct_results/stage/stage2/project_intermediate.json +658 -0
  615. pystage-0.1.1/tests/src/correct_results/stage/stage2/sounds/dance_celebrate.wav +0 -0
  616. pystage-0.1.1/tests/src/correct_results/stage/stage2/sounds/dance_magic.wav +0 -0
  617. pystage-0.1.1/tests/src/correct_results/stage/stage2/sounds/pop.wav +0 -0
  618. pystage-0.1.1/tests/src/correct_results/stage/stage2/stage2.py +83 -0
  619. pystage-0.1.1/tests/src/correct_results/tests/backdrop_switches/backdrop_switches.py +65 -0
  620. pystage-0.1.1/tests/src/correct_results/tests/backdrop_switches/images/backdrop1.svg +3 -0
  621. pystage-0.1.1/tests/src/correct_results/tests/backdrop_switches/images/blue_sky.svg +19 -0
  622. pystage-0.1.1/tests/src/correct_results/tests/backdrop_switches/images/chalkboard.png +0 -0
  623. pystage-0.1.1/tests/src/correct_results/tests/backdrop_switches/images/colorful_city.png +0 -0
  624. pystage-0.1.1/tests/src/correct_results/tests/backdrop_switches/images/costume1.svg +42 -0
  625. pystage-0.1.1/tests/src/correct_results/tests/backdrop_switches/images/costume1_2.svg +1 -0
  626. pystage-0.1.1/tests/src/correct_results/tests/backdrop_switches/images/costume2.svg +42 -0
  627. pystage-0.1.1/tests/src/correct_results/tests/backdrop_switches/project.json +549 -0
  628. pystage-0.1.1/tests/src/correct_results/tests/backdrop_switches/project_intermediate.json +360 -0
  629. pystage-0.1.1/tests/src/correct_results/tests/backdrop_switches/sounds/meow.wav +0 -0
  630. pystage-0.1.1/tests/src/correct_results/tests/backdrop_switches/sounds/pop.wav +0 -0
  631. pystage-0.1.1/tests/src/correct_results/tests/backdropdraw/backdropdraw.py +32 -0
  632. pystage-0.1.1/tests/src/correct_results/tests/backdropdraw/images/backdrop1.svg +1 -0
  633. pystage-0.1.1/tests/src/correct_results/tests/backdropdraw/images/backdrop2.svg +1 -0
  634. pystage-0.1.1/tests/src/correct_results/tests/backdropdraw/images/backdrop3.svg +1 -0
  635. pystage-0.1.1/tests/src/correct_results/tests/backdropdraw/images/backdrop4.png +0 -0
  636. pystage-0.1.1/tests/src/correct_results/tests/backdropdraw/images/backdrop5.png +0 -0
  637. pystage-0.1.1/tests/src/correct_results/tests/backdropdraw/images/backdrop6.svg +1 -0
  638. pystage-0.1.1/tests/src/correct_results/tests/backdropdraw/images/beach_malibu.png +0 -0
  639. pystage-0.1.1/tests/src/correct_results/tests/backdropdraw/images/chalkboard.png +0 -0
  640. pystage-0.1.1/tests/src/correct_results/tests/backdropdraw/images/costume1.svg +42 -0
  641. pystage-0.1.1/tests/src/correct_results/tests/backdropdraw/images/costume2.svg +42 -0
  642. pystage-0.1.1/tests/src/correct_results/tests/backdropdraw/images/flowers.png +0 -0
  643. pystage-0.1.1/tests/src/correct_results/tests/backdropdraw/images/theater.png +0 -0
  644. pystage-0.1.1/tests/src/correct_results/tests/backdropdraw/images/theater_2.svg +1 -0
  645. pystage-0.1.1/tests/src/correct_results/tests/backdropdraw/project.json +237 -0
  646. pystage-0.1.1/tests/src/correct_results/tests/backdropdraw/project_intermediate.json +228 -0
  647. pystage-0.1.1/tests/src/correct_results/tests/backdropdraw/sounds/meow.wav +0 -0
  648. pystage-0.1.1/tests/src/correct_results/tests/backdropdraw/sounds/pop.wav +0 -0
  649. pystage-0.1.1/tests/src/correct_results/tests/comment/comment.py +44 -0
  650. pystage-0.1.1/tests/src/correct_results/tests/comment/images/backdrop1.svg +3 -0
  651. pystage-0.1.1/tests/src/correct_results/tests/comment/images/costume1.svg +42 -0
  652. pystage-0.1.1/tests/src/correct_results/tests/comment/images/costume2.svg +42 -0
  653. pystage-0.1.1/tests/src/correct_results/tests/comment/project.json +258 -0
  654. pystage-0.1.1/tests/src/correct_results/tests/comment/project_intermediate.json +141 -0
  655. pystage-0.1.1/tests/src/correct_results/tests/comment/sounds/meow.wav +0 -0
  656. pystage-0.1.1/tests/src/correct_results/tests/comment/sounds/pop.wav +0 -0
  657. pystage-0.1.1/tests/src/correct_results/tests/comment2/comment2.py +36 -0
  658. pystage-0.1.1/tests/src/correct_results/tests/comment2/images/backdrop1.svg +3 -0
  659. pystage-0.1.1/tests/src/correct_results/tests/comment2/images/costume1.svg +42 -0
  660. pystage-0.1.1/tests/src/correct_results/tests/comment2/images/costume2.svg +42 -0
  661. pystage-0.1.1/tests/src/correct_results/tests/comment2/project.json +231 -0
  662. pystage-0.1.1/tests/src/correct_results/tests/comment2/project_intermediate.json +138 -0
  663. pystage-0.1.1/tests/src/correct_results/tests/comment2/sounds/meow.wav +0 -0
  664. pystage-0.1.1/tests/src/correct_results/tests/comment2/sounds/pop.wav +0 -0
  665. pystage-0.1.1/tests/src/correct_results/tests/events2/events2.py +22 -0
  666. pystage-0.1.1/tests/src/correct_results/tests/events2/images/backdrop1.svg +3 -0
  667. pystage-0.1.1/tests/src/correct_results/tests/events2/images/costume1.svg +42 -0
  668. pystage-0.1.1/tests/src/correct_results/tests/events2/images/costume2.svg +42 -0
  669. pystage-0.1.1/tests/src/correct_results/tests/events2/project.json +115 -0
  670. pystage-0.1.1/tests/src/correct_results/tests/events2/project_intermediate.json +110 -0
  671. pystage-0.1.1/tests/src/correct_results/tests/events2/sounds/meow.wav +0 -0
  672. pystage-0.1.1/tests/src/correct_results/tests/events2/sounds/pop.wav +0 -0
  673. pystage-0.1.1/tests/src/correct_results/tests/list/images/backdrop1.svg +3 -0
  674. pystage-0.1.1/tests/src/correct_results/tests/list/images/costume1.svg +42 -0
  675. pystage-0.1.1/tests/src/correct_results/tests/list/images/costume2.svg +42 -0
  676. pystage-0.1.1/tests/src/correct_results/tests/list/list.py +52 -0
  677. pystage-0.1.1/tests/src/correct_results/tests/list/project.json +779 -0
  678. pystage-0.1.1/tests/src/correct_results/tests/list/project_intermediate.json +373 -0
  679. pystage-0.1.1/tests/src/correct_results/tests/list/sounds/meow.wav +0 -0
  680. pystage-0.1.1/tests/src/correct_results/tests/list/sounds/pop.wav +0 -0
  681. pystage-0.1.1/tests/src/correct_results/tests/show_var/images/backdrop1.svg +3 -0
  682. pystage-0.1.1/tests/src/correct_results/tests/show_var/images/costume1.svg +42 -0
  683. pystage-0.1.1/tests/src/correct_results/tests/show_var/images/costume2.svg +42 -0
  684. pystage-0.1.1/tests/src/correct_results/tests/show_var/project.json +542 -0
  685. pystage-0.1.1/tests/src/correct_results/tests/show_var/project_intermediate.json +272 -0
  686. pystage-0.1.1/tests/src/correct_results/tests/show_var/show_var.py +46 -0
  687. pystage-0.1.1/tests/src/correct_results/tests/show_var/sounds/meow.wav +0 -0
  688. pystage-0.1.1/tests/src/correct_results/tests/show_var/sounds/pop.wav +0 -0
  689. pystage-0.1.1/tests/src/correct_results/tests/sprite_clicked/images/apple.svg +1 -0
  690. pystage-0.1.1/tests/src/correct_results/tests/sprite_clicked/images/apple2.svg +1 -0
  691. pystage-0.1.1/tests/src/correct_results/tests/sprite_clicked/images/backdrop1.svg +3 -0
  692. pystage-0.1.1/tests/src/correct_results/tests/sprite_clicked/images/costume1.svg +42 -0
  693. pystage-0.1.1/tests/src/correct_results/tests/sprite_clicked/images/costume2.svg +42 -0
  694. pystage-0.1.1/tests/src/correct_results/tests/sprite_clicked/project.json +239 -0
  695. pystage-0.1.1/tests/src/correct_results/tests/sprite_clicked/project_intermediate.json +199 -0
  696. pystage-0.1.1/tests/src/correct_results/tests/sprite_clicked/sounds/chomp.wav +0 -0
  697. pystage-0.1.1/tests/src/correct_results/tests/sprite_clicked/sounds/meow.wav +0 -0
  698. pystage-0.1.1/tests/src/correct_results/tests/sprite_clicked/sounds/pop.wav +0 -0
  699. pystage-0.1.1/tests/src/correct_results/tests/sprite_clicked/sprite_clicked.py +39 -0
  700. pystage-0.1.1/tests/src/correct_results/tests/switchbackdrop/images/basketball_2.png +0 -0
  701. pystage-0.1.1/tests/src/correct_results/tests/switchbackdrop/images/costume1.svg +42 -0
  702. pystage-0.1.1/tests/src/correct_results/tests/switchbackdrop/images/costume2.svg +42 -0
  703. pystage-0.1.1/tests/src/correct_results/tests/switchbackdrop/images/pool.png +0 -0
  704. pystage-0.1.1/tests/src/correct_results/tests/switchbackdrop/project.json +212 -0
  705. pystage-0.1.1/tests/src/correct_results/tests/switchbackdrop/project_intermediate.json +168 -0
  706. pystage-0.1.1/tests/src/correct_results/tests/switchbackdrop/sounds/meow.wav +0 -0
  707. pystage-0.1.1/tests/src/correct_results/tests/switchbackdrop/sounds/pop.wav +0 -0
  708. pystage-0.1.1/tests/src/correct_results/tests/switchbackdrop/switchbackdrop.py +30 -0
  709. pystage-0.1.1/tests/src/correct_results/tests/test/images/backdrop1.svg +3 -0
  710. pystage-0.1.1/tests/src/correct_results/tests/test/images/cheesy_puffs.png +0 -0
  711. pystage-0.1.1/tests/src/correct_results/tests/test/images/dog2_a.svg +46 -0
  712. pystage-0.1.1/tests/src/correct_results/tests/test/images/dog2_b.svg +46 -0
  713. pystage-0.1.1/tests/src/correct_results/tests/test/images/dog2_c.svg +54 -0
  714. pystage-0.1.1/tests/src/correct_results/tests/test/project.json +196 -0
  715. pystage-0.1.1/tests/src/correct_results/tests/test/project_intermediate.json +149 -0
  716. pystage-0.1.1/tests/src/correct_results/tests/test/sounds/dog1.wav +0 -0
  717. pystage-0.1.1/tests/src/correct_results/tests/test/sounds/pop.wav +0 -0
  718. pystage-0.1.1/tests/src/correct_results/tests/test/test.py +28 -0
  719. pystage-0.1.1/tests/src/correct_results/tests/test2/images/backdrop1.svg +3 -0
  720. pystage-0.1.1/tests/src/correct_results/tests/test2/images/costume1.svg +42 -0
  721. pystage-0.1.1/tests/src/correct_results/tests/test2/images/costume2.svg +42 -0
  722. pystage-0.1.1/tests/src/correct_results/tests/test2/project.json +237 -0
  723. pystage-0.1.1/tests/src/correct_results/tests/test2/project_intermediate.json +158 -0
  724. pystage-0.1.1/tests/src/correct_results/tests/test2/sounds/meow.wav +0 -0
  725. pystage-0.1.1/tests/src/correct_results/tests/test2/sounds/pop.wav +0 -0
  726. pystage-0.1.1/tests/src/correct_results/tests/test2/test2.py +47 -0
  727. pystage-0.1.1/tests/src/correct_results/tests/timer/images/backdrop1.svg +3 -0
  728. pystage-0.1.1/tests/src/correct_results/tests/timer/images/costume1.svg +42 -0
  729. pystage-0.1.1/tests/src/correct_results/tests/timer/images/costume2.svg +42 -0
  730. pystage-0.1.1/tests/src/correct_results/tests/timer/project.json +152 -0
  731. pystage-0.1.1/tests/src/correct_results/tests/timer/project_intermediate.json +122 -0
  732. pystage-0.1.1/tests/src/correct_results/tests/timer/sounds/meow.wav +0 -0
  733. pystage-0.1.1/tests/src/correct_results/tests/timer/sounds/pop.wav +0 -0
  734. pystage-0.1.1/tests/src/correct_results/tests/timer/timer.py +22 -0
  735. pystage-0.1.1/tests/src/correct_results/tests//344/270/255/346/226/207/346/265/213/350/257/225/images/backdrop1.svg +3 -0
  736. pystage-0.1.1/tests/src/correct_results/tests//344/270/255/346/226/207/346/265/213/350/257/225/images/costume1.svg +42 -0
  737. pystage-0.1.1/tests/src/correct_results/tests//344/270/255/346/226/207/346/265/213/350/257/225/images/costume2.svg +42 -0
  738. pystage-0.1.1/tests/src/correct_results/tests//344/270/255/346/226/207/346/265/213/350/257/225/project.json +110 -0
  739. pystage-0.1.1/tests/src/correct_results/tests//344/270/255/346/226/207/346/265/213/350/257/225/project_intermediate.json +108 -0
  740. pystage-0.1.1/tests/src/correct_results/tests//344/270/255/346/226/207/346/265/213/350/257/225/sounds/meow.wav +0 -0
  741. pystage-0.1.1/tests/src/correct_results/tests//344/270/255/346/226/207/346/265/213/350/257/225/sounds/pop.wav +0 -0
  742. pystage-0.1.1/tests/src/correct_results/tests//344/270/255/346/226/207/346/265/213/350/257/225//344/270/255/346/226/207/346/265/213/350/257/225.py +21 -0
  743. pystage-0.1.1/tests/src/correct_results/variables/add_list_for_sprite_and_stage/add_list_for_sprite_and_stage.py +33 -0
  744. pystage-0.1.1/tests/src/correct_results/variables/add_list_for_sprite_and_stage/images/backdrop1.svg +3 -0
  745. pystage-0.1.1/tests/src/correct_results/variables/add_list_for_sprite_and_stage/images/costume1.svg +42 -0
  746. pystage-0.1.1/tests/src/correct_results/variables/add_list_for_sprite_and_stage/images/costume2.svg +42 -0
  747. pystage-0.1.1/tests/src/correct_results/variables/add_list_for_sprite_and_stage/project.json +241 -0
  748. pystage-0.1.1/tests/src/correct_results/variables/add_list_for_sprite_and_stage/project_intermediate.json +169 -0
  749. pystage-0.1.1/tests/src/correct_results/variables/add_list_for_sprite_and_stage/sounds/meow.wav +0 -0
  750. pystage-0.1.1/tests/src/correct_results/variables/add_list_for_sprite_and_stage/sounds/pop.wav +0 -0
  751. pystage-0.1.1/tests/src/correct_results/variables/add_list_for_stage_and_sprite/add_list_for_stage_and_sprite.py +38 -0
  752. pystage-0.1.1/tests/src/correct_results/variables/add_list_for_stage_and_sprite/images/backdrop1.svg +3 -0
  753. pystage-0.1.1/tests/src/correct_results/variables/add_list_for_stage_and_sprite/images/costume1.svg +42 -0
  754. pystage-0.1.1/tests/src/correct_results/variables/add_list_for_stage_and_sprite/images/costume2.svg +42 -0
  755. pystage-0.1.1/tests/src/correct_results/variables/add_list_for_stage_and_sprite/project.json +241 -0
  756. pystage-0.1.1/tests/src/correct_results/variables/add_list_for_stage_and_sprite/project_intermediate.json +167 -0
  757. pystage-0.1.1/tests/src/correct_results/variables/add_list_for_stage_and_sprite/sounds/meow.wav +0 -0
  758. pystage-0.1.1/tests/src/correct_results/variables/add_list_for_stage_and_sprite/sounds/pop.wav +0 -0
  759. pystage-0.1.1/tests/src/correct_results/variables/add_to_list/add_to_list.py +24 -0
  760. pystage-0.1.1/tests/src/correct_results/variables/add_to_list/images/backdrop1.svg +3 -0
  761. pystage-0.1.1/tests/src/correct_results/variables/add_to_list/images/costume1.svg +42 -0
  762. pystage-0.1.1/tests/src/correct_results/variables/add_to_list/images/costume2.svg +42 -0
  763. pystage-0.1.1/tests/src/correct_results/variables/add_to_list/project.json +158 -0
  764. pystage-0.1.1/tests/src/correct_results/variables/add_to_list/project_intermediate.json +129 -0
  765. pystage-0.1.1/tests/src/correct_results/variables/add_to_list/sounds/meow.wav +0 -0
  766. pystage-0.1.1/tests/src/correct_results/variables/add_to_list/sounds/pop.wav +0 -0
  767. pystage-0.1.1/tests/src/correct_results/variables/add_to_variables/add_to_variables.py +25 -0
  768. pystage-0.1.1/tests/src/correct_results/variables/add_to_variables/images/backdrop1.svg +3 -0
  769. pystage-0.1.1/tests/src/correct_results/variables/add_to_variables/images/costume1.svg +42 -0
  770. pystage-0.1.1/tests/src/correct_results/variables/add_to_variables/images/costume2.svg +42 -0
  771. pystage-0.1.1/tests/src/correct_results/variables/add_to_variables/project.json +175 -0
  772. pystage-0.1.1/tests/src/correct_results/variables/add_to_variables/project_intermediate.json +137 -0
  773. pystage-0.1.1/tests/src/correct_results/variables/add_to_variables/sounds/meow.wav +0 -0
  774. pystage-0.1.1/tests/src/correct_results/variables/add_to_variables/sounds/pop.wav +0 -0
  775. pystage-0.1.1/tests/src/correct_results/variables/delete_all_of_list/delete_all_of_list.py +27 -0
  776. pystage-0.1.1/tests/src/correct_results/variables/delete_all_of_list/images/backdrop1.svg +3 -0
  777. pystage-0.1.1/tests/src/correct_results/variables/delete_all_of_list/images/costume1.svg +42 -0
  778. pystage-0.1.1/tests/src/correct_results/variables/delete_all_of_list/images/costume2.svg +42 -0
  779. pystage-0.1.1/tests/src/correct_results/variables/delete_all_of_list/project.json +211 -0
  780. pystage-0.1.1/tests/src/correct_results/variables/delete_all_of_list/project_intermediate.json +154 -0
  781. pystage-0.1.1/tests/src/correct_results/variables/delete_all_of_list/sounds/meow.wav +0 -0
  782. pystage-0.1.1/tests/src/correct_results/variables/delete_all_of_list/sounds/pop.wav +0 -0
  783. pystage-0.1.1/tests/src/correct_results/variables/delete_from_list/delete_from_list.py +27 -0
  784. pystage-0.1.1/tests/src/correct_results/variables/delete_from_list/images/backdrop1.svg +3 -0
  785. pystage-0.1.1/tests/src/correct_results/variables/delete_from_list/images/costume1.svg +42 -0
  786. pystage-0.1.1/tests/src/correct_results/variables/delete_from_list/images/costume2.svg +42 -0
  787. pystage-0.1.1/tests/src/correct_results/variables/delete_from_list/project.json +223 -0
  788. pystage-0.1.1/tests/src/correct_results/variables/delete_from_list/project_intermediate.json +157 -0
  789. pystage-0.1.1/tests/src/correct_results/variables/delete_from_list/sounds/meow.wav +0 -0
  790. pystage-0.1.1/tests/src/correct_results/variables/delete_from_list/sounds/pop.wav +0 -0
  791. pystage-0.1.1/tests/src/correct_results/variables/hide_and_show_list/hide_and_show_list.py +32 -0
  792. pystage-0.1.1/tests/src/correct_results/variables/hide_and_show_list/images/backdrop1.svg +3 -0
  793. pystage-0.1.1/tests/src/correct_results/variables/hide_and_show_list/images/costume1.svg +42 -0
  794. pystage-0.1.1/tests/src/correct_results/variables/hide_and_show_list/images/costume2.svg +42 -0
  795. pystage-0.1.1/tests/src/correct_results/variables/hide_and_show_list/project.json +293 -0
  796. pystage-0.1.1/tests/src/correct_results/variables/hide_and_show_list/project_intermediate.json +192 -0
  797. pystage-0.1.1/tests/src/correct_results/variables/hide_and_show_list/sounds/meow.wav +0 -0
  798. pystage-0.1.1/tests/src/correct_results/variables/hide_and_show_list/sounds/pop.wav +0 -0
  799. pystage-0.1.1/tests/src/correct_results/variables/insert_into_list/images/backdrop1.svg +3 -0
  800. pystage-0.1.1/tests/src/correct_results/variables/insert_into_list/images/costume1.svg +42 -0
  801. pystage-0.1.1/tests/src/correct_results/variables/insert_into_list/images/costume2.svg +42 -0
  802. pystage-0.1.1/tests/src/correct_results/variables/insert_into_list/insert_into_list.py +24 -0
  803. pystage-0.1.1/tests/src/correct_results/variables/insert_into_list/project.json +165 -0
  804. pystage-0.1.1/tests/src/correct_results/variables/insert_into_list/project_intermediate.json +130 -0
  805. pystage-0.1.1/tests/src/correct_results/variables/insert_into_list/sounds/meow.wav +0 -0
  806. pystage-0.1.1/tests/src/correct_results/variables/insert_into_list/sounds/pop.wav +0 -0
  807. pystage-0.1.1/tests/src/correct_results/variables/item_of_list/images/backdrop1.svg +3 -0
  808. pystage-0.1.1/tests/src/correct_results/variables/item_of_list/images/costume1.svg +42 -0
  809. pystage-0.1.1/tests/src/correct_results/variables/item_of_list/images/costume2.svg +42 -0
  810. pystage-0.1.1/tests/src/correct_results/variables/item_of_list/item_of_list.py +32 -0
  811. pystage-0.1.1/tests/src/correct_results/variables/item_of_list/project.json +302 -0
  812. pystage-0.1.1/tests/src/correct_results/variables/item_of_list/project_intermediate.json +194 -0
  813. pystage-0.1.1/tests/src/correct_results/variables/item_of_list/sounds/meow.wav +0 -0
  814. pystage-0.1.1/tests/src/correct_results/variables/item_of_list/sounds/pop.wav +0 -0
  815. pystage-0.1.1/tests/src/correct_results/variables/length_of_list/images/backdrop1.svg +3 -0
  816. pystage-0.1.1/tests/src/correct_results/variables/length_of_list/images/costume1.svg +42 -0
  817. pystage-0.1.1/tests/src/correct_results/variables/length_of_list/images/costume2.svg +42 -0
  818. pystage-0.1.1/tests/src/correct_results/variables/length_of_list/length_of_list.py +25 -0
  819. pystage-0.1.1/tests/src/correct_results/variables/length_of_list/project.json +194 -0
  820. pystage-0.1.1/tests/src/correct_results/variables/length_of_list/project_intermediate.json +147 -0
  821. pystage-0.1.1/tests/src/correct_results/variables/length_of_list/sounds/meow.wav +0 -0
  822. pystage-0.1.1/tests/src/correct_results/variables/length_of_list/sounds/pop.wav +0 -0
  823. pystage-0.1.1/tests/src/correct_results/variables/list_contains_item/images/backdrop1.svg +3 -0
  824. pystage-0.1.1/tests/src/correct_results/variables/list_contains_item/images/costume1.svg +42 -0
  825. pystage-0.1.1/tests/src/correct_results/variables/list_contains_item/images/costume2.svg +42 -0
  826. pystage-0.1.1/tests/src/correct_results/variables/list_contains_item/list_contains_item.py +30 -0
  827. pystage-0.1.1/tests/src/correct_results/variables/list_contains_item/project.json +235 -0
  828. pystage-0.1.1/tests/src/correct_results/variables/list_contains_item/project_intermediate.json +166 -0
  829. pystage-0.1.1/tests/src/correct_results/variables/list_contains_item/sounds/meow.wav +0 -0
  830. pystage-0.1.1/tests/src/correct_results/variables/list_contains_item/sounds/pop.wav +0 -0
  831. pystage-0.1.1/tests/src/correct_results/variables/list_in_stage/images/backdrop1.svg +3 -0
  832. pystage-0.1.1/tests/src/correct_results/variables/list_in_stage/images/costume1.svg +42 -0
  833. pystage-0.1.1/tests/src/correct_results/variables/list_in_stage/images/costume2.svg +42 -0
  834. pystage-0.1.1/tests/src/correct_results/variables/list_in_stage/list_in_stage.py +24 -0
  835. pystage-0.1.1/tests/src/correct_results/variables/list_in_stage/project.json +162 -0
  836. pystage-0.1.1/tests/src/correct_results/variables/list_in_stage/project_intermediate.json +131 -0
  837. pystage-0.1.1/tests/src/correct_results/variables/list_in_stage/sounds/meow.wav +0 -0
  838. pystage-0.1.1/tests/src/correct_results/variables/list_in_stage/sounds/pop.wav +0 -0
  839. pystage-0.1.1/tests/src/correct_results/variables/replace_item_in_list/images/backdrop1.svg +3 -0
  840. pystage-0.1.1/tests/src/correct_results/variables/replace_item_in_list/images/costume1.svg +42 -0
  841. pystage-0.1.1/tests/src/correct_results/variables/replace_item_in_list/images/costume2.svg +42 -0
  842. pystage-0.1.1/tests/src/correct_results/variables/replace_item_in_list/project.json +208 -0
  843. pystage-0.1.1/tests/src/correct_results/variables/replace_item_in_list/project_intermediate.json +149 -0
  844. pystage-0.1.1/tests/src/correct_results/variables/replace_item_in_list/replace_item_in_list.py +26 -0
  845. pystage-0.1.1/tests/src/correct_results/variables/replace_item_in_list/sounds/meow.wav +0 -0
  846. pystage-0.1.1/tests/src/correct_results/variables/replace_item_in_list/sounds/pop.wav +0 -0
  847. pystage-0.1.1/tests/src/correct_results/variables/show_item_number_in_list/images/backdrop1.svg +3 -0
  848. pystage-0.1.1/tests/src/correct_results/variables/show_item_number_in_list/images/costume1.svg +42 -0
  849. pystage-0.1.1/tests/src/correct_results/variables/show_item_number_in_list/images/costume2.svg +42 -0
  850. pystage-0.1.1/tests/src/correct_results/variables/show_item_number_in_list/project.json +226 -0
  851. pystage-0.1.1/tests/src/correct_results/variables/show_item_number_in_list/project_intermediate.json +158 -0
  852. pystage-0.1.1/tests/src/correct_results/variables/show_item_number_in_list/show_item_number_in_list.py +26 -0
  853. pystage-0.1.1/tests/src/correct_results/variables/show_item_number_in_list/sounds/meow.wav +0 -0
  854. pystage-0.1.1/tests/src/correct_results/variables/show_item_number_in_list/sounds/pop.wav +0 -0
  855. pystage-0.1.1/tests/src/correct_results/variables/testing_big_list/images/backdrop1.svg +3 -0
  856. pystage-0.1.1/tests/src/correct_results/variables/testing_big_list/images/costume1.svg +42 -0
  857. pystage-0.1.1/tests/src/correct_results/variables/testing_big_list/images/costume2.svg +42 -0
  858. pystage-0.1.1/tests/src/correct_results/variables/testing_big_list/project.json +201 -0
  859. pystage-0.1.1/tests/src/correct_results/variables/testing_big_list/project_intermediate.json +149 -0
  860. pystage-0.1.1/tests/src/correct_results/variables/testing_big_list/sounds/meow.wav +0 -0
  861. pystage-0.1.1/tests/src/correct_results/variables/testing_big_list/sounds/pop.wav +0 -0
  862. pystage-0.1.1/tests/src/correct_results/variables/testing_big_list/testing_big_list.py +25 -0
  863. pystage-0.1.1/tests/src/correct_results/variables/variable3/images/backdrop1.svg +3 -0
  864. pystage-0.1.1/tests/src/correct_results/variables/variable3/images/jo_pop_down.png +0 -0
  865. pystage-0.1.1/tests/src/correct_results/variables/variable3/images/jo_pop_front.png +0 -0
  866. pystage-0.1.1/tests/src/correct_results/variables/variable3/images/jo_pop_l_arm.png +0 -0
  867. pystage-0.1.1/tests/src/correct_results/variables/variable3/images/jo_pop_left.png +0 -0
  868. pystage-0.1.1/tests/src/correct_results/variables/variable3/images/jo_pop_r_arm.png +0 -0
  869. pystage-0.1.1/tests/src/correct_results/variables/variable3/images/jo_pop_right.png +0 -0
  870. pystage-0.1.1/tests/src/correct_results/variables/variable3/images/jo_pop_stand.png +0 -0
  871. pystage-0.1.1/tests/src/correct_results/variables/variable3/images/jo_stance.png +0 -0
  872. pystage-0.1.1/tests/src/correct_results/variables/variable3/images/jo_top_l_cross.png +0 -0
  873. pystage-0.1.1/tests/src/correct_results/variables/variable3/images/jo_top_l_leg.png +0 -0
  874. pystage-0.1.1/tests/src/correct_results/variables/variable3/images/jo_top_r_cross.png +0 -0
  875. pystage-0.1.1/tests/src/correct_results/variables/variable3/images/jo_top_r_leg.png +0 -0
  876. pystage-0.1.1/tests/src/correct_results/variables/variable3/images/jo_top_stand.png +0 -0
  877. pystage-0.1.1/tests/src/correct_results/variables/variable3/project.json +540 -0
  878. pystage-0.1.1/tests/src/correct_results/variables/variable3/project_intermediate.json +381 -0
  879. pystage-0.1.1/tests/src/correct_results/variables/variable3/sounds/dance_celebrate.wav +0 -0
  880. pystage-0.1.1/tests/src/correct_results/variables/variable3/sounds/pop.wav +0 -0
  881. pystage-0.1.1/tests/src/correct_results/variables/variable3/variable3.py +46 -0
  882. pystage-0.1.1/tests/src/correct_results/variables/variable5/images/backdrop1.svg +3 -0
  883. pystage-0.1.1/tests/src/correct_results/variables/variable5/images/basketball.svg +18 -0
  884. pystage-0.1.1/tests/src/correct_results/variables/variable5/images/donut.svg +1 -0
  885. pystage-0.1.1/tests/src/correct_results/variables/variable5/images/dragon_a.svg +1 -0
  886. pystage-0.1.1/tests/src/correct_results/variables/variable5/images/dragon_b.svg +171 -0
  887. pystage-0.1.1/tests/src/correct_results/variables/variable5/images/dragon_c.svg +1 -0
  888. pystage-0.1.1/tests/src/correct_results/variables/variable5/images/jungle.png +0 -0
  889. pystage-0.1.1/tests/src/correct_results/variables/variable5/project.json +780 -0
  890. pystage-0.1.1/tests/src/correct_results/variables/variable5/project_intermediate.json +504 -0
  891. pystage-0.1.1/tests/src/correct_results/variables/variable5/sounds/basketball_bounce.wav +0 -0
  892. pystage-0.1.1/tests/src/correct_results/variables/variable5/sounds/bite.wav +0 -0
  893. pystage-0.1.1/tests/src/correct_results/variables/variable5/sounds/chomp.wav +0 -0
  894. pystage-0.1.1/tests/src/correct_results/variables/variable5/sounds/magic_spell.wav +0 -0
  895. pystage-0.1.1/tests/src/correct_results/variables/variable5/sounds/pop.wav +0 -0
  896. pystage-0.1.1/tests/src/correct_results/variables/variable5/variable5.py +79 -0
  897. pystage-0.1.1/tests/src/correct_results/variables/variable6/images/backdrop1.svg +3 -0
  898. pystage-0.1.1/tests/src/correct_results/variables/variable6/images/building_a.svg +28 -0
  899. pystage-0.1.1/tests/src/correct_results/variables/variable6/images/building_b.svg +34 -0
  900. pystage-0.1.1/tests/src/correct_results/variables/variable6/images/building_c.svg +17 -0
  901. pystage-0.1.1/tests/src/correct_results/variables/variable6/images/building_d.svg +191 -0
  902. pystage-0.1.1/tests/src/correct_results/variables/variable6/images/building_e.svg +12 -0
  903. pystage-0.1.1/tests/src/correct_results/variables/variable6/images/building_f.svg +59 -0
  904. pystage-0.1.1/tests/src/correct_results/variables/variable6/images/building_g.svg +299 -0
  905. pystage-0.1.1/tests/src/correct_results/variables/variable6/images/building_h.svg +113 -0
  906. pystage-0.1.1/tests/src/correct_results/variables/variable6/images/building_i.svg +44 -0
  907. pystage-0.1.1/tests/src/correct_results/variables/variable6/images/building_j.svg +22 -0
  908. pystage-0.1.1/tests/src/correct_results/variables/variable6/images/costume1.svg +42 -0
  909. pystage-0.1.1/tests/src/correct_results/variables/variable6/images/costume2.svg +42 -0
  910. pystage-0.1.1/tests/src/correct_results/variables/variable6/project.json +452 -0
  911. pystage-0.1.1/tests/src/correct_results/variables/variable6/project_intermediate.json +340 -0
  912. pystage-0.1.1/tests/src/correct_results/variables/variable6/sounds/meow.wav +0 -0
  913. pystage-0.1.1/tests/src/correct_results/variables/variable6/sounds/pop.wav +0 -0
  914. pystage-0.1.1/tests/src/correct_results/variables/variable6/variable6.py +50 -0
  915. pystage-0.1.1/tests/src/correct_results/variables/variables1/images/backdrop1.svg +3 -0
  916. pystage-0.1.1/tests/src/correct_results/variables/variables1/images/costume1.svg +42 -0
  917. pystage-0.1.1/tests/src/correct_results/variables/variables1/images/costume2.svg +42 -0
  918. pystage-0.1.1/tests/src/correct_results/variables/variables1/project.json +262 -0
  919. pystage-0.1.1/tests/src/correct_results/variables/variables1/project_intermediate.json +169 -0
  920. pystage-0.1.1/tests/src/correct_results/variables/variables1/sounds/meow.wav +0 -0
  921. pystage-0.1.1/tests/src/correct_results/variables/variables1/sounds/pop.wav +0 -0
  922. pystage-0.1.1/tests/src/correct_results/variables/variables1/variables1.py +29 -0
  923. pystage-0.1.1/tests/src/scratch_projects/block/block2.sb3 +0 -0
  924. pystage-0.1.1/tests/src/scratch_projects/block/blocks1.sb3 +0 -0
  925. pystage-0.1.1/tests/src/scratch_projects/block/blocks2.sb3 +0 -0
  926. pystage-0.1.1/tests/src/scratch_projects/block/blocks3.sb3 +0 -0
  927. pystage-0.1.1/tests/src/scratch_projects/block/blocks4.sb3 +0 -0
  928. pystage-0.1.1/tests/src/scratch_projects/cloning/block3.sb3 +0 -0
  929. pystage-0.1.1/tests/src/scratch_projects/cloning/cloning2.sb3 +0 -0
  930. pystage-0.1.1/tests/src/scratch_projects/cloning/cloning4.sb3 +0 -0
  931. pystage-0.1.1/tests/src/scratch_projects/cloning/control4.sb3 +0 -0
  932. pystage-0.1.1/tests/src/scratch_projects/cloning/testing_lists.sb3 +0 -0
  933. pystage-0.1.1/tests/src/scratch_projects/control/control1.sb3 +0 -0
  934. pystage-0.1.1/tests/src/scratch_projects/control/control3.sb3 +0 -0
  935. pystage-0.1.1/tests/src/scratch_projects/control/control4.sb3 +0 -0
  936. pystage-0.1.1/tests/src/scratch_projects/control/control5.sb3 +0 -0
  937. pystage-0.1.1/tests/src/scratch_projects/events/events1.sb3 +0 -0
  938. pystage-0.1.1/tests/src/scratch_projects/events/events3.sb3 +0 -0
  939. pystage-0.1.1/tests/src/scratch_projects/events/events4.sb3 +0 -0
  940. pystage-0.1.1/tests/src/scratch_projects/events/events5.sb3 +0 -0
  941. pystage-0.1.1/tests/src/scratch_projects/looks/control2.sb3 +0 -0
  942. pystage-0.1.1/tests/src/scratch_projects/looks/looks1.sb3 +0 -0
  943. pystage-0.1.1/tests/src/scratch_projects/looks/looks2.sb3 +0 -0
  944. pystage-0.1.1/tests/src/scratch_projects/looks/looks3.sb3 +0 -0
  945. pystage-0.1.1/tests/src/scratch_projects/looks/looks4.sb3 +0 -0
  946. pystage-0.1.1/tests/src/scratch_projects/messages/events6.sb3 +0 -0
  947. pystage-0.1.1/tests/src/scratch_projects/messages/username1.sb3 +0 -0
  948. list test.sb3 +0 -0
  949. pystage-0.1.1/tests/src/scratch_projects/motion/collision.sb3 +0 -0
  950. pystage-0.1.1/tests/src/scratch_projects/motion/motion1.sb3 +0 -0
  951. pystage-0.1.1/tests/src/scratch_projects/motion/motion2.sb3 +0 -0
  952. pystage-0.1.1/tests/src/scratch_projects/motion/motion3.sb3 +0 -0
  953. pystage-0.1.1/tests/src/scratch_projects/motion/motion5.sb3 +0 -0
  954. pystage-0.1.1/tests/src/scratch_projects/operators/operators1.sb3 +0 -0
  955. pystage-0.1.1/tests/src/scratch_projects/operators/operators2.sb3 +0 -0
  956. pystage-0.1.1/tests/src/scratch_projects/operators/operators3.sb3 +0 -0
  957. pystage-0.1.1/tests/src/scratch_projects/operators/operators5.sb3 +0 -0
  958. pystage-0.1.1/tests/src/scratch_projects/sensing/draggable.sb3 +0 -0
  959. pystage-0.1.1/tests/src/scratch_projects/sensing/sensing1.sb3 +0 -0
  960. pystage-0.1.1/tests/src/scratch_projects/sensing/sensing2.sb3 +0 -0
  961. pystage-0.1.1/tests/src/scratch_projects/sensing/sensing3.sb3 +0 -0
  962. pystage-0.1.1/tests/src/scratch_projects/sensing/sensing_dayssince2000.sb3 +0 -0
  963. pystage-0.1.1/tests/src/scratch_projects/sensing/spriteClicked.sb3 +0 -0
  964. pystage-0.1.1/tests/src/scratch_projects/sensing/time_sensing_functions.sb3 +0 -0
  965. pystage-0.1.1/tests/src/scratch_projects/sensing/touchingobject_pointer.sb3 +0 -0
  966. pystage-0.1.1/tests/src/scratch_projects/sounds/sound1.sb3 +0 -0
  967. pystage-0.1.1/tests/src/scratch_projects/sounds/sound2.sb3 +0 -0
  968. pystage-0.1.1/tests/src/scratch_projects/sounds/sound3.sb3 +0 -0
  969. pystage-0.1.1/tests/src/scratch_projects/sounds/sound5.sb3 +0 -0
  970. pystage-0.1.1/tests/src/scratch_projects/stage/looks5.sb3 +0 -0
  971. pystage-0.1.1/tests/src/scratch_projects/stage/stage1.sb3 +0 -0
  972. pystage-0.1.1/tests/src/scratch_projects/stage/stage2.sb3 +0 -0
  973. pystage-0.1.1/tests/src/scratch_projects/tests/backdropDraw.sb3 +0 -0
  974. pystage-0.1.1/tests/src/scratch_projects/tests/backdrop_switches.sb3 +0 -0
  975. pystage-0.1.1/tests/src/scratch_projects/tests/comment.sb3 +0 -0
  976. pystage-0.1.1/tests/src/scratch_projects/tests/comment2.sb3 +0 -0
  977. pystage-0.1.1/tests/src/scratch_projects/tests/events2.sb3 +0 -0
  978. pystage-0.1.1/tests/src/scratch_projects/tests/list.sb3 +0 -0
  979. pystage-0.1.1/tests/src/scratch_projects/tests/show var.sb3 +0 -0
  980. pystage-0.1.1/tests/src/scratch_projects/tests/sprite clicked.sb3 +0 -0
  981. pystage-0.1.1/tests/src/scratch_projects/tests/switchBackdrop.sb3 +0 -0
  982. pystage-0.1.1/tests/src/scratch_projects/tests/test.sb3 +0 -0
  983. pystage-0.1.1/tests/src/scratch_projects/tests/test2.sb3 +0 -0
  984. pystage-0.1.1/tests/src/scratch_projects/tests/timer.sb3 +0 -0
  985. pystage-0.1.1/tests/src/scratch_projects/tests//344/270/255/346/226/207/346/265/213/350/257/225.sb3 +0 -0
  986. pystage-0.1.1/tests/src/scratch_projects/variables/add_list_for_sprite_and_stage.sb3 +0 -0
  987. pystage-0.1.1/tests/src/scratch_projects/variables/add_to_list.sb3 +0 -0
  988. pystage-0.1.1/tests/src/scratch_projects/variables/add_to_variables.sb3 +0 -0
  989. pystage-0.1.1/tests/src/scratch_projects/variables/delete_all_of_list.sb3 +0 -0
  990. pystage-0.1.1/tests/src/scratch_projects/variables/delete_from_list.sb3 +0 -0
  991. pystage-0.1.1/tests/src/scratch_projects/variables/hide_and_show_list.sb3 +0 -0
  992. pystage-0.1.1/tests/src/scratch_projects/variables/insert_into_list.sb3 +0 -0
  993. pystage-0.1.1/tests/src/scratch_projects/variables/item_of_list.sb3 +0 -0
  994. pystage-0.1.1/tests/src/scratch_projects/variables/length_of_list.sb3 +0 -0
  995. pystage-0.1.1/tests/src/scratch_projects/variables/list_contains_item.sb3 +0 -0
  996. pystage-0.1.1/tests/src/scratch_projects/variables/list_in_stage.sb3 +0 -0
  997. pystage-0.1.1/tests/src/scratch_projects/variables/replace_item_in_list.sb3 +0 -0
  998. pystage-0.1.1/tests/src/scratch_projects/variables/show_item_number_in_list.sb3 +0 -0
  999. pystage-0.1.1/tests/src/scratch_projects/variables/testing_big_list.sb3 +0 -0
  1000. pystage-0.1.1/tests/src/scratch_projects/variables/variable3.sb3 +0 -0
  1001. pystage-0.1.1/tests/src/scratch_projects/variables/variable5.sb3 +0 -0
  1002. pystage-0.1.1/tests/src/scratch_projects/variables/variable6.sb3 +0 -0
  1003. pystage-0.1.1/tests/src/scratch_projects/variables/variables1.sb3 +0 -0
  1004. pystage-0.1.1/tests/tests/__init__.py +0 -0
  1005. pystage-0.1.1/tests/tests/test_convert.py +42 -0
  1006. pystage-0.1.1/tests/tests/test_operators.py +50 -0
  1007. pystage-0.1.1/tests/tests/test_var.py +138 -0
  1008. pystage-0.1.0.dev0/src/pystage/__init__.py +0 -7
  1009. pystage-0.1.0.dev0/src/pystage/core/_control.py +0 -54
  1010. pystage-0.1.0.dev0/src/pystage.egg-info/SOURCES.txt +0 -55
  1011. {pystage-0.1.0.dev0 → pystage-0.1.1}/LICENSE +0 -0
  1012. {pystage-0.1.0.dev0 → pystage-0.1.1}/pyproject.toml +0 -0
  1013. {pystage-0.1.0.dev0 → pystage-0.1.1}/src/pystage/convert/__init__.py +0 -0
  1014. {pystage-0.1.0.dev0 → pystage-0.1.1}/src/pystage/convert/code_writer.py +0 -0
  1015. {pystage-0.1.0.dev0 → pystage-0.1.1}/src/pystage/convert/sb3.py +0 -0
  1016. {pystage-0.1.0.dev0 → pystage-0.1.1}/src/pystage/core/__init__.py +0 -0
  1017. {pystage-0.1.0.dev0 → pystage-0.1.1}/src/pystage/core/_motion.py +0 -0
  1018. {pystage-0.1.0.dev0 → pystage-0.1.1}/src/pystage/core/_operators.py +0 -0
  1019. {pystage-0.1.0.dev0 → pystage-0.1.1}/src/pystage/core/_pen.py +0 -0
  1020. {pystage-0.1.0.dev0 → pystage-0.1.1}/src/pystage/core/_sound.py +0 -0
  1021. {pystage-0.1.0.dev0 → pystage-0.1.1}/src/pystage/core/_variables.py +0 -0
  1022. {pystage-0.1.0.dev0 → pystage-0.1.1}/src/pystage/core/constants.py +0 -0
  1023. {pystage-0.1.0.dev0 → pystage-0.1.1}/src/pystage/core/messages.py +0 -0
  1024. {pystage-0.1.0.dev0 → pystage-0.1.1}/src/pystage/core/monitors.py +0 -0
  1025. {pystage-0.1.0.dev0 → pystage-0.1.1}/src/pystage/de/__init__.py +0 -0
  1026. {pystage-0.1.0.dev0 → pystage-0.1.1}/src/pystage/en/__init__.py +0 -0
  1027. {pystage-0.1.0.dev0 → pystage-0.1.1}/src/pystage/fonts/roboto-bold.ttf +0 -0
  1028. {pystage-0.1.0.dev0 → pystage-0.1.1}/src/pystage/fonts/roboto-light.ttf +0 -0
  1029. {pystage-0.1.0.dev0 → pystage-0.1.1}/src/pystage/fonts/roboto-regular.ttf +0 -0
  1030. {pystage-0.1.0.dev0 → pystage-0.1.1}/src/pystage/images/grid.svg +0 -0
  1031. {pystage-0.1.0.dev0 → pystage-0.1.1}/src/pystage/images/pen.png +0 -0
  1032. {pystage-0.1.0.dev0 → pystage-0.1.1}/src/pystage/images/say.png +0 -0
  1033. {pystage-0.1.0.dev0 → pystage-0.1.1}/src/pystage/images/think.png +0 -0
  1034. {pystage-0.1.0.dev0 → pystage-0.1.1}/src/pystage/images/zombie_idle.png +0 -0
  1035. {pystage-0.1.0.dev0 → pystage-0.1.1}/src/pystage/l10n/__init__.py +0 -0
  1036. {pystage-0.1.0.dev0 → pystage-0.1.1}/src/pystage/l10n/__main__.py +0 -0
  1037. {pystage-0.1.0.dev0 → pystage-0.1.1}/src/pystage/l10n/api.py +0 -0
  1038. {pystage-0.1.0.dev0 → pystage-0.1.1}/src/pystage/l10n/translations.py +0 -0
  1039. {pystage-0.1.0.dev0 → pystage-0.1.1}/src/pystage/sounds/dancehead2.wav +0 -0
  1040. {pystage-0.1.0.dev0 → pystage-0.1.1}/src/pystage/sounds/guitar.wav +0 -0
  1041. {pystage-0.1.0.dev0 → pystage-0.1.1}/src/pystage/util.py +0 -0
  1042. {pystage-0.1.0.dev0 → pystage-0.1.1}/src/pystage.egg-info/dependency_links.txt +0 -0
  1043. {pystage-0.1.0.dev0 → pystage-0.1.1}/src/pystage.egg-info/top_level.txt +0 -0
@@ -0,0 +1,21 @@
1
+ dist/
2
+ build/
3
+ piptest/
4
+ .python-version
5
+ *.py[cod]
6
+ __pycache__/
7
+ *.egg-info
8
+ build.sh
9
+ .idea/
10
+ geckodriver.log
11
+ *.ipynb
12
+ .ipynb_checkpoints
13
+
14
+
15
+ # docs
16
+ /docs/source/_static
17
+ *.png
18
+ images/
19
+ sounds/
20
+
21
+ !tests/src/**
@@ -0,0 +1,20 @@
1
+ # .readthedocs.yaml
2
+ # Read the Docs configuration file
3
+ # See https://docs.readthedocs.io/en/stable/config-file/v2.html for details
4
+
5
+ # Required
6
+ version: 2
7
+
8
+ # Build documentation in the docs/ directory with Sphinx
9
+ sphinx:
10
+ configuration: docs/source/conf.py
11
+
12
+ # Optionally build your docs in additional formats such as PDF
13
+ # formats:
14
+ # - pdf
15
+
16
+ # Optionally set the version of Python and requirements required to build your docs
17
+ python:
18
+ # version: 3.7
19
+ install:
20
+ - requirements: docs/requirements.txt
@@ -0,0 +1,26 @@
1
+ # Contributing to PyStage
2
+
3
+
4
+ ## Making a Pull Request
5
+
6
+ - You can read here about how to usually [contribute to Open Source Projects](https://docs.github.com/en/get-started/quickstart/contributing-to-projects)
7
+ - We follow the [GitHub Flow](https://docs.github.com/en/get-started/quickstart/github-flow)
8
+
9
+ ### Outline of the process
10
+ - Make sure you have checked out the development branch and that you are on the most recent commit (do a `git pull` first).
11
+ - Then create a branch for your new feature or bug fix. If you work on several features, create a branch for each feature, all branching from development.
12
+ - Name your feature branch as meaningful as possible.
13
+ - While you work on your feature (until it finally gets merged into the official development branch), always keep your [feature branch in sync with the development branch](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/keeping-your-pull-request-in-sync-with-the-base-branch)
14
+
15
+ ### How to get your own working copy
16
+ - Fork the pystage repository to your own account
17
+ - Clone a working copy from your fork, as usual
18
+ - Add pystage as additional remote, usually called upstream: `git remote add upstream https://github.com/pystage/pystage.git`
19
+ - Switch to the development branch: `git checkout development`
20
+ - Create your new feature branch: `git checkout -b my-new-feature`
21
+ - Do your work...
22
+ - Push the feature branch to your forked repository
23
+ - Create a pull request via the GitHub website.
24
+ - If the development branch changes in upstream, fetch all changes from upstream and merge them into your feature branch:
25
+ - `git fetch upstream`
26
+ - `git merge upstream/development`
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pystage
3
- Version: 0.1.0.dev0
3
+ Version: 0.1.1
4
4
  Summary: Scratch-like Python programming
5
5
  Home-page: https://github.com/pystage/pystage
6
6
  Author: Kai Eckert
@@ -15,7 +15,7 @@ Description-Content-Type: text/markdown
15
15
  License-File: LICENSE
16
16
  Requires-Dist: pygame
17
17
  Requires-Dist: jinja2
18
- Requires-Dist: svglib
18
+ Requires-Dist: setuptools
19
19
 
20
20
  # PyStage
21
21
 
@@ -139,6 +139,13 @@ Please note this is a pre alpha version. Not all things may work as expected. If
139
139
  ---
140
140
 
141
141
  # Import your Scratch projects
142
+
143
+ ## Use our Web converter
144
+ 1. Publish your Scratch project **or** download your Scratch project as .sb3 file.
145
+ 2. Go to https://convert.pystage.org and convert your project.
146
+ 3. Download the resulting zip file, it contains your new Python project ready to run.
147
+
148
+ ## Convert on your computer
142
149
  Converting a Scratch project to Python code:
143
150
  1. Export your Scratch project on the Scratch page. You will get an .sb3 file.
144
151
  2. Use our command line converter. Yes, it's unhandy, we will work on it to make things easier.
@@ -120,6 +120,13 @@ Please note this is a pre alpha version. Not all things may work as expected. If
120
120
  ---
121
121
 
122
122
  # Import your Scratch projects
123
+
124
+ ## Use our Web converter
125
+ 1. Publish your Scratch project **or** download your Scratch project as .sb3 file.
126
+ 2. Go to https://convert.pystage.org and convert your project.
127
+ 3. Download the resulting zip file, it contains your new Python project ready to run.
128
+
129
+ ## Convert on your computer
123
130
  Converting a Scratch project to Python code:
124
131
  1. Export your Scratch project on the Scratch page. You will get an .sb3 file.
125
132
  2. Use our command line converter. Yes, it's unhandy, we will work on it to make things easier.
@@ -0,0 +1,3 @@
1
+ svg/
2
+ icons/
3
+ allblocks.zip
@@ -0,0 +1,7 @@
1
+ #!/bin/bash
2
+ # Crop all SVGs to their actual size
3
+ for i in $(find svg -name \*.svg)
4
+ do
5
+ echo $i
6
+ inkscape --export-area-drawing $i -o $i > /dev/null 2>&1
7
+ done
@@ -0,0 +1,250 @@
1
+ ---
2
+ jupyter:
3
+ jupytext:
4
+ formats: md,ipynb
5
+ text_representation:
6
+ extension: .md
7
+ format_name: markdown
8
+ format_version: '1.2'
9
+ jupytext_version: 1.7.1
10
+ kernelspec:
11
+ display_name: Python 3
12
+ language: python
13
+ name: python3
14
+ ---
15
+
16
+ ```python
17
+ from selenium import webdriver
18
+ from selenium.webdriver.common.keys import Keys
19
+ from selenium.webdriver.firefox.options import Options
20
+ from selenium.webdriver.support.ui import Select
21
+ from time import sleep
22
+ import requests
23
+ import os
24
+ import re
25
+ from IPython.display import SVG, display
26
+ import xml.etree.ElementTree as ET
27
+ import copy
28
+ from pathlib import Path
29
+ import json
30
+ import time
31
+ import base64
32
+
33
+ not_letters = re.compile(r"[^a-zA-Z0-9]")
34
+ namespaces = {"svg": "http://www.w3.org/2000/svg", "xlink": "http://www.w3.org/1999/xlink" }
35
+ # Scratch icons:
36
+ icons = ["repeat.svg", "dropdown-arrow.svg", "rotate-left.svg", "rotate-right.svg", "green-flag.svg"]
37
+
38
+ ```
39
+
40
+ ```python
41
+ def get_scratch_icons():
42
+ for i in icons:
43
+ data = requests.get(f"https://scratch.mit.edu/static/blocks-media/{i}").text
44
+ with open(f"icons/{i}", "w", encoding="utf-8") as f:
45
+ f.write(data)
46
+ ```
47
+
48
+ ```python
49
+ def start_selenium():
50
+ options = Options()
51
+ #options.add_argument('--headless')
52
+ # use to set language via browser
53
+ profile = webdriver.FirefoxProfile()
54
+ #profile.set_preference('intl.accept_languages', "de")
55
+ driver = webdriver.Firefox(options=options, firefox_profile=profile)
56
+ driver.set_window_size(1024, 768)
57
+ driver.get("https://scratch.mit.edu/projects/editor/")
58
+ time.sleep(3)
59
+ return driver
60
+
61
+ ```
62
+
63
+ ```python
64
+ def switch_language(driver: webdriver.Firefox, language: str):
65
+ select : Select = Select(driver.find_element_by_css_selector(".language-selector_language-select_8Vfnm"))
66
+ select.select_by_value(language)
67
+ driver.language = language
68
+ time.sleep(1)
69
+ ```
70
+
71
+ ```python
72
+ def activate_extension(driver: webdriver.Firefox, name : str):
73
+ language = None
74
+ if hasattr(driver, "language"):
75
+ language = driver.language
76
+ switch_language(driver, "en")
77
+ button = driver.find_element_by_class_name("gui_extension-button_2T7PA")
78
+ button.click()
79
+ time.sleep(1)
80
+ ext = driver.find_element_by_xpath(f'//span[text()="{name.capitalize()}"]')
81
+ ext.click()
82
+ time.sleep(1)
83
+ if language:
84
+ switch_language(driver, language)
85
+ ```
86
+
87
+ ```python
88
+ def scrape_blocks(driver, language="en"):
89
+ #profile.set_preference('intl.accept_languages', language)
90
+ switch_language(driver, language)
91
+ box = driver.find_element_by_class_name("blocklyFlyout")
92
+ svg = box.get_attribute("outerHTML")
93
+ return svg
94
+
95
+ ```
96
+
97
+ ```python
98
+ def fix_svg_and_get_opcodes(svg):
99
+ # adjust path to icons
100
+ svg = svg.replace("/static/blocks-media/", "icons/")
101
+ # create a full xml document
102
+ entities = '<!ENTITY quot "&#34;"> <!ENTITY amp "&#38;"> <!ENTITY apos "&#39;"> <!ENTITY lt "&#60;"> <!ENTITY gt "&#62;"> <!ENTITY nbsp "&#160;"> <!ENTITY iexcl "&#161;"> <!ENTITY cent "&#162;"> <!ENTITY pound "&#163;"> <!ENTITY curren "&#164;"> <!ENTITY yen "&#165;"> <!ENTITY brvbar "&#166;"> <!ENTITY sect "&#167;"> <!ENTITY uml "&#168;"> <!ENTITY copy "&#169;"> <!ENTITY ordf "&#170;"> <!ENTITY laquo "&#171;"> <!ENTITY not "&#172;"> <!ENTITY shy "&#173;"> <!ENTITY reg "&#174;"> <!ENTITY macr "&#175;"> <!ENTITY deg "&#176;"> <!ENTITY plusmn "&#177;"> <!ENTITY sup2 "&#178;"> <!ENTITY sup3 "&#179;"> <!ENTITY acute "&#180;"> <!ENTITY micro "&#181;"> <!ENTITY para "&#182;"> <!ENTITY middot "&#183;"> <!ENTITY cedil "&#184;"> <!ENTITY sup1 "&#185;"> <!ENTITY ordm "&#186;"> <!ENTITY raquo "&#187;"> <!ENTITY frac14 "&#188;"> <!ENTITY frac12 "&#189;"> <!ENTITY frac34 "&#190;"> <!ENTITY iquest "&#191;"> <!ENTITY Agrave "&#192;"> <!ENTITY Aacute "&#193;"> <!ENTITY Acirc "&#194;"> <!ENTITY Atilde "&#195;"> <!ENTITY Auml "&#196;"> <!ENTITY Aring "&#197;"> <!ENTITY AElig "&#198;"> <!ENTITY Ccedil "&#199;"> <!ENTITY Egrave "&#200;"> <!ENTITY Eacute "&#201;"> <!ENTITY Ecirc "&#202;"> <!ENTITY Euml "&#203;"> <!ENTITY Igrave "&#204;"> <!ENTITY Iacute "&#205;"> <!ENTITY Icirc "&#206;"> <!ENTITY Iuml "&#207;"> <!ENTITY ETH "&#208;"> <!ENTITY Ntilde "&#209;"> <!ENTITY Ograve "&#210;"> <!ENTITY Oacute "&#211;"> <!ENTITY Ocirc "&#212;"> <!ENTITY Otilde "&#213;"> <!ENTITY Ouml "&#214;"> <!ENTITY times "&#215;"> <!ENTITY Oslash "&#216;"> <!ENTITY Ugrave "&#217;"> <!ENTITY Uacute "&#218;"> <!ENTITY Ucirc "&#219;"> <!ENTITY Uuml "&#220;"> <!ENTITY Yacute "&#221;"> <!ENTITY THORN "&#222;"> <!ENTITY szlig "&#223;"> <!ENTITY agrave "&#224;"> <!ENTITY aacute "&#225;"> <!ENTITY acirc "&#226;"> <!ENTITY atilde "&#227;"> <!ENTITY auml "&#228;"> <!ENTITY aring "&#229;"> <!ENTITY aelig "&#230;"> <!ENTITY ccedil "&#231;"> <!ENTITY egrave "&#232;"> <!ENTITY eacute "&#233;"> <!ENTITY ecirc "&#234;"> <!ENTITY euml "&#235;"> <!ENTITY igrave "&#236;"> <!ENTITY iacute "&#237;"> <!ENTITY icirc "&#238;"> <!ENTITY iuml "&#239;"> <!ENTITY eth "&#240;"> <!ENTITY ntilde "&#241;"> <!ENTITY ograve "&#242;"> <!ENTITY oacute "&#243;"> <!ENTITY ocirc "&#244;"> <!ENTITY otilde "&#245;"> <!ENTITY ouml "&#246;"> <!ENTITY divide "&#247;"> <!ENTITY oslash "&#248;"> <!ENTITY ugrave "&#249;"> <!ENTITY uacute "&#250;"> <!ENTITY ucirc "&#251;"> <!ENTITY uuml "&#252;"> <!ENTITY yacute "&#253;"> <!ENTITY thorn "&#254;"> <!ENTITY yuml "&#255;"> <!ENTITY OElig "&#338;"> <!ENTITY oelig "&#339;"> <!ENTITY Scaron "&#352;"> <!ENTITY scaron "&#353;"> <!ENTITY Yuml "&#376;"> <!ENTITY fnof "&#402;"> <!ENTITY circ "&#710;"> <!ENTITY tilde "&#732;"> <!ENTITY Alpha "&#913;"> <!ENTITY Beta "&#914;"> <!ENTITY Gamma "&#915;"> <!ENTITY Delta "&#916;"> <!ENTITY Epsilon "&#917;"> <!ENTITY Zeta "&#918;"> <!ENTITY Eta "&#919;"> <!ENTITY Theta "&#920;"> <!ENTITY Iota "&#921;"> <!ENTITY Kappa "&#922;"> <!ENTITY Lambda "&#923;"> <!ENTITY Mu "&#924;"> <!ENTITY Nu "&#925;"> <!ENTITY Xi "&#926;"> <!ENTITY Omicron "&#927;"> <!ENTITY Pi "&#928;"> <!ENTITY Rho "&#929;"> <!ENTITY Sigma "&#931;"> <!ENTITY Tau "&#932;"> <!ENTITY Upsilon "&#933;"> <!ENTITY Phi "&#934;"> <!ENTITY Chi "&#935;"> <!ENTITY Psi "&#936;"> <!ENTITY Omega "&#937;"> <!ENTITY alpha "&#945;"> <!ENTITY beta "&#946;"> <!ENTITY gamma "&#947;"> <!ENTITY delta "&#948;"> <!ENTITY epsilon "&#949;"> <!ENTITY zeta "&#950;"> <!ENTITY eta "&#951;"> <!ENTITY theta "&#952;"> <!ENTITY iota "&#953;"> <!ENTITY kappa "&#954;"> <!ENTITY lambda "&#955;"> <!ENTITY mu "&#956;"> <!ENTITY nu "&#957;"> <!ENTITY xi "&#958;"> <!ENTITY omicron "&#959;"> <!ENTITY pi "&#960;"> <!ENTITY rho "&#961;"> <!ENTITY sigmaf "&#962;"> <!ENTITY sigma "&#963;"> <!ENTITY tau "&#964;"> <!ENTITY upsilon "&#965;"> <!ENTITY phi "&#966;"> <!ENTITY chi "&#967;"> <!ENTITY psi "&#968;"> <!ENTITY omega "&#969;"> <!ENTITY thetasym "&#977;"> <!ENTITY upsih "&#978;"> <!ENTITY piv "&#982;"> <!ENTITY ensp "&#8194;"> <!ENTITY emsp "&#8195;"> <!ENTITY thinsp "&#8201;"> <!ENTITY zwnj "&#8204;"> <!ENTITY zwj "&#8205;"> <!ENTITY lrm "&#8206;"> <!ENTITY rlm "&#8207;"> <!ENTITY ndash "&#8211;"> <!ENTITY mdash "&#8212;"> <!ENTITY lsquo "&#8216;"> <!ENTITY rsquo "&#8217;"> <!ENTITY sbquo "&#8218;"> <!ENTITY ldquo "&#8220;"> <!ENTITY rdquo "&#8221;"> <!ENTITY bdquo "&#8222;"> <!ENTITY dagger "&#8224;"> <!ENTITY Dagger "&#8225;"> <!ENTITY bull "&#8226;"> <!ENTITY hellip "&#8230;"> <!ENTITY permil "&#8240;"> <!ENTITY prime "&#8242;"> <!ENTITY Prime "&#8243;"> <!ENTITY lsaquo "&#8249;"> <!ENTITY rsaquo "&#8250;"> <!ENTITY oline "&#8254;"> <!ENTITY frasl "&#8260;"> <!ENTITY euro "&#8364;"> <!ENTITY image "&#8465;"> <!ENTITY weierp "&#8472;"> <!ENTITY real "&#8476;"> <!ENTITY trade "&#8482;"> <!ENTITY alefsym "&#8501;"> <!ENTITY larr "&#8592;"> <!ENTITY uarr "&#8593;"> <!ENTITY rarr "&#8594;"> <!ENTITY darr "&#8595;"> <!ENTITY harr "&#8596;"> <!ENTITY crarr "&#8629;"> <!ENTITY lArr "&#8656;"> <!ENTITY uArr "&#8657;"> <!ENTITY rArr "&#8658;"> <!ENTITY dArr "&#8659;"> <!ENTITY hArr "&#8660;"> <!ENTITY forall "&#8704;"> <!ENTITY part "&#8706;"> <!ENTITY exist "&#8707;"> <!ENTITY empty "&#8709;"> <!ENTITY nabla "&#8711;"> <!ENTITY isin "&#8712;"> <!ENTITY notin "&#8713;"> <!ENTITY ni "&#8715;"> <!ENTITY prod "&#8719;"> <!ENTITY sum "&#8721;"> <!ENTITY minus "&#8722;"> <!ENTITY lowast "&#8727;"> <!ENTITY radic "&#8730;"> <!ENTITY prop "&#8733;"> <!ENTITY infin "&#8734;"> <!ENTITY ang "&#8736;"> <!ENTITY and "&#8743;"> <!ENTITY or "&#8744;"> <!ENTITY cap "&#8745;"> <!ENTITY cup "&#8746;"> <!ENTITY int "&#8747;"> <!ENTITY there4 "&#8756;"> <!ENTITY sim "&#8764;"> <!ENTITY cong "&#8773;"> <!ENTITY asymp "&#8776;"> <!ENTITY ne "&#8800;"> <!ENTITY equiv "&#8801;"> <!ENTITY le "&#8804;"> <!ENTITY ge "&#8805;"> <!ENTITY sub "&#8834;"> <!ENTITY sup "&#8835;"> <!ENTITY nsub "&#8836;"> <!ENTITY sube "&#8838;"> <!ENTITY supe "&#8839;"> <!ENTITY oplus "&#8853;"> <!ENTITY otimes "&#8855;"> <!ENTITY perp "&#8869;"> <!ENTITY sdot "&#8901;"> <!ENTITY lceil "&#8968;"> <!ENTITY rceil "&#8969;"> <!ENTITY lfloor "&#8970;"> <!ENTITY rfloor "&#8971;"> <!ENTITY lang "&#9001;"> <!ENTITY rang "&#9002;"> <!ENTITY loz "&#9674;"> <!ENTITY spades "&#9824;"> <!ENTITY clubs "&#9827;"> <!ENTITY hearts "&#9829;"> <!ENTITY diams "&#9830;">'
103
+ doctype = '<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [ {} ]>'.format(entities)
104
+ xml = '<?xml version="1.0" encoding="UTF-8" standalone="no"?>'
105
+ doc = xml + doctype + svg
106
+ # add namespaces
107
+ doc = doc.replace("<svg ", '<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" ')
108
+ # use ElementTree for further modifications
109
+ root = ET.fromstring(doc)
110
+ # Find workspace group, remove other top elements
111
+ workspace = root.find("svg:g", namespaces)
112
+ path = root.find("svg:path", namespaces)
113
+ defs = root.find("svg:defs", namespaces)
114
+ root.remove(path)
115
+ root.remove(defs)
116
+ # Insert the CSS used in Scratch
117
+ root.insert(0, ET.fromstring('''<style xmlns="http://www.w3.org/2000/svg">
118
+ .blocklyPath {
119
+ stroke-width: 1px;
120
+ }
121
+ svg {
122
+ font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
123
+ }
124
+ .blocklyText {
125
+ fill: #fff;
126
+ font-family: "Helvetica Neue", Helvetica, sans-serif;
127
+ font-size: 12pt;
128
+ font-weight: 500;
129
+ }
130
+ .blocklyNonEditableText > text, .blocklyEditableText > text {
131
+ fill: #575E75;
132
+ }
133
+ .blocklyNonEditableText > text.blocklyDropdownText, .blocklyEditableText > text.blocklyDropdownText {
134
+ fill: #fff;
135
+ }
136
+ </style>
137
+ '''))
138
+ # Set some smallish dimensions (will be fixed outside this script later)
139
+ root.attrib["width"] = "400"
140
+ root.attrib["height"] = "80"
141
+ # Remove second child element of workspace (blocks are in first)
142
+ del workspace[1]
143
+ # Unset clip path
144
+ if "clip-path" in workspace.attrib:
145
+ del workspace.attrib["clip-path"]
146
+ # Move all blocks one level up under workspace
147
+ canvas = workspace[0]
148
+ for c in canvas:
149
+ workspace.append(c)
150
+ workspace.remove(canvas)
151
+ # Remove all elements that are no blocks and
152
+ # repair opcodes
153
+ opcodes = []
154
+ for c in workspace:
155
+ # Remove all transforms (they set the position of the blocks)
156
+ if "transform" in c.attrib:
157
+ del c.attrib["transform"]
158
+ # All blocks have a data-id with (almost) an opcode
159
+ if "data-id" in c.attrib:
160
+ # Fix sensing_of
161
+ if c.attrib["data-id"] == "of":
162
+ c.attrib["data-id"] = "sensing_of"
163
+ if "data-category" in c.attrib:
164
+ # we use the data category to fix some opcodes
165
+ # unfortunately, sounds and operators need to be renamed
166
+ if c.attrib["data-category"] == "sounds":
167
+ c.attrib["data-category"] = "sound"
168
+ if c.attrib["data-category"] == "operators":
169
+ c.attrib["data-category"] = "operator"
170
+ if c.attrib["data-category"] == "events":
171
+ c.attrib["data-category"] = "event"
172
+ # And for extensions they use translations... aaargh!
173
+ if c.attrib["data-id"].startswith("pen"):
174
+ c.attrib["data-category"] = "pen"
175
+ # some blocks have random id parts, we need to remove these
176
+ parts = c.attrib["data-id"].split("_")
177
+ for p in parts[::-1]:
178
+ if not_letters.search(p):
179
+ parts.remove(p)
180
+ if len(parts)==0:
181
+ continue
182
+ c.attrib["data-id"] = "_".join(parts)
183
+ # Finally, we can repair all blocks so that the id is the opcode
184
+ if c.attrib["data-id"].startswith("|"):
185
+ c.attrib["data-id"] = c.attrib["data-id"][c.attrib["data-id"].index("_") + 1:]
186
+ if not c.attrib["data-id"].startswith(c.attrib["data-category"]):
187
+ c.attrib["data-id"] = c.attrib["data-category"] + "_" + c.attrib["data-id"]
188
+ opcodes.append(c.attrib["data-id"])
189
+ opcodes.sort()
190
+ print(f"Found {len(opcodes)} blocks.")
191
+ return opcodes, root
192
+ ```
193
+
194
+ ```python
195
+ def save_blocks(opcodes, root, language):
196
+ Path(f"svg/{language}").mkdir(parents=True, exist_ok=True)
197
+ for opcode in opcodes:
198
+ # print(opcode)
199
+ # Create a copy for this block
200
+ root2 = copy.deepcopy(root)
201
+ # remove everything else
202
+ for c in root2[1][::-1]:
203
+ if not "data-id" in c.attrib or c.attrib["data-id"]!=opcode:
204
+ root2[1].remove(c)
205
+ # Include the icon svg as nested svg (otherwise it gets blurred in inkscape)
206
+ for imageparent in root2.findall('.//svg:image/..', namespaces):
207
+ image = imageparent.find('svg:image', namespaces)
208
+ index = list(imageparent).index(image)
209
+ filename = image.attrib["{http://www.w3.org/1999/xlink}href"]
210
+ # Extensions use data URIs...
211
+ innersvg = ""
212
+ if filename.startswith("data:image/svg+xml;base64,"):
213
+ innersvg = filename[len("data:image/svg+xml;base64"):]
214
+ innersvg = base64.decodebytes(innersvg.encode("utf-8")).decode("utf-8")
215
+ else:
216
+ with open(filename, "r", encoding="utf-8") as f:
217
+ innersvg = f.read()
218
+ innersvg = innersvg[innersvg.index("<svg"):]
219
+ newimage = ET.fromstring(f'''<g xmlns="http://www.w3.org/2000/svg">
220
+ {innersvg}
221
+ </g>
222
+ ''')
223
+ newimage[0].attrib["width"] = image.attrib["width"]
224
+ newimage[0].attrib["height"] = image.attrib["height"]
225
+ if "transform" in image.attrib:
226
+ newimage.attrib["transform"] = image.attrib["transform"]
227
+ imageparent.insert(index, newimage)
228
+ imageparent.remove(image)
229
+
230
+ # display(SVG(ET.tostring(root2)))
231
+ # Finally, write the SVG
232
+ with open(f"svg/{language}/{opcode}.svg", "wb") as f:
233
+ f.write(ET.tostring(root2))
234
+ ```
235
+
236
+ ```python
237
+ driver = start_selenium()
238
+ activate_extension(driver, "pen")
239
+ with open("langs.json", "r", encoding="utf-8") as f:
240
+ languages = json.load(f)
241
+ for lang in languages:
242
+ print(f"Language {lang}")
243
+ svg = scrape_blocks(driver, lang)
244
+ opcodes, root = fix_svg_and_get_opcodes(svg)
245
+ save_blocks(opcodes, root, lang)
246
+ ```
247
+
248
+ ```python
249
+
250
+ ```
@@ -0,0 +1,19 @@
1
+ #!/bin/bash
2
+ # Export pngs
3
+ # Density can be used for scaling, 96 DPI is default
4
+ if [ -z "$1" ]
5
+ then
6
+ density=96
7
+ else
8
+ density=$1
9
+ fi
10
+
11
+
12
+ for i in $(find svg -name \*.svg)
13
+ do
14
+ out=${i#svg}
15
+ out="png${density}${out%svg}png"
16
+ mkdir -p $(dirname "$out")
17
+ echo "$i -> $out"
18
+ inkscape $i -o $out -d $density > /dev/null 2>&1
19
+ done
@@ -0,0 +1,73 @@
1
+ {
2
+ "ab": "Аҧсшәа",
3
+ "af": "Afrikaans",
4
+ "ar": "العربية",
5
+ "am": "አማርኛ",
6
+ "az": "Azeri",
7
+ "id": "Bahasa Indonesia",
8
+ "be": "Беларуская",
9
+ "bg": "Български",
10
+ "ca": "Català",
11
+ "cs": "Česky",
12
+ "cy": "Cymraeg",
13
+ "da": "Dansk",
14
+ "de": "Deutsch",
15
+ "et": "Eesti",
16
+ "el": "Ελληνικά",
17
+ "en": "English",
18
+ "es": "Español (España)",
19
+ "es-419": "Español Latinoamericano",
20
+ "eu": "Euskara",
21
+ "fa": "فارسی",
22
+ "fr": "Français",
23
+ "ga": "Gaeilge",
24
+ "gd": "Gàidhlig",
25
+ "gl": "Galego",
26
+ "ko": "한국어",
27
+ "hy": "Հայերեն",
28
+ "he": "עִבְרִית",
29
+ "hr": "Hrvatski",
30
+ "xh": "isiXhosa",
31
+ "zu": "isiZulu",
32
+ "is": "Íslenska",
33
+ "it": "Italiano",
34
+ "ka": "ქართული ენა",
35
+ "kk": "қазақша",
36
+ "qu": "Kichwa",
37
+ "sw": "Kiswahili",
38
+ "ht": "Kreyòl ayisyen",
39
+ "ku": "Kurdî",
40
+ "ckb": "کوردیی ناوەندی",
41
+ "lv": "Latviešu",
42
+ "lt": "Lietuvių",
43
+ "hu": "Magyar",
44
+ "mi": "Māori",
45
+ "mn": "Монгол хэл",
46
+ "nl": "Nederlands",
47
+ "ja": "日本語",
48
+ "ja-Hira": "にほんご",
49
+ "nb": "Norsk Bokmål",
50
+ "nn": "Norsk Nynorsk",
51
+ "or": "ଓଡ଼ିଆ",
52
+ "uz": "Oʻzbekcha",
53
+ "th": "ไทย",
54
+ "km": "ភាសាខ្មែរ",
55
+ "pl": "Polski",
56
+ "pt": "Português",
57
+ "pt-br": "Português Brasileiro",
58
+ "rap": "Rapa Nui",
59
+ "ro": "Română",
60
+ "ru": "Русский",
61
+ "nso": "Sepedi",
62
+ "tn": "Setswana",
63
+ "sk": "Slovenčina",
64
+ "sl": "Slovenščina",
65
+ "sr": "Српски",
66
+ "fi": "Suomi",
67
+ "sv": "Svenska",
68
+ "vi": "Tiếng Việt",
69
+ "tr": "Türkçe",
70
+ "uk": "Українська",
71
+ "zh-cn": "简体中文",
72
+ "zh-tw": "繁體中文"
73
+ }
@@ -0,0 +1,20 @@
1
+ # Minimal makefile for Sphinx documentation
2
+ #
3
+
4
+ # You can set these variables from the command line, and also
5
+ # from the environment for the first two.
6
+ SPHINXOPTS ?=
7
+ SPHINXBUILD ?= sphinx-build
8
+ SOURCEDIR = source
9
+ BUILDDIR = build
10
+
11
+ # Put it first so that "make" without argument is like "make help".
12
+ help:
13
+ @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
14
+
15
+ .PHONY: help Makefile
16
+
17
+ # Catch-all target: route all unknown targets to Sphinx using the new
18
+ # "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
19
+ %: Makefile
20
+ @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
@@ -0,0 +1,29 @@
1
+ # PyStage Documentation
2
+
3
+ ## How to
4
+
5
+ This documentation is generated with Sphinx (install it with pip e.g.).
6
+
7
+ The ```source``` directory contains the raw files for the documentation. Out of these files we can build
8
+ the documentation in html, pdf etc.
9
+
10
+ 1. To generate the source files run from within this directory:
11
+
12
+ ```sphinx-apidoc -f -o source ../src/pystage/ -t source/_templates -E```
13
+ * ```-t```: The path to the templates directory (optional)
14
+ * ```-E```: Exclude submodule headings (optional)
15
+
16
+ 2. Afterwards generate the html docu by running:
17
+
18
+ ```make html```
19
+
20
+
21
+ ## Include images
22
+
23
+ Images can be included using restructured Text:
24
+
25
+ ```.. figure:: _static/image.png```
26
+
27
+ It is also possible to put the image directly in a function documentation. Therefore, put
28
+ the image directly in the docstring of the function. Make sure to have a blank line above and below
29
+ of the reST element. The path to the image must be relative to the place of the docstring.
@@ -0,0 +1,2 @@
1
+ sphinx-apidoc -f -o source ../src/pystage/
2
+ make clean && make html
@@ -0,0 +1,35 @@
1
+ @ECHO OFF
2
+
3
+ pushd %~dp0
4
+
5
+ REM Command file for Sphinx documentation
6
+
7
+ if "%SPHINXBUILD%" == "" (
8
+ set SPHINXBUILD=sphinx-build
9
+ )
10
+ set SOURCEDIR=source
11
+ set BUILDDIR=build
12
+
13
+ if "%1" == "" goto help
14
+
15
+ %SPHINXBUILD% >NUL 2>NUL
16
+ if errorlevel 9009 (
17
+ echo.
18
+ echo.The 'sphinx-build' command was not found. Make sure you have Sphinx
19
+ echo.installed, then set the SPHINXBUILD environment variable to point
20
+ echo.to the full path of the 'sphinx-build' executable. Alternatively you
21
+ echo.may add the Sphinx directory to PATH.
22
+ echo.
23
+ echo.If you don't have Sphinx installed, grab it from
24
+ echo.http://sphinx-doc.org/
25
+ exit /b 1
26
+ )
27
+
28
+ %SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O%
29
+ goto end
30
+
31
+ :help
32
+ %SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O%
33
+
34
+ :end
35
+ popd
Binary file
@@ -0,0 +1,6 @@
1
+ m2r2
2
+ myst_parser
3
+ pygame
4
+ svglib
5
+ reportlab
6
+ sphinx_panels
@@ -0,0 +1,8 @@
1
+ {%- if show_headings %}
2
+ {{- [basename, "module"] | join(' ') | e | heading }}
3
+
4
+ {% endif -%}
5
+ .. automodule:: {{ qualname }}
6
+ {%- for option in automodule_options %}
7
+ :{{ option }}:
8
+ {%- endfor %}
@@ -0,0 +1,51 @@
1
+ {%- macro automodule(modname, options) -%}
2
+ .. automodule:: {{ modname }}
3
+ {%- for option in options %}
4
+ :{{ option }}:
5
+ {%- endfor %}
6
+ {%- endmacro %}
7
+
8
+ {%- macro toctree(docnames) -%}
9
+ .. toctree::
10
+ :maxdepth: {{ maxdepth }}
11
+ {% for docname in docnames %}
12
+ {{ docname }}
13
+ {%- endfor %}
14
+ {%- endmacro %}
15
+
16
+ {%- if is_namespace %}
17
+ {{- [pkgname, "namespace"] | join(" ") | e | heading }}
18
+ {% else %}
19
+ {{- [pkgname] | join(" ") | e | heading }}
20
+ {% endif %}
21
+
22
+ {{ [".. _", pkgname, ":"] | join("") }}
23
+
24
+ {%- if modulefirst and not is_namespace %}
25
+ {{ automodule(pkgname, automodule_options) }}
26
+ {% endif %}
27
+
28
+ {%- if subpackages %}
29
+ Subpackages
30
+ -----------
31
+
32
+ {{ toctree(subpackages) }}
33
+ {% endif %}
34
+
35
+ {%- if submodules %}
36
+
37
+ {% if separatemodules %}
38
+ {{ toctree(submodules) }}
39
+ {% else %}
40
+ {%- for submodule in submodules %}
41
+ {% if show_headings %}
42
+ {{- [submodule] | join(" ") | e | heading(2) }}
43
+ {% endif %}
44
+ {{ automodule(submodule, automodule_options) }}
45
+ {% endfor %}
46
+ {%- endif %}
47
+ {%- endif %}
48
+
49
+ {%- if not modulefirst and not is_namespace %}
50
+
51
+ {% endif %}