rp 0.1.1386__tar.gz → 0.1.1388__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 (411) hide show
  1. {rp-0.1.1386 → rp-0.1.1388}/PKG-INFO +1 -1
  2. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/powerpoint/media_to_slides.py +45 -5
  3. {rp-0.1.1386 → rp-0.1.1388}/rp/r.py +108 -2
  4. rp-0.1.1388/rp/version.py +1 -0
  5. {rp-0.1.1386 → rp-0.1.1388}/rp.egg-info/PKG-INFO +1 -1
  6. rp-0.1.1388/version.py +1 -0
  7. rp-0.1.1386/rp/version.py +0 -1
  8. rp-0.1.1386/version.py +0 -1
  9. {rp-0.1.1386 → rp-0.1.1388}/.gitignore +0 -0
  10. {rp-0.1.1386 → rp-0.1.1388}/.idea/QuickPython.iml +0 -0
  11. {rp-0.1.1386 → rp-0.1.1388}/.idea/QuickPython.time +0 -0
  12. {rp-0.1.1386 → rp-0.1.1388}/.idea/encodings.xml +0 -0
  13. {rp-0.1.1386 → rp-0.1.1388}/.idea/inspectionProfiles/Project_Default.xml +0 -0
  14. {rp-0.1.1386 → rp-0.1.1388}/.idea/misc.xml +0 -0
  15. {rp-0.1.1386 → rp-0.1.1388}/.idea/modules.xml +0 -0
  16. {rp-0.1.1386 → rp-0.1.1388}/.idea/vcs.xml +0 -0
  17. {rp-0.1.1386 → rp-0.1.1388}/.idea/workspace.xml +0 -0
  18. {rp-0.1.1386 → rp-0.1.1388}/.publish.sh.un~ +0 -0
  19. {rp-0.1.1386 → rp-0.1.1388}/.setup.py.un~ +0 -0
  20. {rp-0.1.1386 → rp-0.1.1388}/.update_module_paths.py.un~ +0 -0
  21. {rp-0.1.1386 → rp-0.1.1388}/LICENSE.txt +0 -0
  22. {rp-0.1.1386 → rp-0.1.1388}/README +0 -0
  23. {rp-0.1.1386 → rp-0.1.1388}/Scrap +0 -0
  24. {rp-0.1.1386 → rp-0.1.1388}/aoisdasd +0 -0
  25. {rp-0.1.1386 → rp-0.1.1388}/increment_version.py +0 -0
  26. {rp-0.1.1386 → rp-0.1.1388}/oijio +0 -0
  27. {rp-0.1.1386 → rp-0.1.1388}/publish.sh +0 -0
  28. {rp-0.1.1386 → rp-0.1.1388}/pyqtconsoletest.py +0 -0
  29. {rp-0.1.1386 → rp-0.1.1388}/rp/__init__.py +0 -0
  30. {rp-0.1.1386 → rp-0.1.1388}/rp/__main__.py +0 -0
  31. {rp-0.1.1386 → rp-0.1.1388}/rp/documentation.py +0 -0
  32. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/Pyperclip.py +0 -0
  33. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/__init__.py +0 -0
  34. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/debug_comment.py +0 -0
  35. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/draw_code_minimap.py +0 -0
  36. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/graveyard.py +0 -0
  37. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/parso/__init__.py +0 -0
  38. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/parso/_compatibility.py +0 -0
  39. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/parso/cache.py +0 -0
  40. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/parso/file_io.py +0 -0
  41. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/parso/grammar.py +0 -0
  42. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/parso/normalizer.py +0 -0
  43. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/parso/parser.py +0 -0
  44. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/parso/pgen2/__init__.py +0 -0
  45. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/parso/pgen2/generator.py +0 -0
  46. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/parso/pgen2/grammar_parser.py +0 -0
  47. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/parso/python/__init__.py +0 -0
  48. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/parso/python/diff.py +0 -0
  49. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/parso/python/errors.py +0 -0
  50. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/parso/python/grammar26.txt +0 -0
  51. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/parso/python/grammar27.txt +0 -0
  52. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/parso/python/grammar310.txt +0 -0
  53. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/parso/python/grammar311.txt +0 -0
  54. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/parso/python/grammar312.txt +0 -0
  55. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/parso/python/grammar33.txt +0 -0
  56. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/parso/python/grammar34.txt +0 -0
  57. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/parso/python/grammar35.txt +0 -0
  58. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/parso/python/grammar36.txt +0 -0
  59. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/parso/python/grammar37.txt +0 -0
  60. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/parso/python/grammar38.txt +0 -0
  61. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/parso/python/grammar39.txt +0 -0
  62. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/parso/python/parser.py +0 -0
  63. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/parso/python/pep8.py +0 -0
  64. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/parso/python/prefix.py +0 -0
  65. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/parso/python/token.py +0 -0
  66. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/parso/python/tokenize.py +0 -0
  67. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/parso/python/tree.py +0 -0
  68. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/parso/tree.py +0 -0
  69. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/parso/utils.py +0 -0
  70. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/peepdis/__init__.py +0 -0
  71. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/peepdis/core.py +0 -0
  72. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/peepdis/datastructures.py +0 -0
  73. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/peepdis/legacy.py +0 -0
  74. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/peepdis/preferences.py +0 -0
  75. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/powerpoint/__init__.py +0 -0
  76. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/powerpoint/__main__.py +0 -0
  77. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/powerpoint/convert_pptx_videos_to_gifs.py +0 -0
  78. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/powerpoint/convert_tmux.py +0 -0
  79. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/powerpoint/google_slides_upload.py +0 -0
  80. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/powerpoint/pptx_utils.py +0 -0
  81. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/powerpoint_converter.py +0 -0
  82. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/profile_vim_plugins.py +0 -0
  83. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/pw_crypt.py +0 -0
  84. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/pyflann/__init__.py +0 -0
  85. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/pyflann/bindings/__init__.py +0 -0
  86. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/pyflann/bindings/flann_ctypes.py +0 -0
  87. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/pyflann/exceptions.py +0 -0
  88. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/pyflann/index.py +0 -0
  89. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/pyflann/io/__init__.py +0 -0
  90. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/pyflann/io/binary_dataset.py +0 -0
  91. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/pyflann/io/dat_dataset.py +0 -0
  92. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/pyflann/io/dataset.py +0 -0
  93. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/pyflann/io/hdf5_dataset.py +0 -0
  94. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/pyflann/io/npy_dataset.py +0 -0
  95. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/pyflann/util/__init__.py +0 -0
  96. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/pyflann/util/weave_tools.py +0 -0
  97. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/pyfx/__init__.py +0 -0
  98. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/pyfx/__version__.py +0 -0
  99. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/pyfx/app.py +0 -0
  100. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/pyfx/cli.py +0 -0
  101. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/pyfx/cli_utils.py +0 -0
  102. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/pyfx/config/__init__.py +0 -0
  103. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/pyfx/config/config.py +0 -0
  104. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/pyfx/config/config_error.py +0 -0
  105. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/pyfx/config/config_parser.py +0 -0
  106. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/pyfx/config/config_transformer.py +0 -0
  107. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/pyfx/config/validators/__init__.py +0 -0
  108. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/pyfx/config/validators/options.py +0 -0
  109. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/pyfx/logging.py +0 -0
  110. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/pyfx/model/__init__.py +0 -0
  111. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/pyfx/model/autocomplete/__init__.py +0 -0
  112. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/pyfx/model/autocomplete/autocomplete_listener.py +0 -0
  113. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/pyfx/model/common/__init__.py +0 -0
  114. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/pyfx/model/common/jsonpath/JSONPathLexer.py +0 -0
  115. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/pyfx/model/common/jsonpath/JSONPathListener.py +0 -0
  116. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/pyfx/model/common/jsonpath/JSONPathParser.py +0 -0
  117. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/pyfx/model/common/jsonpath/__init__.py +0 -0
  118. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/pyfx/model/io/__init__.py +0 -0
  119. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/pyfx/model/io/datasource.py +0 -0
  120. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/pyfx/model/model.py +0 -0
  121. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/pyfx/service/__init__.py +0 -0
  122. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/pyfx/service/client.py +0 -0
  123. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/pyfx/service/dispatcher.py +0 -0
  124. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/pyfx/view/__init__.py +0 -0
  125. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/pyfx/view/common/__init__.py +0 -0
  126. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/pyfx/view/common/popup.py +0 -0
  127. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/pyfx/view/common/selectable_text.py +0 -0
  128. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/pyfx/view/components/__init__.py +0 -0
  129. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/pyfx/view/components/autocomplete_popup/__init__.py +0 -0
  130. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/pyfx/view/components/autocomplete_popup/autocomplete_popup.py +0 -0
  131. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/pyfx/view/components/autocomplete_popup/autocomplete_popup_keymapper.py +0 -0
  132. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/pyfx/view/components/help_bar/__init__.py +0 -0
  133. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/pyfx/view/components/help_bar/help_bar.py +0 -0
  134. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/pyfx/view/components/help_page/__init__.py +0 -0
  135. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/pyfx/view/components/help_page/detailed_help_page.py +0 -0
  136. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/pyfx/view/components/json_browser/__init__.py +0 -0
  137. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/pyfx/view/components/json_browser/json_browser.py +0 -0
  138. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/pyfx/view/components/json_browser/json_browser_keymapper.py +0 -0
  139. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/pyfx/view/components/query_bar/__init__.py +0 -0
  140. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/pyfx/view/components/query_bar/query_bar.py +0 -0
  141. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/pyfx/view/components/query_bar/query_bar_keymapper.py +0 -0
  142. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/pyfx/view/json_lib/__init__.py +0 -0
  143. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/pyfx/view/json_lib/array/__init__.py +0 -0
  144. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/pyfx/view/json_lib/array/array_end_node.py +0 -0
  145. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/pyfx/view/json_lib/array/array_end_widget.py +0 -0
  146. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/pyfx/view/json_lib/array/array_node.py +0 -0
  147. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/pyfx/view/json_lib/array/array_start_widget.py +0 -0
  148. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/pyfx/view/json_lib/array/array_unexpanded_widget.py +0 -0
  149. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/pyfx/view/json_lib/json_composite_end_node.py +0 -0
  150. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/pyfx/view/json_lib/json_composite_node.py +0 -0
  151. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/pyfx/view/json_lib/json_listbox.py +0 -0
  152. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/pyfx/view/json_lib/json_listwalker.py +0 -0
  153. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/pyfx/view/json_lib/json_simple_node.py +0 -0
  154. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/pyfx/view/json_lib/json_widget.py +0 -0
  155. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/pyfx/view/json_lib/node_factory.py +0 -0
  156. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/pyfx/view/json_lib/object/__init__.py +0 -0
  157. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/pyfx/view/json_lib/object/object_end_node.py +0 -0
  158. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/pyfx/view/json_lib/object/object_end_widget.py +0 -0
  159. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/pyfx/view/json_lib/object/object_node.py +0 -0
  160. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/pyfx/view/json_lib/object/object_start_widget.py +0 -0
  161. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/pyfx/view/json_lib/object/object_unexpanded_widget.py +0 -0
  162. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/pyfx/view/json_lib/primitive/__init__.py +0 -0
  163. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/pyfx/view/json_lib/primitive/base.py +0 -0
  164. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/pyfx/view/json_lib/primitive/boolean.py +0 -0
  165. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/pyfx/view/json_lib/primitive/generic.py +0 -0
  166. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/pyfx/view/json_lib/primitive/integer.py +0 -0
  167. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/pyfx/view/json_lib/primitive/null.py +0 -0
  168. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/pyfx/view/json_lib/primitive/numeric.py +0 -0
  169. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/pyfx/view/json_lib/primitive/string.py +0 -0
  170. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/pyfx/view/json_lib/selector/__init__.py +0 -0
  171. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/pyfx/view/keymapper/__init__.py +0 -0
  172. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/pyfx/view/keymapper/abstract_component_keymapper.py +0 -0
  173. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/pyfx/view/keymapper/keymapper.py +0 -0
  174. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/pyfx/view/keymapper/keymapper_config.py +0 -0
  175. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/pyfx/view/keymapper/keymapper_config_parser.py +0 -0
  176. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/pyfx/view/theme/__init__.py +0 -0
  177. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/pyfx/view/theme/theme.py +0 -0
  178. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/pyfx/view/theme/theme_config.py +0 -0
  179. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/pyfx/view/theme/theme_config_parser.py +0 -0
  180. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/pyfx/view/view_config.py +0 -0
  181. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/pyfx/view/view_frame.py +0 -0
  182. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/pyfx/view/view_manager.py +0 -0
  183. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/pynput_recorder.py +0 -0
  184. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/pypi_inspection.py +0 -0
  185. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/pytorch_module_explorer.py +0 -0
  186. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/refactor/string_format/__init__.py +0 -0
  187. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/refactor/string_format/format_to_fstring_converter.py +0 -0
  188. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/refactor/string_format/fstring_converter.py +0 -0
  189. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/refactor/string_format/test_format_to_fstring_converter.py +0 -0
  190. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/refactor/string_format/test_fstring_converter.py +0 -0
  191. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/rp_black_macchiato.py +0 -0
  192. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/stamp_tensor.py +0 -0
  193. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/stdin_python_highlighter.py +0 -0
  194. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/tetris/__init__.py +0 -0
  195. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/tetris/__main__.py +0 -0
  196. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/tetris/graphics/graphics/__init__.py +0 -0
  197. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/tetris/graphics/graphics/canvas.py +0 -0
  198. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/tetris/graphics/graphics/colors.py +0 -0
  199. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/tetris/graphics/graphics/console.py +0 -0
  200. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/tetris/graphics/graphics/funcs.py +0 -0
  201. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/tetris/graphics/graphics/nbinput.py +0 -0
  202. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/tetris/graphics/graphics/shapes.py +0 -0
  203. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/tetris/graphics/graphics/sprite.py +0 -0
  204. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/tetris/letters.py +0 -0
  205. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/tetris/tetrisShapes.py +0 -0
  206. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/timg/__init__.py +0 -0
  207. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/timg/__main__.py +0 -0
  208. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/timg/argparser.py +0 -0
  209. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/timg/meta.py +0 -0
  210. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/timg/methods/__init__.py +0 -0
  211. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/timg/methods/ansi.py +0 -0
  212. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/timg/methods/ansi_methods.py +0 -0
  213. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/timg/methods/ascii.py +0 -0
  214. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/timg/methods/method.py +0 -0
  215. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/timg/methods/sixel.py +0 -0
  216. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/timg/renderer.py +0 -0
  217. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/torch_hooks.py +0 -0
  218. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/torch_tools.py +0 -0
  219. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/tracetraptest.py +0 -0
  220. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/tweenline.py +0 -0
  221. {rp-0.1.1386 → rp-0.1.1388}/rp/libs/webeval_dataset.py +0 -0
  222. {rp-0.1.1386 → rp-0.1.1388}/rp/list_of_modules.py +0 -0
  223. {rp-0.1.1386 → rp-0.1.1388}/rp/misc/Todo +0 -0
  224. {rp-0.1.1386 → rp-0.1.1388}/rp/misc/__init__.py +0 -0
  225. {rp-0.1.1386 → rp-0.1.1388}/rp/misc/blm.py +0 -0
  226. {rp-0.1.1386 → rp-0.1.1388}/rp/misc/chainsaw.py +0 -0
  227. {rp-0.1.1386 → rp-0.1.1388}/rp/misc/claude_bash.sh +0 -0
  228. {rp-0.1.1386 → rp-0.1.1388}/rp/misc/claude_panel.py +0 -0
  229. {rp-0.1.1386 → rp-0.1.1388}/rp/misc/death_of_the_mind.py +0 -0
  230. {rp-0.1.1386 → rp-0.1.1388}/rp/misc/flappy.py +0 -0
  231. {rp-0.1.1386 → rp-0.1.1388}/rp/misc/mario.py +0 -0
  232. {rp-0.1.1386 → rp-0.1.1388}/rp/misc/matrix.py +0 -0
  233. {rp-0.1.1386 → rp-0.1.1388}/rp/misc/mpi_untitled.py +0 -0
  234. {rp-0.1.1386 → rp-0.1.1388}/rp/misc/py2048.py +0 -0
  235. {rp-0.1.1386 → rp-0.1.1388}/rp/misc/pychess.py +0 -0
  236. {rp-0.1.1386 → rp-0.1.1388}/rp/misc/rp_logo.svg +0 -0
  237. {rp-0.1.1386 → rp-0.1.1388}/rp/misc/rp_mpi.py +0 -0
  238. {rp-0.1.1386 → rp-0.1.1388}/rp/misc/ryan_zshrc.py +0 -0
  239. {rp-0.1.1386 → rp-0.1.1388}/rp/misc/shotgun.py +0 -0
  240. {rp-0.1.1386 → rp-0.1.1388}/rp/misc/skia_trail_interactive_paint_demo.py +0 -0
  241. {rp-0.1.1386 → rp-0.1.1388}/rp/misc/snake.py +0 -0
  242. {rp-0.1.1386 → rp-0.1.1388}/rp/misc/sudoku.py +0 -0
  243. {rp-0.1.1386 → rp-0.1.1388}/rp/misc/tetris.py +0 -0
  244. {rp-0.1.1386 → rp-0.1.1388}/rp/misc/trans.py +0 -0
  245. {rp-0.1.1386 → rp-0.1.1388}/rp/prompt_toolkit/__init__.py +0 -0
  246. {rp-0.1.1386 → rp-0.1.1388}/rp/prompt_toolkit/application.py +0 -0
  247. {rp-0.1.1386 → rp-0.1.1388}/rp/prompt_toolkit/auto_suggest.py +0 -0
  248. {rp-0.1.1386 → rp-0.1.1388}/rp/prompt_toolkit/buffer.py +0 -0
  249. {rp-0.1.1386 → rp-0.1.1388}/rp/prompt_toolkit/buffer_mapping.py +0 -0
  250. {rp-0.1.1386 → rp-0.1.1388}/rp/prompt_toolkit/cache.py +0 -0
  251. {rp-0.1.1386 → rp-0.1.1388}/rp/prompt_toolkit/clipboard/__init__.py +0 -0
  252. {rp-0.1.1386 → rp-0.1.1388}/rp/prompt_toolkit/clipboard/base.py +0 -0
  253. {rp-0.1.1386 → rp-0.1.1388}/rp/prompt_toolkit/clipboard/in_memory.py +0 -0
  254. {rp-0.1.1386 → rp-0.1.1388}/rp/prompt_toolkit/clipboard/pyperclip.py +0 -0
  255. {rp-0.1.1386 → rp-0.1.1388}/rp/prompt_toolkit/completion.py +0 -0
  256. {rp-0.1.1386 → rp-0.1.1388}/rp/prompt_toolkit/contrib/__init__.py +0 -0
  257. {rp-0.1.1386 → rp-0.1.1388}/rp/prompt_toolkit/contrib/completers/__init__.py +0 -0
  258. {rp-0.1.1386 → rp-0.1.1388}/rp/prompt_toolkit/contrib/completers/base.py +0 -0
  259. {rp-0.1.1386 → rp-0.1.1388}/rp/prompt_toolkit/contrib/completers/filesystem.py +0 -0
  260. {rp-0.1.1386 → rp-0.1.1388}/rp/prompt_toolkit/contrib/completers/system.py +0 -0
  261. {rp-0.1.1386 → rp-0.1.1388}/rp/prompt_toolkit/contrib/regular_languages/__init__.py +0 -0
  262. {rp-0.1.1386 → rp-0.1.1388}/rp/prompt_toolkit/contrib/regular_languages/compiler.py +0 -0
  263. {rp-0.1.1386 → rp-0.1.1388}/rp/prompt_toolkit/contrib/regular_languages/completion.py +0 -0
  264. {rp-0.1.1386 → rp-0.1.1388}/rp/prompt_toolkit/contrib/regular_languages/lexer.py +0 -0
  265. {rp-0.1.1386 → rp-0.1.1388}/rp/prompt_toolkit/contrib/regular_languages/regex_parser.py +0 -0
  266. {rp-0.1.1386 → rp-0.1.1388}/rp/prompt_toolkit/contrib/regular_languages/validation.py +0 -0
  267. {rp-0.1.1386 → rp-0.1.1388}/rp/prompt_toolkit/contrib/telnet/__init__.py +0 -0
  268. {rp-0.1.1386 → rp-0.1.1388}/rp/prompt_toolkit/contrib/telnet/application.py +0 -0
  269. {rp-0.1.1386 → rp-0.1.1388}/rp/prompt_toolkit/contrib/telnet/log.py +0 -0
  270. {rp-0.1.1386 → rp-0.1.1388}/rp/prompt_toolkit/contrib/telnet/protocol.py +0 -0
  271. {rp-0.1.1386 → rp-0.1.1388}/rp/prompt_toolkit/contrib/telnet/server.py +0 -0
  272. {rp-0.1.1386 → rp-0.1.1388}/rp/prompt_toolkit/contrib/validators/__init__.py +0 -0
  273. {rp-0.1.1386 → rp-0.1.1388}/rp/prompt_toolkit/contrib/validators/base.py +0 -0
  274. {rp-0.1.1386 → rp-0.1.1388}/rp/prompt_toolkit/document.py +0 -0
  275. {rp-0.1.1386 → rp-0.1.1388}/rp/prompt_toolkit/enums.py +0 -0
  276. {rp-0.1.1386 → rp-0.1.1388}/rp/prompt_toolkit/eventloop/__init__.py +0 -0
  277. {rp-0.1.1386 → rp-0.1.1388}/rp/prompt_toolkit/eventloop/asyncio_base.py +0 -0
  278. {rp-0.1.1386 → rp-0.1.1388}/rp/prompt_toolkit/eventloop/asyncio_posix.py +0 -0
  279. {rp-0.1.1386 → rp-0.1.1388}/rp/prompt_toolkit/eventloop/asyncio_win32.py +0 -0
  280. {rp-0.1.1386 → rp-0.1.1388}/rp/prompt_toolkit/eventloop/base.py +0 -0
  281. {rp-0.1.1386 → rp-0.1.1388}/rp/prompt_toolkit/eventloop/callbacks.py +0 -0
  282. {rp-0.1.1386 → rp-0.1.1388}/rp/prompt_toolkit/eventloop/inputhook.py +0 -0
  283. {rp-0.1.1386 → rp-0.1.1388}/rp/prompt_toolkit/eventloop/posix.py +0 -0
  284. {rp-0.1.1386 → rp-0.1.1388}/rp/prompt_toolkit/eventloop/posix_utils.py +0 -0
  285. {rp-0.1.1386 → rp-0.1.1388}/rp/prompt_toolkit/eventloop/select.py +0 -0
  286. {rp-0.1.1386 → rp-0.1.1388}/rp/prompt_toolkit/eventloop/utils.py +0 -0
  287. {rp-0.1.1386 → rp-0.1.1388}/rp/prompt_toolkit/eventloop/win32.py +0 -0
  288. {rp-0.1.1386 → rp-0.1.1388}/rp/prompt_toolkit/filters/__init__.py +0 -0
  289. {rp-0.1.1386 → rp-0.1.1388}/rp/prompt_toolkit/filters/base.py +0 -0
  290. {rp-0.1.1386 → rp-0.1.1388}/rp/prompt_toolkit/filters/cli.py +0 -0
  291. {rp-0.1.1386 → rp-0.1.1388}/rp/prompt_toolkit/filters/types.py +0 -0
  292. {rp-0.1.1386 → rp-0.1.1388}/rp/prompt_toolkit/filters/utils.py +0 -0
  293. {rp-0.1.1386 → rp-0.1.1388}/rp/prompt_toolkit/history.py +0 -0
  294. {rp-0.1.1386 → rp-0.1.1388}/rp/prompt_toolkit/input.py +0 -0
  295. {rp-0.1.1386 → rp-0.1.1388}/rp/prompt_toolkit/interface.py +0 -0
  296. {rp-0.1.1386 → rp-0.1.1388}/rp/prompt_toolkit/key_binding/__init__.py +0 -0
  297. {rp-0.1.1386 → rp-0.1.1388}/rp/prompt_toolkit/key_binding/bindings/__init__.py +0 -0
  298. {rp-0.1.1386 → rp-0.1.1388}/rp/prompt_toolkit/key_binding/bindings/basic.py +0 -0
  299. {rp-0.1.1386 → rp-0.1.1388}/rp/prompt_toolkit/key_binding/bindings/completion.py +0 -0
  300. {rp-0.1.1386 → rp-0.1.1388}/rp/prompt_toolkit/key_binding/bindings/emacs.py +0 -0
  301. {rp-0.1.1386 → rp-0.1.1388}/rp/prompt_toolkit/key_binding/bindings/named_commands.py +0 -0
  302. {rp-0.1.1386 → rp-0.1.1388}/rp/prompt_toolkit/key_binding/bindings/scroll.py +0 -0
  303. {rp-0.1.1386 → rp-0.1.1388}/rp/prompt_toolkit/key_binding/bindings/vi.py +0 -0
  304. {rp-0.1.1386 → rp-0.1.1388}/rp/prompt_toolkit/key_binding/defaults.py +0 -0
  305. {rp-0.1.1386 → rp-0.1.1388}/rp/prompt_toolkit/key_binding/digraphs.py +0 -0
  306. {rp-0.1.1386 → rp-0.1.1388}/rp/prompt_toolkit/key_binding/input_processor.py +0 -0
  307. {rp-0.1.1386 → rp-0.1.1388}/rp/prompt_toolkit/key_binding/manager.py +0 -0
  308. {rp-0.1.1386 → rp-0.1.1388}/rp/prompt_toolkit/key_binding/registry.py +0 -0
  309. {rp-0.1.1386 → rp-0.1.1388}/rp/prompt_toolkit/key_binding/vi_state.py +0 -0
  310. {rp-0.1.1386 → rp-0.1.1388}/rp/prompt_toolkit/keys.py +0 -0
  311. {rp-0.1.1386 → rp-0.1.1388}/rp/prompt_toolkit/layout/__init__.py +0 -0
  312. {rp-0.1.1386 → rp-0.1.1388}/rp/prompt_toolkit/layout/containers.py +0 -0
  313. {rp-0.1.1386 → rp-0.1.1388}/rp/prompt_toolkit/layout/controls.py +0 -0
  314. {rp-0.1.1386 → rp-0.1.1388}/rp/prompt_toolkit/layout/dimension.py +0 -0
  315. {rp-0.1.1386 → rp-0.1.1388}/rp/prompt_toolkit/layout/lexers.py +0 -0
  316. {rp-0.1.1386 → rp-0.1.1388}/rp/prompt_toolkit/layout/margins.py +0 -0
  317. {rp-0.1.1386 → rp-0.1.1388}/rp/prompt_toolkit/layout/menus.py +0 -0
  318. {rp-0.1.1386 → rp-0.1.1388}/rp/prompt_toolkit/layout/mouse_handlers.py +0 -0
  319. {rp-0.1.1386 → rp-0.1.1388}/rp/prompt_toolkit/layout/processors.py +0 -0
  320. {rp-0.1.1386 → rp-0.1.1388}/rp/prompt_toolkit/layout/prompt.py +0 -0
  321. {rp-0.1.1386 → rp-0.1.1388}/rp/prompt_toolkit/layout/screen.py +0 -0
  322. {rp-0.1.1386 → rp-0.1.1388}/rp/prompt_toolkit/layout/toolbars.py +0 -0
  323. {rp-0.1.1386 → rp-0.1.1388}/rp/prompt_toolkit/layout/untitled.py +0 -0
  324. {rp-0.1.1386 → rp-0.1.1388}/rp/prompt_toolkit/layout/utils.py +0 -0
  325. {rp-0.1.1386 → rp-0.1.1388}/rp/prompt_toolkit/mouse_events.py +0 -0
  326. {rp-0.1.1386 → rp-0.1.1388}/rp/prompt_toolkit/output.py +0 -0
  327. {rp-0.1.1386 → rp-0.1.1388}/rp/prompt_toolkit/reactive.py +0 -0
  328. {rp-0.1.1386 → rp-0.1.1388}/rp/prompt_toolkit/renderer.py +0 -0
  329. {rp-0.1.1386 → rp-0.1.1388}/rp/prompt_toolkit/search_state.py +0 -0
  330. {rp-0.1.1386 → rp-0.1.1388}/rp/prompt_toolkit/selection.py +0 -0
  331. {rp-0.1.1386 → rp-0.1.1388}/rp/prompt_toolkit/shortcuts.py +0 -0
  332. {rp-0.1.1386 → rp-0.1.1388}/rp/prompt_toolkit/styles/__init__.py +0 -0
  333. {rp-0.1.1386 → rp-0.1.1388}/rp/prompt_toolkit/styles/base.py +0 -0
  334. {rp-0.1.1386 → rp-0.1.1388}/rp/prompt_toolkit/styles/defaults.py +0 -0
  335. {rp-0.1.1386 → rp-0.1.1388}/rp/prompt_toolkit/styles/from_dict.py +0 -0
  336. {rp-0.1.1386 → rp-0.1.1388}/rp/prompt_toolkit/styles/from_pygments.py +0 -0
  337. {rp-0.1.1386 → rp-0.1.1388}/rp/prompt_toolkit/styles/utils.py +0 -0
  338. {rp-0.1.1386 → rp-0.1.1388}/rp/prompt_toolkit/terminal/__init__.py +0 -0
  339. {rp-0.1.1386 → rp-0.1.1388}/rp/prompt_toolkit/terminal/conemu_output.py +0 -0
  340. {rp-0.1.1386 → rp-0.1.1388}/rp/prompt_toolkit/terminal/vt100_input.py +0 -0
  341. {rp-0.1.1386 → rp-0.1.1388}/rp/prompt_toolkit/terminal/vt100_output.py +0 -0
  342. {rp-0.1.1386 → rp-0.1.1388}/rp/prompt_toolkit/terminal/win32_input.py +0 -0
  343. {rp-0.1.1386 → rp-0.1.1388}/rp/prompt_toolkit/terminal/win32_output.py +0 -0
  344. {rp-0.1.1386 → rp-0.1.1388}/rp/prompt_toolkit/token.py +0 -0
  345. {rp-0.1.1386 → rp-0.1.1388}/rp/prompt_toolkit/utils.py +0 -0
  346. {rp-0.1.1386 → rp-0.1.1388}/rp/prompt_toolkit/validation.py +0 -0
  347. {rp-0.1.1386 → rp-0.1.1388}/rp/prompt_toolkit/win32_types.py +0 -0
  348. {rp-0.1.1386 → rp-0.1.1388}/rp/rp_ptpython/__init__.py +0 -0
  349. {rp-0.1.1386 → rp-0.1.1388}/rp/rp_ptpython/__main__.py +0 -0
  350. {rp-0.1.1386 → rp-0.1.1388}/rp/rp_ptpython/ast_selection.py +0 -0
  351. {rp-0.1.1386 → rp-0.1.1388}/rp/rp_ptpython/async_analyzer_base.py +0 -0
  352. {rp-0.1.1386 → rp-0.1.1388}/rp/rp_ptpython/async_jedi_highlighter.py +0 -0
  353. {rp-0.1.1386 → rp-0.1.1388}/rp/rp_ptpython/backslash_commands.py +0 -0
  354. {rp-0.1.1386 → rp-0.1.1388}/rp/rp_ptpython/bash_completer.py +0 -0
  355. {rp-0.1.1386 → rp-0.1.1388}/rp/rp_ptpython/bash_extract.py +0 -0
  356. {rp-0.1.1386 → rp-0.1.1388}/rp/rp_ptpython/bash_inline.py +0 -0
  357. {rp-0.1.1386 → rp-0.1.1388}/rp/rp_ptpython/bash_rename.py +0 -0
  358. {rp-0.1.1386 → rp-0.1.1388}/rp/rp_ptpython/bash_selection.py +0 -0
  359. {rp-0.1.1386 → rp-0.1.1388}/rp/rp_ptpython/completer.py +0 -0
  360. {rp-0.1.1386 → rp-0.1.1388}/rp/rp_ptpython/completer_old.py +0 -0
  361. {rp-0.1.1386 → rp-0.1.1388}/rp/rp_ptpython/completion_ranker.py +0 -0
  362. {rp-0.1.1386 → rp-0.1.1388}/rp/rp_ptpython/completion_schema.py +0 -0
  363. {rp-0.1.1386 → rp-0.1.1388}/rp/rp_ptpython/completion_types.py +0 -0
  364. {rp-0.1.1386 → rp-0.1.1388}/rp/rp_ptpython/eventloop.py +0 -0
  365. {rp-0.1.1386 → rp-0.1.1388}/rp/rp_ptpython/filters.py +0 -0
  366. {rp-0.1.1386 → rp-0.1.1388}/rp/rp_ptpython/history_browser.py +0 -0
  367. {rp-0.1.1386 → rp-0.1.1388}/rp/rp_ptpython/ipython.py +0 -0
  368. {rp-0.1.1386 → rp-0.1.1388}/rp/rp_ptpython/jedi_highlighter.py +0 -0
  369. {rp-0.1.1386 → rp-0.1.1388}/rp/rp_ptpython/jedi_lexer.py +0 -0
  370. {rp-0.1.1386 → rp-0.1.1388}/rp/rp_ptpython/jedi_utils.py +0 -0
  371. {rp-0.1.1386 → rp-0.1.1388}/rp/rp_ptpython/key_bindings.py +0 -0
  372. {rp-0.1.1386 → rp-0.1.1388}/rp/rp_ptpython/layout.py +0 -0
  373. {rp-0.1.1386 → rp-0.1.1388}/rp/rp_ptpython/patch_linecache.py +0 -0
  374. {rp-0.1.1386 → rp-0.1.1388}/rp/rp_ptpython/path_completer_utils.py +0 -0
  375. {rp-0.1.1386 → rp-0.1.1388}/rp/rp_ptpython/prompt_style.py +0 -0
  376. {rp-0.1.1386 → rp-0.1.1388}/rp/rp_ptpython/python_input.py +0 -0
  377. {rp-0.1.1386 → rp-0.1.1388}/rp/rp_ptpython/r_iterm_comm.py +0 -0
  378. {rp-0.1.1386 → rp-0.1.1388}/rp/rp_ptpython/refactor_extract.py +0 -0
  379. {rp-0.1.1386 → rp-0.1.1388}/rp/rp_ptpython/refactor_inline.py +0 -0
  380. {rp-0.1.1386 → rp-0.1.1388}/rp/rp_ptpython/refactor_move.py +0 -0
  381. {rp-0.1.1386 → rp-0.1.1388}/rp/rp_ptpython/refactor_move_bash.py +0 -0
  382. {rp-0.1.1386 → rp-0.1.1388}/rp/rp_ptpython/refactor_rename.py +0 -0
  383. {rp-0.1.1386 → rp-0.1.1388}/rp/rp_ptpython/repl.py +0 -0
  384. {rp-0.1.1386 → rp-0.1.1388}/rp/rp_ptpython/rp_ptpdb/__init__.py +0 -0
  385. {rp-0.1.1386 → rp-0.1.1388}/rp/rp_ptpython/rp_ptpdb/commands.py +0 -0
  386. {rp-0.1.1386 → rp-0.1.1388}/rp/rp_ptpython/rp_ptpdb/completers.py +0 -0
  387. {rp-0.1.1386 → rp-0.1.1388}/rp/rp_ptpython/rp_ptpdb/completion_hints.py +0 -0
  388. {rp-0.1.1386 → rp-0.1.1388}/rp/rp_ptpython/rp_ptpdb/grammar.py +0 -0
  389. {rp-0.1.1386 → rp-0.1.1388}/rp/rp_ptpython/rp_ptpdb/key_bindings.py +0 -0
  390. {rp-0.1.1386 → rp-0.1.1388}/rp/rp_ptpython/rp_ptpdb/layout.py +0 -0
  391. {rp-0.1.1386 → rp-0.1.1388}/rp/rp_ptpython/rp_ptpdb/style.py +0 -0
  392. {rp-0.1.1386 → rp-0.1.1388}/rp/rp_ptpython/rp_ptpdb/toolbars.py +0 -0
  393. {rp-0.1.1386 → rp-0.1.1388}/rp/rp_ptpython/selection_utils.py +0 -0
  394. {rp-0.1.1386 → rp-0.1.1388}/rp/rp_ptpython/style.py +0 -0
  395. {rp-0.1.1386 → rp-0.1.1388}/rp/rp_ptpython/testable_keybindings.py +0 -0
  396. {rp-0.1.1386 → rp-0.1.1388}/rp/rp_ptpython/treesitter_selection.py +0 -0
  397. {rp-0.1.1386 → rp-0.1.1388}/rp/rp_ptpython/treesitter_semantic.py +0 -0
  398. {rp-0.1.1386 → rp-0.1.1388}/rp/rp_ptpython/unreachable_detector.py +0 -0
  399. {rp-0.1.1386 → rp-0.1.1388}/rp/rp_ptpython/utils.py +0 -0
  400. {rp-0.1.1386 → rp-0.1.1388}/rp/rp_ptpython/validator.py +0 -0
  401. {rp-0.1.1386 → rp-0.1.1388}/rp/ryan_vimrc.py +0 -0
  402. {rp-0.1.1386 → rp-0.1.1388}/rp/web_evaluator.py +0 -0
  403. {rp-0.1.1386 → rp-0.1.1388}/rp.egg-info/SOURCES.txt +0 -0
  404. {rp-0.1.1386 → rp-0.1.1388}/rp.egg-info/dependency_links.txt +0 -0
  405. {rp-0.1.1386 → rp-0.1.1388}/rp.egg-info/entry_points.txt +0 -0
  406. {rp-0.1.1386 → rp-0.1.1388}/rp.egg-info/requires.txt +0 -0
  407. {rp-0.1.1386 → rp-0.1.1388}/rp.egg-info/top_level.txt +0 -0
  408. {rp-0.1.1386 → rp-0.1.1388}/setup.cfg +0 -0
  409. {rp-0.1.1386 → rp-0.1.1388}/setup.py +0 -0
  410. {rp-0.1.1386 → rp-0.1.1388}/untitled.c +0 -0
  411. {rp-0.1.1386 → rp-0.1.1388}/update_module_paths.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 1.0
2
2
  Name: rp
3
- Version: 0.1.1386
3
+ Version: 0.1.1388
4
4
  Summary: Ryan's Python: IDE + Library + Tools
5
5
  Home-page: https://github.com/RyannDaGreat/rp
6
6
  Author: Ryan Burgert
@@ -104,6 +104,7 @@ FOLDER_URL = "https://drive.google.com/drive/folders/{}"
104
104
  # Media types
105
105
  IMAGE_EXTENSIONS = {".png", ".jpg", ".jpeg", ".gif", ".bmp", ".webp"}
106
106
  VIDEO_EXTENSIONS = {".mp4", ".mov", ".avi", ".mkv", ".webm"}
107
+ MEDIA_EXTENSIONS = VIDEO_EXTENSIONS | IMAGE_EXTENSIONS
107
108
  MIME_TYPES = {
108
109
  ".mp4": "video/mp4",
109
110
  ".mov": "video/quicktime",
@@ -275,6 +276,26 @@ def make_file_public(service, file_id: str) -> str:
275
276
  return DRIVE_FILE_URL.format(file_id)
276
277
 
277
278
 
279
+ def _format_eta(done: int, total: int, elapsed: float) -> str:
280
+ """Format ETA string based on progress and elapsed time."""
281
+ if done <= 0 or elapsed <= 0:
282
+ return ""
283
+ rate = done / elapsed
284
+ remaining = total - done
285
+ eta_seconds = remaining / rate
286
+ return f", ETA: {int(eta_seconds // 60)}m{int(eta_seconds % 60):02d}s"
287
+
288
+
289
+ def _format_progress(index: int, total: int, done: int, total_size: int, elapsed: float, use_bytes: bool = True) -> str:
290
+ """Format overall progress string."""
291
+ eta = _format_eta(done, total_size, elapsed)
292
+ if use_bytes:
293
+ done_str = rp.human_readable_file_size(done)
294
+ total_str = rp.human_readable_file_size(total_size)
295
+ return f"[{index}/{total}] {done_str} / {total_str}{eta}"
296
+ return f"[{index}/{total}]{eta}"
297
+
298
+
278
299
  def upload_media_sequential(
279
300
  service,
280
301
  file_paths: list[str],
@@ -282,14 +303,22 @@ def upload_media_sequential(
282
303
  ) -> list[dict]:
283
304
  """Upload multiple media files sequentially with progress bars."""
284
305
  results = []
306
+ total_bytes = sum(rp.get_file_size(fp) for fp in file_paths)
307
+ uploaded_bytes = 0
308
+ start_time = time.time()
285
309
 
286
- for fp in file_paths:
310
+ for i, fp in enumerate(file_paths):
287
311
  size = rp.get_file_size(fp)
312
+ elapsed = time.time() - start_time
313
+ progress_str = _format_progress(i + 1, len(file_paths), uploaded_bytes, total_bytes, elapsed)
314
+ rp.fansi_print(f" {progress_str}", "cyan")
315
+
288
316
  pbar = tqdm(
289
317
  total=size,
290
318
  desc=rp.get_file_name(fp),
291
319
  unit="B",
292
320
  unit_scale=True,
321
+ leave=False,
293
322
  )
294
323
  last_progress = [0]
295
324
 
@@ -299,7 +328,9 @@ def upload_media_sequential(
299
328
  last_progress[0] = current
300
329
 
301
330
  result = upload_media(service, fp, folder_id, progress_cb)
331
+ pbar.update(size - last_progress[0]) # Ensure 100%
302
332
  pbar.close()
333
+ uploaded_bytes += size
303
334
  rp.fansi_print(f" Uploaded: {result['webViewLink']}", "green")
304
335
  results.append(result)
305
336
 
@@ -720,9 +751,12 @@ def media_to_slides(
720
751
  path_to_media = dict(zip(all_paths, media))
721
752
 
722
753
  rp.fansi_print("\nMaking files publicly accessible...", "cyan")
723
- for m in media:
754
+ start_time = time.time()
755
+ for i, m in enumerate(media):
756
+ elapsed = time.time() - start_time
757
+ progress_str = _format_progress(i + 1, len(media), i, len(media), elapsed, use_bytes=False)
758
+ rp.fansi_print(f" {progress_str} {m['name']}", "cyan")
724
759
  make_file_public(drive_service, m["id"])
725
- rp.fansi_print(f" {m['name']}: public", "green")
726
760
 
727
761
  # Build slides_data for create_slides_with_media_grid
728
762
  slides_data = []
@@ -835,8 +869,8 @@ def cli(
835
869
  paths Media files, folders, or glob patterns (e.g., "*.png")
836
870
 
837
871
  Options:
838
- --name NAME Presentation name (default: auto-generated timestamp)
839
- --folder_name NAME Google Drive folder name (default: auto-generated timestamp)
872
+ --name NAME Presentation name (default: same as --title, or auto-generated timestamp)
873
+ --folder_name NAME Google Drive folder name (default: same as --name)
840
874
  --title TITLE Slide title (applies to all slides)
841
875
  --captions Use filenames as captions for each media item
842
876
  --label_position POS Label position: 'top' (default) or 'bottom'
@@ -875,6 +909,12 @@ def cli(
875
909
  f"Supported formats: {', '.join(MEDIA_EXTENSIONS)}"
876
910
  )
877
911
 
912
+ # Default name to title, and folder_name to name
913
+ if name is None and title is not None:
914
+ name = title
915
+ if folder_name is None and name is not None:
916
+ folder_name = name
917
+
878
918
  # Split into grids if requested
879
919
  if per_slide is not None:
880
920
  media_paths = rp.split_into_sublists(media_paths, per_slide)
@@ -42789,9 +42789,10 @@ def _get_video_file_framerate_via_ffprobe(path, use_cache=True):
42789
42789
  import subprocess
42790
42790
  import json
42791
42791
 
42792
- if not 'ffprobe' in get_system_commands():
42792
+ if not 'ffprobe' in get_system_commands():
42793
42793
  _ensure_ffmpeg_installed()
42794
- raise RuntimeError('rp.get_video_file_framerate: Please install ffmpeg! Unable to find the ffprobe command')
42794
+ if not 'ffprobe' in get_system_commands():
42795
+ raise RuntimeError('rp.get_video_file_framerate: Please install ffmpeg! Unable to find the ffprobe command')
42795
42796
 
42796
42797
  path = get_absolute_path(path) # Important for caching
42797
42798
  if use_cache and path in _get_video_file_framerate_cache:
@@ -42828,6 +42829,111 @@ def get_video_file_framerate(path, use_cache=True):
42828
42829
  except Exception:
42829
42830
  return _get_video_file_framerate_via_ffprobe(path, use_cache)
42830
42831
 
42832
+ _video_has_audio_cache = {}
42833
+
42834
+ def video_has_audio(path, use_cache=True, strict=False, include_silent=True):
42835
+ """
42836
+ Check if a video file contains an audio track.
42837
+
42838
+ Uses ffprobe (part of ffmpeg) to detect audio streams. This is fast (~60ms)
42839
+ and does not require loading the entire video into memory. Time is O(1)
42840
+ regardless of video length.
42841
+
42842
+ Args:
42843
+ path (str): Path to the video file
42844
+ use_cache (bool): If True, caches results to avoid repeated ffprobe calls.
42845
+ Defaults to True.
42846
+ strict (bool): If False, corrupted or invalid video files return False.
42847
+ If True, raises RuntimeError on ffprobe failure.
42848
+ Defaults to False.
42849
+ include_silent (bool): If True, returns True even if the video has an audio track
42850
+ but that audio track has no audible audio.
42851
+ If False, returns True only if there is audible audio.
42852
+ Defaults to True.
42853
+
42854
+ Returns:
42855
+ bool: True if the video has an audio stream (or non-silent audio if include_silent=False)
42856
+
42857
+ Raises:
42858
+ FileNotFoundError: If the video file does not exist
42859
+ RuntimeError: If ffprobe fails or ffmpeg is not installed (only when strict=True)
42860
+
42861
+ EXAMPLE:
42862
+ >>> video_has_audio('/Users/ryan/Downloads/12071694.mp4')
42863
+ True
42864
+ >>> video_has_audio('/Users/ryan/Downloads/000000.mp4')
42865
+ False
42866
+
42867
+ See Also:
42868
+ - is_video_file: Check if a file is a video
42869
+ - is_sound_file: Check if a file is an audio file
42870
+ - get_video_file_framerate: Get framerate of a video
42871
+ """
42872
+ import subprocess
42873
+
42874
+ if not 'ffprobe' in get_system_commands():
42875
+ _ensure_ffmpeg_installed()
42876
+ if not 'ffprobe' in get_system_commands():
42877
+ raise RuntimeError('rp.video_has_audio: Please install ffmpeg! Unable to find the ffprobe command')
42878
+
42879
+ path = get_absolute_path(path)
42880
+
42881
+ if not file_exists(path):
42882
+ raise FileNotFoundError("Video file not found: " + path)
42883
+
42884
+ # Cache key includes include_silent flag
42885
+ cache_key = (path, include_silent)
42886
+ if use_cache and cache_key in _video_has_audio_cache:
42887
+ return _video_has_audio_cache[cache_key]
42888
+
42889
+ # When include_silent=True, check for stream existence (index)
42890
+ # When include_silent=False, check bitrate to detect silent tracks (<5kbps = silent)
42891
+ if include_silent:
42892
+ select_streams = "a"
42893
+ show_entries = "stream=index"
42894
+ output_format = "csv=p=0"
42895
+ else:
42896
+ select_streams = "a:0"
42897
+ show_entries = "stream=bit_rate"
42898
+ output_format = "default=noprint_wrappers=1:nokey=1"
42899
+
42900
+ result = subprocess.run(
42901
+ ["ffprobe", "-v", "error", "-select_streams", select_streams,
42902
+ "-show_entries", show_entries, "-of", output_format, path],
42903
+ capture_output=True,
42904
+ text=True,
42905
+ )
42906
+
42907
+ if result.returncode != 0:
42908
+ if strict:
42909
+ raise RuntimeError("ffprobe failed on " + path + ": " + result.stderr)
42910
+ has_audio = False
42911
+ elif not result.stdout.strip():
42912
+ has_audio = False
42913
+ elif include_silent:
42914
+ has_audio = True
42915
+ else:
42916
+ try:
42917
+ # >5kbps = real audio, <5kbps = silent (silent AAC compresses to ~3.7kbps)
42918
+ has_audio = int(result.stdout.strip()) > 5000
42919
+ except ValueError:
42920
+ # Bitrate metadata unavailable (e.g. VBR without stored bitrate, rare edge case)
42921
+ # Fallback methods in order of speed:
42922
+ # 1. packet_size (~59ms, O(1)): avg packet size >50 bytes = real audio (silent AAC ~10 bytes)
42923
+ # ffprobe -select_streams a:0 -show_entries packet=size -read_intervals %+#20
42924
+ # 2. pcm_pipe (~58ms, O(1)): pipe 0.5s of PCM, check for samples >100 amplitude
42925
+ # ffmpeg -i FILE -t 0.5 -f s16le -ac 1 -ar 8000 - | check for non-zero
42926
+ # 3. volumedetect (~104ms, O(1) with -t): check max_volume > -80dB
42927
+ # ffmpeg -i FILE -t 0.5 -af volumedetect -f null /dev/null
42928
+ # NOTE: without -t flag this would be O(n) - must decode entire audio
42929
+ fansi_print("WARNING: video_has_audio: bitrate unavailable for " + path + ", assuming has audio", "yellow")
42930
+ has_audio = True
42931
+
42932
+ if use_cache:
42933
+ _video_has_audio_cache[cache_key] = has_audio
42934
+
42935
+ return has_audio
42936
+
42831
42937
 
42832
42938
  #UNCOMMENT ONCE I USE SMART_OPEN SOMEWHERE
42833
42939
  # def _smart_open(path, mode="rb"):
@@ -0,0 +1 @@
1
+ 1388
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 1.0
2
2
  Name: rp
3
- Version: 0.1.1386
3
+ Version: 0.1.1388
4
4
  Summary: Ryan's Python: IDE + Library + Tools
5
5
  Home-page: https://github.com/RyannDaGreat/rp
6
6
  Author: Ryan Burgert
rp-0.1.1388/version.py ADDED
@@ -0,0 +1 @@
1
+ 1388
rp-0.1.1386/rp/version.py DELETED
@@ -1 +0,0 @@
1
- 1386
rp-0.1.1386/version.py DELETED
@@ -1 +0,0 @@
1
- 1386
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes