rp 0.1.1366__tar.gz → 0.1.1368__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.
- {rp-0.1.1366 → rp-0.1.1368}/PKG-INFO +1 -1
- {rp-0.1.1366 → rp-0.1.1368}/rp/misc/claude_bash.sh +2 -7
- {rp-0.1.1366 → rp-0.1.1368}/rp/r.py +93 -32
- rp-0.1.1368/rp/version.py +1 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp.egg-info/PKG-INFO +1 -1
- rp-0.1.1368/version.py +1 -0
- rp-0.1.1366/rp/version.py +0 -1
- rp-0.1.1366/version.py +0 -1
- {rp-0.1.1366 → rp-0.1.1368}/.gitignore +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/.idea/QuickPython.iml +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/.idea/QuickPython.time +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/.idea/encodings.xml +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/.idea/inspectionProfiles/Project_Default.xml +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/.idea/misc.xml +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/.idea/modules.xml +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/.idea/vcs.xml +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/.idea/workspace.xml +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/.publish.sh.un~ +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/.setup.py.un~ +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/.update_module_paths.py.un~ +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/LICENSE.txt +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/README +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/Scrap +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/aoisdasd +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/increment_version.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/oijio +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/publish.sh +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/pyqtconsoletest.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/__init__.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/__main__.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/documentation.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/Pyperclip.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/__init__.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/debug_comment.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/draw_code_minimap.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/graveyard.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/parso/__init__.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/parso/_compatibility.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/parso/cache.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/parso/file_io.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/parso/grammar.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/parso/normalizer.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/parso/parser.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/parso/pgen2/__init__.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/parso/pgen2/generator.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/parso/pgen2/grammar_parser.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/parso/python/__init__.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/parso/python/diff.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/parso/python/errors.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/parso/python/grammar26.txt +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/parso/python/grammar27.txt +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/parso/python/grammar310.txt +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/parso/python/grammar311.txt +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/parso/python/grammar312.txt +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/parso/python/grammar33.txt +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/parso/python/grammar34.txt +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/parso/python/grammar35.txt +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/parso/python/grammar36.txt +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/parso/python/grammar37.txt +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/parso/python/grammar38.txt +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/parso/python/grammar39.txt +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/parso/python/parser.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/parso/python/pep8.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/parso/python/prefix.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/parso/python/token.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/parso/python/tokenize.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/parso/python/tree.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/parso/tree.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/parso/utils.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/peepdis/__init__.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/peepdis/core.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/peepdis/datastructures.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/peepdis/legacy.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/peepdis/preferences.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/powerpoint_converter.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/profile_vim_plugins.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/pyflann/__init__.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/pyflann/bindings/__init__.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/pyflann/bindings/flann_ctypes.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/pyflann/exceptions.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/pyflann/index.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/pyflann/io/__init__.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/pyflann/io/binary_dataset.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/pyflann/io/dat_dataset.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/pyflann/io/dataset.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/pyflann/io/hdf5_dataset.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/pyflann/io/npy_dataset.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/pyflann/util/__init__.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/pyflann/util/weave_tools.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/pyfx/__init__.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/pyfx/__version__.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/pyfx/app.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/pyfx/cli.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/pyfx/cli_utils.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/pyfx/config/__init__.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/pyfx/config/config.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/pyfx/config/config_error.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/pyfx/config/config_parser.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/pyfx/config/config_transformer.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/pyfx/config/validators/__init__.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/pyfx/config/validators/options.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/pyfx/logging.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/pyfx/model/__init__.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/pyfx/model/autocomplete/__init__.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/pyfx/model/autocomplete/autocomplete_listener.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/pyfx/model/common/__init__.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/pyfx/model/common/jsonpath/JSONPathLexer.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/pyfx/model/common/jsonpath/JSONPathListener.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/pyfx/model/common/jsonpath/JSONPathParser.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/pyfx/model/common/jsonpath/__init__.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/pyfx/model/io/__init__.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/pyfx/model/io/datasource.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/pyfx/model/model.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/pyfx/service/__init__.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/pyfx/service/client.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/pyfx/service/dispatcher.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/pyfx/view/__init__.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/pyfx/view/common/__init__.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/pyfx/view/common/popup.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/pyfx/view/common/selectable_text.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/pyfx/view/components/__init__.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/pyfx/view/components/autocomplete_popup/__init__.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/pyfx/view/components/autocomplete_popup/autocomplete_popup.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/pyfx/view/components/autocomplete_popup/autocomplete_popup_keymapper.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/pyfx/view/components/help_bar/__init__.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/pyfx/view/components/help_bar/help_bar.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/pyfx/view/components/help_page/__init__.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/pyfx/view/components/help_page/detailed_help_page.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/pyfx/view/components/json_browser/__init__.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/pyfx/view/components/json_browser/json_browser.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/pyfx/view/components/json_browser/json_browser_keymapper.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/pyfx/view/components/query_bar/__init__.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/pyfx/view/components/query_bar/query_bar.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/pyfx/view/components/query_bar/query_bar_keymapper.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/pyfx/view/json_lib/__init__.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/pyfx/view/json_lib/array/__init__.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/pyfx/view/json_lib/array/array_end_node.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/pyfx/view/json_lib/array/array_end_widget.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/pyfx/view/json_lib/array/array_node.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/pyfx/view/json_lib/array/array_start_widget.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/pyfx/view/json_lib/array/array_unexpanded_widget.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/pyfx/view/json_lib/json_composite_end_node.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/pyfx/view/json_lib/json_composite_node.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/pyfx/view/json_lib/json_listbox.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/pyfx/view/json_lib/json_listwalker.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/pyfx/view/json_lib/json_simple_node.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/pyfx/view/json_lib/json_widget.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/pyfx/view/json_lib/node_factory.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/pyfx/view/json_lib/object/__init__.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/pyfx/view/json_lib/object/object_end_node.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/pyfx/view/json_lib/object/object_end_widget.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/pyfx/view/json_lib/object/object_node.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/pyfx/view/json_lib/object/object_start_widget.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/pyfx/view/json_lib/object/object_unexpanded_widget.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/pyfx/view/json_lib/primitive/__init__.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/pyfx/view/json_lib/primitive/base.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/pyfx/view/json_lib/primitive/boolean.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/pyfx/view/json_lib/primitive/generic.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/pyfx/view/json_lib/primitive/integer.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/pyfx/view/json_lib/primitive/null.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/pyfx/view/json_lib/primitive/numeric.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/pyfx/view/json_lib/primitive/string.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/pyfx/view/json_lib/selector/__init__.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/pyfx/view/keymapper/__init__.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/pyfx/view/keymapper/abstract_component_keymapper.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/pyfx/view/keymapper/keymapper.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/pyfx/view/keymapper/keymapper_config.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/pyfx/view/keymapper/keymapper_config_parser.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/pyfx/view/theme/__init__.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/pyfx/view/theme/theme.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/pyfx/view/theme/theme_config.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/pyfx/view/theme/theme_config_parser.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/pyfx/view/view_config.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/pyfx/view/view_frame.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/pyfx/view/view_manager.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/pynput_recorder.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/pypi_inspection.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/pytorch_module_explorer.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/refactor/string_format/__init__.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/refactor/string_format/format_to_fstring_converter.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/refactor/string_format/fstring_converter.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/refactor/string_format/test_format_to_fstring_converter.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/refactor/string_format/test_fstring_converter.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/rp_black_macchiato.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/stamp_tensor.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/stdin_python_highlighter.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/tetris/__init__.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/tetris/__main__.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/tetris/graphics/graphics/__init__.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/tetris/graphics/graphics/canvas.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/tetris/graphics/graphics/colors.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/tetris/graphics/graphics/console.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/tetris/graphics/graphics/funcs.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/tetris/graphics/graphics/nbinput.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/tetris/graphics/graphics/shapes.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/tetris/graphics/graphics/sprite.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/tetris/letters.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/tetris/tetrisShapes.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/timg/__init__.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/timg/__main__.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/timg/argparser.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/timg/meta.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/timg/methods/__init__.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/timg/methods/ansi.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/timg/methods/ansi_methods.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/timg/methods/ascii.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/timg/methods/method.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/timg/methods/sixel.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/timg/renderer.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/torch_hooks.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/torch_tools.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/tracetraptest.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/tweenline.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/libs/webeval_dataset.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/list_of_modules.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/misc/Todo +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/misc/__init__.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/misc/blm.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/misc/chainsaw.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/misc/death_of_the_mind.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/misc/flappy.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/misc/mario.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/misc/matrix.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/misc/mpi_untitled.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/misc/py2048.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/misc/pychess.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/misc/rp_logo.svg +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/misc/rp_mpi.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/misc/ryan_zshrc.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/misc/shotgun.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/misc/skia_trail_interactive_paint_demo.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/misc/snake.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/misc/sudoku.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/misc/tetris.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/misc/trans.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/prompt_toolkit/__init__.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/prompt_toolkit/application.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/prompt_toolkit/auto_suggest.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/prompt_toolkit/buffer.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/prompt_toolkit/buffer_mapping.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/prompt_toolkit/cache.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/prompt_toolkit/clipboard/__init__.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/prompt_toolkit/clipboard/base.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/prompt_toolkit/clipboard/in_memory.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/prompt_toolkit/clipboard/pyperclip.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/prompt_toolkit/completion.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/prompt_toolkit/contrib/__init__.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/prompt_toolkit/contrib/completers/__init__.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/prompt_toolkit/contrib/completers/base.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/prompt_toolkit/contrib/completers/filesystem.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/prompt_toolkit/contrib/completers/system.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/prompt_toolkit/contrib/regular_languages/__init__.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/prompt_toolkit/contrib/regular_languages/compiler.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/prompt_toolkit/contrib/regular_languages/completion.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/prompt_toolkit/contrib/regular_languages/lexer.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/prompt_toolkit/contrib/regular_languages/regex_parser.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/prompt_toolkit/contrib/regular_languages/validation.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/prompt_toolkit/contrib/telnet/__init__.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/prompt_toolkit/contrib/telnet/application.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/prompt_toolkit/contrib/telnet/log.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/prompt_toolkit/contrib/telnet/protocol.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/prompt_toolkit/contrib/telnet/server.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/prompt_toolkit/contrib/validators/__init__.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/prompt_toolkit/contrib/validators/base.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/prompt_toolkit/document.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/prompt_toolkit/enums.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/prompt_toolkit/eventloop/__init__.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/prompt_toolkit/eventloop/asyncio_base.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/prompt_toolkit/eventloop/asyncio_posix.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/prompt_toolkit/eventloop/asyncio_win32.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/prompt_toolkit/eventloop/base.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/prompt_toolkit/eventloop/callbacks.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/prompt_toolkit/eventloop/inputhook.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/prompt_toolkit/eventloop/posix.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/prompt_toolkit/eventloop/posix_utils.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/prompt_toolkit/eventloop/select.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/prompt_toolkit/eventloop/utils.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/prompt_toolkit/eventloop/win32.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/prompt_toolkit/filters/__init__.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/prompt_toolkit/filters/base.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/prompt_toolkit/filters/cli.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/prompt_toolkit/filters/types.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/prompt_toolkit/filters/utils.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/prompt_toolkit/history.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/prompt_toolkit/input.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/prompt_toolkit/interface.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/prompt_toolkit/key_binding/__init__.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/prompt_toolkit/key_binding/bindings/__init__.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/prompt_toolkit/key_binding/bindings/basic.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/prompt_toolkit/key_binding/bindings/completion.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/prompt_toolkit/key_binding/bindings/emacs.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/prompt_toolkit/key_binding/bindings/named_commands.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/prompt_toolkit/key_binding/bindings/scroll.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/prompt_toolkit/key_binding/bindings/vi.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/prompt_toolkit/key_binding/defaults.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/prompt_toolkit/key_binding/digraphs.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/prompt_toolkit/key_binding/input_processor.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/prompt_toolkit/key_binding/manager.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/prompt_toolkit/key_binding/registry.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/prompt_toolkit/key_binding/vi_state.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/prompt_toolkit/keys.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/prompt_toolkit/layout/__init__.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/prompt_toolkit/layout/containers.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/prompt_toolkit/layout/controls.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/prompt_toolkit/layout/dimension.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/prompt_toolkit/layout/lexers.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/prompt_toolkit/layout/margins.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/prompt_toolkit/layout/menus.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/prompt_toolkit/layout/mouse_handlers.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/prompt_toolkit/layout/processors.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/prompt_toolkit/layout/prompt.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/prompt_toolkit/layout/screen.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/prompt_toolkit/layout/toolbars.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/prompt_toolkit/layout/untitled.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/prompt_toolkit/layout/utils.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/prompt_toolkit/mouse_events.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/prompt_toolkit/output.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/prompt_toolkit/reactive.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/prompt_toolkit/renderer.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/prompt_toolkit/search_state.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/prompt_toolkit/selection.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/prompt_toolkit/shortcuts.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/prompt_toolkit/styles/__init__.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/prompt_toolkit/styles/base.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/prompt_toolkit/styles/defaults.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/prompt_toolkit/styles/from_dict.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/prompt_toolkit/styles/from_pygments.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/prompt_toolkit/styles/utils.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/prompt_toolkit/terminal/__init__.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/prompt_toolkit/terminal/conemu_output.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/prompt_toolkit/terminal/vt100_input.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/prompt_toolkit/terminal/vt100_output.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/prompt_toolkit/terminal/win32_input.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/prompt_toolkit/terminal/win32_output.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/prompt_toolkit/token.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/prompt_toolkit/utils.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/prompt_toolkit/validation.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/prompt_toolkit/win32_types.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/rp_ptpython/__init__.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/rp_ptpython/__main__.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/rp_ptpython/ast_selection.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/rp_ptpython/async_analyzer_base.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/rp_ptpython/async_jedi_highlighter.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/rp_ptpython/backslash_commands.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/rp_ptpython/bash_completer.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/rp_ptpython/bash_extract.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/rp_ptpython/bash_inline.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/rp_ptpython/bash_rename.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/rp_ptpython/bash_selection.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/rp_ptpython/completer.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/rp_ptpython/completer_old.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/rp_ptpython/completion_ranker.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/rp_ptpython/completion_schema.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/rp_ptpython/completion_types.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/rp_ptpython/eventloop.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/rp_ptpython/filters.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/rp_ptpython/history_browser.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/rp_ptpython/ipython.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/rp_ptpython/jedi_highlighter.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/rp_ptpython/jedi_lexer.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/rp_ptpython/jedi_utils.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/rp_ptpython/key_bindings.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/rp_ptpython/layout.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/rp_ptpython/patch_linecache.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/rp_ptpython/path_completer_utils.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/rp_ptpython/prompt_style.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/rp_ptpython/python_input.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/rp_ptpython/r_iterm_comm.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/rp_ptpython/refactor_extract.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/rp_ptpython/refactor_inline.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/rp_ptpython/refactor_move.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/rp_ptpython/refactor_move_bash.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/rp_ptpython/refactor_rename.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/rp_ptpython/repl.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/rp_ptpython/rp_ptpdb/__init__.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/rp_ptpython/rp_ptpdb/commands.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/rp_ptpython/rp_ptpdb/completers.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/rp_ptpython/rp_ptpdb/completion_hints.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/rp_ptpython/rp_ptpdb/grammar.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/rp_ptpython/rp_ptpdb/key_bindings.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/rp_ptpython/rp_ptpdb/layout.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/rp_ptpython/rp_ptpdb/style.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/rp_ptpython/rp_ptpdb/toolbars.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/rp_ptpython/selection_utils.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/rp_ptpython/style.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/rp_ptpython/testable_keybindings.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/rp_ptpython/treesitter_selection.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/rp_ptpython/treesitter_semantic.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/rp_ptpython/unreachable_detector.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/rp_ptpython/utils.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/rp_ptpython/validator.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/ryan_vimrc.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp/web_evaluator.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp.egg-info/SOURCES.txt +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp.egg-info/dependency_links.txt +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp.egg-info/entry_points.txt +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp.egg-info/requires.txt +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/rp.egg-info/top_level.txt +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/setup.cfg +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/setup.py +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/untitled.c +0 -0
- {rp-0.1.1366 → rp-0.1.1368}/update_module_paths.py +0 -0
|
@@ -20,13 +20,8 @@ export PATH="$(dirname "$BASH_BIN"):$PATH"
|
|
|
20
20
|
|
|
21
21
|
pid_emoji() { echo "${EMOJIS:$(($1 % ${#EMOJIS})):1}"; }
|
|
22
22
|
|
|
23
|
-
#
|
|
24
|
-
PID=$PPID
|
|
25
|
-
TRACER=$PID
|
|
26
|
-
while [ "$PID" != "1" ]; do
|
|
27
|
-
[[ "$(ps -o comm= -p "$PID")" == *claude* ]] && { PID=$TRACER; break; }
|
|
28
|
-
PID=$(ps -o ppid= -p "$PID" | tr -d ' ')
|
|
29
|
-
done
|
|
23
|
+
# Use RP_PID if set (parent rp process), else fall back to PPID
|
|
24
|
+
PID=${RP_PID:-$PPID}
|
|
30
25
|
|
|
31
26
|
|
|
32
27
|
EMOJI=$(pid_emoji $PID)
|
|
@@ -130,6 +130,7 @@ _fast_pterm_history_size = 1024 * 1024
|
|
|
130
130
|
os.environ['RP_SYS_EXECUTABLE'] = sys.executable
|
|
131
131
|
os.environ['RP_PUDB_SYS_VERSION_INFO'] = repr(list(sys.version_info)) # For PUDB editing in vim
|
|
132
132
|
os.environ['RP_SITE_PACKAGES'] = _site_packages # For PUDB editing in vim
|
|
133
|
+
os.environ['RP_PID'] = str(os.getpid()) # For claude_bash.sh
|
|
133
134
|
|
|
134
135
|
_original_pwd = os.getcwd()
|
|
135
136
|
|
|
@@ -13018,7 +13019,7 @@ def replace_if_none(value):
|
|
|
13018
13019
|
target = ast.unparse(assign_node.targets[0])
|
|
13019
13020
|
|
|
13020
13021
|
# Evaluate the assignment target in the caller's frame
|
|
13021
|
-
target_value = eval(target, frame.f_locals)
|
|
13022
|
+
target_value = eval(target, dict(frame.f_locals))
|
|
13022
13023
|
|
|
13023
13024
|
# Return value if the target value is None, otherwise return the target value
|
|
13024
13025
|
return value if target_value is None else target_value
|
|
@@ -24191,6 +24192,21 @@ def _ISM(ans,*,preview:str=None):
|
|
|
24191
24192
|
TODO make it for things other than lists of strings, like lists of ints. To do this make it into a line-numbered string dict -> values then use those values to look up keys -> get answer. Better yet create a fzf wrapper for this task - to select non-string things!
|
|
24192
24193
|
"""
|
|
24193
24194
|
|
|
24195
|
+
if _is_pandas_dataframe(ans):
|
|
24196
|
+
# Stream rows lazily for large DataFrames
|
|
24197
|
+
def row_generator():
|
|
24198
|
+
for i in range(len(ans)):
|
|
24199
|
+
row_str = '\t'.join(str(v) for v in ans.iloc[i].values)
|
|
24200
|
+
yield "%s\t|\t%s" % (i, row_str)
|
|
24201
|
+
|
|
24202
|
+
selected = _iterfzf(row_generator(), multi=True, exact=True, preview=preview)
|
|
24203
|
+
if selected is None or not selected:
|
|
24204
|
+
return ans.iloc[[]] # Return empty DataFrame
|
|
24205
|
+
|
|
24206
|
+
# Parse indices from selected lines (format: "idx\t|\tval1\tval2...")
|
|
24207
|
+
indices = [int(line.split('\t')[0]) for line in selected]
|
|
24208
|
+
return ans.iloc[indices]
|
|
24209
|
+
|
|
24194
24210
|
try:
|
|
24195
24211
|
ans=dict(ans)
|
|
24196
24212
|
except Exception:
|
|
@@ -30224,6 +30240,10 @@ def has_len(x):
|
|
|
30224
30240
|
""" Returns True if you can safely call len(x) """
|
|
30225
30241
|
return hasattr(x,'__len__')
|
|
30226
30242
|
|
|
30243
|
+
def _get_len_else_none(x):
|
|
30244
|
+
""" Returns len(x) if x has a length, otherwise None """
|
|
30245
|
+
return len(x) if has_len(x) else None
|
|
30246
|
+
|
|
30227
30247
|
def as_example_comment(code,*,indent=' '*8):
|
|
30228
30248
|
'''
|
|
30229
30249
|
Takes code and makes it suitable for using in docstrings
|
|
@@ -42835,24 +42855,41 @@ class VideoWriterMP4:
|
|
|
42835
42855
|
A class for writing MP4 videos frame by frame using ffmpeg.
|
|
42836
42856
|
|
|
42837
42857
|
Creates MP4 videos by writing individual frames sequentially. Handles automatic
|
|
42838
|
-
dimension adjustment to ensure compatibility with
|
|
42839
|
-
|
|
42858
|
+
dimension adjustment to ensure compatibility with codec requirements.
|
|
42859
|
+
|
|
42840
42860
|
Args:
|
|
42841
42861
|
path: Output file path (defaults to auto-generated, adds .mp4 if needed)
|
|
42842
|
-
framerate: Video framerate in fps (default: 60)
|
|
42862
|
+
framerate: Video framerate in fps (default: 60)
|
|
42843
42863
|
video_bitrate: Quality setting - 'low'/'medium'/'high' or int (default: 'medium')
|
|
42844
42864
|
height/width: Force specific dimensions (default: auto from first frame)
|
|
42845
42865
|
show_progress: Show ffmpeg progress output (default: True)
|
|
42846
|
-
|
|
42866
|
+
codec: Video codec - 'h264', 'h265'/'hevc', 'vp9', 'av1', or 'mp4v' (default: 'h264')
|
|
42867
|
+
crf: Constant Rate Factor for quality. Lower = better quality, larger file.
|
|
42868
|
+
None uses codec default. mp4v doesn't support CRF (uses bitrate instead).
|
|
42869
|
+
- h264/h265: 0-51, default ~23, good quality ~18-23
|
|
42870
|
+
- vp9: 0-63, default ~31, good quality ~30-35
|
|
42871
|
+
- av1: 0-63, default ~30, good quality ~23-30
|
|
42872
|
+
|
|
42847
42873
|
Example:
|
|
42848
42874
|
>>> writer = VideoWriterMP4('output.mp4', framerate=30)
|
|
42849
42875
|
>>> writer.write_frame(image1)
|
|
42850
|
-
>>> writer.write_frame(image2)
|
|
42876
|
+
>>> writer.write_frame(image2)
|
|
42851
42877
|
>>> writer.finish()
|
|
42852
42878
|
"""
|
|
42853
42879
|
#Todo: If this ever gets fucky, try https://github.com/imageio/imageio-ffmpeg - it looks pretty good!
|
|
42854
42880
|
|
|
42855
|
-
|
|
42881
|
+
_CODEC_MAP = {
|
|
42882
|
+
'h264' : 'libx264',
|
|
42883
|
+
'x264' : 'libx264',
|
|
42884
|
+
'h265' : 'libx265',
|
|
42885
|
+
'x265' : 'libx265',
|
|
42886
|
+
'hevc' : 'libx265',
|
|
42887
|
+
'vp9' : 'libvpx-vp9',
|
|
42888
|
+
'av1' : 'libaom-av1',
|
|
42889
|
+
'mp4v' : 'mpeg4',
|
|
42890
|
+
}
|
|
42891
|
+
|
|
42892
|
+
def __init__(self, path=None, framerate=60, video_bitrate='medium', height=None, width=None, show_progress=True, codec='h264', crf=None):
|
|
42856
42893
|
# Originally from: https://github.com/kkroening/ffmpeg-python/issues/246
|
|
42857
42894
|
|
|
42858
42895
|
_ensure_ffmpeg_installed()
|
|
@@ -42869,12 +42906,16 @@ class VideoWriterMP4:
|
|
|
42869
42906
|
assert path.endswith('.mp4')
|
|
42870
42907
|
assert isinstance(video_bitrate,int)
|
|
42871
42908
|
|
|
42872
|
-
|
|
42909
|
+
# Resolve codec name to ffmpeg codec
|
|
42910
|
+
codec_lower = codec.lower()
|
|
42911
|
+
assert codec_lower in self._CODEC_MAP, "Unknown codec %r. Choose from: %s" % (codec, list(self._CODEC_MAP.keys()))
|
|
42912
|
+
vcodec = self._CODEC_MAP[codec_lower]
|
|
42873
42913
|
|
|
42874
42914
|
self.path = get_absolute_path(path)
|
|
42875
42915
|
self.vcodec = vcodec
|
|
42876
42916
|
self.framerate = framerate
|
|
42877
42917
|
self.video_bitrate = video_bitrate
|
|
42918
|
+
self.crf = crf
|
|
42878
42919
|
|
|
42879
42920
|
self.started = False
|
|
42880
42921
|
self.finished = False
|
|
@@ -42908,6 +42949,17 @@ class VideoWriterMP4:
|
|
|
42908
42949
|
if width%2:
|
|
42909
42950
|
width-=1
|
|
42910
42951
|
|
|
42952
|
+
# Build output kwargs - use CRF if specified, otherwise bitrate
|
|
42953
|
+
# Note: mpeg4 (mp4v) doesn't support CRF
|
|
42954
|
+
output_kwargs = dict(
|
|
42955
|
+
pix_fmt="yuv420p",
|
|
42956
|
+
vcodec=self.vcodec,
|
|
42957
|
+
)
|
|
42958
|
+
if self.crf is not None and self.vcodec != 'mpeg4':
|
|
42959
|
+
output_kwargs['crf'] = self.crf
|
|
42960
|
+
else:
|
|
42961
|
+
output_kwargs['video_bitrate'] = self.video_bitrate
|
|
42962
|
+
|
|
42911
42963
|
self.process = (
|
|
42912
42964
|
ffmpeg.input(
|
|
42913
42965
|
"pipe:",
|
|
@@ -42917,13 +42969,7 @@ class VideoWriterMP4:
|
|
|
42917
42969
|
r=self.framerate,
|
|
42918
42970
|
**(dict(loglevel="quiet") if not self.show_progress else dict())
|
|
42919
42971
|
)
|
|
42920
|
-
.output(
|
|
42921
|
-
self.path,
|
|
42922
|
-
pix_fmt="yuv420p",
|
|
42923
|
-
vcodec=self.vcodec,
|
|
42924
|
-
video_bitrate=self.video_bitrate,
|
|
42925
|
-
# Interstingly, this is not where the framerate should go, based on my experiments...
|
|
42926
|
-
)
|
|
42972
|
+
.output(self.path, **output_kwargs)
|
|
42927
42973
|
.overwrite_output()
|
|
42928
42974
|
.run_async(pipe_stdin=True)
|
|
42929
42975
|
)
|
|
@@ -43038,7 +43084,7 @@ def set_save_video_mp4_default_backend(backend):
|
|
|
43038
43084
|
global _save_video_mp4_default_backend
|
|
43039
43085
|
_save_video_mp4_default_backend = backend
|
|
43040
43086
|
|
|
43041
|
-
def save_video_mp4(frames, path=None, framerate=60, *, video_bitrate='high', height=None, width=None, show_progress=True, backend=None):
|
|
43087
|
+
def save_video_mp4(frames, path=None, framerate=60, *, video_bitrate='high', height=None, width=None, show_progress=True, backend=None, codec='h264', crf=None):
|
|
43042
43088
|
"""
|
|
43043
43089
|
frames: a list of images as defined by rp.is_image(). Saves an .mp4 file at the path
|
|
43044
43090
|
- frames can also contain strings, if those strings are image file paths
|
|
@@ -43051,7 +43097,20 @@ def save_video_mp4(frames, path=None, framerate=60, *, video_bitrate='high', hei
|
|
|
43051
43097
|
video_bitrate: controls the quality of the output. If your backend is opencv, this parameter has no effect!
|
|
43052
43098
|
height, width: If frames have various sizes, and are given as a generator, use this to set the height and width or else it will use the first frame's height and width
|
|
43053
43099
|
show_progress: Whether to show the saving progress
|
|
43054
|
-
backend: Defaults to 'ffmpeg'. Can also be 'cv2' if you can't install 'ffmpeg' for some reason
|
|
43100
|
+
backend: Defaults to 'ffmpeg'. Can also be 'cv2' if you can't install 'ffmpeg' for some reason.
|
|
43101
|
+
Note: cv2 backend uses mp4v codec and ignores codec/crf options.
|
|
43102
|
+
codec: Video codec - 'h264', 'h265'/'hevc', 'vp9', 'av1', or 'mp4v' (default: 'h264')
|
|
43103
|
+
- h264: Most compatible, good quality, fast encoding
|
|
43104
|
+
- h265/hevc: Better compression than h264, slower encoding
|
|
43105
|
+
- vp9: Good for web, royalty-free, slower encoding
|
|
43106
|
+
- av1: Best compression, royalty-free, slowest encoding
|
|
43107
|
+
- mp4v: Legacy MPEG-4 Part 2, lower quality, no CRF support
|
|
43108
|
+
crf: Constant Rate Factor for quality. Lower = better quality, larger file.
|
|
43109
|
+
None uses codec default. mp4v doesn't support CRF (uses bitrate instead).
|
|
43110
|
+
If specified, overrides video_bitrate - which is the more modern way of specifying video quality.
|
|
43111
|
+
- h264/h265: 0-51, default ~23, good quality ~18-23
|
|
43112
|
+
- vp9: 0-63, default ~31, good quality ~30-35
|
|
43113
|
+
- av1: 0-63, default ~30, good quality ~23-30
|
|
43055
43114
|
|
|
43056
43115
|
If you can't install ffmpeg, please set the backend to 'cv2'
|
|
43057
43116
|
If you need this to be the default, call rp.r.set_save_video_mp4_default_backend('cv2') instead of 'ffmpeg', the default
|
|
@@ -43102,7 +43161,7 @@ def save_video_mp4(frames, path=None, framerate=60, *, video_bitrate='high', hei
|
|
|
43102
43161
|
# frames = as_byte_images(frames, copy=False)
|
|
43103
43162
|
# frames = as_rgb_images(frames, copy=False)
|
|
43104
43163
|
|
|
43105
|
-
writer = VideoWriterMP4(path, framerate, video_bitrate=video_bitrate, height=height, width=width, show_progress=show_progress)
|
|
43164
|
+
writer = VideoWriterMP4(path, framerate, video_bitrate=video_bitrate, height=height, width=width, show_progress=show_progress, codec=codec, crf=crf)
|
|
43106
43165
|
|
|
43107
43166
|
#Make frames speficiable as a glob, folder path, list of images, or list of image paths
|
|
43108
43167
|
def load_frame(frame):
|
|
@@ -45264,7 +45323,7 @@ def remove_duplicate_frames(video, *, lazy=False, show_progress=False, as_indice
|
|
|
45264
45323
|
pass
|
|
45265
45324
|
|
|
45266
45325
|
if show_progress:
|
|
45267
|
-
video=eta(video, title='rp.remove_duplicate_frames')
|
|
45326
|
+
video = eta(video, title='rp.remove_duplicate_frames', length=_get_len_else_none(video))
|
|
45268
45327
|
|
|
45269
45328
|
output = helper()
|
|
45270
45329
|
if not lazy:
|
|
@@ -47288,7 +47347,7 @@ def get_scope(frames_back=0):
|
|
|
47288
47347
|
|
|
47289
47348
|
frame=frame.f_back
|
|
47290
47349
|
|
|
47291
|
-
return {'locals':frame.f_locals, 'globals':frame.f_globals}[scope]
|
|
47350
|
+
return {'locals':dict(frame.f_locals), 'globals':frame.f_globals}[scope]
|
|
47292
47351
|
|
|
47293
47352
|
|
|
47294
47353
|
def _get_visible_scope(frames_back=0):
|
|
@@ -50950,10 +51009,10 @@ def _setup_claude_bash():
|
|
|
50950
51009
|
"""
|
|
50951
51010
|
_ensure_fzf_installed()
|
|
50952
51011
|
_ensure_tmux_installed()
|
|
50953
|
-
_run_sys_command(shlex.join(["chmod", "+x", _claude_bash_script]))
|
|
50954
51012
|
if os.environ["SHELL"]!=_claude_bash_script:
|
|
51013
|
+
_run_sys_command(shlex.join(["chmod", "+x", _claude_bash_script]))
|
|
50955
51014
|
os.environ["SHELL"] = _claude_bash_script # TODO: Dont modify it this way...
|
|
50956
|
-
rp.fansi_print("Setting $SHELL="+
|
|
51015
|
+
rp.fansi_print("Setting $SHELL="+shlex.quote(os.environ['SHELL']),'green bold')
|
|
50957
51016
|
|
|
50958
51017
|
def _run_claude_code(code,*,fullperm=False):
|
|
50959
51018
|
""" See rp.r._run_ai_coder_cli.__doc__ """
|
|
@@ -51237,7 +51296,7 @@ def get_pids_using_ports(ports, *, strict=True, show_progress=False):
|
|
|
51237
51296
|
|
|
51238
51297
|
"""
|
|
51239
51298
|
if show_progress:
|
|
51240
|
-
ports = eta(ports, title=get_current_function_name())
|
|
51299
|
+
ports = eta(ports, title=get_current_function_name(), length=_get_len_else_none(ports))
|
|
51241
51300
|
return [gather_args_call(get_process_using_port, port) for port in ports]
|
|
51242
51301
|
|
|
51243
51302
|
def compress_bytes(data: bytes) -> bytes:
|
|
@@ -55090,11 +55149,12 @@ def cv_resize_images(
|
|
|
55090
55149
|
images=detuple(images)
|
|
55091
55150
|
|
|
55092
55151
|
as_numpy = is_numpy_array(images)
|
|
55152
|
+
length = _get_len_else_none(images)
|
|
55093
55153
|
|
|
55094
55154
|
images=(cv_resize_image(image, size, interp, copy=copy) for image in images)
|
|
55095
55155
|
|
|
55096
55156
|
if show_progress:
|
|
55097
|
-
images = eta(images, title="rp.cv_resize_images")
|
|
55157
|
+
images = eta(images, title="rp.cv_resize_images", length=length)
|
|
55098
55158
|
|
|
55099
55159
|
if not lazy:
|
|
55100
55160
|
#Process them all
|
|
@@ -55158,8 +55218,8 @@ def resize_videos(
|
|
|
55158
55218
|
)
|
|
55159
55219
|
for video in videos
|
|
55160
55220
|
)
|
|
55161
|
-
|
|
55162
|
-
if show_progress:
|
|
55221
|
+
|
|
55222
|
+
if show_progress: output = eta(output, title='resize_videos', length=_get_len_else_none(videos))
|
|
55163
55223
|
if not lazy:
|
|
55164
55224
|
output=list(output)
|
|
55165
55225
|
if as_numpy:
|
|
@@ -57305,7 +57365,7 @@ def resize_images_to_hold(
|
|
|
57305
57365
|
)
|
|
57306
57366
|
|
|
57307
57367
|
if show_progress:
|
|
57308
|
-
output = eta(output, title=get_current_function_name())
|
|
57368
|
+
output = eta(output, title=get_current_function_name(), length=_get_len_else_none(images))
|
|
57309
57369
|
|
|
57310
57370
|
if not lazy:
|
|
57311
57371
|
output = list(output)
|
|
@@ -57338,7 +57398,7 @@ def resize_images_to_fit(
|
|
|
57338
57398
|
)
|
|
57339
57399
|
|
|
57340
57400
|
if show_progress:
|
|
57341
|
-
output = eta(output, title=get_current_function_name())
|
|
57401
|
+
output = eta(output, title=get_current_function_name(), length=_get_len_else_none(images))
|
|
57342
57402
|
|
|
57343
57403
|
if not lazy:
|
|
57344
57404
|
output = list(output)
|
|
@@ -57486,17 +57546,17 @@ def resize_images_to_min_size(*images, interp="bilinear", alpha_weighted=False):
|
|
|
57486
57546
|
"""
|
|
57487
57547
|
return resize_images(*images, size=get_min_image_dimensions(*images), interp=interp, alpha_weighted=alpha_weighted)
|
|
57488
57548
|
|
|
57489
|
-
def resize_videos_to_min_size(*videos,interp='auto'):
|
|
57549
|
+
def resize_videos_to_min_size(*videos, interp='auto', show_progress=False):
|
|
57490
57550
|
videos = detuple(videos)
|
|
57491
57551
|
min_height = min(get_video_heights(videos))
|
|
57492
57552
|
min_width = min(get_video_widths (videos))
|
|
57493
|
-
return resize_videos(videos, size=(min_height, min_width),interp=interp)
|
|
57553
|
+
return resize_videos(videos, size=(min_height, min_width), interp=interp, show_progress=show_progress)
|
|
57494
57554
|
|
|
57495
|
-
def resize_videos_to_max_size(*videos,interp='auto'):
|
|
57555
|
+
def resize_videos_to_max_size(*videos, interp='auto', show_progress=False):
|
|
57496
57556
|
videos = detuple(videos)
|
|
57497
57557
|
max_height = max(get_video_heights(videos))
|
|
57498
57558
|
max_width = max(get_video_widths (videos))
|
|
57499
|
-
return resize_videos(videos, size=(max_height, max_width),interp=interp)
|
|
57559
|
+
return resize_videos(videos, size=(max_height, max_width), interp=interp, show_progress=show_progress)
|
|
57500
57560
|
|
|
57501
57561
|
def _iterfzf_raw(
|
|
57502
57562
|
# CHECK: When the signature changes, __init__.pyi file should also change.
|
|
@@ -66534,3 +66594,4 @@ for _env_var_name in sorted(os.environ):
|
|
|
66534
66594
|
# args=[args]
|
|
66535
66595
|
|
|
66536
66596
|
# Version Oct24 2021
|
|
66597
|
+
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
1368
|
rp-0.1.1368/version.py
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
1368
|
rp-0.1.1366/rp/version.py
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
1366
|
rp-0.1.1366/version.py
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
1366
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
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
|