rp 0.1.1390__tar.gz → 0.1.1391__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.1390 → rp-0.1.1391}/PKG-INFO +1 -1
  2. {rp-0.1.1390 → rp-0.1.1391}/rp/documentation.py +8 -1
  3. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/powerpoint/media_to_slides.py +92 -36
  4. {rp-0.1.1390 → rp-0.1.1391}/rp/misc/claude_bash.sh +3 -2
  5. {rp-0.1.1390 → rp-0.1.1391}/rp/r.py +960 -102
  6. {rp-0.1.1390 → rp-0.1.1391}/rp/rp_ptpython/bash_completer.py +35 -9
  7. {rp-0.1.1390 → rp-0.1.1391}/rp/rp_ptpython/completer.py +30 -8
  8. {rp-0.1.1390 → rp-0.1.1391}/rp/rp_ptpython/completion_schema.py +291 -25
  9. {rp-0.1.1390 → rp-0.1.1391}/rp/rp_ptpython/key_bindings.py +15 -0
  10. {rp-0.1.1390 → rp-0.1.1391}/rp/rp_ptpython/path_completer_utils.py +96 -52
  11. {rp-0.1.1390 → rp-0.1.1391}/rp/rp_ptpython/refactor_move_bash.py +68 -19
  12. {rp-0.1.1390 → rp-0.1.1391}/rp/rp_ptpython/unreachable_detector.py +3 -3
  13. rp-0.1.1391/rp/version.py +1 -0
  14. {rp-0.1.1390 → rp-0.1.1391}/rp.egg-info/PKG-INFO +1 -1
  15. rp-0.1.1391/version.py +1 -0
  16. rp-0.1.1390/rp/version.py +0 -1
  17. rp-0.1.1390/version.py +0 -1
  18. {rp-0.1.1390 → rp-0.1.1391}/.gitignore +0 -0
  19. {rp-0.1.1390 → rp-0.1.1391}/.idea/QuickPython.iml +0 -0
  20. {rp-0.1.1390 → rp-0.1.1391}/.idea/QuickPython.time +0 -0
  21. {rp-0.1.1390 → rp-0.1.1391}/.idea/encodings.xml +0 -0
  22. {rp-0.1.1390 → rp-0.1.1391}/.idea/inspectionProfiles/Project_Default.xml +0 -0
  23. {rp-0.1.1390 → rp-0.1.1391}/.idea/misc.xml +0 -0
  24. {rp-0.1.1390 → rp-0.1.1391}/.idea/modules.xml +0 -0
  25. {rp-0.1.1390 → rp-0.1.1391}/.idea/vcs.xml +0 -0
  26. {rp-0.1.1390 → rp-0.1.1391}/.idea/workspace.xml +0 -0
  27. {rp-0.1.1390 → rp-0.1.1391}/.publish.sh.un~ +0 -0
  28. {rp-0.1.1390 → rp-0.1.1391}/.setup.py.un~ +0 -0
  29. {rp-0.1.1390 → rp-0.1.1391}/.update_module_paths.py.un~ +0 -0
  30. {rp-0.1.1390 → rp-0.1.1391}/LICENSE.txt +0 -0
  31. {rp-0.1.1390 → rp-0.1.1391}/README +0 -0
  32. {rp-0.1.1390 → rp-0.1.1391}/Scrap +0 -0
  33. {rp-0.1.1390 → rp-0.1.1391}/aoisdasd +0 -0
  34. {rp-0.1.1390 → rp-0.1.1391}/increment_version.py +0 -0
  35. {rp-0.1.1390 → rp-0.1.1391}/oijio +0 -0
  36. {rp-0.1.1390 → rp-0.1.1391}/publish.sh +0 -0
  37. {rp-0.1.1390 → rp-0.1.1391}/pyqtconsoletest.py +0 -0
  38. {rp-0.1.1390 → rp-0.1.1391}/rp/__init__.py +0 -0
  39. {rp-0.1.1390 → rp-0.1.1391}/rp/__main__.py +0 -0
  40. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/Pyperclip.py +0 -0
  41. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/__init__.py +0 -0
  42. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/debug_comment.py +0 -0
  43. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/draw_code_minimap.py +0 -0
  44. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/graveyard.py +0 -0
  45. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/parso/__init__.py +0 -0
  46. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/parso/_compatibility.py +0 -0
  47. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/parso/cache.py +0 -0
  48. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/parso/file_io.py +0 -0
  49. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/parso/grammar.py +0 -0
  50. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/parso/normalizer.py +0 -0
  51. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/parso/parser.py +0 -0
  52. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/parso/pgen2/__init__.py +0 -0
  53. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/parso/pgen2/generator.py +0 -0
  54. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/parso/pgen2/grammar_parser.py +0 -0
  55. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/parso/python/__init__.py +0 -0
  56. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/parso/python/diff.py +0 -0
  57. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/parso/python/errors.py +0 -0
  58. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/parso/python/grammar26.txt +0 -0
  59. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/parso/python/grammar27.txt +0 -0
  60. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/parso/python/grammar310.txt +0 -0
  61. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/parso/python/grammar311.txt +0 -0
  62. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/parso/python/grammar312.txt +0 -0
  63. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/parso/python/grammar33.txt +0 -0
  64. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/parso/python/grammar34.txt +0 -0
  65. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/parso/python/grammar35.txt +0 -0
  66. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/parso/python/grammar36.txt +0 -0
  67. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/parso/python/grammar37.txt +0 -0
  68. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/parso/python/grammar38.txt +0 -0
  69. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/parso/python/grammar39.txt +0 -0
  70. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/parso/python/parser.py +0 -0
  71. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/parso/python/pep8.py +0 -0
  72. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/parso/python/prefix.py +0 -0
  73. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/parso/python/token.py +0 -0
  74. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/parso/python/tokenize.py +0 -0
  75. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/parso/python/tree.py +0 -0
  76. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/parso/tree.py +0 -0
  77. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/parso/utils.py +0 -0
  78. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/peepdis/__init__.py +0 -0
  79. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/peepdis/core.py +0 -0
  80. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/peepdis/datastructures.py +0 -0
  81. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/peepdis/legacy.py +0 -0
  82. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/peepdis/preferences.py +0 -0
  83. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/powerpoint/__init__.py +0 -0
  84. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/powerpoint/__main__.py +0 -0
  85. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/powerpoint/convert_pptx_videos_to_gifs.py +0 -0
  86. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/powerpoint/convert_tmux.py +0 -0
  87. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/powerpoint/google_slides_upload.py +0 -0
  88. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/powerpoint/pptx_utils.py +0 -0
  89. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/powerpoint_converter.py +0 -0
  90. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/profile_vim_plugins.py +0 -0
  91. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/pw_crypt.py +0 -0
  92. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/pyflann/__init__.py +0 -0
  93. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/pyflann/bindings/__init__.py +0 -0
  94. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/pyflann/bindings/flann_ctypes.py +0 -0
  95. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/pyflann/exceptions.py +0 -0
  96. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/pyflann/index.py +0 -0
  97. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/pyflann/io/__init__.py +0 -0
  98. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/pyflann/io/binary_dataset.py +0 -0
  99. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/pyflann/io/dat_dataset.py +0 -0
  100. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/pyflann/io/dataset.py +0 -0
  101. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/pyflann/io/hdf5_dataset.py +0 -0
  102. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/pyflann/io/npy_dataset.py +0 -0
  103. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/pyflann/util/__init__.py +0 -0
  104. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/pyflann/util/weave_tools.py +0 -0
  105. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/pyfx/__init__.py +0 -0
  106. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/pyfx/__version__.py +0 -0
  107. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/pyfx/app.py +0 -0
  108. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/pyfx/cli.py +0 -0
  109. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/pyfx/cli_utils.py +0 -0
  110. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/pyfx/config/__init__.py +0 -0
  111. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/pyfx/config/config.py +0 -0
  112. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/pyfx/config/config_error.py +0 -0
  113. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/pyfx/config/config_parser.py +0 -0
  114. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/pyfx/config/config_transformer.py +0 -0
  115. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/pyfx/config/validators/__init__.py +0 -0
  116. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/pyfx/config/validators/options.py +0 -0
  117. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/pyfx/logging.py +0 -0
  118. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/pyfx/model/__init__.py +0 -0
  119. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/pyfx/model/autocomplete/__init__.py +0 -0
  120. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/pyfx/model/autocomplete/autocomplete_listener.py +0 -0
  121. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/pyfx/model/common/__init__.py +0 -0
  122. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/pyfx/model/common/jsonpath/JSONPathLexer.py +0 -0
  123. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/pyfx/model/common/jsonpath/JSONPathListener.py +0 -0
  124. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/pyfx/model/common/jsonpath/JSONPathParser.py +0 -0
  125. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/pyfx/model/common/jsonpath/__init__.py +0 -0
  126. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/pyfx/model/io/__init__.py +0 -0
  127. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/pyfx/model/io/datasource.py +0 -0
  128. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/pyfx/model/model.py +0 -0
  129. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/pyfx/service/__init__.py +0 -0
  130. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/pyfx/service/client.py +0 -0
  131. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/pyfx/service/dispatcher.py +0 -0
  132. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/pyfx/view/__init__.py +0 -0
  133. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/pyfx/view/common/__init__.py +0 -0
  134. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/pyfx/view/common/popup.py +0 -0
  135. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/pyfx/view/common/selectable_text.py +0 -0
  136. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/pyfx/view/components/__init__.py +0 -0
  137. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/pyfx/view/components/autocomplete_popup/__init__.py +0 -0
  138. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/pyfx/view/components/autocomplete_popup/autocomplete_popup.py +0 -0
  139. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/pyfx/view/components/autocomplete_popup/autocomplete_popup_keymapper.py +0 -0
  140. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/pyfx/view/components/help_bar/__init__.py +0 -0
  141. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/pyfx/view/components/help_bar/help_bar.py +0 -0
  142. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/pyfx/view/components/help_page/__init__.py +0 -0
  143. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/pyfx/view/components/help_page/detailed_help_page.py +0 -0
  144. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/pyfx/view/components/json_browser/__init__.py +0 -0
  145. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/pyfx/view/components/json_browser/json_browser.py +0 -0
  146. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/pyfx/view/components/json_browser/json_browser_keymapper.py +0 -0
  147. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/pyfx/view/components/query_bar/__init__.py +0 -0
  148. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/pyfx/view/components/query_bar/query_bar.py +0 -0
  149. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/pyfx/view/components/query_bar/query_bar_keymapper.py +0 -0
  150. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/pyfx/view/json_lib/__init__.py +0 -0
  151. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/pyfx/view/json_lib/array/__init__.py +0 -0
  152. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/pyfx/view/json_lib/array/array_end_node.py +0 -0
  153. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/pyfx/view/json_lib/array/array_end_widget.py +0 -0
  154. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/pyfx/view/json_lib/array/array_node.py +0 -0
  155. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/pyfx/view/json_lib/array/array_start_widget.py +0 -0
  156. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/pyfx/view/json_lib/array/array_unexpanded_widget.py +0 -0
  157. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/pyfx/view/json_lib/json_composite_end_node.py +0 -0
  158. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/pyfx/view/json_lib/json_composite_node.py +0 -0
  159. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/pyfx/view/json_lib/json_listbox.py +0 -0
  160. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/pyfx/view/json_lib/json_listwalker.py +0 -0
  161. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/pyfx/view/json_lib/json_simple_node.py +0 -0
  162. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/pyfx/view/json_lib/json_widget.py +0 -0
  163. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/pyfx/view/json_lib/node_factory.py +0 -0
  164. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/pyfx/view/json_lib/object/__init__.py +0 -0
  165. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/pyfx/view/json_lib/object/object_end_node.py +0 -0
  166. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/pyfx/view/json_lib/object/object_end_widget.py +0 -0
  167. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/pyfx/view/json_lib/object/object_node.py +0 -0
  168. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/pyfx/view/json_lib/object/object_start_widget.py +0 -0
  169. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/pyfx/view/json_lib/object/object_unexpanded_widget.py +0 -0
  170. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/pyfx/view/json_lib/primitive/__init__.py +0 -0
  171. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/pyfx/view/json_lib/primitive/base.py +0 -0
  172. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/pyfx/view/json_lib/primitive/boolean.py +0 -0
  173. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/pyfx/view/json_lib/primitive/generic.py +0 -0
  174. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/pyfx/view/json_lib/primitive/integer.py +0 -0
  175. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/pyfx/view/json_lib/primitive/null.py +0 -0
  176. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/pyfx/view/json_lib/primitive/numeric.py +0 -0
  177. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/pyfx/view/json_lib/primitive/string.py +0 -0
  178. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/pyfx/view/json_lib/selector/__init__.py +0 -0
  179. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/pyfx/view/keymapper/__init__.py +0 -0
  180. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/pyfx/view/keymapper/abstract_component_keymapper.py +0 -0
  181. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/pyfx/view/keymapper/keymapper.py +0 -0
  182. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/pyfx/view/keymapper/keymapper_config.py +0 -0
  183. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/pyfx/view/keymapper/keymapper_config_parser.py +0 -0
  184. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/pyfx/view/theme/__init__.py +0 -0
  185. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/pyfx/view/theme/theme.py +0 -0
  186. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/pyfx/view/theme/theme_config.py +0 -0
  187. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/pyfx/view/theme/theme_config_parser.py +0 -0
  188. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/pyfx/view/view_config.py +0 -0
  189. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/pyfx/view/view_frame.py +0 -0
  190. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/pyfx/view/view_manager.py +0 -0
  191. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/pynput_recorder.py +0 -0
  192. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/pypi_inspection.py +0 -0
  193. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/pytorch_module_explorer.py +0 -0
  194. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/refactor/string_format/__init__.py +0 -0
  195. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/refactor/string_format/format_to_fstring_converter.py +0 -0
  196. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/refactor/string_format/fstring_converter.py +0 -0
  197. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/refactor/string_format/test_format_to_fstring_converter.py +0 -0
  198. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/refactor/string_format/test_fstring_converter.py +0 -0
  199. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/rp_black_macchiato.py +0 -0
  200. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/stamp_tensor.py +0 -0
  201. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/stdin_python_highlighter.py +0 -0
  202. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/tetris/__init__.py +0 -0
  203. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/tetris/__main__.py +0 -0
  204. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/tetris/graphics/graphics/__init__.py +0 -0
  205. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/tetris/graphics/graphics/canvas.py +0 -0
  206. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/tetris/graphics/graphics/colors.py +0 -0
  207. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/tetris/graphics/graphics/console.py +0 -0
  208. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/tetris/graphics/graphics/funcs.py +0 -0
  209. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/tetris/graphics/graphics/nbinput.py +0 -0
  210. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/tetris/graphics/graphics/shapes.py +0 -0
  211. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/tetris/graphics/graphics/sprite.py +0 -0
  212. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/tetris/letters.py +0 -0
  213. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/tetris/tetrisShapes.py +0 -0
  214. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/timg/__init__.py +0 -0
  215. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/timg/__main__.py +0 -0
  216. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/timg/argparser.py +0 -0
  217. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/timg/meta.py +0 -0
  218. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/timg/methods/__init__.py +0 -0
  219. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/timg/methods/ansi.py +0 -0
  220. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/timg/methods/ansi_methods.py +0 -0
  221. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/timg/methods/ascii.py +0 -0
  222. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/timg/methods/method.py +0 -0
  223. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/timg/methods/sixel.py +0 -0
  224. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/timg/renderer.py +0 -0
  225. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/torch_hooks.py +0 -0
  226. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/torch_tools.py +0 -0
  227. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/tracetraptest.py +0 -0
  228. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/tweenline.py +0 -0
  229. {rp-0.1.1390 → rp-0.1.1391}/rp/libs/webeval_dataset.py +0 -0
  230. {rp-0.1.1390 → rp-0.1.1391}/rp/list_of_modules.py +0 -0
  231. {rp-0.1.1390 → rp-0.1.1391}/rp/misc/Todo +0 -0
  232. {rp-0.1.1390 → rp-0.1.1391}/rp/misc/__init__.py +0 -0
  233. {rp-0.1.1390 → rp-0.1.1391}/rp/misc/blm.py +0 -0
  234. {rp-0.1.1390 → rp-0.1.1391}/rp/misc/chainsaw.py +0 -0
  235. {rp-0.1.1390 → rp-0.1.1391}/rp/misc/claude_panel.py +0 -0
  236. {rp-0.1.1390 → rp-0.1.1391}/rp/misc/death_of_the_mind.py +0 -0
  237. {rp-0.1.1390 → rp-0.1.1391}/rp/misc/flappy.py +0 -0
  238. {rp-0.1.1390 → rp-0.1.1391}/rp/misc/mario.py +0 -0
  239. {rp-0.1.1390 → rp-0.1.1391}/rp/misc/matrix.py +0 -0
  240. {rp-0.1.1390 → rp-0.1.1391}/rp/misc/mpi_untitled.py +0 -0
  241. {rp-0.1.1390 → rp-0.1.1391}/rp/misc/py2048.py +0 -0
  242. {rp-0.1.1390 → rp-0.1.1391}/rp/misc/pychess.py +0 -0
  243. {rp-0.1.1390 → rp-0.1.1391}/rp/misc/rp_logo.svg +0 -0
  244. {rp-0.1.1390 → rp-0.1.1391}/rp/misc/rp_mpi.py +0 -0
  245. {rp-0.1.1390 → rp-0.1.1391}/rp/misc/ryan_zshrc.py +0 -0
  246. {rp-0.1.1390 → rp-0.1.1391}/rp/misc/shotgun.py +0 -0
  247. {rp-0.1.1390 → rp-0.1.1391}/rp/misc/skia_trail_interactive_paint_demo.py +0 -0
  248. {rp-0.1.1390 → rp-0.1.1391}/rp/misc/snake.py +0 -0
  249. {rp-0.1.1390 → rp-0.1.1391}/rp/misc/sudoku.py +0 -0
  250. {rp-0.1.1390 → rp-0.1.1391}/rp/misc/tetris.py +0 -0
  251. {rp-0.1.1390 → rp-0.1.1391}/rp/misc/trans.py +0 -0
  252. {rp-0.1.1390 → rp-0.1.1391}/rp/prompt_toolkit/__init__.py +0 -0
  253. {rp-0.1.1390 → rp-0.1.1391}/rp/prompt_toolkit/application.py +0 -0
  254. {rp-0.1.1390 → rp-0.1.1391}/rp/prompt_toolkit/auto_suggest.py +0 -0
  255. {rp-0.1.1390 → rp-0.1.1391}/rp/prompt_toolkit/buffer.py +0 -0
  256. {rp-0.1.1390 → rp-0.1.1391}/rp/prompt_toolkit/buffer_mapping.py +0 -0
  257. {rp-0.1.1390 → rp-0.1.1391}/rp/prompt_toolkit/cache.py +0 -0
  258. {rp-0.1.1390 → rp-0.1.1391}/rp/prompt_toolkit/clipboard/__init__.py +0 -0
  259. {rp-0.1.1390 → rp-0.1.1391}/rp/prompt_toolkit/clipboard/base.py +0 -0
  260. {rp-0.1.1390 → rp-0.1.1391}/rp/prompt_toolkit/clipboard/in_memory.py +0 -0
  261. {rp-0.1.1390 → rp-0.1.1391}/rp/prompt_toolkit/clipboard/pyperclip.py +0 -0
  262. {rp-0.1.1390 → rp-0.1.1391}/rp/prompt_toolkit/completion.py +0 -0
  263. {rp-0.1.1390 → rp-0.1.1391}/rp/prompt_toolkit/contrib/__init__.py +0 -0
  264. {rp-0.1.1390 → rp-0.1.1391}/rp/prompt_toolkit/contrib/completers/__init__.py +0 -0
  265. {rp-0.1.1390 → rp-0.1.1391}/rp/prompt_toolkit/contrib/completers/base.py +0 -0
  266. {rp-0.1.1390 → rp-0.1.1391}/rp/prompt_toolkit/contrib/completers/filesystem.py +0 -0
  267. {rp-0.1.1390 → rp-0.1.1391}/rp/prompt_toolkit/contrib/completers/system.py +0 -0
  268. {rp-0.1.1390 → rp-0.1.1391}/rp/prompt_toolkit/contrib/regular_languages/__init__.py +0 -0
  269. {rp-0.1.1390 → rp-0.1.1391}/rp/prompt_toolkit/contrib/regular_languages/compiler.py +0 -0
  270. {rp-0.1.1390 → rp-0.1.1391}/rp/prompt_toolkit/contrib/regular_languages/completion.py +0 -0
  271. {rp-0.1.1390 → rp-0.1.1391}/rp/prompt_toolkit/contrib/regular_languages/lexer.py +0 -0
  272. {rp-0.1.1390 → rp-0.1.1391}/rp/prompt_toolkit/contrib/regular_languages/regex_parser.py +0 -0
  273. {rp-0.1.1390 → rp-0.1.1391}/rp/prompt_toolkit/contrib/regular_languages/validation.py +0 -0
  274. {rp-0.1.1390 → rp-0.1.1391}/rp/prompt_toolkit/contrib/telnet/__init__.py +0 -0
  275. {rp-0.1.1390 → rp-0.1.1391}/rp/prompt_toolkit/contrib/telnet/application.py +0 -0
  276. {rp-0.1.1390 → rp-0.1.1391}/rp/prompt_toolkit/contrib/telnet/log.py +0 -0
  277. {rp-0.1.1390 → rp-0.1.1391}/rp/prompt_toolkit/contrib/telnet/protocol.py +0 -0
  278. {rp-0.1.1390 → rp-0.1.1391}/rp/prompt_toolkit/contrib/telnet/server.py +0 -0
  279. {rp-0.1.1390 → rp-0.1.1391}/rp/prompt_toolkit/contrib/validators/__init__.py +0 -0
  280. {rp-0.1.1390 → rp-0.1.1391}/rp/prompt_toolkit/contrib/validators/base.py +0 -0
  281. {rp-0.1.1390 → rp-0.1.1391}/rp/prompt_toolkit/document.py +0 -0
  282. {rp-0.1.1390 → rp-0.1.1391}/rp/prompt_toolkit/enums.py +0 -0
  283. {rp-0.1.1390 → rp-0.1.1391}/rp/prompt_toolkit/eventloop/__init__.py +0 -0
  284. {rp-0.1.1390 → rp-0.1.1391}/rp/prompt_toolkit/eventloop/asyncio_base.py +0 -0
  285. {rp-0.1.1390 → rp-0.1.1391}/rp/prompt_toolkit/eventloop/asyncio_posix.py +0 -0
  286. {rp-0.1.1390 → rp-0.1.1391}/rp/prompt_toolkit/eventloop/asyncio_win32.py +0 -0
  287. {rp-0.1.1390 → rp-0.1.1391}/rp/prompt_toolkit/eventloop/base.py +0 -0
  288. {rp-0.1.1390 → rp-0.1.1391}/rp/prompt_toolkit/eventloop/callbacks.py +0 -0
  289. {rp-0.1.1390 → rp-0.1.1391}/rp/prompt_toolkit/eventloop/inputhook.py +0 -0
  290. {rp-0.1.1390 → rp-0.1.1391}/rp/prompt_toolkit/eventloop/posix.py +0 -0
  291. {rp-0.1.1390 → rp-0.1.1391}/rp/prompt_toolkit/eventloop/posix_utils.py +0 -0
  292. {rp-0.1.1390 → rp-0.1.1391}/rp/prompt_toolkit/eventloop/select.py +0 -0
  293. {rp-0.1.1390 → rp-0.1.1391}/rp/prompt_toolkit/eventloop/utils.py +0 -0
  294. {rp-0.1.1390 → rp-0.1.1391}/rp/prompt_toolkit/eventloop/win32.py +0 -0
  295. {rp-0.1.1390 → rp-0.1.1391}/rp/prompt_toolkit/filters/__init__.py +0 -0
  296. {rp-0.1.1390 → rp-0.1.1391}/rp/prompt_toolkit/filters/base.py +0 -0
  297. {rp-0.1.1390 → rp-0.1.1391}/rp/prompt_toolkit/filters/cli.py +0 -0
  298. {rp-0.1.1390 → rp-0.1.1391}/rp/prompt_toolkit/filters/types.py +0 -0
  299. {rp-0.1.1390 → rp-0.1.1391}/rp/prompt_toolkit/filters/utils.py +0 -0
  300. {rp-0.1.1390 → rp-0.1.1391}/rp/prompt_toolkit/history.py +0 -0
  301. {rp-0.1.1390 → rp-0.1.1391}/rp/prompt_toolkit/input.py +0 -0
  302. {rp-0.1.1390 → rp-0.1.1391}/rp/prompt_toolkit/interface.py +0 -0
  303. {rp-0.1.1390 → rp-0.1.1391}/rp/prompt_toolkit/key_binding/__init__.py +0 -0
  304. {rp-0.1.1390 → rp-0.1.1391}/rp/prompt_toolkit/key_binding/bindings/__init__.py +0 -0
  305. {rp-0.1.1390 → rp-0.1.1391}/rp/prompt_toolkit/key_binding/bindings/basic.py +0 -0
  306. {rp-0.1.1390 → rp-0.1.1391}/rp/prompt_toolkit/key_binding/bindings/completion.py +0 -0
  307. {rp-0.1.1390 → rp-0.1.1391}/rp/prompt_toolkit/key_binding/bindings/emacs.py +0 -0
  308. {rp-0.1.1390 → rp-0.1.1391}/rp/prompt_toolkit/key_binding/bindings/named_commands.py +0 -0
  309. {rp-0.1.1390 → rp-0.1.1391}/rp/prompt_toolkit/key_binding/bindings/scroll.py +0 -0
  310. {rp-0.1.1390 → rp-0.1.1391}/rp/prompt_toolkit/key_binding/bindings/vi.py +0 -0
  311. {rp-0.1.1390 → rp-0.1.1391}/rp/prompt_toolkit/key_binding/defaults.py +0 -0
  312. {rp-0.1.1390 → rp-0.1.1391}/rp/prompt_toolkit/key_binding/digraphs.py +0 -0
  313. {rp-0.1.1390 → rp-0.1.1391}/rp/prompt_toolkit/key_binding/input_processor.py +0 -0
  314. {rp-0.1.1390 → rp-0.1.1391}/rp/prompt_toolkit/key_binding/manager.py +0 -0
  315. {rp-0.1.1390 → rp-0.1.1391}/rp/prompt_toolkit/key_binding/registry.py +0 -0
  316. {rp-0.1.1390 → rp-0.1.1391}/rp/prompt_toolkit/key_binding/vi_state.py +0 -0
  317. {rp-0.1.1390 → rp-0.1.1391}/rp/prompt_toolkit/keys.py +0 -0
  318. {rp-0.1.1390 → rp-0.1.1391}/rp/prompt_toolkit/layout/__init__.py +0 -0
  319. {rp-0.1.1390 → rp-0.1.1391}/rp/prompt_toolkit/layout/containers.py +0 -0
  320. {rp-0.1.1390 → rp-0.1.1391}/rp/prompt_toolkit/layout/controls.py +0 -0
  321. {rp-0.1.1390 → rp-0.1.1391}/rp/prompt_toolkit/layout/dimension.py +0 -0
  322. {rp-0.1.1390 → rp-0.1.1391}/rp/prompt_toolkit/layout/lexers.py +0 -0
  323. {rp-0.1.1390 → rp-0.1.1391}/rp/prompt_toolkit/layout/margins.py +0 -0
  324. {rp-0.1.1390 → rp-0.1.1391}/rp/prompt_toolkit/layout/menus.py +0 -0
  325. {rp-0.1.1390 → rp-0.1.1391}/rp/prompt_toolkit/layout/mouse_handlers.py +0 -0
  326. {rp-0.1.1390 → rp-0.1.1391}/rp/prompt_toolkit/layout/processors.py +0 -0
  327. {rp-0.1.1390 → rp-0.1.1391}/rp/prompt_toolkit/layout/prompt.py +0 -0
  328. {rp-0.1.1390 → rp-0.1.1391}/rp/prompt_toolkit/layout/screen.py +0 -0
  329. {rp-0.1.1390 → rp-0.1.1391}/rp/prompt_toolkit/layout/toolbars.py +0 -0
  330. {rp-0.1.1390 → rp-0.1.1391}/rp/prompt_toolkit/layout/untitled.py +0 -0
  331. {rp-0.1.1390 → rp-0.1.1391}/rp/prompt_toolkit/layout/utils.py +0 -0
  332. {rp-0.1.1390 → rp-0.1.1391}/rp/prompt_toolkit/mouse_events.py +0 -0
  333. {rp-0.1.1390 → rp-0.1.1391}/rp/prompt_toolkit/output.py +0 -0
  334. {rp-0.1.1390 → rp-0.1.1391}/rp/prompt_toolkit/reactive.py +0 -0
  335. {rp-0.1.1390 → rp-0.1.1391}/rp/prompt_toolkit/renderer.py +0 -0
  336. {rp-0.1.1390 → rp-0.1.1391}/rp/prompt_toolkit/search_state.py +0 -0
  337. {rp-0.1.1390 → rp-0.1.1391}/rp/prompt_toolkit/selection.py +0 -0
  338. {rp-0.1.1390 → rp-0.1.1391}/rp/prompt_toolkit/shortcuts.py +0 -0
  339. {rp-0.1.1390 → rp-0.1.1391}/rp/prompt_toolkit/styles/__init__.py +0 -0
  340. {rp-0.1.1390 → rp-0.1.1391}/rp/prompt_toolkit/styles/base.py +0 -0
  341. {rp-0.1.1390 → rp-0.1.1391}/rp/prompt_toolkit/styles/defaults.py +0 -0
  342. {rp-0.1.1390 → rp-0.1.1391}/rp/prompt_toolkit/styles/from_dict.py +0 -0
  343. {rp-0.1.1390 → rp-0.1.1391}/rp/prompt_toolkit/styles/from_pygments.py +0 -0
  344. {rp-0.1.1390 → rp-0.1.1391}/rp/prompt_toolkit/styles/utils.py +0 -0
  345. {rp-0.1.1390 → rp-0.1.1391}/rp/prompt_toolkit/terminal/__init__.py +0 -0
  346. {rp-0.1.1390 → rp-0.1.1391}/rp/prompt_toolkit/terminal/conemu_output.py +0 -0
  347. {rp-0.1.1390 → rp-0.1.1391}/rp/prompt_toolkit/terminal/vt100_input.py +0 -0
  348. {rp-0.1.1390 → rp-0.1.1391}/rp/prompt_toolkit/terminal/vt100_output.py +0 -0
  349. {rp-0.1.1390 → rp-0.1.1391}/rp/prompt_toolkit/terminal/win32_input.py +0 -0
  350. {rp-0.1.1390 → rp-0.1.1391}/rp/prompt_toolkit/terminal/win32_output.py +0 -0
  351. {rp-0.1.1390 → rp-0.1.1391}/rp/prompt_toolkit/token.py +0 -0
  352. {rp-0.1.1390 → rp-0.1.1391}/rp/prompt_toolkit/utils.py +0 -0
  353. {rp-0.1.1390 → rp-0.1.1391}/rp/prompt_toolkit/validation.py +0 -0
  354. {rp-0.1.1390 → rp-0.1.1391}/rp/prompt_toolkit/win32_types.py +0 -0
  355. {rp-0.1.1390 → rp-0.1.1391}/rp/rp_ptpython/__init__.py +0 -0
  356. {rp-0.1.1390 → rp-0.1.1391}/rp/rp_ptpython/__main__.py +0 -0
  357. {rp-0.1.1390 → rp-0.1.1391}/rp/rp_ptpython/ast_selection.py +0 -0
  358. {rp-0.1.1390 → rp-0.1.1391}/rp/rp_ptpython/async_analyzer_base.py +0 -0
  359. {rp-0.1.1390 → rp-0.1.1391}/rp/rp_ptpython/async_jedi_highlighter.py +0 -0
  360. {rp-0.1.1390 → rp-0.1.1391}/rp/rp_ptpython/backslash_commands.py +0 -0
  361. {rp-0.1.1390 → rp-0.1.1391}/rp/rp_ptpython/bash_extract.py +0 -0
  362. {rp-0.1.1390 → rp-0.1.1391}/rp/rp_ptpython/bash_inline.py +0 -0
  363. {rp-0.1.1390 → rp-0.1.1391}/rp/rp_ptpython/bash_rename.py +0 -0
  364. {rp-0.1.1390 → rp-0.1.1391}/rp/rp_ptpython/bash_selection.py +0 -0
  365. {rp-0.1.1390 → rp-0.1.1391}/rp/rp_ptpython/completer_old.py +0 -0
  366. {rp-0.1.1390 → rp-0.1.1391}/rp/rp_ptpython/completion_ranker.py +0 -0
  367. {rp-0.1.1390 → rp-0.1.1391}/rp/rp_ptpython/completion_types.py +0 -0
  368. {rp-0.1.1390 → rp-0.1.1391}/rp/rp_ptpython/eventloop.py +0 -0
  369. {rp-0.1.1390 → rp-0.1.1391}/rp/rp_ptpython/filters.py +0 -0
  370. {rp-0.1.1390 → rp-0.1.1391}/rp/rp_ptpython/history_browser.py +0 -0
  371. {rp-0.1.1390 → rp-0.1.1391}/rp/rp_ptpython/ipython.py +0 -0
  372. {rp-0.1.1390 → rp-0.1.1391}/rp/rp_ptpython/jedi_highlighter.py +0 -0
  373. {rp-0.1.1390 → rp-0.1.1391}/rp/rp_ptpython/jedi_lexer.py +0 -0
  374. {rp-0.1.1390 → rp-0.1.1391}/rp/rp_ptpython/jedi_utils.py +0 -0
  375. {rp-0.1.1390 → rp-0.1.1391}/rp/rp_ptpython/layout.py +0 -0
  376. {rp-0.1.1390 → rp-0.1.1391}/rp/rp_ptpython/patch_linecache.py +0 -0
  377. {rp-0.1.1390 → rp-0.1.1391}/rp/rp_ptpython/prompt_style.py +0 -0
  378. {rp-0.1.1390 → rp-0.1.1391}/rp/rp_ptpython/python_input.py +0 -0
  379. {rp-0.1.1390 → rp-0.1.1391}/rp/rp_ptpython/r_iterm_comm.py +0 -0
  380. {rp-0.1.1390 → rp-0.1.1391}/rp/rp_ptpython/refactor_extract.py +0 -0
  381. {rp-0.1.1390 → rp-0.1.1391}/rp/rp_ptpython/refactor_inline.py +0 -0
  382. {rp-0.1.1390 → rp-0.1.1391}/rp/rp_ptpython/refactor_move.py +0 -0
  383. {rp-0.1.1390 → rp-0.1.1391}/rp/rp_ptpython/refactor_rename.py +0 -0
  384. {rp-0.1.1390 → rp-0.1.1391}/rp/rp_ptpython/repl.py +0 -0
  385. {rp-0.1.1390 → rp-0.1.1391}/rp/rp_ptpython/rp_ptpdb/__init__.py +0 -0
  386. {rp-0.1.1390 → rp-0.1.1391}/rp/rp_ptpython/rp_ptpdb/commands.py +0 -0
  387. {rp-0.1.1390 → rp-0.1.1391}/rp/rp_ptpython/rp_ptpdb/completers.py +0 -0
  388. {rp-0.1.1390 → rp-0.1.1391}/rp/rp_ptpython/rp_ptpdb/completion_hints.py +0 -0
  389. {rp-0.1.1390 → rp-0.1.1391}/rp/rp_ptpython/rp_ptpdb/grammar.py +0 -0
  390. {rp-0.1.1390 → rp-0.1.1391}/rp/rp_ptpython/rp_ptpdb/key_bindings.py +0 -0
  391. {rp-0.1.1390 → rp-0.1.1391}/rp/rp_ptpython/rp_ptpdb/layout.py +0 -0
  392. {rp-0.1.1390 → rp-0.1.1391}/rp/rp_ptpython/rp_ptpdb/style.py +0 -0
  393. {rp-0.1.1390 → rp-0.1.1391}/rp/rp_ptpython/rp_ptpdb/toolbars.py +0 -0
  394. {rp-0.1.1390 → rp-0.1.1391}/rp/rp_ptpython/selection_utils.py +0 -0
  395. {rp-0.1.1390 → rp-0.1.1391}/rp/rp_ptpython/style.py +0 -0
  396. {rp-0.1.1390 → rp-0.1.1391}/rp/rp_ptpython/testable_keybindings.py +0 -0
  397. {rp-0.1.1390 → rp-0.1.1391}/rp/rp_ptpython/treesitter_selection.py +0 -0
  398. {rp-0.1.1390 → rp-0.1.1391}/rp/rp_ptpython/treesitter_semantic.py +0 -0
  399. {rp-0.1.1390 → rp-0.1.1391}/rp/rp_ptpython/utils.py +0 -0
  400. {rp-0.1.1390 → rp-0.1.1391}/rp/rp_ptpython/validator.py +0 -0
  401. {rp-0.1.1390 → rp-0.1.1391}/rp/ryan_vimrc.py +0 -0
  402. {rp-0.1.1390 → rp-0.1.1391}/rp/web_evaluator.py +0 -0
  403. {rp-0.1.1390 → rp-0.1.1391}/rp.egg-info/SOURCES.txt +0 -0
  404. {rp-0.1.1390 → rp-0.1.1391}/rp.egg-info/dependency_links.txt +0 -0
  405. {rp-0.1.1390 → rp-0.1.1391}/rp.egg-info/entry_points.txt +0 -0
  406. {rp-0.1.1390 → rp-0.1.1391}/rp.egg-info/requires.txt +0 -0
  407. {rp-0.1.1390 → rp-0.1.1391}/rp.egg-info/top_level.txt +0 -0
  408. {rp-0.1.1390 → rp-0.1.1391}/setup.cfg +0 -0
  409. {rp-0.1.1390 → rp-0.1.1391}/setup.py +0 -0
  410. {rp-0.1.1390 → rp-0.1.1391}/untitled.c +0 -0
  411. {rp-0.1.1390 → rp-0.1.1391}/update_module_paths.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 1.0
2
2
  Name: rp
3
- Version: 0.1.1390
3
+ Version: 0.1.1391
4
4
  Summary: Ryan's Python: IDE + Library + Tools
5
5
  Home-page: https://github.com/RyannDaGreat/rp
6
6
  Author: Ryan Burgert
@@ -97,6 +97,14 @@ KEYBOARD SHORTCUTS:
97
97
  ⌃ z undo last action
98
98
  ⌃ y redo last undone action
99
99
  ⌥ ⌃ e Edit code with AI
100
+ REFACTORING:
101
+ ⌃ r extract variable (requires selection: select expression, press ⌃r, type name, Enter)
102
+ ⌃ n rename variable at cursor (place cursor on variable name, press ⌃n, type new name, Enter)
103
+ ⌃ p inline variable at cursor (place cursor on assignment or usage, press ⌃p to inline)
104
+ < move element left in syntax tree (requires selection: select arg/element, press <)
105
+ > move element right in syntax tree (requires selection: select arg/element, press >)
106
+ ⌥ ⇧ ↑ expand selection to larger AST node (select text, press to expand to parent node)
107
+ ⌥ ⇧ ↓ contract selection to smaller AST node (select text, press to shrink to child node)
100
108
  F1 enable/disable mouse mode
101
109
  F4 toggle between Vi and Emacs mode
102
110
  F5 save F2 menu settings (when sidebar is visible)
@@ -106,7 +114,6 @@ KEYBOARD SHORTCUTS:
106
114
  LESS IMPORTANT AND MAYBE REMOVED IN FUTURE:
107
115
  //While these keyboard shortcuts are kind of silly, I do find myself using them quite often
108
116
  ⌃ h inserts 'HISTORY'
109
- ⌃ p inserts 'PREV' (then 'NEXT', if pressed again)
110
117
  ⌃ u inserts 'UNDO'
111
118
  ⌥ m inserts 'MORE' (then 'MMORE', if pressed again)
112
119
  ⌥ s inserts 'self'
@@ -116,6 +116,9 @@ FOLDER_URL = "https://drive.google.com/drive/folders/{}"
116
116
  # Upload cache path (same folder as token.json)
117
117
  UPLOAD_CACHE_PATH = rp.with_file_name(TOKEN_PATH, "upload_cache.json", keep_extension=False)
118
118
 
119
+ # Cache modes: "off" (no cache), "copy" (server-side copy), "reuse" (direct URL reuse)
120
+ CACHE_MODES = {"off", "copy", "reuse"}
121
+
119
122
 
120
123
  def _load_upload_cache() -> dict:
121
124
  """Load the upload cache from disk. Returns empty dict if not found."""
@@ -383,7 +386,7 @@ def upload_media_sequential(
383
386
  service,
384
387
  file_paths: list[str],
385
388
  folder_id: str = None,
386
- use_cache: bool = True,
389
+ cache_mode: str = "copy",
387
390
  ) -> list[dict]:
388
391
  """Upload multiple media files sequentially with progress bars.
389
392
 
@@ -391,20 +394,30 @@ def upload_media_sequential(
391
394
  service: Google Drive API service instance
392
395
  file_paths: List of file paths to upload
393
396
  folder_id: Destination folder ID on Google Drive
394
- use_cache: If True, check cache for previously uploaded files and copy instead of re-uploading
397
+ cache_mode: Cache behavior - "off", "copy", or "reuse" (bool also accepted)
395
398
 
396
399
  Returns:
397
400
  List of dicts with 'id', 'name', 'webViewLink', 'webContentLink', 'is_image'
398
401
  """
402
+ if cache_mode is True: cache_mode = "copy"
403
+ if cache_mode is False: cache_mode = "off"
404
+ if cache_mode not in CACHE_MODES:
405
+ raise ValueError(f"cache_mode must be one of {CACHE_MODES}, got {cache_mode!r}")
406
+
399
407
  results = []
400
408
  total_bytes = sum(rp.get_file_size(fp) for fp in file_paths)
401
409
  uploaded_bytes = 0
402
410
  start_time = time.time()
403
411
 
412
+ use_cache = cache_mode in ("copy", "reuse")
413
+
404
414
  # Load cache if using it
405
415
  cache = _load_upload_cache() if use_cache else {}
406
416
  cache_modified = False
407
417
 
418
+ if cache_mode == "reuse":
419
+ rp.fansi_print(" [reuse mode] Using cached URLs directly (no copy)", "yellow", "bold")
420
+
408
421
  for i, fp in enumerate(file_paths):
409
422
  size = rp.get_file_size(fp)
410
423
  elapsed = time.time() - start_time
@@ -417,23 +430,29 @@ def upload_media_sequential(
417
430
  # Check cache for this file
418
431
  if use_cache and file_hash in cache:
419
432
  cached = cache[file_hash]
420
- rp.fansi_print(f" {file_name}: cache hit, copying...", "yellow")
421
-
422
- # Copy the cached file to the new folder
423
- copy_result = copy_drive_file(
424
- service,
425
- cached["id"],
426
- folder_id,
427
- new_name=file_name,
428
- )
433
+ if cache_mode == "reuse":
434
+ # Reuse cached entry directly - no copy, no API call
435
+ rp.fansi_print(f" {file_name}: reusing cached URL", "yellow")
436
+ cache_result = cached
437
+ rp.fansi_print(f" Reused: {result['webViewLink']}", "green")
438
+ else:
439
+ # Copy mode - server-side copy to new folder
440
+ rp.fansi_print(f" {file_name}: cache hit, copying...", "yellow")
441
+ copy_result = copy_drive_file(
442
+ service,
443
+ cached["id"],
444
+ folder_id,
445
+ new_name=file_name,
446
+ )
447
+ cache_result=copy_result
448
+ rp.fansi_print(f" Copied: {result['webViewLink']}", "green")
429
449
  result = {
430
- "id": copy_result["id"],
431
- "name": copy_result["name"],
432
- "webViewLink": copy_result["webViewLink"],
433
- "webContentLink": copy_result["webContentLink"],
450
+ "id": cache_result["id"],
451
+ "name": cache_result["name"],
452
+ "webViewLink": cache_result["webViewLink"],
453
+ "webContentLink": cache_result["webContentLink"],
434
454
  "is_image": cached["is_image"],
435
455
  }
436
- rp.fansi_print(f" Copied: {result['webViewLink']}", "green")
437
456
  else:
438
457
  # Upload normally
439
458
  pbar = tqdm(
@@ -455,8 +474,8 @@ def upload_media_sequential(
455
474
  pbar.close()
456
475
  rp.fansi_print(f" Uploaded: {result['webViewLink']}", "green")
457
476
 
458
- # Add to cache
459
- if use_cache and file_hash:
477
+ # Add to cache (only for copy/reuse modes, not off)
478
+ if cache_mode != "off" and file_hash:
460
479
  cache[file_hash] = {
461
480
  "id": result["id"],
462
481
  "name": result["name"],
@@ -953,7 +972,7 @@ def create_slides_with_media_grid(
953
972
  }
954
973
  )
955
974
 
956
- if labels and media_idx < len(labels):
975
+ if labels and media_idx < len(labels) and labels[media_idx]:
957
976
  requests.extend(
958
977
  _text_element_requests(
959
978
  f"label_{media_counter}",
@@ -1036,7 +1055,8 @@ def media_to_slides(
1036
1055
  label_color=None,
1037
1056
  autoplay: bool = True,
1038
1057
  navbar: bool = False,
1039
- use_cache: bool = True,
1058
+ cache_mode: str = "copy",
1059
+ show_folder_size: bool = True,
1040
1060
  ) -> dict:
1041
1061
  """
1042
1062
  Upload media files (videos/images) and create a Google Slides presentation.
@@ -1065,7 +1085,12 @@ def media_to_slides(
1065
1085
  label_color: Label color. Default: same as text_color.
1066
1086
  autoplay (bool): Whether videos autoplay when the slide is shown. Default: True.
1067
1087
  navbar (bool): Whether to add prev/next navigation buttons. Default: False.
1068
- use_cache (bool): If True, reuse previously uploaded files via copy instead of re-uploading. Default: True.
1088
+ cache_mode (str): How to handle previously uploaded files. Default: "copy".
1089
+ - "off": Always upload fresh (no caching)
1090
+ - "copy": Server-side copy of cached files to new folder (safe, isolated)
1091
+ - "reuse": Directly reuse cached URLs (fastest, but shared references)
1092
+ show_folder_size (bool): If True (default), append total file size to folder name.
1093
+ Useful because Google Drive doesn't show folder sizes. Default: True.
1069
1094
 
1070
1095
  Returns:
1071
1096
  dict: {'folder_id', 'folder_url', 'media', 'presentation': {'id', 'url', 'public_url', 'name'}}
@@ -1112,9 +1137,22 @@ def media_to_slides(
1112
1137
 
1113
1138
  # Create folder if we have media files OR navbar (need to upload nav button images)
1114
1139
  if media_paths or navbar:
1115
- rp.fansi_print(f"\nCreating folder: rp/generated_slides/{folder_name}", "cyan")
1140
+ # Append total file size to folder name (Google Drive doesn't show folder sizes)
1141
+ # In reuse mode, only count files that will actually be uploaded (cache misses)
1142
+ display_folder_name = folder_name
1143
+ if show_folder_size and media_paths:
1144
+ if cache_mode == "reuse":
1145
+ cache = _load_upload_cache()
1146
+ sizes = [rp.get_file_size(p) for p in media_paths if rp.get_sha256_hash(p) not in cache]
1147
+ else:
1148
+ sizes = rp.get_file_sizes(*media_paths)
1149
+ if sizes:
1150
+ total_size = sum(sizes)
1151
+ size_str = rp.human_readable_file_size(total_size, mib=False)
1152
+ display_folder_name = f"{folder_name} ({size_str})"
1153
+ rp.fansi_print(f"\nCreating folder: rp/generated_slides/{display_folder_name}", "cyan")
1116
1154
  parent_id = get_rp_slides_folder(drive_service)
1117
- folder_id = create_folder(drive_service, folder_name, parent_id)
1155
+ folder_id = create_folder(drive_service, display_folder_name, parent_id)
1118
1156
  folder_url = FOLDER_URL.format(folder_id)
1119
1157
  rp.fansi_print(f" {folder_url}", "white")
1120
1158
 
@@ -1129,17 +1167,19 @@ def media_to_slides(
1129
1167
  rp.fansi_print(f" {rp.get_file_name(p)}", "white")
1130
1168
 
1131
1169
  rp.fansi_print("\nUploading media...", "cyan")
1132
- media = upload_media_sequential(drive_service, media_paths, folder_id, use_cache=use_cache)
1170
+ media = upload_media_sequential(drive_service, media_paths, folder_id, cache_mode=cache_mode)
1133
1171
 
1134
1172
  path_to_media = dict(zip(media_paths, media))
1135
1173
 
1136
- rp.fansi_print("\nMaking files publicly accessible...", "cyan")
1137
- start_time = time.time()
1138
- for i, m in enumerate(media):
1139
- elapsed = time.time() - start_time
1140
- progress_str = _format_progress(i + 1, len(media), i, len(media), elapsed, use_bytes=False)
1141
- rp.fansi_print(f" {progress_str} {m['name']}", "cyan")
1142
- make_file_public(drive_service, m["id"])
1174
+ # Skip permissions for reuse mode - cached files are already public
1175
+ if cache_mode != "reuse":
1176
+ rp.fansi_print("\nMaking files publicly accessible...", "cyan")
1177
+ start_time = time.time()
1178
+ for i, m in enumerate(media):
1179
+ elapsed = time.time() - start_time
1180
+ progress_str = _format_progress(i + 1, len(media), i, len(media), elapsed, use_bytes=False)
1181
+ rp.fansi_print(f" {progress_str} {m['name']}", "cyan")
1182
+ make_file_public(drive_service, m["id"])
1143
1183
 
1144
1184
  # Build slides_data - each content item becomes either media or text box
1145
1185
  slides_data = []
@@ -1270,7 +1310,8 @@ def cli(
1270
1310
  per_slide: int = None,
1271
1311
  autoplay: bool = True,
1272
1312
  navbar: bool = False,
1273
- use_cache: bool = True,
1313
+ cache_mode: str = "copy",
1314
+ show_folder_size: bool = True,
1274
1315
  ):
1275
1316
  """Upload media to Google Drive and create a Google Slides presentation.
1276
1317
 
@@ -1295,11 +1336,24 @@ def cli(
1295
1336
  --label_size SIZE Label font size in pt (default: same as --text_size)
1296
1337
  --label_font FONT Label font family (default: same as --text_font)
1297
1338
  --label_color COLOR Label color (default: same as --text_color)
1298
- --sort_by METHOD Sort files by: 'name' (default), 'date', 'size', 'number'
1339
+ --sort_by METHOD Sort files by: 'name' (default), 'date', 'size', 'number'.
1340
+ Only applies to folders and glob patterns; individual files
1341
+ keep the order you specify them.
1299
1342
  --per_slide N Items per slide (optional, default: 1)
1300
1343
  --autoplay Enable video autoplay (default: True). Use --noautoplay to disable.
1301
1344
  --navbar Add prev/next navigation buttons (default: False)
1302
- --use_cache Reuse previously uploaded files (default: True). Use --nouse_cache to force re-upload.
1345
+ --cache_mode MODE How to handle previously uploaded files (default: 'copy'):
1346
+ 'off' - No caching, always upload fresh
1347
+ 'copy' - Copy cached files to new folder (safe, each presentation isolated)
1348
+ 'reuse' - Reuse cached URLs directly (fastest, saves Drive storage)
1349
+ Benefits of 'reuse': Faster uploads, reduced Google Drive storage usage.
1350
+ Risks of 'reuse': If the cached file's source folder is deleted, this
1351
+ presentation's media will break. Only use for temporary presentations
1352
+ or when you're sure the source media won't be deleted.
1353
+ --show_folder_size Append total file size to folder name (default: True).
1354
+ Google Drive doesn't show folder sizes, so this helps track storage.
1355
+ In 'reuse' mode, only counts cache misses (files actually uploaded).
1356
+ Use --noshow_folder_size to disable.
1303
1357
 
1304
1358
  Supported formats:
1305
1359
  Videos: .mp4, .mov, .avi, .mkv, .webm
@@ -1315,7 +1369,8 @@ def cli(
1315
1369
  rp run ppt media_to_slides "Big text" --text_size 36 # larger text
1316
1370
  rp run ppt media_to_slides videos/ --noautoplay # disable video autoplay
1317
1371
  rp run ppt media_to_slides videos/ --navbar # add prev/next buttons
1318
- rp run ppt media_to_slides videos/ --nouse_cache # force re-upload all files
1372
+ rp run ppt media_to_slides videos/ --cache_mode off # force re-upload all files
1373
+ rp run ppt media_to_slides videos/ --cache_mode reuse # fastest, reuse cached URLs
1319
1374
 
1320
1375
  Note: First run opens browser for Google OAuth authentication.
1321
1376
  """
@@ -1378,7 +1433,8 @@ def cli(
1378
1433
  text_color=text_color,
1379
1434
  autoplay=autoplay,
1380
1435
  navbar=navbar,
1381
- use_cache=use_cache,
1436
+ cache_mode=cache_mode,
1437
+ show_folder_size=show_folder_size,
1382
1438
  )
1383
1439
  print(f"\nPresentation URL: {result['presentation']['url']}")
1384
1440
  return result
@@ -14,7 +14,8 @@ ARCHIVE_WINDOW="ARCHIVE"
14
14
  PANEL_WINDOW="PANEL"
15
15
  ARCHIVE_DIR="/tmp/claude_bash_archive"
16
16
  PANEL_SCRIPT="$(dirname "$0")/claude_panel.py"
17
- PYTHON_BIN="$RP_SYS_EXECUTABLE"
17
+ # Use RP_SYS_EXECUTABLE if set, else try python3 from PATH
18
+ PYTHON_BIN="${RP_SYS_EXECUTABLE:-$(command -v python3)}"
18
19
  EMOJIS="🔴🟠🟡🟢🔵🟣🟤⚫⚪🩶🩷🩵❤️🧡💛💚💙💜🖤🤍🤎💗💖💝💘🍎🍊🍋🍏🫐🍇🍓🍒🍑🥭🍍🥝🌶️🥕🌽🥦🍆🫑🔥🌊🌿🌸🌺🌻🌼🌷💐🌈☀️⭐🌙💫✨⚡💎🔮🎈🎀🧊❄️🎯🎨🎭🎪🎠🎡🎢🏀🏈⚽🎾🎱🧩🪁🛸🚀💊🧬🦠🔬🧪🎵🎶🔔💡🔦🏮🪔🎃👾🤖👽🦋🐝🐞🌵🍄🌴🥀🪷🪻"
19
20
  BASH_BIN="/bin/bash"
20
21
 
@@ -58,7 +59,7 @@ archive_viewer() {
58
59
  }
59
60
 
60
61
  # --- Tmux setup ---
61
- ARCHIVE_CMD="SESSION=$SESSION; ARCHIVE_DIR=$ARCHIVE_DIR; $(declare -f archive_viewer); archive_viewer"
62
+ ARCHIVE_CMD="export SESSION=$SESSION ARCHIVE_DIR=$ARCHIVE_DIR; $(declare -f archive_viewer); archive_viewer"
62
63
  PANEL_CMD="while true; do $PYTHON_BIN $PANEL_SCRIPT; done"
63
64
 
64
65
  ensure_panel_window() {