rp 0.1.1386__tar.gz → 0.1.1387__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.1387}/PKG-INFO +1 -1
  2. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/powerpoint/media_to_slides.py +36 -3
  3. {rp-0.1.1386 → rp-0.1.1387}/rp/r.py +108 -2
  4. rp-0.1.1387/rp/version.py +1 -0
  5. {rp-0.1.1386 → rp-0.1.1387}/rp.egg-info/PKG-INFO +1 -1
  6. rp-0.1.1387/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.1387}/.gitignore +0 -0
  10. {rp-0.1.1386 → rp-0.1.1387}/.idea/QuickPython.iml +0 -0
  11. {rp-0.1.1386 → rp-0.1.1387}/.idea/QuickPython.time +0 -0
  12. {rp-0.1.1386 → rp-0.1.1387}/.idea/encodings.xml +0 -0
  13. {rp-0.1.1386 → rp-0.1.1387}/.idea/inspectionProfiles/Project_Default.xml +0 -0
  14. {rp-0.1.1386 → rp-0.1.1387}/.idea/misc.xml +0 -0
  15. {rp-0.1.1386 → rp-0.1.1387}/.idea/modules.xml +0 -0
  16. {rp-0.1.1386 → rp-0.1.1387}/.idea/vcs.xml +0 -0
  17. {rp-0.1.1386 → rp-0.1.1387}/.idea/workspace.xml +0 -0
  18. {rp-0.1.1386 → rp-0.1.1387}/.publish.sh.un~ +0 -0
  19. {rp-0.1.1386 → rp-0.1.1387}/.setup.py.un~ +0 -0
  20. {rp-0.1.1386 → rp-0.1.1387}/.update_module_paths.py.un~ +0 -0
  21. {rp-0.1.1386 → rp-0.1.1387}/LICENSE.txt +0 -0
  22. {rp-0.1.1386 → rp-0.1.1387}/README +0 -0
  23. {rp-0.1.1386 → rp-0.1.1387}/Scrap +0 -0
  24. {rp-0.1.1386 → rp-0.1.1387}/aoisdasd +0 -0
  25. {rp-0.1.1386 → rp-0.1.1387}/increment_version.py +0 -0
  26. {rp-0.1.1386 → rp-0.1.1387}/oijio +0 -0
  27. {rp-0.1.1386 → rp-0.1.1387}/publish.sh +0 -0
  28. {rp-0.1.1386 → rp-0.1.1387}/pyqtconsoletest.py +0 -0
  29. {rp-0.1.1386 → rp-0.1.1387}/rp/__init__.py +0 -0
  30. {rp-0.1.1386 → rp-0.1.1387}/rp/__main__.py +0 -0
  31. {rp-0.1.1386 → rp-0.1.1387}/rp/documentation.py +0 -0
  32. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/Pyperclip.py +0 -0
  33. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/__init__.py +0 -0
  34. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/debug_comment.py +0 -0
  35. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/draw_code_minimap.py +0 -0
  36. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/graveyard.py +0 -0
  37. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/parso/__init__.py +0 -0
  38. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/parso/_compatibility.py +0 -0
  39. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/parso/cache.py +0 -0
  40. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/parso/file_io.py +0 -0
  41. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/parso/grammar.py +0 -0
  42. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/parso/normalizer.py +0 -0
  43. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/parso/parser.py +0 -0
  44. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/parso/pgen2/__init__.py +0 -0
  45. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/parso/pgen2/generator.py +0 -0
  46. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/parso/pgen2/grammar_parser.py +0 -0
  47. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/parso/python/__init__.py +0 -0
  48. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/parso/python/diff.py +0 -0
  49. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/parso/python/errors.py +0 -0
  50. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/parso/python/grammar26.txt +0 -0
  51. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/parso/python/grammar27.txt +0 -0
  52. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/parso/python/grammar310.txt +0 -0
  53. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/parso/python/grammar311.txt +0 -0
  54. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/parso/python/grammar312.txt +0 -0
  55. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/parso/python/grammar33.txt +0 -0
  56. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/parso/python/grammar34.txt +0 -0
  57. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/parso/python/grammar35.txt +0 -0
  58. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/parso/python/grammar36.txt +0 -0
  59. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/parso/python/grammar37.txt +0 -0
  60. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/parso/python/grammar38.txt +0 -0
  61. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/parso/python/grammar39.txt +0 -0
  62. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/parso/python/parser.py +0 -0
  63. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/parso/python/pep8.py +0 -0
  64. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/parso/python/prefix.py +0 -0
  65. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/parso/python/token.py +0 -0
  66. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/parso/python/tokenize.py +0 -0
  67. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/parso/python/tree.py +0 -0
  68. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/parso/tree.py +0 -0
  69. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/parso/utils.py +0 -0
  70. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/peepdis/__init__.py +0 -0
  71. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/peepdis/core.py +0 -0
  72. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/peepdis/datastructures.py +0 -0
  73. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/peepdis/legacy.py +0 -0
  74. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/peepdis/preferences.py +0 -0
  75. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/powerpoint/__init__.py +0 -0
  76. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/powerpoint/__main__.py +0 -0
  77. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/powerpoint/convert_pptx_videos_to_gifs.py +0 -0
  78. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/powerpoint/convert_tmux.py +0 -0
  79. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/powerpoint/google_slides_upload.py +0 -0
  80. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/powerpoint/pptx_utils.py +0 -0
  81. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/powerpoint_converter.py +0 -0
  82. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/profile_vim_plugins.py +0 -0
  83. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/pw_crypt.py +0 -0
  84. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/pyflann/__init__.py +0 -0
  85. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/pyflann/bindings/__init__.py +0 -0
  86. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/pyflann/bindings/flann_ctypes.py +0 -0
  87. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/pyflann/exceptions.py +0 -0
  88. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/pyflann/index.py +0 -0
  89. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/pyflann/io/__init__.py +0 -0
  90. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/pyflann/io/binary_dataset.py +0 -0
  91. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/pyflann/io/dat_dataset.py +0 -0
  92. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/pyflann/io/dataset.py +0 -0
  93. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/pyflann/io/hdf5_dataset.py +0 -0
  94. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/pyflann/io/npy_dataset.py +0 -0
  95. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/pyflann/util/__init__.py +0 -0
  96. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/pyflann/util/weave_tools.py +0 -0
  97. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/pyfx/__init__.py +0 -0
  98. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/pyfx/__version__.py +0 -0
  99. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/pyfx/app.py +0 -0
  100. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/pyfx/cli.py +0 -0
  101. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/pyfx/cli_utils.py +0 -0
  102. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/pyfx/config/__init__.py +0 -0
  103. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/pyfx/config/config.py +0 -0
  104. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/pyfx/config/config_error.py +0 -0
  105. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/pyfx/config/config_parser.py +0 -0
  106. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/pyfx/config/config_transformer.py +0 -0
  107. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/pyfx/config/validators/__init__.py +0 -0
  108. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/pyfx/config/validators/options.py +0 -0
  109. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/pyfx/logging.py +0 -0
  110. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/pyfx/model/__init__.py +0 -0
  111. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/pyfx/model/autocomplete/__init__.py +0 -0
  112. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/pyfx/model/autocomplete/autocomplete_listener.py +0 -0
  113. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/pyfx/model/common/__init__.py +0 -0
  114. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/pyfx/model/common/jsonpath/JSONPathLexer.py +0 -0
  115. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/pyfx/model/common/jsonpath/JSONPathListener.py +0 -0
  116. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/pyfx/model/common/jsonpath/JSONPathParser.py +0 -0
  117. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/pyfx/model/common/jsonpath/__init__.py +0 -0
  118. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/pyfx/model/io/__init__.py +0 -0
  119. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/pyfx/model/io/datasource.py +0 -0
  120. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/pyfx/model/model.py +0 -0
  121. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/pyfx/service/__init__.py +0 -0
  122. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/pyfx/service/client.py +0 -0
  123. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/pyfx/service/dispatcher.py +0 -0
  124. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/pyfx/view/__init__.py +0 -0
  125. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/pyfx/view/common/__init__.py +0 -0
  126. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/pyfx/view/common/popup.py +0 -0
  127. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/pyfx/view/common/selectable_text.py +0 -0
  128. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/pyfx/view/components/__init__.py +0 -0
  129. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/pyfx/view/components/autocomplete_popup/__init__.py +0 -0
  130. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/pyfx/view/components/autocomplete_popup/autocomplete_popup.py +0 -0
  131. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/pyfx/view/components/autocomplete_popup/autocomplete_popup_keymapper.py +0 -0
  132. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/pyfx/view/components/help_bar/__init__.py +0 -0
  133. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/pyfx/view/components/help_bar/help_bar.py +0 -0
  134. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/pyfx/view/components/help_page/__init__.py +0 -0
  135. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/pyfx/view/components/help_page/detailed_help_page.py +0 -0
  136. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/pyfx/view/components/json_browser/__init__.py +0 -0
  137. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/pyfx/view/components/json_browser/json_browser.py +0 -0
  138. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/pyfx/view/components/json_browser/json_browser_keymapper.py +0 -0
  139. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/pyfx/view/components/query_bar/__init__.py +0 -0
  140. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/pyfx/view/components/query_bar/query_bar.py +0 -0
  141. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/pyfx/view/components/query_bar/query_bar_keymapper.py +0 -0
  142. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/pyfx/view/json_lib/__init__.py +0 -0
  143. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/pyfx/view/json_lib/array/__init__.py +0 -0
  144. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/pyfx/view/json_lib/array/array_end_node.py +0 -0
  145. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/pyfx/view/json_lib/array/array_end_widget.py +0 -0
  146. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/pyfx/view/json_lib/array/array_node.py +0 -0
  147. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/pyfx/view/json_lib/array/array_start_widget.py +0 -0
  148. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/pyfx/view/json_lib/array/array_unexpanded_widget.py +0 -0
  149. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/pyfx/view/json_lib/json_composite_end_node.py +0 -0
  150. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/pyfx/view/json_lib/json_composite_node.py +0 -0
  151. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/pyfx/view/json_lib/json_listbox.py +0 -0
  152. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/pyfx/view/json_lib/json_listwalker.py +0 -0
  153. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/pyfx/view/json_lib/json_simple_node.py +0 -0
  154. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/pyfx/view/json_lib/json_widget.py +0 -0
  155. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/pyfx/view/json_lib/node_factory.py +0 -0
  156. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/pyfx/view/json_lib/object/__init__.py +0 -0
  157. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/pyfx/view/json_lib/object/object_end_node.py +0 -0
  158. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/pyfx/view/json_lib/object/object_end_widget.py +0 -0
  159. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/pyfx/view/json_lib/object/object_node.py +0 -0
  160. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/pyfx/view/json_lib/object/object_start_widget.py +0 -0
  161. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/pyfx/view/json_lib/object/object_unexpanded_widget.py +0 -0
  162. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/pyfx/view/json_lib/primitive/__init__.py +0 -0
  163. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/pyfx/view/json_lib/primitive/base.py +0 -0
  164. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/pyfx/view/json_lib/primitive/boolean.py +0 -0
  165. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/pyfx/view/json_lib/primitive/generic.py +0 -0
  166. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/pyfx/view/json_lib/primitive/integer.py +0 -0
  167. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/pyfx/view/json_lib/primitive/null.py +0 -0
  168. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/pyfx/view/json_lib/primitive/numeric.py +0 -0
  169. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/pyfx/view/json_lib/primitive/string.py +0 -0
  170. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/pyfx/view/json_lib/selector/__init__.py +0 -0
  171. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/pyfx/view/keymapper/__init__.py +0 -0
  172. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/pyfx/view/keymapper/abstract_component_keymapper.py +0 -0
  173. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/pyfx/view/keymapper/keymapper.py +0 -0
  174. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/pyfx/view/keymapper/keymapper_config.py +0 -0
  175. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/pyfx/view/keymapper/keymapper_config_parser.py +0 -0
  176. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/pyfx/view/theme/__init__.py +0 -0
  177. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/pyfx/view/theme/theme.py +0 -0
  178. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/pyfx/view/theme/theme_config.py +0 -0
  179. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/pyfx/view/theme/theme_config_parser.py +0 -0
  180. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/pyfx/view/view_config.py +0 -0
  181. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/pyfx/view/view_frame.py +0 -0
  182. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/pyfx/view/view_manager.py +0 -0
  183. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/pynput_recorder.py +0 -0
  184. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/pypi_inspection.py +0 -0
  185. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/pytorch_module_explorer.py +0 -0
  186. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/refactor/string_format/__init__.py +0 -0
  187. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/refactor/string_format/format_to_fstring_converter.py +0 -0
  188. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/refactor/string_format/fstring_converter.py +0 -0
  189. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/refactor/string_format/test_format_to_fstring_converter.py +0 -0
  190. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/refactor/string_format/test_fstring_converter.py +0 -0
  191. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/rp_black_macchiato.py +0 -0
  192. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/stamp_tensor.py +0 -0
  193. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/stdin_python_highlighter.py +0 -0
  194. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/tetris/__init__.py +0 -0
  195. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/tetris/__main__.py +0 -0
  196. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/tetris/graphics/graphics/__init__.py +0 -0
  197. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/tetris/graphics/graphics/canvas.py +0 -0
  198. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/tetris/graphics/graphics/colors.py +0 -0
  199. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/tetris/graphics/graphics/console.py +0 -0
  200. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/tetris/graphics/graphics/funcs.py +0 -0
  201. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/tetris/graphics/graphics/nbinput.py +0 -0
  202. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/tetris/graphics/graphics/shapes.py +0 -0
  203. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/tetris/graphics/graphics/sprite.py +0 -0
  204. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/tetris/letters.py +0 -0
  205. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/tetris/tetrisShapes.py +0 -0
  206. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/timg/__init__.py +0 -0
  207. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/timg/__main__.py +0 -0
  208. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/timg/argparser.py +0 -0
  209. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/timg/meta.py +0 -0
  210. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/timg/methods/__init__.py +0 -0
  211. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/timg/methods/ansi.py +0 -0
  212. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/timg/methods/ansi_methods.py +0 -0
  213. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/timg/methods/ascii.py +0 -0
  214. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/timg/methods/method.py +0 -0
  215. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/timg/methods/sixel.py +0 -0
  216. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/timg/renderer.py +0 -0
  217. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/torch_hooks.py +0 -0
  218. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/torch_tools.py +0 -0
  219. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/tracetraptest.py +0 -0
  220. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/tweenline.py +0 -0
  221. {rp-0.1.1386 → rp-0.1.1387}/rp/libs/webeval_dataset.py +0 -0
  222. {rp-0.1.1386 → rp-0.1.1387}/rp/list_of_modules.py +0 -0
  223. {rp-0.1.1386 → rp-0.1.1387}/rp/misc/Todo +0 -0
  224. {rp-0.1.1386 → rp-0.1.1387}/rp/misc/__init__.py +0 -0
  225. {rp-0.1.1386 → rp-0.1.1387}/rp/misc/blm.py +0 -0
  226. {rp-0.1.1386 → rp-0.1.1387}/rp/misc/chainsaw.py +0 -0
  227. {rp-0.1.1386 → rp-0.1.1387}/rp/misc/claude_bash.sh +0 -0
  228. {rp-0.1.1386 → rp-0.1.1387}/rp/misc/claude_panel.py +0 -0
  229. {rp-0.1.1386 → rp-0.1.1387}/rp/misc/death_of_the_mind.py +0 -0
  230. {rp-0.1.1386 → rp-0.1.1387}/rp/misc/flappy.py +0 -0
  231. {rp-0.1.1386 → rp-0.1.1387}/rp/misc/mario.py +0 -0
  232. {rp-0.1.1386 → rp-0.1.1387}/rp/misc/matrix.py +0 -0
  233. {rp-0.1.1386 → rp-0.1.1387}/rp/misc/mpi_untitled.py +0 -0
  234. {rp-0.1.1386 → rp-0.1.1387}/rp/misc/py2048.py +0 -0
  235. {rp-0.1.1386 → rp-0.1.1387}/rp/misc/pychess.py +0 -0
  236. {rp-0.1.1386 → rp-0.1.1387}/rp/misc/rp_logo.svg +0 -0
  237. {rp-0.1.1386 → rp-0.1.1387}/rp/misc/rp_mpi.py +0 -0
  238. {rp-0.1.1386 → rp-0.1.1387}/rp/misc/ryan_zshrc.py +0 -0
  239. {rp-0.1.1386 → rp-0.1.1387}/rp/misc/shotgun.py +0 -0
  240. {rp-0.1.1386 → rp-0.1.1387}/rp/misc/skia_trail_interactive_paint_demo.py +0 -0
  241. {rp-0.1.1386 → rp-0.1.1387}/rp/misc/snake.py +0 -0
  242. {rp-0.1.1386 → rp-0.1.1387}/rp/misc/sudoku.py +0 -0
  243. {rp-0.1.1386 → rp-0.1.1387}/rp/misc/tetris.py +0 -0
  244. {rp-0.1.1386 → rp-0.1.1387}/rp/misc/trans.py +0 -0
  245. {rp-0.1.1386 → rp-0.1.1387}/rp/prompt_toolkit/__init__.py +0 -0
  246. {rp-0.1.1386 → rp-0.1.1387}/rp/prompt_toolkit/application.py +0 -0
  247. {rp-0.1.1386 → rp-0.1.1387}/rp/prompt_toolkit/auto_suggest.py +0 -0
  248. {rp-0.1.1386 → rp-0.1.1387}/rp/prompt_toolkit/buffer.py +0 -0
  249. {rp-0.1.1386 → rp-0.1.1387}/rp/prompt_toolkit/buffer_mapping.py +0 -0
  250. {rp-0.1.1386 → rp-0.1.1387}/rp/prompt_toolkit/cache.py +0 -0
  251. {rp-0.1.1386 → rp-0.1.1387}/rp/prompt_toolkit/clipboard/__init__.py +0 -0
  252. {rp-0.1.1386 → rp-0.1.1387}/rp/prompt_toolkit/clipboard/base.py +0 -0
  253. {rp-0.1.1386 → rp-0.1.1387}/rp/prompt_toolkit/clipboard/in_memory.py +0 -0
  254. {rp-0.1.1386 → rp-0.1.1387}/rp/prompt_toolkit/clipboard/pyperclip.py +0 -0
  255. {rp-0.1.1386 → rp-0.1.1387}/rp/prompt_toolkit/completion.py +0 -0
  256. {rp-0.1.1386 → rp-0.1.1387}/rp/prompt_toolkit/contrib/__init__.py +0 -0
  257. {rp-0.1.1386 → rp-0.1.1387}/rp/prompt_toolkit/contrib/completers/__init__.py +0 -0
  258. {rp-0.1.1386 → rp-0.1.1387}/rp/prompt_toolkit/contrib/completers/base.py +0 -0
  259. {rp-0.1.1386 → rp-0.1.1387}/rp/prompt_toolkit/contrib/completers/filesystem.py +0 -0
  260. {rp-0.1.1386 → rp-0.1.1387}/rp/prompt_toolkit/contrib/completers/system.py +0 -0
  261. {rp-0.1.1386 → rp-0.1.1387}/rp/prompt_toolkit/contrib/regular_languages/__init__.py +0 -0
  262. {rp-0.1.1386 → rp-0.1.1387}/rp/prompt_toolkit/contrib/regular_languages/compiler.py +0 -0
  263. {rp-0.1.1386 → rp-0.1.1387}/rp/prompt_toolkit/contrib/regular_languages/completion.py +0 -0
  264. {rp-0.1.1386 → rp-0.1.1387}/rp/prompt_toolkit/contrib/regular_languages/lexer.py +0 -0
  265. {rp-0.1.1386 → rp-0.1.1387}/rp/prompt_toolkit/contrib/regular_languages/regex_parser.py +0 -0
  266. {rp-0.1.1386 → rp-0.1.1387}/rp/prompt_toolkit/contrib/regular_languages/validation.py +0 -0
  267. {rp-0.1.1386 → rp-0.1.1387}/rp/prompt_toolkit/contrib/telnet/__init__.py +0 -0
  268. {rp-0.1.1386 → rp-0.1.1387}/rp/prompt_toolkit/contrib/telnet/application.py +0 -0
  269. {rp-0.1.1386 → rp-0.1.1387}/rp/prompt_toolkit/contrib/telnet/log.py +0 -0
  270. {rp-0.1.1386 → rp-0.1.1387}/rp/prompt_toolkit/contrib/telnet/protocol.py +0 -0
  271. {rp-0.1.1386 → rp-0.1.1387}/rp/prompt_toolkit/contrib/telnet/server.py +0 -0
  272. {rp-0.1.1386 → rp-0.1.1387}/rp/prompt_toolkit/contrib/validators/__init__.py +0 -0
  273. {rp-0.1.1386 → rp-0.1.1387}/rp/prompt_toolkit/contrib/validators/base.py +0 -0
  274. {rp-0.1.1386 → rp-0.1.1387}/rp/prompt_toolkit/document.py +0 -0
  275. {rp-0.1.1386 → rp-0.1.1387}/rp/prompt_toolkit/enums.py +0 -0
  276. {rp-0.1.1386 → rp-0.1.1387}/rp/prompt_toolkit/eventloop/__init__.py +0 -0
  277. {rp-0.1.1386 → rp-0.1.1387}/rp/prompt_toolkit/eventloop/asyncio_base.py +0 -0
  278. {rp-0.1.1386 → rp-0.1.1387}/rp/prompt_toolkit/eventloop/asyncio_posix.py +0 -0
  279. {rp-0.1.1386 → rp-0.1.1387}/rp/prompt_toolkit/eventloop/asyncio_win32.py +0 -0
  280. {rp-0.1.1386 → rp-0.1.1387}/rp/prompt_toolkit/eventloop/base.py +0 -0
  281. {rp-0.1.1386 → rp-0.1.1387}/rp/prompt_toolkit/eventloop/callbacks.py +0 -0
  282. {rp-0.1.1386 → rp-0.1.1387}/rp/prompt_toolkit/eventloop/inputhook.py +0 -0
  283. {rp-0.1.1386 → rp-0.1.1387}/rp/prompt_toolkit/eventloop/posix.py +0 -0
  284. {rp-0.1.1386 → rp-0.1.1387}/rp/prompt_toolkit/eventloop/posix_utils.py +0 -0
  285. {rp-0.1.1386 → rp-0.1.1387}/rp/prompt_toolkit/eventloop/select.py +0 -0
  286. {rp-0.1.1386 → rp-0.1.1387}/rp/prompt_toolkit/eventloop/utils.py +0 -0
  287. {rp-0.1.1386 → rp-0.1.1387}/rp/prompt_toolkit/eventloop/win32.py +0 -0
  288. {rp-0.1.1386 → rp-0.1.1387}/rp/prompt_toolkit/filters/__init__.py +0 -0
  289. {rp-0.1.1386 → rp-0.1.1387}/rp/prompt_toolkit/filters/base.py +0 -0
  290. {rp-0.1.1386 → rp-0.1.1387}/rp/prompt_toolkit/filters/cli.py +0 -0
  291. {rp-0.1.1386 → rp-0.1.1387}/rp/prompt_toolkit/filters/types.py +0 -0
  292. {rp-0.1.1386 → rp-0.1.1387}/rp/prompt_toolkit/filters/utils.py +0 -0
  293. {rp-0.1.1386 → rp-0.1.1387}/rp/prompt_toolkit/history.py +0 -0
  294. {rp-0.1.1386 → rp-0.1.1387}/rp/prompt_toolkit/input.py +0 -0
  295. {rp-0.1.1386 → rp-0.1.1387}/rp/prompt_toolkit/interface.py +0 -0
  296. {rp-0.1.1386 → rp-0.1.1387}/rp/prompt_toolkit/key_binding/__init__.py +0 -0
  297. {rp-0.1.1386 → rp-0.1.1387}/rp/prompt_toolkit/key_binding/bindings/__init__.py +0 -0
  298. {rp-0.1.1386 → rp-0.1.1387}/rp/prompt_toolkit/key_binding/bindings/basic.py +0 -0
  299. {rp-0.1.1386 → rp-0.1.1387}/rp/prompt_toolkit/key_binding/bindings/completion.py +0 -0
  300. {rp-0.1.1386 → rp-0.1.1387}/rp/prompt_toolkit/key_binding/bindings/emacs.py +0 -0
  301. {rp-0.1.1386 → rp-0.1.1387}/rp/prompt_toolkit/key_binding/bindings/named_commands.py +0 -0
  302. {rp-0.1.1386 → rp-0.1.1387}/rp/prompt_toolkit/key_binding/bindings/scroll.py +0 -0
  303. {rp-0.1.1386 → rp-0.1.1387}/rp/prompt_toolkit/key_binding/bindings/vi.py +0 -0
  304. {rp-0.1.1386 → rp-0.1.1387}/rp/prompt_toolkit/key_binding/defaults.py +0 -0
  305. {rp-0.1.1386 → rp-0.1.1387}/rp/prompt_toolkit/key_binding/digraphs.py +0 -0
  306. {rp-0.1.1386 → rp-0.1.1387}/rp/prompt_toolkit/key_binding/input_processor.py +0 -0
  307. {rp-0.1.1386 → rp-0.1.1387}/rp/prompt_toolkit/key_binding/manager.py +0 -0
  308. {rp-0.1.1386 → rp-0.1.1387}/rp/prompt_toolkit/key_binding/registry.py +0 -0
  309. {rp-0.1.1386 → rp-0.1.1387}/rp/prompt_toolkit/key_binding/vi_state.py +0 -0
  310. {rp-0.1.1386 → rp-0.1.1387}/rp/prompt_toolkit/keys.py +0 -0
  311. {rp-0.1.1386 → rp-0.1.1387}/rp/prompt_toolkit/layout/__init__.py +0 -0
  312. {rp-0.1.1386 → rp-0.1.1387}/rp/prompt_toolkit/layout/containers.py +0 -0
  313. {rp-0.1.1386 → rp-0.1.1387}/rp/prompt_toolkit/layout/controls.py +0 -0
  314. {rp-0.1.1386 → rp-0.1.1387}/rp/prompt_toolkit/layout/dimension.py +0 -0
  315. {rp-0.1.1386 → rp-0.1.1387}/rp/prompt_toolkit/layout/lexers.py +0 -0
  316. {rp-0.1.1386 → rp-0.1.1387}/rp/prompt_toolkit/layout/margins.py +0 -0
  317. {rp-0.1.1386 → rp-0.1.1387}/rp/prompt_toolkit/layout/menus.py +0 -0
  318. {rp-0.1.1386 → rp-0.1.1387}/rp/prompt_toolkit/layout/mouse_handlers.py +0 -0
  319. {rp-0.1.1386 → rp-0.1.1387}/rp/prompt_toolkit/layout/processors.py +0 -0
  320. {rp-0.1.1386 → rp-0.1.1387}/rp/prompt_toolkit/layout/prompt.py +0 -0
  321. {rp-0.1.1386 → rp-0.1.1387}/rp/prompt_toolkit/layout/screen.py +0 -0
  322. {rp-0.1.1386 → rp-0.1.1387}/rp/prompt_toolkit/layout/toolbars.py +0 -0
  323. {rp-0.1.1386 → rp-0.1.1387}/rp/prompt_toolkit/layout/untitled.py +0 -0
  324. {rp-0.1.1386 → rp-0.1.1387}/rp/prompt_toolkit/layout/utils.py +0 -0
  325. {rp-0.1.1386 → rp-0.1.1387}/rp/prompt_toolkit/mouse_events.py +0 -0
  326. {rp-0.1.1386 → rp-0.1.1387}/rp/prompt_toolkit/output.py +0 -0
  327. {rp-0.1.1386 → rp-0.1.1387}/rp/prompt_toolkit/reactive.py +0 -0
  328. {rp-0.1.1386 → rp-0.1.1387}/rp/prompt_toolkit/renderer.py +0 -0
  329. {rp-0.1.1386 → rp-0.1.1387}/rp/prompt_toolkit/search_state.py +0 -0
  330. {rp-0.1.1386 → rp-0.1.1387}/rp/prompt_toolkit/selection.py +0 -0
  331. {rp-0.1.1386 → rp-0.1.1387}/rp/prompt_toolkit/shortcuts.py +0 -0
  332. {rp-0.1.1386 → rp-0.1.1387}/rp/prompt_toolkit/styles/__init__.py +0 -0
  333. {rp-0.1.1386 → rp-0.1.1387}/rp/prompt_toolkit/styles/base.py +0 -0
  334. {rp-0.1.1386 → rp-0.1.1387}/rp/prompt_toolkit/styles/defaults.py +0 -0
  335. {rp-0.1.1386 → rp-0.1.1387}/rp/prompt_toolkit/styles/from_dict.py +0 -0
  336. {rp-0.1.1386 → rp-0.1.1387}/rp/prompt_toolkit/styles/from_pygments.py +0 -0
  337. {rp-0.1.1386 → rp-0.1.1387}/rp/prompt_toolkit/styles/utils.py +0 -0
  338. {rp-0.1.1386 → rp-0.1.1387}/rp/prompt_toolkit/terminal/__init__.py +0 -0
  339. {rp-0.1.1386 → rp-0.1.1387}/rp/prompt_toolkit/terminal/conemu_output.py +0 -0
  340. {rp-0.1.1386 → rp-0.1.1387}/rp/prompt_toolkit/terminal/vt100_input.py +0 -0
  341. {rp-0.1.1386 → rp-0.1.1387}/rp/prompt_toolkit/terminal/vt100_output.py +0 -0
  342. {rp-0.1.1386 → rp-0.1.1387}/rp/prompt_toolkit/terminal/win32_input.py +0 -0
  343. {rp-0.1.1386 → rp-0.1.1387}/rp/prompt_toolkit/terminal/win32_output.py +0 -0
  344. {rp-0.1.1386 → rp-0.1.1387}/rp/prompt_toolkit/token.py +0 -0
  345. {rp-0.1.1386 → rp-0.1.1387}/rp/prompt_toolkit/utils.py +0 -0
  346. {rp-0.1.1386 → rp-0.1.1387}/rp/prompt_toolkit/validation.py +0 -0
  347. {rp-0.1.1386 → rp-0.1.1387}/rp/prompt_toolkit/win32_types.py +0 -0
  348. {rp-0.1.1386 → rp-0.1.1387}/rp/rp_ptpython/__init__.py +0 -0
  349. {rp-0.1.1386 → rp-0.1.1387}/rp/rp_ptpython/__main__.py +0 -0
  350. {rp-0.1.1386 → rp-0.1.1387}/rp/rp_ptpython/ast_selection.py +0 -0
  351. {rp-0.1.1386 → rp-0.1.1387}/rp/rp_ptpython/async_analyzer_base.py +0 -0
  352. {rp-0.1.1386 → rp-0.1.1387}/rp/rp_ptpython/async_jedi_highlighter.py +0 -0
  353. {rp-0.1.1386 → rp-0.1.1387}/rp/rp_ptpython/backslash_commands.py +0 -0
  354. {rp-0.1.1386 → rp-0.1.1387}/rp/rp_ptpython/bash_completer.py +0 -0
  355. {rp-0.1.1386 → rp-0.1.1387}/rp/rp_ptpython/bash_extract.py +0 -0
  356. {rp-0.1.1386 → rp-0.1.1387}/rp/rp_ptpython/bash_inline.py +0 -0
  357. {rp-0.1.1386 → rp-0.1.1387}/rp/rp_ptpython/bash_rename.py +0 -0
  358. {rp-0.1.1386 → rp-0.1.1387}/rp/rp_ptpython/bash_selection.py +0 -0
  359. {rp-0.1.1386 → rp-0.1.1387}/rp/rp_ptpython/completer.py +0 -0
  360. {rp-0.1.1386 → rp-0.1.1387}/rp/rp_ptpython/completer_old.py +0 -0
  361. {rp-0.1.1386 → rp-0.1.1387}/rp/rp_ptpython/completion_ranker.py +0 -0
  362. {rp-0.1.1386 → rp-0.1.1387}/rp/rp_ptpython/completion_schema.py +0 -0
  363. {rp-0.1.1386 → rp-0.1.1387}/rp/rp_ptpython/completion_types.py +0 -0
  364. {rp-0.1.1386 → rp-0.1.1387}/rp/rp_ptpython/eventloop.py +0 -0
  365. {rp-0.1.1386 → rp-0.1.1387}/rp/rp_ptpython/filters.py +0 -0
  366. {rp-0.1.1386 → rp-0.1.1387}/rp/rp_ptpython/history_browser.py +0 -0
  367. {rp-0.1.1386 → rp-0.1.1387}/rp/rp_ptpython/ipython.py +0 -0
  368. {rp-0.1.1386 → rp-0.1.1387}/rp/rp_ptpython/jedi_highlighter.py +0 -0
  369. {rp-0.1.1386 → rp-0.1.1387}/rp/rp_ptpython/jedi_lexer.py +0 -0
  370. {rp-0.1.1386 → rp-0.1.1387}/rp/rp_ptpython/jedi_utils.py +0 -0
  371. {rp-0.1.1386 → rp-0.1.1387}/rp/rp_ptpython/key_bindings.py +0 -0
  372. {rp-0.1.1386 → rp-0.1.1387}/rp/rp_ptpython/layout.py +0 -0
  373. {rp-0.1.1386 → rp-0.1.1387}/rp/rp_ptpython/patch_linecache.py +0 -0
  374. {rp-0.1.1386 → rp-0.1.1387}/rp/rp_ptpython/path_completer_utils.py +0 -0
  375. {rp-0.1.1386 → rp-0.1.1387}/rp/rp_ptpython/prompt_style.py +0 -0
  376. {rp-0.1.1386 → rp-0.1.1387}/rp/rp_ptpython/python_input.py +0 -0
  377. {rp-0.1.1386 → rp-0.1.1387}/rp/rp_ptpython/r_iterm_comm.py +0 -0
  378. {rp-0.1.1386 → rp-0.1.1387}/rp/rp_ptpython/refactor_extract.py +0 -0
  379. {rp-0.1.1386 → rp-0.1.1387}/rp/rp_ptpython/refactor_inline.py +0 -0
  380. {rp-0.1.1386 → rp-0.1.1387}/rp/rp_ptpython/refactor_move.py +0 -0
  381. {rp-0.1.1386 → rp-0.1.1387}/rp/rp_ptpython/refactor_move_bash.py +0 -0
  382. {rp-0.1.1386 → rp-0.1.1387}/rp/rp_ptpython/refactor_rename.py +0 -0
  383. {rp-0.1.1386 → rp-0.1.1387}/rp/rp_ptpython/repl.py +0 -0
  384. {rp-0.1.1386 → rp-0.1.1387}/rp/rp_ptpython/rp_ptpdb/__init__.py +0 -0
  385. {rp-0.1.1386 → rp-0.1.1387}/rp/rp_ptpython/rp_ptpdb/commands.py +0 -0
  386. {rp-0.1.1386 → rp-0.1.1387}/rp/rp_ptpython/rp_ptpdb/completers.py +0 -0
  387. {rp-0.1.1386 → rp-0.1.1387}/rp/rp_ptpython/rp_ptpdb/completion_hints.py +0 -0
  388. {rp-0.1.1386 → rp-0.1.1387}/rp/rp_ptpython/rp_ptpdb/grammar.py +0 -0
  389. {rp-0.1.1386 → rp-0.1.1387}/rp/rp_ptpython/rp_ptpdb/key_bindings.py +0 -0
  390. {rp-0.1.1386 → rp-0.1.1387}/rp/rp_ptpython/rp_ptpdb/layout.py +0 -0
  391. {rp-0.1.1386 → rp-0.1.1387}/rp/rp_ptpython/rp_ptpdb/style.py +0 -0
  392. {rp-0.1.1386 → rp-0.1.1387}/rp/rp_ptpython/rp_ptpdb/toolbars.py +0 -0
  393. {rp-0.1.1386 → rp-0.1.1387}/rp/rp_ptpython/selection_utils.py +0 -0
  394. {rp-0.1.1386 → rp-0.1.1387}/rp/rp_ptpython/style.py +0 -0
  395. {rp-0.1.1386 → rp-0.1.1387}/rp/rp_ptpython/testable_keybindings.py +0 -0
  396. {rp-0.1.1386 → rp-0.1.1387}/rp/rp_ptpython/treesitter_selection.py +0 -0
  397. {rp-0.1.1386 → rp-0.1.1387}/rp/rp_ptpython/treesitter_semantic.py +0 -0
  398. {rp-0.1.1386 → rp-0.1.1387}/rp/rp_ptpython/unreachable_detector.py +0 -0
  399. {rp-0.1.1386 → rp-0.1.1387}/rp/rp_ptpython/utils.py +0 -0
  400. {rp-0.1.1386 → rp-0.1.1387}/rp/rp_ptpython/validator.py +0 -0
  401. {rp-0.1.1386 → rp-0.1.1387}/rp/ryan_vimrc.py +0 -0
  402. {rp-0.1.1386 → rp-0.1.1387}/rp/web_evaluator.py +0 -0
  403. {rp-0.1.1386 → rp-0.1.1387}/rp.egg-info/SOURCES.txt +0 -0
  404. {rp-0.1.1386 → rp-0.1.1387}/rp.egg-info/dependency_links.txt +0 -0
  405. {rp-0.1.1386 → rp-0.1.1387}/rp.egg-info/entry_points.txt +0 -0
  406. {rp-0.1.1386 → rp-0.1.1387}/rp.egg-info/requires.txt +0 -0
  407. {rp-0.1.1386 → rp-0.1.1387}/rp.egg-info/top_level.txt +0 -0
  408. {rp-0.1.1386 → rp-0.1.1387}/setup.cfg +0 -0
  409. {rp-0.1.1386 → rp-0.1.1387}/setup.py +0 -0
  410. {rp-0.1.1386 → rp-0.1.1387}/untitled.c +0 -0
  411. {rp-0.1.1386 → rp-0.1.1387}/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.1387
4
4
  Summary: Ryan's Python: IDE + Library + Tools
5
5
  Home-page: https://github.com/RyannDaGreat/rp
6
6
  Author: Ryan Burgert
@@ -275,6 +275,26 @@ def make_file_public(service, file_id: str) -> str:
275
275
  return DRIVE_FILE_URL.format(file_id)
276
276
 
277
277
 
278
+ def _format_eta(done: int, total: int, elapsed: float) -> str:
279
+ """Format ETA string based on progress and elapsed time."""
280
+ if done <= 0 or elapsed <= 0:
281
+ return ""
282
+ rate = done / elapsed
283
+ remaining = total - done
284
+ eta_seconds = remaining / rate
285
+ return f", ETA: {int(eta_seconds // 60)}m{int(eta_seconds % 60):02d}s"
286
+
287
+
288
+ def _format_progress(index: int, total: int, done: int, total_size: int, elapsed: float, use_bytes: bool = True) -> str:
289
+ """Format overall progress string."""
290
+ eta = _format_eta(done, total_size, elapsed)
291
+ if use_bytes:
292
+ done_str = rp.human_readable_file_size(done)
293
+ total_str = rp.human_readable_file_size(total_size)
294
+ return f"[{index}/{total}] {done_str} / {total_str}{eta}"
295
+ return f"[{index}/{total}]{eta}"
296
+
297
+
278
298
  def upload_media_sequential(
279
299
  service,
280
300
  file_paths: list[str],
@@ -282,14 +302,22 @@ def upload_media_sequential(
282
302
  ) -> list[dict]:
283
303
  """Upload multiple media files sequentially with progress bars."""
284
304
  results = []
305
+ total_bytes = sum(rp.get_file_size(fp) for fp in file_paths)
306
+ uploaded_bytes = 0
307
+ start_time = time.time()
285
308
 
286
- for fp in file_paths:
309
+ for i, fp in enumerate(file_paths):
287
310
  size = rp.get_file_size(fp)
311
+ elapsed = time.time() - start_time
312
+ progress_str = _format_progress(i + 1, len(file_paths), uploaded_bytes, total_bytes, elapsed)
313
+ rp.fansi_print(f" {progress_str}", "cyan")
314
+
288
315
  pbar = tqdm(
289
316
  total=size,
290
317
  desc=rp.get_file_name(fp),
291
318
  unit="B",
292
319
  unit_scale=True,
320
+ leave=False,
293
321
  )
294
322
  last_progress = [0]
295
323
 
@@ -299,7 +327,9 @@ def upload_media_sequential(
299
327
  last_progress[0] = current
300
328
 
301
329
  result = upload_media(service, fp, folder_id, progress_cb)
330
+ pbar.update(size - last_progress[0]) # Ensure 100%
302
331
  pbar.close()
332
+ uploaded_bytes += size
303
333
  rp.fansi_print(f" Uploaded: {result['webViewLink']}", "green")
304
334
  results.append(result)
305
335
 
@@ -720,9 +750,12 @@ def media_to_slides(
720
750
  path_to_media = dict(zip(all_paths, media))
721
751
 
722
752
  rp.fansi_print("\nMaking files publicly accessible...", "cyan")
723
- for m in media:
753
+ start_time = time.time()
754
+ for i, m in enumerate(media):
755
+ elapsed = time.time() - start_time
756
+ progress_str = _format_progress(i + 1, len(media), i, len(media), elapsed, use_bytes=False)
757
+ rp.fansi_print(f" {progress_str} {m['name']}", "cyan")
724
758
  make_file_public(drive_service, m["id"])
725
- rp.fansi_print(f" {m['name']}: public", "green")
726
759
 
727
760
  # Build slides_data for create_slides_with_media_grid
728
761
  slides_data = []
@@ -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
+ 1387
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 1.0
2
2
  Name: rp
3
- Version: 0.1.1386
3
+ Version: 0.1.1387
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.1387/version.py ADDED
@@ -0,0 +1 @@
1
+ 1387
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