rp 0.1.1391__tar.gz → 0.1.1393__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 (413) hide show
  1. {rp-0.1.1391 → rp-0.1.1393}/PKG-INFO +1 -1
  2. rp-0.1.1393/rp/libs/kitten_tts_server.py +106 -0
  3. rp-0.1.1393/rp/libs/supertonic_tts_server.py +315 -0
  4. {rp-0.1.1391 → rp-0.1.1393}/rp/r.py +71 -8
  5. {rp-0.1.1391 → rp-0.1.1393}/rp/rp_ptpython/path_completer_utils.py +2 -1
  6. rp-0.1.1393/rp/version.py +1 -0
  7. {rp-0.1.1391 → rp-0.1.1393}/rp.egg-info/PKG-INFO +1 -1
  8. {rp-0.1.1391 → rp-0.1.1393}/rp.egg-info/SOURCES.txt +2 -0
  9. rp-0.1.1393/version.py +1 -0
  10. rp-0.1.1391/rp/version.py +0 -1
  11. rp-0.1.1391/version.py +0 -1
  12. {rp-0.1.1391 → rp-0.1.1393}/.gitignore +0 -0
  13. {rp-0.1.1391 → rp-0.1.1393}/.idea/QuickPython.iml +0 -0
  14. {rp-0.1.1391 → rp-0.1.1393}/.idea/QuickPython.time +0 -0
  15. {rp-0.1.1391 → rp-0.1.1393}/.idea/encodings.xml +0 -0
  16. {rp-0.1.1391 → rp-0.1.1393}/.idea/inspectionProfiles/Project_Default.xml +0 -0
  17. {rp-0.1.1391 → rp-0.1.1393}/.idea/misc.xml +0 -0
  18. {rp-0.1.1391 → rp-0.1.1393}/.idea/modules.xml +0 -0
  19. {rp-0.1.1391 → rp-0.1.1393}/.idea/vcs.xml +0 -0
  20. {rp-0.1.1391 → rp-0.1.1393}/.idea/workspace.xml +0 -0
  21. {rp-0.1.1391 → rp-0.1.1393}/.publish.sh.un~ +0 -0
  22. {rp-0.1.1391 → rp-0.1.1393}/.setup.py.un~ +0 -0
  23. {rp-0.1.1391 → rp-0.1.1393}/.update_module_paths.py.un~ +0 -0
  24. {rp-0.1.1391 → rp-0.1.1393}/LICENSE.txt +0 -0
  25. {rp-0.1.1391 → rp-0.1.1393}/README +0 -0
  26. {rp-0.1.1391 → rp-0.1.1393}/Scrap +0 -0
  27. {rp-0.1.1391 → rp-0.1.1393}/aoisdasd +0 -0
  28. {rp-0.1.1391 → rp-0.1.1393}/increment_version.py +0 -0
  29. {rp-0.1.1391 → rp-0.1.1393}/oijio +0 -0
  30. {rp-0.1.1391 → rp-0.1.1393}/publish.sh +0 -0
  31. {rp-0.1.1391 → rp-0.1.1393}/pyqtconsoletest.py +0 -0
  32. {rp-0.1.1391 → rp-0.1.1393}/rp/__init__.py +0 -0
  33. {rp-0.1.1391 → rp-0.1.1393}/rp/__main__.py +0 -0
  34. {rp-0.1.1391 → rp-0.1.1393}/rp/documentation.py +0 -0
  35. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/Pyperclip.py +0 -0
  36. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/__init__.py +0 -0
  37. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/debug_comment.py +0 -0
  38. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/draw_code_minimap.py +0 -0
  39. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/graveyard.py +0 -0
  40. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/parso/__init__.py +0 -0
  41. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/parso/_compatibility.py +0 -0
  42. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/parso/cache.py +0 -0
  43. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/parso/file_io.py +0 -0
  44. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/parso/grammar.py +0 -0
  45. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/parso/normalizer.py +0 -0
  46. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/parso/parser.py +0 -0
  47. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/parso/pgen2/__init__.py +0 -0
  48. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/parso/pgen2/generator.py +0 -0
  49. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/parso/pgen2/grammar_parser.py +0 -0
  50. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/parso/python/__init__.py +0 -0
  51. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/parso/python/diff.py +0 -0
  52. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/parso/python/errors.py +0 -0
  53. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/parso/python/grammar26.txt +0 -0
  54. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/parso/python/grammar27.txt +0 -0
  55. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/parso/python/grammar310.txt +0 -0
  56. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/parso/python/grammar311.txt +0 -0
  57. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/parso/python/grammar312.txt +0 -0
  58. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/parso/python/grammar33.txt +0 -0
  59. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/parso/python/grammar34.txt +0 -0
  60. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/parso/python/grammar35.txt +0 -0
  61. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/parso/python/grammar36.txt +0 -0
  62. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/parso/python/grammar37.txt +0 -0
  63. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/parso/python/grammar38.txt +0 -0
  64. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/parso/python/grammar39.txt +0 -0
  65. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/parso/python/parser.py +0 -0
  66. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/parso/python/pep8.py +0 -0
  67. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/parso/python/prefix.py +0 -0
  68. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/parso/python/token.py +0 -0
  69. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/parso/python/tokenize.py +0 -0
  70. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/parso/python/tree.py +0 -0
  71. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/parso/tree.py +0 -0
  72. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/parso/utils.py +0 -0
  73. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/peepdis/__init__.py +0 -0
  74. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/peepdis/core.py +0 -0
  75. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/peepdis/datastructures.py +0 -0
  76. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/peepdis/legacy.py +0 -0
  77. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/peepdis/preferences.py +0 -0
  78. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/powerpoint/__init__.py +0 -0
  79. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/powerpoint/__main__.py +0 -0
  80. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/powerpoint/convert_pptx_videos_to_gifs.py +0 -0
  81. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/powerpoint/convert_tmux.py +0 -0
  82. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/powerpoint/google_slides_upload.py +0 -0
  83. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/powerpoint/media_to_slides.py +0 -0
  84. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/powerpoint/pptx_utils.py +0 -0
  85. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/powerpoint_converter.py +0 -0
  86. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/profile_vim_plugins.py +0 -0
  87. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/pw_crypt.py +0 -0
  88. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/pyflann/__init__.py +0 -0
  89. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/pyflann/bindings/__init__.py +0 -0
  90. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/pyflann/bindings/flann_ctypes.py +0 -0
  91. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/pyflann/exceptions.py +0 -0
  92. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/pyflann/index.py +0 -0
  93. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/pyflann/io/__init__.py +0 -0
  94. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/pyflann/io/binary_dataset.py +0 -0
  95. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/pyflann/io/dat_dataset.py +0 -0
  96. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/pyflann/io/dataset.py +0 -0
  97. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/pyflann/io/hdf5_dataset.py +0 -0
  98. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/pyflann/io/npy_dataset.py +0 -0
  99. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/pyflann/util/__init__.py +0 -0
  100. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/pyflann/util/weave_tools.py +0 -0
  101. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/pyfx/__init__.py +0 -0
  102. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/pyfx/__version__.py +0 -0
  103. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/pyfx/app.py +0 -0
  104. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/pyfx/cli.py +0 -0
  105. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/pyfx/cli_utils.py +0 -0
  106. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/pyfx/config/__init__.py +0 -0
  107. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/pyfx/config/config.py +0 -0
  108. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/pyfx/config/config_error.py +0 -0
  109. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/pyfx/config/config_parser.py +0 -0
  110. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/pyfx/config/config_transformer.py +0 -0
  111. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/pyfx/config/validators/__init__.py +0 -0
  112. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/pyfx/config/validators/options.py +0 -0
  113. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/pyfx/logging.py +0 -0
  114. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/pyfx/model/__init__.py +0 -0
  115. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/pyfx/model/autocomplete/__init__.py +0 -0
  116. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/pyfx/model/autocomplete/autocomplete_listener.py +0 -0
  117. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/pyfx/model/common/__init__.py +0 -0
  118. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/pyfx/model/common/jsonpath/JSONPathLexer.py +0 -0
  119. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/pyfx/model/common/jsonpath/JSONPathListener.py +0 -0
  120. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/pyfx/model/common/jsonpath/JSONPathParser.py +0 -0
  121. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/pyfx/model/common/jsonpath/__init__.py +0 -0
  122. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/pyfx/model/io/__init__.py +0 -0
  123. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/pyfx/model/io/datasource.py +0 -0
  124. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/pyfx/model/model.py +0 -0
  125. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/pyfx/service/__init__.py +0 -0
  126. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/pyfx/service/client.py +0 -0
  127. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/pyfx/service/dispatcher.py +0 -0
  128. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/pyfx/view/__init__.py +0 -0
  129. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/pyfx/view/common/__init__.py +0 -0
  130. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/pyfx/view/common/popup.py +0 -0
  131. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/pyfx/view/common/selectable_text.py +0 -0
  132. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/pyfx/view/components/__init__.py +0 -0
  133. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/pyfx/view/components/autocomplete_popup/__init__.py +0 -0
  134. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/pyfx/view/components/autocomplete_popup/autocomplete_popup.py +0 -0
  135. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/pyfx/view/components/autocomplete_popup/autocomplete_popup_keymapper.py +0 -0
  136. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/pyfx/view/components/help_bar/__init__.py +0 -0
  137. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/pyfx/view/components/help_bar/help_bar.py +0 -0
  138. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/pyfx/view/components/help_page/__init__.py +0 -0
  139. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/pyfx/view/components/help_page/detailed_help_page.py +0 -0
  140. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/pyfx/view/components/json_browser/__init__.py +0 -0
  141. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/pyfx/view/components/json_browser/json_browser.py +0 -0
  142. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/pyfx/view/components/json_browser/json_browser_keymapper.py +0 -0
  143. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/pyfx/view/components/query_bar/__init__.py +0 -0
  144. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/pyfx/view/components/query_bar/query_bar.py +0 -0
  145. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/pyfx/view/components/query_bar/query_bar_keymapper.py +0 -0
  146. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/pyfx/view/json_lib/__init__.py +0 -0
  147. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/pyfx/view/json_lib/array/__init__.py +0 -0
  148. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/pyfx/view/json_lib/array/array_end_node.py +0 -0
  149. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/pyfx/view/json_lib/array/array_end_widget.py +0 -0
  150. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/pyfx/view/json_lib/array/array_node.py +0 -0
  151. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/pyfx/view/json_lib/array/array_start_widget.py +0 -0
  152. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/pyfx/view/json_lib/array/array_unexpanded_widget.py +0 -0
  153. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/pyfx/view/json_lib/json_composite_end_node.py +0 -0
  154. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/pyfx/view/json_lib/json_composite_node.py +0 -0
  155. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/pyfx/view/json_lib/json_listbox.py +0 -0
  156. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/pyfx/view/json_lib/json_listwalker.py +0 -0
  157. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/pyfx/view/json_lib/json_simple_node.py +0 -0
  158. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/pyfx/view/json_lib/json_widget.py +0 -0
  159. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/pyfx/view/json_lib/node_factory.py +0 -0
  160. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/pyfx/view/json_lib/object/__init__.py +0 -0
  161. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/pyfx/view/json_lib/object/object_end_node.py +0 -0
  162. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/pyfx/view/json_lib/object/object_end_widget.py +0 -0
  163. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/pyfx/view/json_lib/object/object_node.py +0 -0
  164. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/pyfx/view/json_lib/object/object_start_widget.py +0 -0
  165. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/pyfx/view/json_lib/object/object_unexpanded_widget.py +0 -0
  166. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/pyfx/view/json_lib/primitive/__init__.py +0 -0
  167. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/pyfx/view/json_lib/primitive/base.py +0 -0
  168. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/pyfx/view/json_lib/primitive/boolean.py +0 -0
  169. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/pyfx/view/json_lib/primitive/generic.py +0 -0
  170. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/pyfx/view/json_lib/primitive/integer.py +0 -0
  171. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/pyfx/view/json_lib/primitive/null.py +0 -0
  172. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/pyfx/view/json_lib/primitive/numeric.py +0 -0
  173. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/pyfx/view/json_lib/primitive/string.py +0 -0
  174. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/pyfx/view/json_lib/selector/__init__.py +0 -0
  175. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/pyfx/view/keymapper/__init__.py +0 -0
  176. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/pyfx/view/keymapper/abstract_component_keymapper.py +0 -0
  177. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/pyfx/view/keymapper/keymapper.py +0 -0
  178. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/pyfx/view/keymapper/keymapper_config.py +0 -0
  179. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/pyfx/view/keymapper/keymapper_config_parser.py +0 -0
  180. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/pyfx/view/theme/__init__.py +0 -0
  181. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/pyfx/view/theme/theme.py +0 -0
  182. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/pyfx/view/theme/theme_config.py +0 -0
  183. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/pyfx/view/theme/theme_config_parser.py +0 -0
  184. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/pyfx/view/view_config.py +0 -0
  185. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/pyfx/view/view_frame.py +0 -0
  186. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/pyfx/view/view_manager.py +0 -0
  187. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/pynput_recorder.py +0 -0
  188. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/pypi_inspection.py +0 -0
  189. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/pytorch_module_explorer.py +0 -0
  190. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/refactor/string_format/__init__.py +0 -0
  191. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/refactor/string_format/format_to_fstring_converter.py +0 -0
  192. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/refactor/string_format/fstring_converter.py +0 -0
  193. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/refactor/string_format/test_format_to_fstring_converter.py +0 -0
  194. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/refactor/string_format/test_fstring_converter.py +0 -0
  195. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/rp_black_macchiato.py +0 -0
  196. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/stamp_tensor.py +0 -0
  197. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/stdin_python_highlighter.py +0 -0
  198. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/tetris/__init__.py +0 -0
  199. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/tetris/__main__.py +0 -0
  200. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/tetris/graphics/graphics/__init__.py +0 -0
  201. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/tetris/graphics/graphics/canvas.py +0 -0
  202. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/tetris/graphics/graphics/colors.py +0 -0
  203. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/tetris/graphics/graphics/console.py +0 -0
  204. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/tetris/graphics/graphics/funcs.py +0 -0
  205. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/tetris/graphics/graphics/nbinput.py +0 -0
  206. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/tetris/graphics/graphics/shapes.py +0 -0
  207. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/tetris/graphics/graphics/sprite.py +0 -0
  208. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/tetris/letters.py +0 -0
  209. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/tetris/tetrisShapes.py +0 -0
  210. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/timg/__init__.py +0 -0
  211. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/timg/__main__.py +0 -0
  212. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/timg/argparser.py +0 -0
  213. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/timg/meta.py +0 -0
  214. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/timg/methods/__init__.py +0 -0
  215. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/timg/methods/ansi.py +0 -0
  216. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/timg/methods/ansi_methods.py +0 -0
  217. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/timg/methods/ascii.py +0 -0
  218. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/timg/methods/method.py +0 -0
  219. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/timg/methods/sixel.py +0 -0
  220. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/timg/renderer.py +0 -0
  221. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/torch_hooks.py +0 -0
  222. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/torch_tools.py +0 -0
  223. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/tracetraptest.py +0 -0
  224. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/tweenline.py +0 -0
  225. {rp-0.1.1391 → rp-0.1.1393}/rp/libs/webeval_dataset.py +0 -0
  226. {rp-0.1.1391 → rp-0.1.1393}/rp/list_of_modules.py +0 -0
  227. {rp-0.1.1391 → rp-0.1.1393}/rp/misc/Todo +0 -0
  228. {rp-0.1.1391 → rp-0.1.1393}/rp/misc/__init__.py +0 -0
  229. {rp-0.1.1391 → rp-0.1.1393}/rp/misc/blm.py +0 -0
  230. {rp-0.1.1391 → rp-0.1.1393}/rp/misc/chainsaw.py +0 -0
  231. {rp-0.1.1391 → rp-0.1.1393}/rp/misc/claude_bash.sh +0 -0
  232. {rp-0.1.1391 → rp-0.1.1393}/rp/misc/claude_panel.py +0 -0
  233. {rp-0.1.1391 → rp-0.1.1393}/rp/misc/death_of_the_mind.py +0 -0
  234. {rp-0.1.1391 → rp-0.1.1393}/rp/misc/flappy.py +0 -0
  235. {rp-0.1.1391 → rp-0.1.1393}/rp/misc/mario.py +0 -0
  236. {rp-0.1.1391 → rp-0.1.1393}/rp/misc/matrix.py +0 -0
  237. {rp-0.1.1391 → rp-0.1.1393}/rp/misc/mpi_untitled.py +0 -0
  238. {rp-0.1.1391 → rp-0.1.1393}/rp/misc/py2048.py +0 -0
  239. {rp-0.1.1391 → rp-0.1.1393}/rp/misc/pychess.py +0 -0
  240. {rp-0.1.1391 → rp-0.1.1393}/rp/misc/rp_logo.svg +0 -0
  241. {rp-0.1.1391 → rp-0.1.1393}/rp/misc/rp_mpi.py +0 -0
  242. {rp-0.1.1391 → rp-0.1.1393}/rp/misc/ryan_zshrc.py +0 -0
  243. {rp-0.1.1391 → rp-0.1.1393}/rp/misc/shotgun.py +0 -0
  244. {rp-0.1.1391 → rp-0.1.1393}/rp/misc/skia_trail_interactive_paint_demo.py +0 -0
  245. {rp-0.1.1391 → rp-0.1.1393}/rp/misc/snake.py +0 -0
  246. {rp-0.1.1391 → rp-0.1.1393}/rp/misc/sudoku.py +0 -0
  247. {rp-0.1.1391 → rp-0.1.1393}/rp/misc/tetris.py +0 -0
  248. {rp-0.1.1391 → rp-0.1.1393}/rp/misc/trans.py +0 -0
  249. {rp-0.1.1391 → rp-0.1.1393}/rp/prompt_toolkit/__init__.py +0 -0
  250. {rp-0.1.1391 → rp-0.1.1393}/rp/prompt_toolkit/application.py +0 -0
  251. {rp-0.1.1391 → rp-0.1.1393}/rp/prompt_toolkit/auto_suggest.py +0 -0
  252. {rp-0.1.1391 → rp-0.1.1393}/rp/prompt_toolkit/buffer.py +0 -0
  253. {rp-0.1.1391 → rp-0.1.1393}/rp/prompt_toolkit/buffer_mapping.py +0 -0
  254. {rp-0.1.1391 → rp-0.1.1393}/rp/prompt_toolkit/cache.py +0 -0
  255. {rp-0.1.1391 → rp-0.1.1393}/rp/prompt_toolkit/clipboard/__init__.py +0 -0
  256. {rp-0.1.1391 → rp-0.1.1393}/rp/prompt_toolkit/clipboard/base.py +0 -0
  257. {rp-0.1.1391 → rp-0.1.1393}/rp/prompt_toolkit/clipboard/in_memory.py +0 -0
  258. {rp-0.1.1391 → rp-0.1.1393}/rp/prompt_toolkit/clipboard/pyperclip.py +0 -0
  259. {rp-0.1.1391 → rp-0.1.1393}/rp/prompt_toolkit/completion.py +0 -0
  260. {rp-0.1.1391 → rp-0.1.1393}/rp/prompt_toolkit/contrib/__init__.py +0 -0
  261. {rp-0.1.1391 → rp-0.1.1393}/rp/prompt_toolkit/contrib/completers/__init__.py +0 -0
  262. {rp-0.1.1391 → rp-0.1.1393}/rp/prompt_toolkit/contrib/completers/base.py +0 -0
  263. {rp-0.1.1391 → rp-0.1.1393}/rp/prompt_toolkit/contrib/completers/filesystem.py +0 -0
  264. {rp-0.1.1391 → rp-0.1.1393}/rp/prompt_toolkit/contrib/completers/system.py +0 -0
  265. {rp-0.1.1391 → rp-0.1.1393}/rp/prompt_toolkit/contrib/regular_languages/__init__.py +0 -0
  266. {rp-0.1.1391 → rp-0.1.1393}/rp/prompt_toolkit/contrib/regular_languages/compiler.py +0 -0
  267. {rp-0.1.1391 → rp-0.1.1393}/rp/prompt_toolkit/contrib/regular_languages/completion.py +0 -0
  268. {rp-0.1.1391 → rp-0.1.1393}/rp/prompt_toolkit/contrib/regular_languages/lexer.py +0 -0
  269. {rp-0.1.1391 → rp-0.1.1393}/rp/prompt_toolkit/contrib/regular_languages/regex_parser.py +0 -0
  270. {rp-0.1.1391 → rp-0.1.1393}/rp/prompt_toolkit/contrib/regular_languages/validation.py +0 -0
  271. {rp-0.1.1391 → rp-0.1.1393}/rp/prompt_toolkit/contrib/telnet/__init__.py +0 -0
  272. {rp-0.1.1391 → rp-0.1.1393}/rp/prompt_toolkit/contrib/telnet/application.py +0 -0
  273. {rp-0.1.1391 → rp-0.1.1393}/rp/prompt_toolkit/contrib/telnet/log.py +0 -0
  274. {rp-0.1.1391 → rp-0.1.1393}/rp/prompt_toolkit/contrib/telnet/protocol.py +0 -0
  275. {rp-0.1.1391 → rp-0.1.1393}/rp/prompt_toolkit/contrib/telnet/server.py +0 -0
  276. {rp-0.1.1391 → rp-0.1.1393}/rp/prompt_toolkit/contrib/validators/__init__.py +0 -0
  277. {rp-0.1.1391 → rp-0.1.1393}/rp/prompt_toolkit/contrib/validators/base.py +0 -0
  278. {rp-0.1.1391 → rp-0.1.1393}/rp/prompt_toolkit/document.py +0 -0
  279. {rp-0.1.1391 → rp-0.1.1393}/rp/prompt_toolkit/enums.py +0 -0
  280. {rp-0.1.1391 → rp-0.1.1393}/rp/prompt_toolkit/eventloop/__init__.py +0 -0
  281. {rp-0.1.1391 → rp-0.1.1393}/rp/prompt_toolkit/eventloop/asyncio_base.py +0 -0
  282. {rp-0.1.1391 → rp-0.1.1393}/rp/prompt_toolkit/eventloop/asyncio_posix.py +0 -0
  283. {rp-0.1.1391 → rp-0.1.1393}/rp/prompt_toolkit/eventloop/asyncio_win32.py +0 -0
  284. {rp-0.1.1391 → rp-0.1.1393}/rp/prompt_toolkit/eventloop/base.py +0 -0
  285. {rp-0.1.1391 → rp-0.1.1393}/rp/prompt_toolkit/eventloop/callbacks.py +0 -0
  286. {rp-0.1.1391 → rp-0.1.1393}/rp/prompt_toolkit/eventloop/inputhook.py +0 -0
  287. {rp-0.1.1391 → rp-0.1.1393}/rp/prompt_toolkit/eventloop/posix.py +0 -0
  288. {rp-0.1.1391 → rp-0.1.1393}/rp/prompt_toolkit/eventloop/posix_utils.py +0 -0
  289. {rp-0.1.1391 → rp-0.1.1393}/rp/prompt_toolkit/eventloop/select.py +0 -0
  290. {rp-0.1.1391 → rp-0.1.1393}/rp/prompt_toolkit/eventloop/utils.py +0 -0
  291. {rp-0.1.1391 → rp-0.1.1393}/rp/prompt_toolkit/eventloop/win32.py +0 -0
  292. {rp-0.1.1391 → rp-0.1.1393}/rp/prompt_toolkit/filters/__init__.py +0 -0
  293. {rp-0.1.1391 → rp-0.1.1393}/rp/prompt_toolkit/filters/base.py +0 -0
  294. {rp-0.1.1391 → rp-0.1.1393}/rp/prompt_toolkit/filters/cli.py +0 -0
  295. {rp-0.1.1391 → rp-0.1.1393}/rp/prompt_toolkit/filters/types.py +0 -0
  296. {rp-0.1.1391 → rp-0.1.1393}/rp/prompt_toolkit/filters/utils.py +0 -0
  297. {rp-0.1.1391 → rp-0.1.1393}/rp/prompt_toolkit/history.py +0 -0
  298. {rp-0.1.1391 → rp-0.1.1393}/rp/prompt_toolkit/input.py +0 -0
  299. {rp-0.1.1391 → rp-0.1.1393}/rp/prompt_toolkit/interface.py +0 -0
  300. {rp-0.1.1391 → rp-0.1.1393}/rp/prompt_toolkit/key_binding/__init__.py +0 -0
  301. {rp-0.1.1391 → rp-0.1.1393}/rp/prompt_toolkit/key_binding/bindings/__init__.py +0 -0
  302. {rp-0.1.1391 → rp-0.1.1393}/rp/prompt_toolkit/key_binding/bindings/basic.py +0 -0
  303. {rp-0.1.1391 → rp-0.1.1393}/rp/prompt_toolkit/key_binding/bindings/completion.py +0 -0
  304. {rp-0.1.1391 → rp-0.1.1393}/rp/prompt_toolkit/key_binding/bindings/emacs.py +0 -0
  305. {rp-0.1.1391 → rp-0.1.1393}/rp/prompt_toolkit/key_binding/bindings/named_commands.py +0 -0
  306. {rp-0.1.1391 → rp-0.1.1393}/rp/prompt_toolkit/key_binding/bindings/scroll.py +0 -0
  307. {rp-0.1.1391 → rp-0.1.1393}/rp/prompt_toolkit/key_binding/bindings/vi.py +0 -0
  308. {rp-0.1.1391 → rp-0.1.1393}/rp/prompt_toolkit/key_binding/defaults.py +0 -0
  309. {rp-0.1.1391 → rp-0.1.1393}/rp/prompt_toolkit/key_binding/digraphs.py +0 -0
  310. {rp-0.1.1391 → rp-0.1.1393}/rp/prompt_toolkit/key_binding/input_processor.py +0 -0
  311. {rp-0.1.1391 → rp-0.1.1393}/rp/prompt_toolkit/key_binding/manager.py +0 -0
  312. {rp-0.1.1391 → rp-0.1.1393}/rp/prompt_toolkit/key_binding/registry.py +0 -0
  313. {rp-0.1.1391 → rp-0.1.1393}/rp/prompt_toolkit/key_binding/vi_state.py +0 -0
  314. {rp-0.1.1391 → rp-0.1.1393}/rp/prompt_toolkit/keys.py +0 -0
  315. {rp-0.1.1391 → rp-0.1.1393}/rp/prompt_toolkit/layout/__init__.py +0 -0
  316. {rp-0.1.1391 → rp-0.1.1393}/rp/prompt_toolkit/layout/containers.py +0 -0
  317. {rp-0.1.1391 → rp-0.1.1393}/rp/prompt_toolkit/layout/controls.py +0 -0
  318. {rp-0.1.1391 → rp-0.1.1393}/rp/prompt_toolkit/layout/dimension.py +0 -0
  319. {rp-0.1.1391 → rp-0.1.1393}/rp/prompt_toolkit/layout/lexers.py +0 -0
  320. {rp-0.1.1391 → rp-0.1.1393}/rp/prompt_toolkit/layout/margins.py +0 -0
  321. {rp-0.1.1391 → rp-0.1.1393}/rp/prompt_toolkit/layout/menus.py +0 -0
  322. {rp-0.1.1391 → rp-0.1.1393}/rp/prompt_toolkit/layout/mouse_handlers.py +0 -0
  323. {rp-0.1.1391 → rp-0.1.1393}/rp/prompt_toolkit/layout/processors.py +0 -0
  324. {rp-0.1.1391 → rp-0.1.1393}/rp/prompt_toolkit/layout/prompt.py +0 -0
  325. {rp-0.1.1391 → rp-0.1.1393}/rp/prompt_toolkit/layout/screen.py +0 -0
  326. {rp-0.1.1391 → rp-0.1.1393}/rp/prompt_toolkit/layout/toolbars.py +0 -0
  327. {rp-0.1.1391 → rp-0.1.1393}/rp/prompt_toolkit/layout/untitled.py +0 -0
  328. {rp-0.1.1391 → rp-0.1.1393}/rp/prompt_toolkit/layout/utils.py +0 -0
  329. {rp-0.1.1391 → rp-0.1.1393}/rp/prompt_toolkit/mouse_events.py +0 -0
  330. {rp-0.1.1391 → rp-0.1.1393}/rp/prompt_toolkit/output.py +0 -0
  331. {rp-0.1.1391 → rp-0.1.1393}/rp/prompt_toolkit/reactive.py +0 -0
  332. {rp-0.1.1391 → rp-0.1.1393}/rp/prompt_toolkit/renderer.py +0 -0
  333. {rp-0.1.1391 → rp-0.1.1393}/rp/prompt_toolkit/search_state.py +0 -0
  334. {rp-0.1.1391 → rp-0.1.1393}/rp/prompt_toolkit/selection.py +0 -0
  335. {rp-0.1.1391 → rp-0.1.1393}/rp/prompt_toolkit/shortcuts.py +0 -0
  336. {rp-0.1.1391 → rp-0.1.1393}/rp/prompt_toolkit/styles/__init__.py +0 -0
  337. {rp-0.1.1391 → rp-0.1.1393}/rp/prompt_toolkit/styles/base.py +0 -0
  338. {rp-0.1.1391 → rp-0.1.1393}/rp/prompt_toolkit/styles/defaults.py +0 -0
  339. {rp-0.1.1391 → rp-0.1.1393}/rp/prompt_toolkit/styles/from_dict.py +0 -0
  340. {rp-0.1.1391 → rp-0.1.1393}/rp/prompt_toolkit/styles/from_pygments.py +0 -0
  341. {rp-0.1.1391 → rp-0.1.1393}/rp/prompt_toolkit/styles/utils.py +0 -0
  342. {rp-0.1.1391 → rp-0.1.1393}/rp/prompt_toolkit/terminal/__init__.py +0 -0
  343. {rp-0.1.1391 → rp-0.1.1393}/rp/prompt_toolkit/terminal/conemu_output.py +0 -0
  344. {rp-0.1.1391 → rp-0.1.1393}/rp/prompt_toolkit/terminal/vt100_input.py +0 -0
  345. {rp-0.1.1391 → rp-0.1.1393}/rp/prompt_toolkit/terminal/vt100_output.py +0 -0
  346. {rp-0.1.1391 → rp-0.1.1393}/rp/prompt_toolkit/terminal/win32_input.py +0 -0
  347. {rp-0.1.1391 → rp-0.1.1393}/rp/prompt_toolkit/terminal/win32_output.py +0 -0
  348. {rp-0.1.1391 → rp-0.1.1393}/rp/prompt_toolkit/token.py +0 -0
  349. {rp-0.1.1391 → rp-0.1.1393}/rp/prompt_toolkit/utils.py +0 -0
  350. {rp-0.1.1391 → rp-0.1.1393}/rp/prompt_toolkit/validation.py +0 -0
  351. {rp-0.1.1391 → rp-0.1.1393}/rp/prompt_toolkit/win32_types.py +0 -0
  352. {rp-0.1.1391 → rp-0.1.1393}/rp/rp_ptpython/__init__.py +0 -0
  353. {rp-0.1.1391 → rp-0.1.1393}/rp/rp_ptpython/__main__.py +0 -0
  354. {rp-0.1.1391 → rp-0.1.1393}/rp/rp_ptpython/ast_selection.py +0 -0
  355. {rp-0.1.1391 → rp-0.1.1393}/rp/rp_ptpython/async_analyzer_base.py +0 -0
  356. {rp-0.1.1391 → rp-0.1.1393}/rp/rp_ptpython/async_jedi_highlighter.py +0 -0
  357. {rp-0.1.1391 → rp-0.1.1393}/rp/rp_ptpython/backslash_commands.py +0 -0
  358. {rp-0.1.1391 → rp-0.1.1393}/rp/rp_ptpython/bash_completer.py +0 -0
  359. {rp-0.1.1391 → rp-0.1.1393}/rp/rp_ptpython/bash_extract.py +0 -0
  360. {rp-0.1.1391 → rp-0.1.1393}/rp/rp_ptpython/bash_inline.py +0 -0
  361. {rp-0.1.1391 → rp-0.1.1393}/rp/rp_ptpython/bash_rename.py +0 -0
  362. {rp-0.1.1391 → rp-0.1.1393}/rp/rp_ptpython/bash_selection.py +0 -0
  363. {rp-0.1.1391 → rp-0.1.1393}/rp/rp_ptpython/completer.py +0 -0
  364. {rp-0.1.1391 → rp-0.1.1393}/rp/rp_ptpython/completer_old.py +0 -0
  365. {rp-0.1.1391 → rp-0.1.1393}/rp/rp_ptpython/completion_ranker.py +0 -0
  366. {rp-0.1.1391 → rp-0.1.1393}/rp/rp_ptpython/completion_schema.py +0 -0
  367. {rp-0.1.1391 → rp-0.1.1393}/rp/rp_ptpython/completion_types.py +0 -0
  368. {rp-0.1.1391 → rp-0.1.1393}/rp/rp_ptpython/eventloop.py +0 -0
  369. {rp-0.1.1391 → rp-0.1.1393}/rp/rp_ptpython/filters.py +0 -0
  370. {rp-0.1.1391 → rp-0.1.1393}/rp/rp_ptpython/history_browser.py +0 -0
  371. {rp-0.1.1391 → rp-0.1.1393}/rp/rp_ptpython/ipython.py +0 -0
  372. {rp-0.1.1391 → rp-0.1.1393}/rp/rp_ptpython/jedi_highlighter.py +0 -0
  373. {rp-0.1.1391 → rp-0.1.1393}/rp/rp_ptpython/jedi_lexer.py +0 -0
  374. {rp-0.1.1391 → rp-0.1.1393}/rp/rp_ptpython/jedi_utils.py +0 -0
  375. {rp-0.1.1391 → rp-0.1.1393}/rp/rp_ptpython/key_bindings.py +0 -0
  376. {rp-0.1.1391 → rp-0.1.1393}/rp/rp_ptpython/layout.py +0 -0
  377. {rp-0.1.1391 → rp-0.1.1393}/rp/rp_ptpython/patch_linecache.py +0 -0
  378. {rp-0.1.1391 → rp-0.1.1393}/rp/rp_ptpython/prompt_style.py +0 -0
  379. {rp-0.1.1391 → rp-0.1.1393}/rp/rp_ptpython/python_input.py +0 -0
  380. {rp-0.1.1391 → rp-0.1.1393}/rp/rp_ptpython/r_iterm_comm.py +0 -0
  381. {rp-0.1.1391 → rp-0.1.1393}/rp/rp_ptpython/refactor_extract.py +0 -0
  382. {rp-0.1.1391 → rp-0.1.1393}/rp/rp_ptpython/refactor_inline.py +0 -0
  383. {rp-0.1.1391 → rp-0.1.1393}/rp/rp_ptpython/refactor_move.py +0 -0
  384. {rp-0.1.1391 → rp-0.1.1393}/rp/rp_ptpython/refactor_move_bash.py +0 -0
  385. {rp-0.1.1391 → rp-0.1.1393}/rp/rp_ptpython/refactor_rename.py +0 -0
  386. {rp-0.1.1391 → rp-0.1.1393}/rp/rp_ptpython/repl.py +0 -0
  387. {rp-0.1.1391 → rp-0.1.1393}/rp/rp_ptpython/rp_ptpdb/__init__.py +0 -0
  388. {rp-0.1.1391 → rp-0.1.1393}/rp/rp_ptpython/rp_ptpdb/commands.py +0 -0
  389. {rp-0.1.1391 → rp-0.1.1393}/rp/rp_ptpython/rp_ptpdb/completers.py +0 -0
  390. {rp-0.1.1391 → rp-0.1.1393}/rp/rp_ptpython/rp_ptpdb/completion_hints.py +0 -0
  391. {rp-0.1.1391 → rp-0.1.1393}/rp/rp_ptpython/rp_ptpdb/grammar.py +0 -0
  392. {rp-0.1.1391 → rp-0.1.1393}/rp/rp_ptpython/rp_ptpdb/key_bindings.py +0 -0
  393. {rp-0.1.1391 → rp-0.1.1393}/rp/rp_ptpython/rp_ptpdb/layout.py +0 -0
  394. {rp-0.1.1391 → rp-0.1.1393}/rp/rp_ptpython/rp_ptpdb/style.py +0 -0
  395. {rp-0.1.1391 → rp-0.1.1393}/rp/rp_ptpython/rp_ptpdb/toolbars.py +0 -0
  396. {rp-0.1.1391 → rp-0.1.1393}/rp/rp_ptpython/selection_utils.py +0 -0
  397. {rp-0.1.1391 → rp-0.1.1393}/rp/rp_ptpython/style.py +0 -0
  398. {rp-0.1.1391 → rp-0.1.1393}/rp/rp_ptpython/testable_keybindings.py +0 -0
  399. {rp-0.1.1391 → rp-0.1.1393}/rp/rp_ptpython/treesitter_selection.py +0 -0
  400. {rp-0.1.1391 → rp-0.1.1393}/rp/rp_ptpython/treesitter_semantic.py +0 -0
  401. {rp-0.1.1391 → rp-0.1.1393}/rp/rp_ptpython/unreachable_detector.py +0 -0
  402. {rp-0.1.1391 → rp-0.1.1393}/rp/rp_ptpython/utils.py +0 -0
  403. {rp-0.1.1391 → rp-0.1.1393}/rp/rp_ptpython/validator.py +0 -0
  404. {rp-0.1.1391 → rp-0.1.1393}/rp/ryan_vimrc.py +0 -0
  405. {rp-0.1.1391 → rp-0.1.1393}/rp/web_evaluator.py +0 -0
  406. {rp-0.1.1391 → rp-0.1.1393}/rp.egg-info/dependency_links.txt +0 -0
  407. {rp-0.1.1391 → rp-0.1.1393}/rp.egg-info/entry_points.txt +0 -0
  408. {rp-0.1.1391 → rp-0.1.1393}/rp.egg-info/requires.txt +0 -0
  409. {rp-0.1.1391 → rp-0.1.1393}/rp.egg-info/top_level.txt +0 -0
  410. {rp-0.1.1391 → rp-0.1.1393}/setup.cfg +0 -0
  411. {rp-0.1.1391 → rp-0.1.1393}/setup.py +0 -0
  412. {rp-0.1.1391 → rp-0.1.1393}/untitled.c +0 -0
  413. {rp-0.1.1391 → rp-0.1.1393}/update_module_paths.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 1.0
2
2
  Name: rp
3
- Version: 0.1.1391
3
+ Version: 0.1.1393
4
4
  Summary: Ryan's Python: IDE + Library + Tools
5
5
  Home-page: https://github.com/RyannDaGreat/rp
6
6
  Author: Ryan Burgert
@@ -0,0 +1,106 @@
1
+ """
2
+ Kitten TTS server.
3
+ Usage: python -m rp.libs.kitten_tts_server run_server [--port=32462]
4
+ python -m rp.libs.kitten_tts_server ensure_server [--port=32462]
5
+ """
6
+ import sys
7
+
8
+ TMUX_SESSION = 'KittenTTS'
9
+ DEFAULT_PORT = 32462
10
+
11
+ def _get_port_from_tmux():
12
+ """Get port from tmux window name if session exists and server is responding."""
13
+ import rp
14
+ if TMUX_SESSION not in rp.tmux_get_all_session_names():
15
+ return None
16
+ # Window name contains port
17
+ window_name = rp.shell_command('tmux list-windows -t ' + TMUX_SESSION + ' -F "#{window_name}" 2>/dev/null').strip().split('\n')[0]
18
+ try:
19
+ port = int(window_name)
20
+ except (ValueError, IndexError):
21
+ return None
22
+ # Check if responding
23
+ if rp.shell_command('curl -s -o /dev/null -w "%{http_code}" http://localhost:' + str(port) + '/ 2>/dev/null').strip() == '200':
24
+ return port
25
+ return None
26
+
27
+ def ensure_server(port=DEFAULT_PORT):
28
+ """Ensure server is running. Returns port."""
29
+ import rp
30
+
31
+ # Check if already running
32
+ existing_port = _get_port_from_tmux()
33
+ if existing_port:
34
+ return existing_port
35
+
36
+ # Kill stale session
37
+ if TMUX_SESSION in rp.tmux_get_all_session_names():
38
+ rp.tmux_kill_session(TMUX_SESSION)
39
+
40
+ # Find free port
41
+ port = rp.get_next_free_port(port)
42
+
43
+ # Start in tmux with window name = port
44
+ cmd = sys.executable + ' -m rp.libs.kitten_tts_server run_server --port=' + str(port)
45
+ rp.shell_command('tmux new-session -d -s ' + TMUX_SESSION + ' -n ' + str(port) + ' ' + rp.shlex.quote(cmd))
46
+
47
+ # Wait for ready
48
+ for _ in range(60):
49
+ if rp.shell_command('curl -s -o /dev/null -w "%{http_code}" http://localhost:' + str(port) + '/ 2>/dev/null').strip() == '200':
50
+ return port
51
+ rp.sleep(0.5)
52
+
53
+ raise RuntimeError('Kitten TTS server failed to start on port ' + str(port))
54
+
55
+ def run_server(port=DEFAULT_PORT):
56
+ """Run the server (blocking)."""
57
+ import subprocess
58
+ # Install deps - need specific onnxruntime version for opset compatibility
59
+ subprocess.run([sys.executable, '-m', 'pip', 'install', '-q',
60
+ 'https://github.com/KittenML/KittenTTS/releases/download/0.1/kittentts-0.1.0-py3-none-any.whl',
61
+ 'fastapi', 'uvicorn', 'websockets', 'numpy', 'onnxruntime>=1.20'], stderr=subprocess.DEVNULL)
62
+
63
+ from fastapi import FastAPI, WebSocket, Query
64
+ from fastapi.responses import HTMLResponse
65
+ import uvicorn
66
+ from kittentts import KittenTTS
67
+ import numpy as np
68
+
69
+ app = FastAPI()
70
+ model = None
71
+
72
+ @app.on_event("startup")
73
+ async def load_model():
74
+ nonlocal model
75
+ print('[kitten_tts] Loading model...')
76
+ model = KittenTTS('KittenML/kitten-tts-nano-0.1')
77
+ print('[kitten_tts] Ready on port ' + str(port))
78
+
79
+ @app.get("/")
80
+ async def root():
81
+ return HTMLResponse('<h1>Kitten TTS</h1>')
82
+
83
+ @app.websocket("/stream")
84
+ async def stream_tts(
85
+ websocket: WebSocket,
86
+ text: str = Query(...),
87
+ voice: str = Query(default='expr-voice-3-f'),
88
+ speed: float = Query(default=1.0)
89
+ ):
90
+ await websocket.accept()
91
+ try:
92
+ audio = model.generate(text, voice=voice, speed=speed)
93
+ audio_bytes = (audio * 32767).astype(np.int16).tobytes()
94
+ for i in range(0, len(audio_bytes), 9600):
95
+ await websocket.send_bytes(audio_bytes[i:i + 9600])
96
+ except Exception:
97
+ pass
98
+ await websocket.close()
99
+
100
+ uvicorn.run(app, host='0.0.0.0', port=port)
101
+
102
+ if __name__ == '__main__':
103
+ import rp
104
+ rp.pip_import('fire')
105
+ import fire
106
+ fire.Fire()
@@ -0,0 +1,315 @@
1
+ """
2
+ SuperTonic TTS server - lightning-fast on-device TTS (66M params, 167x realtime).
3
+
4
+ USAGE:
5
+ python -m rp.libs.supertonic_tts_server run_server [--port=7123]
6
+ python -m rp.libs.supertonic_tts_server ensure_server [--port=7123]
7
+
8
+ PYTHON API:
9
+ import rp
10
+ rp.text_to_speech_via_supertonic("Hello world")
11
+ rp.text_to_speech_via_supertonic("Fast", speed=2.0, voice="M1", volume=1.5)
12
+ rp.text_to_speech_via_supertonic_set_defaults(voice="F2", speed=1.5, volume=1.0)
13
+ rp.text_to_speech_via_supertonic_get_defaults()
14
+
15
+ HTTP API ENDPOINTS:
16
+ All endpoints return JSON. Server runs on localhost:7123 by default.
17
+
18
+ GET /health
19
+ Health check. Returns {"status": "ok", "tts": "supertonic", "voices": [...]}
20
+
21
+ GET /defaults
22
+ Get current default settings.
23
+ Returns: {"voice": "F1", "speed": 1.5, "volume": 1.0, "steps": 5}
24
+
25
+ GET /set_defaults?voice=F1&speed=1.5&volume=1.0&steps=5
26
+ Set default voice, speed, volume, and/or steps (persists for all clients).
27
+ Parameters (all optional):
28
+ voice: F1-F5 (female) or M1-M5 (male)
29
+ speed: 0.7 to 2.0 (float)
30
+ volume: 0.0 to 2.0 (float, 1.0 = normal)
31
+ steps: 1 to 10 (int, quality - higher = better but slower)
32
+ Returns: {"ok": true, "defaults": {"voice": "F1", "speed": 1.5, "volume": 1.0, "steps": 5}}
33
+
34
+ GET /speak?text=Hello&voice=F1&speed=1.5&volume=1.0&steps=5
35
+ Synthesize and play text through speakers.
36
+ Parameters:
37
+ text: (required) Text to speak
38
+ voice: (optional) F1-F5 or M1-M5, defaults to server default
39
+ speed: (optional) 0.7-2.0, defaults to server default
40
+ volume: (optional) 0.0-2.0, defaults to server default
41
+ steps: (optional) 1-10, quality steps, defaults to server default
42
+ Returns: {"ok": true, "duration": 1.23, "text": "Hello", "voice": "F1", "speed": 1.5, "volume": 1.0, "steps": 5}
43
+
44
+ POST /speak
45
+ Same as GET but with JSON body: {"text": "Hello", "voice": "F1", "speed": 1.5, "volume": 1.0, "steps": 5}
46
+
47
+ CURL EXAMPLES:
48
+ # Health check
49
+ curl http://localhost:7123/health
50
+
51
+ # Speak text (URL-encoded)
52
+ curl "http://localhost:7123/speak?text=Hello%20world"
53
+
54
+ # Speak with custom voice, speed, and volume
55
+ curl "http://localhost:7123/speak?text=Fast%20speech&voice=M1&speed=2.0&volume=1.5"
56
+
57
+ # Set defaults for all future requests
58
+ curl "http://localhost:7123/set_defaults?voice=F2&speed=1.8&volume=1.0"
59
+
60
+ # Get current defaults
61
+ curl http://localhost:7123/defaults
62
+
63
+ # POST with JSON body
64
+ curl -X POST http://localhost:7123/speak -H "Content-Type: application/json" -d '{"text": "Hello"}'
65
+
66
+ VOICES:
67
+ Female: F1, F2, F3, F4, F5
68
+ Male: M1, M2, M3, M4, M5
69
+
70
+ SPEED:
71
+ Range: 0.7 (slow) to 2.0 (fast)
72
+ Default: 1.5
73
+ Normal speech: 1.0
74
+
75
+ VOLUME:
76
+ Range: 0.0 (mute) to 2.0 (loud)
77
+ Default: 1.0
78
+ Normal: 1.0
79
+
80
+ STEPS (Quality):
81
+ Range: 1 (fast/low quality) to 10 (slow/high quality)
82
+ Default: 5
83
+ Recommended: 3-5 for real-time, 8-10 for offline generation
84
+ """
85
+ import sys
86
+
87
+ TMUX_SESSION = 'SuperTonicTTS'
88
+ DEFAULT_PORT = 7123
89
+ VOICES = ['F1', 'F2', 'F3', 'F4', 'F5', 'M1', 'M2', 'M3', 'M4', 'M5']
90
+
91
+ # Defaults that can be changed at runtime
92
+ _defaults = {
93
+ 'voice': 'F1',
94
+ 'speed': 1.5,
95
+ 'volume': 1.0,
96
+ 'steps': 5, # Quality: 1-10, higher = better quality but slower
97
+ }
98
+
99
+
100
+ def set_defaults(voice=None, speed=None, volume=None, steps=None):
101
+ """Set default voice, speed, volume, and steps for TTS requests."""
102
+ if voice is not None:
103
+ if voice not in VOICES:
104
+ raise ValueError(f'Invalid voice: {voice}. Choose from: {", ".join(VOICES)}')
105
+ _defaults['voice'] = voice
106
+ if speed is not None:
107
+ if not 0.7 <= speed <= 2.0:
108
+ raise ValueError(f'Speed must be between 0.7 and 2.0, got {speed}')
109
+ _defaults['speed'] = speed
110
+ if volume is not None:
111
+ if not 0.0 <= volume <= 2.0:
112
+ raise ValueError(f'Volume must be between 0.0 and 2.0, got {volume}')
113
+ _defaults['volume'] = volume
114
+ if steps is not None:
115
+ if not 1 <= steps <= 10:
116
+ raise ValueError(f'Steps must be between 1 and 10, got {steps}')
117
+ _defaults['steps'] = steps
118
+
119
+
120
+ def get_defaults():
121
+ """Get current default settings."""
122
+ return _defaults.copy()
123
+
124
+
125
+ def _get_port_from_tmux():
126
+ """Get port from tmux window name if session exists and server is responding."""
127
+ import rp
128
+ if TMUX_SESSION not in rp.tmux_get_all_session_names():
129
+ return None
130
+ # Window name contains port
131
+ window_name = rp.shell_command(
132
+ f'tmux list-windows -t {TMUX_SESSION} -F "#{{window_name}}" 2>/dev/null'
133
+ ).strip().split('\n')[0]
134
+ try:
135
+ port = int(window_name)
136
+ except (ValueError, IndexError):
137
+ return None
138
+ # Check if responding
139
+ if rp.shell_command(
140
+ f'curl -s -o /dev/null -w "%{{http_code}}" http://localhost:{port}/health 2>/dev/null'
141
+ ).strip() == '200':
142
+ return port
143
+ return None
144
+
145
+
146
+ def ensure_server(port=DEFAULT_PORT):
147
+ """Ensure server is running. Returns port."""
148
+ import rp
149
+
150
+ # Check if already running
151
+ existing_port = _get_port_from_tmux()
152
+ if existing_port:
153
+ return existing_port
154
+
155
+ # Kill stale session
156
+ if TMUX_SESSION in rp.tmux_get_all_session_names():
157
+ rp.tmux_kill_session(TMUX_SESSION)
158
+
159
+ # Find free port
160
+ port = rp.get_next_free_port(port)
161
+
162
+ # Start in tmux with window name = port
163
+ cmd = f'{sys.executable} -m rp.libs.supertonic_tts_server run_server --port={port}'
164
+ rp.shell_command(f'tmux new-session -d -s {TMUX_SESSION} -n {port} {rp.shlex.quote(cmd)}')
165
+
166
+ # Wait for ready (SuperTonic takes longer to load model)
167
+ print(f'[supertonic_tts] Starting server on port {port}...')
168
+ for i in range(120): # Up to 60 seconds
169
+ if rp.shell_command(
170
+ f'curl -s -o /dev/null -w "%{{http_code}}" http://localhost:{port}/health 2>/dev/null'
171
+ ).strip() == '200':
172
+ print(f'[supertonic_tts] Server ready on port {port}')
173
+ return port
174
+ rp.sleep(0.5)
175
+
176
+ raise RuntimeError(f'SuperTonic TTS server failed to start on port {port}')
177
+
178
+
179
+ def run_server(port=DEFAULT_PORT):
180
+ """Run the server (blocking)."""
181
+ import rp
182
+
183
+ # Ensure dependencies are installed
184
+ print('[supertonic_tts] Checking dependencies...')
185
+ rp.pip_import('supertonic', auto_yes=True)
186
+ rp.pip_import('sounddevice', auto_yes=True)
187
+ rp.pip_import('numpy', auto_yes=True)
188
+
189
+ # Now import normally
190
+ import http.server
191
+ import json
192
+ import socketserver
193
+ import urllib.parse
194
+ import numpy as np
195
+ import sounddevice as sd
196
+ from supertonic import TTS
197
+
198
+ print('[supertonic_tts] Loading model (~305MB on first run)...')
199
+ tts = TTS(auto_download=True)
200
+ print(f'[supertonic_tts] Model loaded. Sample rate: {tts.sample_rate}Hz')
201
+ print(f'[supertonic_tts] Voices: {tts.voice_style_names}')
202
+
203
+ voice_styles = {v: tts.get_voice_style(voice_name=v) for v in tts.voice_style_names}
204
+
205
+ class Handler(http.server.BaseHTTPRequestHandler):
206
+ def log_message(self, fmt, *args):
207
+ print(f'[supertonic_tts] {args[0]}')
208
+
209
+ def _send_json(self, data, status=200):
210
+ body = json.dumps(data).encode()
211
+ self.send_response(status)
212
+ self.send_header('Content-Type', 'application/json')
213
+ self.send_header('Content-Length', len(body))
214
+ self.end_headers()
215
+ self.wfile.write(body)
216
+
217
+ def do_GET(self):
218
+ parsed = urllib.parse.urlparse(self.path)
219
+ params = urllib.parse.parse_qs(parsed.query)
220
+
221
+ if parsed.path == '/health':
222
+ self._send_json({'status': 'ok', 'tts': 'supertonic', 'voices': VOICES})
223
+ return
224
+
225
+ if parsed.path == '/defaults':
226
+ self._send_json(_defaults)
227
+ return
228
+
229
+ if parsed.path == '/set_defaults':
230
+ voice = params.get('voice', [None])[0]
231
+ speed = params.get('speed', [None])[0]
232
+ volume = params.get('volume', [None])[0]
233
+ steps = params.get('steps', [None])[0]
234
+ try:
235
+ set_defaults(
236
+ voice=voice,
237
+ speed=float(speed) if speed else None,
238
+ volume=float(volume) if volume else None,
239
+ steps=int(steps) if steps else None
240
+ )
241
+ self._send_json({'ok': True, 'defaults': _defaults})
242
+ except ValueError as e:
243
+ self._send_json({'error': str(e)}, 400)
244
+ return
245
+
246
+ if parsed.path != '/speak':
247
+ self._send_json({'error': 'Use GET /speak?text=...'}, 404)
248
+ return
249
+
250
+ text = params.get('text', [''])[0]
251
+ voice = params.get('voice', [_defaults['voice']])[0]
252
+ speed_str = params.get('speed', [None])[0]
253
+ speed = float(speed_str) if speed_str else _defaults['speed']
254
+ volume_str = params.get('volume', [None])[0]
255
+ volume = float(volume_str) if volume_str else _defaults['volume']
256
+ steps_str = params.get('steps', [None])[0]
257
+ steps = int(steps_str) if steps_str else _defaults['steps']
258
+
259
+ if not text:
260
+ self._send_json({'error': 'Missing text parameter'}, 400)
261
+ return
262
+
263
+ if voice not in voice_styles:
264
+ self._send_json({'error': f'Invalid voice: {voice}'}, 400)
265
+ return
266
+
267
+ try:
268
+ wav, duration = tts.synthesize(
269
+ text,
270
+ voice_style=voice_styles[voice],
271
+ lang='en',
272
+ speed=speed,
273
+ total_steps=steps
274
+ )
275
+ wav = np.squeeze(wav)
276
+ # Apply volume scaling
277
+ if volume != 1.0:
278
+ wav = wav * volume
279
+ sd.play(wav, samplerate=tts.sample_rate)
280
+ sd.wait()
281
+ dur = float(duration[0]) if hasattr(duration, '__getitem__') else float(duration)
282
+ self._send_json({'ok': True, 'duration': dur, 'text': text, 'voice': voice, 'speed': speed, 'volume': volume, 'steps': steps})
283
+ except Exception as e:
284
+ self._send_json({'error': str(e)}, 500)
285
+
286
+ def do_POST(self):
287
+ content_length = int(self.headers.get('Content-Length', 0))
288
+ body = self.rfile.read(content_length).decode()
289
+
290
+ try:
291
+ data = json.loads(body) if body else {}
292
+ except json.JSONDecodeError:
293
+ data = {'text': body}
294
+
295
+ # Redirect to GET handler with params
296
+ text = data.get('text', '')
297
+ voice = data.get('voice', _defaults['voice'])
298
+ speed = data.get('speed', _defaults['speed'])
299
+
300
+ self.path = f'/speak?text={urllib.parse.quote(text)}&voice={voice}&speed={speed}'
301
+ self.do_GET()
302
+
303
+ class ThreadedServer(socketserver.ThreadingMixIn, socketserver.TCPServer):
304
+ allow_reuse_address = True
305
+
306
+ with ThreadedServer(('0.0.0.0', port), Handler) as server:
307
+ print(f'[supertonic_tts] Ready on http://localhost:{port}')
308
+ server.serve_forever()
309
+
310
+
311
+ if __name__ == '__main__':
312
+ import rp
313
+ rp.pip_import('fire')
314
+ import fire
315
+ fire.Fire()
@@ -21825,7 +21825,14 @@ def merged_dicts(*dicts, precedence='last', mutate=False):
21825
21825
  first_dict = dicts[0] if len(dicts) else {}
21826
21826
 
21827
21827
  # If mutate is True, the first dictionary is updated directly.
21828
- result = first_dict if mutate else type(first_dict)()
21828
+ if mutate:
21829
+ result = first_dict
21830
+ else:
21831
+ try:
21832
+ result = type(first_dict)()
21833
+ except TypeError:
21834
+ # Fallback for types like FrameLocalsProxy (Python 3.13+) that can't be instantiated without arguments
21835
+ result = dict()
21829
21836
 
21830
21837
  # Merge the dicts into result
21831
21838
  for d in dicts:
@@ -51372,6 +51379,26 @@ def _ensure_shell_has_path(*, mac=None, linux=None, windows=None, unix=None):
51372
51379
  elif windows and currently_running_windows():
51373
51380
  raise NotImplementedError
51374
51381
 
51382
+ def _ensure_shell_has_line(line: str):
51383
+ """
51384
+ Append a line to shell rc files if not already present.
51385
+
51386
+ Args:
51387
+ line: The line to add (e.g., 'export FOO="bar"').
51388
+
51389
+ Notes:
51390
+ - Appends to ~/.zshrc and ~/.bashrc (see _all_shell_rc_paths).
51391
+ - Skips if the exact line is already in the file.
51392
+ """
51393
+ for rc_path in _all_shell_rc_paths:
51394
+ rc_path = os.path.expanduser(rc_path)
51395
+ if file_exists(rc_path):
51396
+ contents = text_file_to_string(rc_path)
51397
+ if line in contents:
51398
+ continue
51399
+ append_line_to_file(line, rc_path)
51400
+ fansi_print('r._ensure_shell_has_line: Wrote ' + repr(line) + ' to files: ' + repr(_all_shell_rc_paths), 'green bold')
51401
+
51375
51402
  def _ensure_installed(name: str, *, windows=None, mac=None, linux=None, unix=None, force=False) -> bool:
51376
51403
  """ Attempts to install a program on various operating systems. Returns True if we install something. """
51377
51404
 
@@ -51475,7 +51502,7 @@ def _ensure_go_installed():
51475
51502
  """go: Statically-typed compiled language by Google with strong concurrency support"""
51476
51503
  _ensure_installed(
51477
51504
  'go',
51478
- mac = 'brew install golang-go',
51505
+ mac = 'brew install go',
51479
51506
  linux = 'apt install golang-go --yes',
51480
51507
  windows='winget install --id=GoLang.Go', # https://winstall.app/apps/GoLang.Go
51481
51508
  )
@@ -51962,6 +51989,24 @@ def _ensure_vivaldi_installed():
51962
51989
  windows='winget install --id=Vivaldi.Vivaldi', #https://winstall.app/apps/Vivaldi.Vivaldi
51963
51990
  )
51964
51991
 
51992
+ @_register_ensure_installed_func
51993
+ def _ensure_fluidsynth_installed():
51994
+ """fluidsynth: Real-time software synthesizer based on SoundFont 2"""
51995
+ _ensure_installed(
51996
+ 'fluidsynth',
51997
+ mac ='brew install fluid-synth', #https://formulae.brew.sh/formula/fluid-synth
51998
+ linux ='sudo apt install fluidsynth libfluidsynth-dev -y', #https://packages.ubuntu.com/fluidsynth
51999
+ windows='winget install --id=FluidSynth.FluidSynth', #https://winstall.app/apps/FluidSynth.FluidSynth
52000
+ )
52001
+ if currently_running_mac():
52002
+ # libfluidsynth needs to be findable by pyfluidsynth
52003
+ lib_path = '/opt/homebrew/lib'
52004
+ current = os.environ.get('DYLD_LIBRARY_PATH', '')
52005
+ if lib_path not in current:
52006
+ os.environ['DYLD_LIBRARY_PATH'] = lib_path + ':' + current if current else lib_path
52007
+ _ensure_shell_has_line('export DYLD_LIBRARY_PATH="/opt/homebrew/lib:$DYLD_LIBRARY_PATH" # Added by RP for fluidsynth')
52008
+ pip_import('fluidsynth')
52009
+
51965
52010
  @_register_ensure_installed_func
51966
52011
  def _ensure_linearmouse_installed():
51967
52012
  """linearmouse: macOS mouse/trackpad customization utility"""
@@ -53131,6 +53176,26 @@ def _get_all_tmux_clients(session):
53131
53176
  clients = _run_tmux_command(['tmux', 'list-clients', '-t', session, '-F', '#{client_tty}']).split()
53132
53177
  return list(clients)
53133
53178
 
53179
+ # libtmux compatibility helpers (supports both old and new APIs)
53180
+ def _libtmux_get_sessions(server):
53181
+ """Get sessions from server. New API: server.sessions, Old API: server.list_sessions()"""
53182
+ if hasattr(server, 'sessions') and hasattr(server.sessions, '__iter__'):
53183
+ return server.sessions
53184
+ return server.list_sessions()
53185
+
53186
+ def _libtmux_find_session(server, session_name):
53187
+ """Find session by name. New API: server.sessions.get(), Old API: server.find_where()"""
53188
+ if hasattr(server, 'sessions') and hasattr(server.sessions, 'get'):
53189
+ return server.sessions.get(session_name=session_name, default=None)
53190
+ return server.find_where({"session_name": session_name})
53191
+
53192
+ def _libtmux_kill_session(session):
53193
+ """Kill a session. New API: session.kill(), Old API: session.kill_session()"""
53194
+ if hasattr(session, 'kill') and callable(session.kill):
53195
+ session.kill()
53196
+ else:
53197
+ session.kill_session()
53198
+
53134
53199
  def tmux_get_all_session_names():
53135
53200
  """
53136
53201
  Retrieve the names of all active tmux sessions.
@@ -53142,7 +53207,7 @@ def tmux_get_all_session_names():
53142
53207
  import libtmux
53143
53208
 
53144
53209
  server = libtmux.Server()
53145
- return [session.name for session in server.list_sessions()]
53210
+ return [session.name for session in _libtmux_get_sessions(server)]
53146
53211
 
53147
53212
  tmux_list_sessions = tmux_get_all_session_names
53148
53213
 
@@ -53203,13 +53268,10 @@ def tmux_kill_session(session_name, strict=False):
53203
53268
  assert isinstance(session_name, str), "Session name must be a string."
53204
53269
 
53205
53270
  server = libtmux.Server()
53206
- if hasattr(server, 'find_where'):
53207
- session = server.find_where({"session_name": session_name})
53208
- else:
53209
- session = server.sessions.get(session_name=session_name, default=None)
53271
+ session = _libtmux_find_session(server, session_name)
53210
53272
 
53211
53273
  if session:
53212
- session.kill_session()
53274
+ _libtmux_kill_session(session)
53213
53275
  print("rp.tmux_kill_session: Session %s killed successfully."%repr(session_name))
53214
53276
  else:
53215
53277
  if strict:
@@ -67673,6 +67735,7 @@ known_pypi_module_package_names={
67673
67735
  # 'cv2': 'opencv-python',
67674
67736
  # 'cv2': 'opencv-contrib-python', #This one is just like opencv, but better...but does it install as reliably? (Update: so far, so good!)
67675
67737
  'cv2': 'opencv-python opencv-contrib-python', #But that didn't work for get_edge_drawing...https://github.com/Comfy-Org/ComfyUI-Manager/discussions/708
67738
+ 'fluidsynth' : 'pyfluidsynth',
67676
67739
  'handy_kws':'handy-kws',
67677
67740
  'AppKit': 'pyobjc-framework-Cocoa',
67678
67741
  'Cocoa': 'pyobjc-framework-Cocoa',
@@ -306,8 +306,9 @@ def list_path_candidates(
306
306
  [PathCandidate(name='src', ...), PathCandidate(name='tests', ...)]
307
307
  """
308
308
  # Auto-detect hidden file preference from prefix
309
+ # BUT: always show hidden directories when listing dirs_only
309
310
  if show_hidden is None:
310
- show_hidden = prefix.startswith('.')
311
+ show_hidden = prefix.startswith('.') or dirs_only
311
312
 
312
313
  candidates = []
313
314
 
@@ -0,0 +1 @@
1
+ 1393
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 1.0
2
2
  Name: rp
3
- Version: 0.1.1391
3
+ Version: 0.1.1393
4
4
  Summary: Ryan's Python: IDE + Library + Tools
5
5
  Home-page: https://github.com/RyannDaGreat/rp
6
6
  Author: Ryan Burgert
@@ -41,6 +41,7 @@ rp/libs/__init__.py
41
41
  rp/libs/debug_comment.py
42
42
  rp/libs/draw_code_minimap.py
43
43
  rp/libs/graveyard.py
44
+ rp/libs/kitten_tts_server.py
44
45
  rp/libs/powerpoint_converter.py
45
46
  rp/libs/profile_vim_plugins.py
46
47
  rp/libs/pw_crypt.py
@@ -50,6 +51,7 @@ rp/libs/pytorch_module_explorer.py
50
51
  rp/libs/rp_black_macchiato.py
51
52
  rp/libs/stamp_tensor.py
52
53
  rp/libs/stdin_python_highlighter.py
54
+ rp/libs/supertonic_tts_server.py
53
55
  rp/libs/torch_hooks.py
54
56
  rp/libs/torch_tools.py
55
57
  rp/libs/tracetraptest.py
rp-0.1.1393/version.py ADDED
@@ -0,0 +1 @@
1
+ 1393
rp-0.1.1391/rp/version.py DELETED
@@ -1 +0,0 @@
1
- 1391
rp-0.1.1391/version.py DELETED
@@ -1 +0,0 @@
1
- 1391
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