meltygui 0.1.3__tar.gz → 0.1.8__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.
- meltygui-0.1.8/.gitignore +12 -0
- meltygui-0.1.8/PKG-INFO +177 -0
- meltygui-0.1.8/README.md +128 -0
- meltygui-0.1.8/docs/APPS.md +369 -0
- meltygui-0.1.8/docs/DEVELOPMENT.md +169 -0
- meltygui-0.1.8/docs/PUBLISHING.md +91 -0
- meltygui-0.1.8/examples/gui_collision_lab.py +65 -0
- meltygui-0.1.8/examples/gui_imgui_widgets.py +30 -0
- meltygui-0.1.8/examples/portable_counter/main.py +23 -0
- meltygui-0.1.8/examples/portable_counter/pyproject.toml +5 -0
- meltygui-0.1.8/examples/rust_example.py +31 -0
- meltygui-0.1.8/examples/rust_tiles_gui.py +50 -0
- meltygui-0.1.8/examples/tile_manager.py +35 -0
- meltygui-0.1.8/meltygui/__init__.py +101 -0
- meltygui-0.1.8/meltygui/accounts/internet_accounts.py +1365 -0
- meltygui-0.1.8/meltygui/chat/chat_interface.py +759 -0
- meltygui-0.1.8/meltygui/chat/images.py +227 -0
- meltygui-0.1.8/meltygui/chat/main.py +208 -0
- meltygui-0.1.8/meltygui/code/chain_converters.py +2111 -0
- meltygui-0.1.8/meltygui/code/codec_registry.py +42 -0
- meltygui-0.1.8/meltygui/code/embedded_jedi.py +47 -0
- meltygui-0.1.8/meltygui/code/fileref.py +718 -0
- meltygui-0.1.8/meltygui/code/libcst_conversion.py +9759 -0
- meltygui-0.1.8/meltygui/code/new_codecs.py +1398 -0
- meltygui-0.1.8/meltygui/code/new_converters.py +3046 -0
- meltygui-0.1.8/meltygui/code/project_code.py +309 -0
- meltygui-0.1.8/meltygui/code/source_context.py +225 -0
- meltygui-0.1.8/meltygui/code/symbol_roster.py +1948 -0
- meltygui-0.1.8/meltygui/completion/providers/anthropic_oauth.py +446 -0
- meltygui-0.1.8/meltygui/completion/providers/anthropic_requests.py +69 -0
- meltygui-0.1.8/meltygui/completion/providers/claude_usage.py +499 -0
- meltygui-0.1.8/meltygui/completion/providers/codex_accounts.py +180 -0
- meltygui-0.1.8/meltygui/core/automation/orchestration_core.py +2638 -0
- meltygui-0.1.8/meltygui/core/automation/query_core.py +124 -0
- meltygui-0.1.8/meltygui/core/cache/deferred_invalidation.py +88 -0
- meltygui-0.1.8/meltygui/core/cache/tile_cache.py +6224 -0
- meltygui-0.1.8/meltygui/core/conversion/dict_conversion_util.py +178 -0
- meltygui-0.1.8/meltygui/core/conversion/render_host.py +1082 -0
- meltygui-0.1.8/meltygui/core/core_render.py +6334 -0
- meltygui-0.1.8/meltygui/core/diagnostics/edge_motion_guard.py +627 -0
- meltygui-0.1.8/meltygui/core/diagnostics/fps_counter.py +65 -0
- meltygui-0.1.8/meltygui/core/diagnostics/geometry_jitter.py +211 -0
- meltygui-0.1.8/meltygui/core/diagnostics/resize_trace.py +68 -0
- meltygui-0.1.8/meltygui/core/files/ios_file_observer.py +147 -0
- meltygui-0.1.8/meltygui/core/files/workspace_paths.py +59 -0
- meltygui-0.1.8/meltygui/core/graphics/desktop_gl.py +14 -0
- meltygui-0.1.8/meltygui/core/graphics/gl_state.py +660 -0
- meltygui-0.1.8/meltygui/core/graphics/metal_renderer.py +273 -0
- meltygui-0.1.8/meltygui/core/graphics/metal_tiles.py +376 -0
- meltygui-0.1.8/meltygui/core/graphics/overlay_renderer.py +1038 -0
- meltygui-0.1.8/meltygui/core/graphics/scene_target.py +180 -0
- meltygui-0.1.8/meltygui/core/graphics/shader_func.py +487 -0
- meltygui-0.1.8/meltygui/core/graphics/text_texture.py +329 -0
- meltygui-0.1.8/meltygui/core/input/input_handler.py +1229 -0
- meltygui-0.1.8/meltygui/core/input/ios_input.py +476 -0
- meltygui-0.1.8/meltygui/core/input/pynput_backend.py +1060 -0
- meltygui-0.1.8/meltygui/core/input/touch_input.py +232 -0
- meltygui-0.1.8/meltygui/core/layout/column_core.py +2271 -0
- meltygui-0.1.8/meltygui/core/layout/tile_links.py +178 -0
- meltygui-0.1.8/meltygui/core/layout/tile_manager_core.py +830 -0
- meltygui-0.1.8/meltygui/core/layout/tile_resize.py +55 -0
- meltygui-0.1.8/meltygui/core/melty.py +7208 -0
- meltygui-0.1.8/meltygui/core/module_map.json +916 -0
- meltygui-0.1.8/meltygui/core/rendering/gui_imgui_import.py +40 -0
- meltygui-0.1.8/meltygui/core/rendering/gui_imgui_input.py +188 -0
- meltygui-0.1.8/meltygui/core/rendering/gui_layout_prototype.py +666 -0
- meltygui-0.1.8/meltygui/core/rendering/gui_native_collision.py +156 -0
- meltygui-0.1.8/meltygui/core/rendering/gui_prototype.py +110 -0
- meltygui-0.1.8/meltygui/core/rendering/gui_window_prototype.py +96 -0
- meltygui-0.1.8/meltygui/core/rendering/mode.py +864 -0
- meltygui-0.1.8/meltygui/core/rendering/overlay.py +463 -0
- meltygui-0.1.8/meltygui/core/rendering/render_funcs.py +280 -0
- meltygui-0.1.8/meltygui/core/rendering/retained_gui_prototype.py +593 -0
- meltygui-0.1.8/meltygui/core/rendering/view_identity.py +213 -0
- meltygui-0.1.8/meltygui/core/runtime/app.py +1081 -0
- meltygui-0.1.8/meltygui/core/runtime/app_session.py +140 -0
- meltygui-0.1.8/meltygui/core/runtime/app_settings.py +183 -0
- meltygui-0.1.8/meltygui/core/runtime/gc_manager.py +1163 -0
- meltygui-0.1.8/meltygui/core/runtime/launch_override.py +226 -0
- meltygui-0.1.8/meltygui/core/runtime/native_app.py +303 -0
- meltygui-0.1.8/meltygui/core/runtime/paths.py +89 -0
- meltygui-0.1.8/meltygui/core/runtime/public_exports.py +79 -0
- meltygui-0.1.8/meltygui/core/runtime/toggles.py +3192 -0
- meltygui-0.1.8/meltygui/core/styling/fonts.py +656 -0
- meltygui-0.1.8/meltygui/core/styling/style_core.py +526 -0
- meltygui-0.1.8/meltygui/core/windowing/backends/imgui_renderer.py +143 -0
- meltygui-0.1.8/meltygui/core/windowing/backends/native_ios.py +197 -0
- meltygui-0.1.8/meltygui/core/windowing/geometry_feed.py +956 -0
- meltygui-0.1.8/meltygui/core/windowing/glfw_utils.py +1448 -0
- meltygui-0.1.8/meltygui/core/windowing/melty_windows.py +358 -0
- meltygui-0.1.8/meltygui/core/windowing/os_frame.py +1650 -0
- meltygui-0.1.8/meltygui/core/windowing/surface.py +625 -0
- meltygui-0.1.8/meltygui/core/windowing/surface_frame.py +181 -0
- meltygui-0.1.8/meltygui/core/windowing/titlebar.py +1808 -0
- meltygui-0.1.8/meltygui/core/windowing/titlebar_buttons.py +456 -0
- meltygui-0.1.8/meltygui/core/windowing/window_api.py +97 -0
- meltygui-0.1.8/meltygui/editor/pending_save.py +1467 -0
- meltygui-0.1.8/meltygui/editor/text_editor.py +9127 -0
- meltygui-0.1.8/meltygui/examples/retained_gui_demo.py +164 -0
- meltygui-0.1.8/meltygui/examples/retained_layout_demo.py +146 -0
- meltygui-0.1.8/meltygui/examples/rust_gui_demo.py +308 -0
- meltygui-0.1.8/meltygui/files/fast_file_explorer.py +450 -0
- meltygui-0.1.8/meltygui/image_load.py +313 -0
- meltygui-0.1.8/meltygui/model/chat_folder_model.py +171 -0
- meltygui-0.1.8/meltygui/model/chat_model.py +178 -0
- meltygui-0.1.8/meltygui/model/file_location_model.py +265 -0
- meltygui-0.1.8/meltygui/model/file_model.py +327 -0
- meltygui-0.1.8/meltygui/model/folder_icon_model.py +475 -0
- meltygui-0.1.8/meltygui/model/import_graph_model.py +472 -0
- meltygui-0.1.8/meltygui/model/source_snapshot_model.py +296 -0
- meltygui-0.1.8/meltygui/model/ssh_auth_model.py +148 -0
- meltygui-0.1.8/meltygui/model/ssh_file_model.py +459 -0
- meltygui-0.1.8/meltygui/model/texture_model.py +306 -0
- meltygui-0.1.8/meltygui/models/file_meta.py +791 -0
- meltygui-0.1.8/meltygui/platforms/__init__.py +1 -0
- meltygui-0.1.8/meltygui/platforms/ios/.gitignore +2 -0
- meltygui-0.1.8/meltygui/platforms/ios/Host/App.mm +316 -0
- meltygui-0.1.8/meltygui/platforms/ios/Host/Info.plist +34 -0
- meltygui-0.1.8/meltygui/platforms/ios/Host/InputQueue.hpp +66 -0
- meltygui-0.1.8/meltygui/platforms/ios/Host/LocalNetworkAccess.h +96 -0
- meltygui-0.1.8/meltygui/platforms/ios/Host/MeltyHost.h +25 -0
- meltygui-0.1.8/meltygui/platforms/ios/Host/MeltyHost.mm +808 -0
- meltygui-0.1.8/meltygui/platforms/ios/Host/MeltyMetalRenderer.mm +426 -0
- meltygui-0.1.8/meltygui/platforms/ios/Host/MeltyRenderer.h +32 -0
- meltygui-0.1.8/meltygui/platforms/ios/Host/SSHAuthentication.h +183 -0
- meltygui-0.1.8/meltygui/platforms/ios/Python/melty_ios_bootstrap.py +255 -0
- meltygui-0.1.8/meltygui/platforms/ios/README.md +440 -0
- meltygui-0.1.8/meltygui/platforms/ios/Renderer/MetalShaders.metal +102 -0
- meltygui-0.1.8/meltygui/platforms/ios/__init__.py +9 -0
- meltygui-0.1.8/meltygui/platforms/ios/__main__.py +21 -0
- meltygui-0.1.8/meltygui/platforms/ios/app_icon.py +441 -0
- meltygui-0.1.8/meltygui/platforms/ios/application.py +20 -0
- meltygui-0.1.8/meltygui/platforms/ios/build_crypto.py +269 -0
- meltygui-0.1.8/meltygui/platforms/ios/build_imgui.py +236 -0
- meltygui-0.1.8/meltygui/platforms/ios/build_platform_deps.py +278 -0
- meltygui-0.1.8/meltygui/platforms/ios/build_rust_deps.py +257 -0
- meltygui-0.1.8/meltygui/platforms/ios/compile_shaders.py +192 -0
- meltygui-0.1.8/meltygui/platforms/ios/dependencies.json +308 -0
- meltygui-0.1.8/meltygui/platforms/ios/devices.py +329 -0
- meltygui-0.1.8/meltygui/platforms/ios/download_numeric_wheels.py +223 -0
- meltygui-0.1.8/meltygui/platforms/ios/generate.py +216 -0
- meltygui-0.1.8/meltygui/platforms/ios/prepare_bundle.py +237 -0
- meltygui-0.1.8/meltygui/platforms/ios/provision.py +851 -0
- meltygui-0.1.8/meltygui/platforms/ios/rec2020-pq.icc +0 -0
- meltygui-0.1.8/meltygui/platforms/ios/runtime.py +77 -0
- meltygui-0.1.8/meltygui/platforms/ios/stage_dependencies.py +409 -0
- meltygui-0.1.8/meltygui/state/new_core_model.py +2525 -0
- meltygui-0.1.8/meltygui/text_index.py +818 -0
- meltygui-0.1.8/meltygui/view/account_view.py +524 -0
- meltygui-0.1.8/meltygui/view/chat_view.py +1595 -0
- meltygui-0.1.8/meltygui/view/collection_view.py +1515 -0
- meltygui-0.1.8/meltygui/view/color_view.py +982 -0
- meltygui-0.1.8/meltygui/view/control_view.py +608 -0
- meltygui-0.1.8/meltygui/view/dropdown_view.py +1414 -0
- meltygui-0.1.8/meltygui/view/file_view.py +1840 -0
- meltygui-0.1.8/meltygui/view/graph_view.py +885 -0
- meltygui-0.1.8/meltygui/view/header_view.py +877 -0
- meltygui-0.1.8/meltygui/view/menu_view.py +230 -0
- meltygui-0.1.8/meltygui/view/orchestration_view.py +658 -0
- meltygui-0.1.8/meltygui/view/path_icon_view.py +107 -0
- meltygui-0.1.8/meltygui/view/text_view.py +8330 -0
- meltygui-0.1.8/meltygui/view/texture_view.py +258 -0
- meltygui-0.1.8/meltygui/view/tile_view.py +338 -0
- meltygui-0.1.8/meltygui/view/trace_view.py +971 -0
- meltygui-0.1.8/meltygui/view/voxel_view.py +1864 -0
- meltygui-0.1.8/pyproject.toml +62 -0
- meltygui-0.1.8/tests/benchmark_gui_collisions.py +57 -0
- meltygui-0.1.8/tests/benchmark_gui_full_app.py +173 -0
- meltygui-0.1.8/tests/benchmark_gui_prototype.py +86 -0
- meltygui-0.1.8/tests/benchmark_gui_retained.py +71 -0
- meltygui-0.1.8/tests/ios/build_metal_test.py +26 -0
- meltygui-0.1.8/tests/ios/check_keyboard_animation.py +79 -0
- meltygui-0.1.8/tests/ios/conftest.py +22 -0
- meltygui-0.1.8/tests/ios/device_ui_check.py +290 -0
- meltygui-0.1.8/tests/ios/input_queue.cpp +89 -0
- meltygui-0.1.8/tests/ios/keyboard_animation.mm +115 -0
- meltygui-0.1.8/tests/ios/presentation.mm +70 -0
- meltygui-0.1.8/tests/ios/safe_area_layout.mm +102 -0
- meltygui-0.1.8/tests/ios/test_app_icon.py +402 -0
- meltygui-0.1.8/tests/ios/test_application.py +91 -0
- meltygui-0.1.8/tests/ios/test_dependencies.py +241 -0
- meltygui-0.1.8/tests/ios/test_devices.py +263 -0
- meltygui-0.1.8/tests/ios/test_dropdown_metal.py +112 -0
- meltygui-0.1.8/tests/ios/test_host.py +656 -0
- meltygui-0.1.8/tests/ios/test_keyboard_metal.py +104 -0
- meltygui-0.1.8/tests/ios/test_metal.py +377 -0
- meltygui-0.1.8/tests/ios/test_picker_metal.py +134 -0
- meltygui-0.1.8/tests/ios/test_presentation.py +24 -0
- meltygui-0.1.8/tests/ios/test_provision.py +629 -0
- meltygui-0.1.8/tests/ios/test_render_errors_metal.py +98 -0
- meltygui-0.1.8/tests/ios/test_text_caret_metal.py +111 -0
- meltygui-0.1.8/tests/native_gui_support.py +11 -0
- meltygui-0.1.8/tests/test_app_checkpoint.py +101 -0
- meltygui-0.1.8/tests/test_app_settings.py +208 -0
- meltygui-0.1.8/tests/test_background_frame_parking.py +53 -0
- meltygui-0.1.8/tests/test_bool_geometry.py +57 -0
- meltygui-0.1.8/tests/test_cached_input_delivery.py +151 -0
- meltygui-0.1.8/tests/test_chat_main.py +81 -0
- meltygui-0.1.8/tests/test_chat_turn_status.py +76 -0
- meltygui-0.1.8/tests/test_cocoa_drag_motion.py +170 -0
- meltygui-0.1.8/tests/test_color_picker_state.py +111 -0
- meltygui-0.1.8/tests/test_console_colors.py +73 -0
- meltygui-0.1.8/tests/test_control_paint.py +73 -0
- meltygui-0.1.8/tests/test_cooperative_parse_yield.py +69 -0
- meltygui-0.1.8/tests/test_core_syntax.py +994 -0
- meltygui-0.1.8/tests/test_deferred_invalidation.py +196 -0
- meltygui-0.1.8/tests/test_desktop_gl.py +83 -0
- meltygui-0.1.8/tests/test_draw_state_parent_geometry.py +177 -0
- meltygui-0.1.8/tests/test_edge_motion_guard.py +527 -0
- meltygui-0.1.8/tests/test_embedded_frame.py +68 -0
- meltygui-0.1.8/tests/test_embedded_imports.py +70 -0
- meltygui-0.1.8/tests/test_fast_draw_dropdown.py +149 -0
- meltygui-0.1.8/tests/test_fast_menu_bar.py +38 -0
- meltygui-0.1.8/tests/test_file_meta_ios_notifications.py +44 -0
- meltygui-0.1.8/tests/test_file_meta_read_failures.py +62 -0
- meltygui-0.1.8/tests/test_file_metadata_model.py +244 -0
- meltygui-0.1.8/tests/test_file_rows_overlay.py +108 -0
- meltygui-0.1.8/tests/test_file_type_codecs.py +345 -0
- meltygui-0.1.8/tests/test_folder_icons.py +253 -0
- meltygui-0.1.8/tests/test_fps_counter.py +91 -0
- meltygui-0.1.8/tests/test_fractional_tiles.py +210 -0
- meltygui-0.1.8/tests/test_geometry_jitter.py +244 -0
- meltygui-0.1.8/tests/test_gui_collision_layout.py +597 -0
- meltygui-0.1.8/tests/test_gui_edges.py +76 -0
- meltygui-0.1.8/tests/test_gui_imgui_widgets.py +496 -0
- meltygui-0.1.8/tests/test_gui_prototype.py +210 -0
- meltygui-0.1.8/tests/test_gui_prototype_rendering.py +119 -0
- meltygui-0.1.8/tests/test_gui_public_api.py +139 -0
- meltygui-0.1.8/tests/test_gui_table_demo.py +75 -0
- meltygui-0.1.8/tests/test_gui_window_prototype.py +122 -0
- meltygui-0.1.8/tests/test_hdr_folder_icons.py +87 -0
- meltygui-0.1.8/tests/test_ios_capture_on_demand.py +26 -0
- meltygui-0.1.8/tests/test_ios_failure_display.py +54 -0
- meltygui-0.1.8/tests/test_ios_file_observer.py +170 -0
- meltygui-0.1.8/tests/test_ios_header_tint.py +160 -0
- meltygui-0.1.8/tests/test_ios_input.py +708 -0
- meltygui-0.1.8/tests/test_ios_jedi.py +208 -0
- meltygui-0.1.8/tests/test_ios_paths.py +166 -0
- meltygui-0.1.8/tests/test_ios_render_wake.py +34 -0
- meltygui-0.1.8/tests/test_ios_scroll_clock.py +143 -0
- meltygui-0.1.8/tests/test_ios_window_fallback.py +42 -0
- meltygui-0.1.8/tests/test_ios_workspace.py +86 -0
- meltygui-0.1.8/tests/test_melty_windows.py +184 -0
- meltygui-0.1.8/tests/test_metal_shadow_reuse.py +98 -0
- meltygui-0.1.8/tests/test_native_app.py +715 -0
- meltygui-0.1.8/tests/test_native_background_move.py +129 -0
- meltygui-0.1.8/tests/test_native_collision_surface.py +122 -0
- meltygui-0.1.8/tests/test_native_graphics_imports.py +30 -0
- meltygui-0.1.8/tests/test_native_images.py +107 -0
- meltygui-0.1.8/tests/test_native_input_invalidation.py +156 -0
- meltygui-0.1.8/tests/test_native_live_resize.py +214 -0
- meltygui-0.1.8/tests/test_native_settings_surface.py +133 -0
- meltygui-0.1.8/tests/test_native_text.py +20 -0
- meltygui-0.1.8/tests/test_nested_class_discovery.py +17 -0
- meltygui-0.1.8/tests/test_os_frame.py +1972 -0
- meltygui-0.1.8/tests/test_path_icon_view.py +85 -0
- meltygui-0.1.8/tests/test_portable_native_app.py +171 -0
- meltygui-0.1.8/tests/test_public_boundary.py +86 -0
- meltygui-0.1.8/tests/test_public_render_exports.py +75 -0
- meltygui-0.1.8/tests/test_release_workflow.py +135 -0
- meltygui-0.1.8/tests/test_render_catalog_sources.py +53 -0
- meltygui-0.1.8/tests/test_render_func_metadata.py +85 -0
- meltygui-0.1.8/tests/test_render_func_pickle.py +16 -0
- meltygui-0.1.8/tests/test_render_overlay.py +522 -0
- meltygui-0.1.8/tests/test_retained_gui_gpu.py +375 -0
- meltygui-0.1.8/tests/test_retained_gui_layout.py +578 -0
- meltygui-0.1.8/tests/test_retained_gui_prototype.py +341 -0
- meltygui-0.1.8/tests/test_retina_tile_capture.py +93 -0
- meltygui-0.1.8/tests/test_search_symbol_tables.py +36 -0
- meltygui-0.1.8/tests/test_source_ownership_cache.py +220 -0
- meltygui-0.1.8/tests/test_source_text_cache.py +111 -0
- meltygui-0.1.8/tests/test_subpixel_rendering.py +116 -0
- meltygui-0.1.8/tests/test_surface_frame_drag.py +34 -0
- meltygui-0.1.8/tests/test_surface_persistence.py +88 -0
- meltygui-0.1.8/tests/test_symbol_roster_async_names.py +230 -0
- meltygui-0.1.8/tests/test_symbol_roster_incremental_names.py +159 -0
- meltygui-0.1.8/tests/test_symbol_roster_ownership.py +38 -0
- meltygui-0.1.8/tests/test_symbol_roster_sweep.py +199 -0
- meltygui-0.1.8/tests/test_symbol_roster_watch_filter.py +73 -0
- meltygui-0.1.8/tests/test_system_titlebar_buttons.py +117 -0
- meltygui-0.1.8/tests/test_text_focus_bounds.py +184 -0
- meltygui-0.1.8/tests/test_texture_overlay.py +173 -0
- meltygui-0.1.8/tests/test_tile_links.py +724 -0
- meltygui-0.1.8/tests/test_tile_manager.py +652 -0
- meltygui-0.1.8/tests/test_tile_pixel_phase.py +81 -0
- meltygui-0.1.8/tests/test_tile_resize_replay.py +319 -0
- meltygui-0.1.8/tests/test_titlebar_hotpath.py +154 -0
- meltygui-0.1.8/tests/test_touch_gestures.py +438 -0
- meltygui-0.1.8/tests/test_view_identity.py +128 -0
- meltygui-0.1.8/tools/release.py +111 -0
- meltygui-0.1.3/.gitignore +0 -10
- meltygui-0.1.3/PKG-INFO +0 -148
- meltygui-0.1.3/README.md +0 -100
- meltygui-0.1.3/docs/APPS.md +0 -340
- meltygui-0.1.3/docs/DEVELOPMENT.md +0 -164
- meltygui-0.1.3/docs/PUBLISHING.md +0 -79
- meltygui-0.1.3/examples/tile_manager.py +0 -12
- meltygui-0.1.3/meltygui/__init__.py +0 -120
- meltygui-0.1.3/meltygui/accounts/internet_accounts.py +0 -1365
- meltygui-0.1.3/meltygui/chat/chat_interface.py +0 -759
- meltygui-0.1.3/meltygui/chat/images.py +0 -227
- meltygui-0.1.3/meltygui/chat/main.py +0 -202
- meltygui-0.1.3/meltygui/code/chain_converters.py +0 -2111
- meltygui-0.1.3/meltygui/code/codec_registry.py +0 -40
- meltygui-0.1.3/meltygui/code/fileref.py +0 -702
- meltygui-0.1.3/meltygui/code/libcst_conversion.py +0 -9724
- meltygui-0.1.3/meltygui/code/new_codecs.py +0 -1292
- meltygui-0.1.3/meltygui/code/new_converters.py +0 -3034
- meltygui-0.1.3/meltygui/code/project_code.py +0 -278
- meltygui-0.1.3/meltygui/code/source_context.py +0 -63
- meltygui-0.1.3/meltygui/code/symbol_roster.py +0 -1588
- meltygui-0.1.3/meltygui/completion/providers/anthropic_oauth.py +0 -446
- meltygui-0.1.3/meltygui/completion/providers/anthropic_requests.py +0 -69
- meltygui-0.1.3/meltygui/completion/providers/claude_usage.py +0 -499
- meltygui-0.1.3/meltygui/completion/providers/codex_accounts.py +0 -180
- meltygui-0.1.3/meltygui/core/automation/orchestration_core.py +0 -2638
- meltygui-0.1.3/meltygui/core/automation/query_core.py +0 -124
- meltygui-0.1.3/meltygui/core/cache/tile_cache.py +0 -6095
- meltygui-0.1.3/meltygui/core/conversion/dict_conversion_util.py +0 -177
- meltygui-0.1.3/meltygui/core/conversion/render_host.py +0 -1083
- meltygui-0.1.3/meltygui/core/core_render.py +0 -6363
- meltygui-0.1.3/meltygui/core/diagnostics/edge_motion_guard.py +0 -621
- meltygui-0.1.3/meltygui/core/diagnostics/fps_counter.py +0 -25
- meltygui-0.1.3/meltygui/core/diagnostics/geometry_jitter.py +0 -208
- meltygui-0.1.3/meltygui/core/diagnostics/resize_trace.py +0 -64
- meltygui-0.1.3/meltygui/core/graphics/gl_state.py +0 -658
- meltygui-0.1.3/meltygui/core/graphics/overlay_renderer.py +0 -1012
- meltygui-0.1.3/meltygui/core/graphics/scene_target.py +0 -180
- meltygui-0.1.3/meltygui/core/graphics/shader_func.py +0 -478
- meltygui-0.1.3/meltygui/core/graphics/text_texture.py +0 -329
- meltygui-0.1.3/meltygui/core/input/input_handler.py +0 -1149
- meltygui-0.1.3/meltygui/core/input/pynput_backend.py +0 -1057
- meltygui-0.1.3/meltygui/core/layout/column_core.py +0 -2256
- meltygui-0.1.3/meltygui/core/layout/tile_links.py +0 -180
- meltygui-0.1.3/meltygui/core/layout/tile_manager_core.py +0 -768
- meltygui-0.1.3/meltygui/core/layout/tile_resize.py +0 -54
- meltygui-0.1.3/meltygui/core/melty.py +0 -6990
- meltygui-0.1.3/meltygui/core/module_map.json +0 -915
- meltygui-0.1.3/meltygui/core/rendering/mode.py +0 -864
- meltygui-0.1.3/meltygui/core/rendering/overlay.py +0 -353
- meltygui-0.1.3/meltygui/core/rendering/render_funcs.py +0 -272
- meltygui-0.1.3/meltygui/core/rendering/view_identity.py +0 -199
- meltygui-0.1.3/meltygui/core/runtime/app.py +0 -980
- meltygui-0.1.3/meltygui/core/runtime/app_session.py +0 -140
- meltygui-0.1.3/meltygui/core/runtime/app_settings.py +0 -183
- meltygui-0.1.3/meltygui/core/runtime/gc_manager.py +0 -1163
- meltygui-0.1.3/meltygui/core/runtime/launch_override.py +0 -223
- meltygui-0.1.3/meltygui/core/runtime/paths.py +0 -27
- meltygui-0.1.3/meltygui/core/runtime/toggles.py +0 -3177
- meltygui-0.1.3/meltygui/core/styling/fonts.py +0 -656
- meltygui-0.1.3/meltygui/core/styling/style_core.py +0 -522
- meltygui-0.1.3/meltygui/core/windowing/backends/imgui_renderer.py +0 -138
- meltygui-0.1.3/meltygui/core/windowing/geometry_feed.py +0 -956
- meltygui-0.1.3/meltygui/core/windowing/glfw_utils.py +0 -1442
- meltygui-0.1.3/meltygui/core/windowing/os_frame.py +0 -1608
- meltygui-0.1.3/meltygui/core/windowing/surface.py +0 -712
- meltygui-0.1.3/meltygui/core/windowing/titlebar.py +0 -1689
- meltygui-0.1.3/meltygui/core/windowing/titlebar_buttons.py +0 -281
- meltygui-0.1.3/meltygui/core/windowing/window_api.py +0 -62
- meltygui-0.1.3/meltygui/editor/pending_save.py +0 -1382
- meltygui-0.1.3/meltygui/editor/text_editor.py +0 -9083
- meltygui-0.1.3/meltygui/files/fast_file_explorer.py +0 -437
- meltygui-0.1.3/meltygui/image_load.py +0 -308
- meltygui-0.1.3/meltygui/model/chat_folder_model.py +0 -163
- meltygui-0.1.3/meltygui/model/chat_model.py +0 -178
- meltygui-0.1.3/meltygui/model/file_location_model.py +0 -118
- meltygui-0.1.3/meltygui/model/file_model.py +0 -289
- meltygui-0.1.3/meltygui/model/folder_icon_model.py +0 -348
- meltygui-0.1.3/meltygui/model/import_graph_model.py +0 -468
- meltygui-0.1.3/meltygui/model/source_snapshot_model.py +0 -288
- meltygui-0.1.3/meltygui/model/texture_model.py +0 -250
- meltygui-0.1.3/meltygui/models/file_meta.py +0 -700
- meltygui-0.1.3/meltygui/state/new_core_model.py +0 -2440
- meltygui-0.1.3/meltygui/text_index.py +0 -816
- meltygui-0.1.3/meltygui/view/account_view.py +0 -524
- meltygui-0.1.3/meltygui/view/chat_view.py +0 -1595
- meltygui-0.1.3/meltygui/view/collection_view.py +0 -1512
- meltygui-0.1.3/meltygui/view/color_view.py +0 -1039
- meltygui-0.1.3/meltygui/view/control_view.py +0 -607
- meltygui-0.1.3/meltygui/view/dropdown_view.py +0 -1363
- meltygui-0.1.3/meltygui/view/file_view.py +0 -1831
- meltygui-0.1.3/meltygui/view/graph_view.py +0 -885
- meltygui-0.1.3/meltygui/view/header_view.py +0 -862
- meltygui-0.1.3/meltygui/view/menu_view.py +0 -228
- meltygui-0.1.3/meltygui/view/orchestration_view.py +0 -658
- meltygui-0.1.3/meltygui/view/path_icon_view.py +0 -105
- meltygui-0.1.3/meltygui/view/text_view.py +0 -8099
- meltygui-0.1.3/meltygui/view/texture_view.py +0 -244
- meltygui-0.1.3/meltygui/view/tile_view.py +0 -316
- meltygui-0.1.3/meltygui/view/trace_view.py +0 -971
- meltygui-0.1.3/meltygui/view/voxel_view.py +0 -1864
- meltygui-0.1.3/pyproject.toml +0 -39
- meltygui-0.1.3/tests/test_app_settings.py +0 -161
- meltygui-0.1.3/tests/test_cached_input_delivery.py +0 -103
- meltygui-0.1.3/tests/test_chat_main.py +0 -69
- meltygui-0.1.3/tests/test_chat_turn_status.py +0 -76
- meltygui-0.1.3/tests/test_control_paint.py +0 -34
- meltygui-0.1.3/tests/test_core_syntax.py +0 -996
- meltygui-0.1.3/tests/test_draw_state_parent_geometry.py +0 -177
- meltygui-0.1.3/tests/test_edge_motion_guard.py +0 -512
- meltygui-0.1.3/tests/test_fast_draw_dropdown.py +0 -107
- meltygui-0.1.3/tests/test_fast_menu_bar.py +0 -32
- meltygui-0.1.3/tests/test_file_metadata_model.py +0 -244
- meltygui-0.1.3/tests/test_file_rows_overlay.py +0 -108
- meltygui-0.1.3/tests/test_file_type_codecs.py +0 -271
- meltygui-0.1.3/tests/test_folder_icons.py +0 -228
- meltygui-0.1.3/tests/test_fps_counter.py +0 -46
- meltygui-0.1.3/tests/test_geometry_jitter.py +0 -229
- meltygui-0.1.3/tests/test_native_collision_surface.py +0 -118
- meltygui-0.1.3/tests/test_native_live_resize.py +0 -143
- meltygui-0.1.3/tests/test_os_frame.py +0 -1886
- meltygui-0.1.3/tests/test_path_icon_view.py +0 -75
- meltygui-0.1.3/tests/test_public_boundary.py +0 -63
- meltygui-0.1.3/tests/test_release_workflow.py +0 -105
- meltygui-0.1.3/tests/test_render_overlay.py +0 -448
- meltygui-0.1.3/tests/test_retina_tile_capture.py +0 -78
- meltygui-0.1.3/tests/test_search_symbol_tables.py +0 -24
- meltygui-0.1.3/tests/test_texture_overlay.py +0 -150
- meltygui-0.1.3/tests/test_tile_links.py +0 -706
- meltygui-0.1.3/tests/test_tile_manager.py +0 -476
- meltygui-0.1.3/tests/test_tile_resize_replay.py +0 -179
- meltygui-0.1.3/tests/test_view_identity.py +0 -91
- meltygui-0.1.3/tools/release.py +0 -111
- {meltygui-0.1.3 → meltygui-0.1.8}/LICENSE +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/docs/INPUT_RECORDING.md +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/docs/SUPPORT_WHEELS.md +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/examples/render_overlay.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/examples/tensor_live.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/examples/tile_sibling_links.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/examples/voxel_playground.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/accounts/__init__.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/chat/__init__.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/chat/__main__.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/chat/activity.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/chat/assets/source-icons/LICENSE +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/chat/assets/source-icons/README.md +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/chat/assets/source-icons/claude.png +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/chat/assets/source-icons/claude.svg +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/chat/assets/source-icons/codex.png +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/chat/assets/source-icons/codex.svg +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/chat/auto_titles.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/chat/backends.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/chat/chat_proxy.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/chat/chat_service.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/chat/claude_code.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/chat/codex_proxy.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/chat/codex_settings.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/chat/codex_transport.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/chat/command_parser.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/chat/messages.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/chat/metadata.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/chat/writer_locks.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/code/__init__.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/code/basic_converters.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/code/code_checks.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/code/core_syntax.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/code/file_converters.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/code/hotswap_guard.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/code/live_instrument.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/code/live_view.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/code/melty_scan.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/code/syntax_check.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/code/syntax_check_worker.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/completion/__init__.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/completion/fim.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/completion/fim_context.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/completion/providers/__init__.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/completion/providers/claude.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/completion/providers/copilot.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/completion/providers/oauth_popup.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/completion/providers/ollama.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/completion/providers/profiles.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/README.md +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/__init__.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/automation/__init__.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/automation/action_core.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/automation/collection_action.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/automation/input_recording_core.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/automation/input_replay.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/automation/mcp_eval.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/automation/mcp_hotswap.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/automation/mcp_query.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/automation/mcp_server.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/automation/search_core.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/automation/selector_core.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/automation/value_core.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/cache/__init__.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/cache/cache_diagnostics.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/cache/invalidation_decoration.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/cache/invalidation_tracker.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/cache/mask_batch.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/cache/parameter_dependencies.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/cache/tile_marks.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/conversion/__init__.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/conversion/bubbling.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/conversion/cache_tree.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/conversion/chain.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/conversion/converter_register.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/conversion/data_decoration.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/conversion/dict_conversion.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/conversion/dynamic_obj.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/conversion/graph_compare.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/conversion/load_save_v2.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/conversion/missing_saved_class.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/conversion/path_finder.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/definition_hotswap.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/diagnostics/__init__.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/diagnostics/attribute_churn.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/diagnostics/gpu_frame_timer.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/diagnostics/inspection_core.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/diagnostics/monitor_core.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/diagnostics/notifications.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/diagnostics/perf_trace.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/diagnostics/profile_decoration.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/diagnostics/screenshot_core.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/diagnostics/session_status.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/diagnostics/trace_core.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/files/__init__.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/files/file_core.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/files/file_explorer_core.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/files/file_tree_core.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/files/file_watch_core.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/files/import_graph_core.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/files/metadata_core.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/files/path_icons.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/graphics/__init__.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/graphics/cuda_context_core.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/graphics/cuda_interop_core.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/graphics/cuda_kernel_core.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/graphics/framebuffer_recorder.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/graphics/lut_core.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/graphics/screenshot.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/graphics/tensor_core.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/graphics/wayland_color.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/input/__init__.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/input/collision.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/input/drag_drop_core.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/input/hypr_left_drag.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/input/input_core.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/input/mouse_cursor.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/input/space_mouse.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/input/touchpad_backend.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/input/view_selection.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/layout/__init__.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/layout/cursor_core.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/layout/dropdown_core.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/layout/edge_constraints.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/layout/grid_core.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/layout/header_core.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/layout/header_runtime.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/layout/layout_core.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/module_names.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/rendering/__init__.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/rendering/core_decoration.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/rendering/core_render_helpers.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/rendering/fast_view.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/rendering/func_metadata.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/rendering/injected_state.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/rendering/mode_defaults.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/rendering/modes.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/rendering/parameter_core.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/rendering/render_dispatch.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/rendering/shaped.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/rendering/window_decoration.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/runtime/__init__.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/runtime/background.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/runtime/extensions.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/runtime/lifecycle.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/runtime/settings.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/runtime/singleton.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/runtime/thread_safe_bool.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/runtime/thread_signal.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/services/__init__.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/services/account_core.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/services/chat_core.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/services/claude_terminal_core.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/services/terminal_core.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/services/terminal_runtime.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/styling/__init__.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/styling/color_core.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/styling/global_style.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/styling/style.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/styling/warm_start.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/windowing/__init__.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/windowing/backends/PYIMGUI_LICENSE +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/windowing/backends/__init__.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/windowing/backends/native_wayland.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/windowing/backends/protocols/xdg-decoration-unstable-v1.xml +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/windowing/backends/protocols/xdg-shell.xml +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/windowing/backends/wayland_protocol.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/windowing/dock_core.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/windowing/frame_geometry.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/windowing/wayland_move.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/windowing/window_constants.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/windowing/window_visibility.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/debug/__init__.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/debug/app_view_utils.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/editor/__init__.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/editor/bash_syntax.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/editor/code_line_fast.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/editor/diff.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/editor/external_changes.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/editor/file_header.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/editor/live_usage.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/editor/live_view_views.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/editor/roster_tints.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/editor/source_preview.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/editor/source_tools.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/editor/source_ui.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/editor/spell_check.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/editor/usage_picker.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/events/__init__.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/events/example.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/examples/__init__.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/examples/columns_demo.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/examples/columns_window_demo.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/examples/context_menu_demo.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/examples/context_menu_window_demo.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/examples/gui_playground.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/examples/live_view_playground.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/examples/lora.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/examples/lora_data.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/examples/lora_policies.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/examples/mode_demo.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/examples/modifies_demo.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/examples/scalar_policies.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/examples/settings_demo.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/examples/style_layouts.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/examples/tile_manager_demo.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/examples/tint_demo.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/examples/tint_functions.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/examples/trace_demo.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/examples/two_windows.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/examples/voxel_transfer_paths.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/files/__init__.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/gnome_extension/lsd-window-geometry@latent-descent/extension.js +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/gnome_extension/lsd-window-geometry@latent-descent/lsd-window-geometry@latent-descent.iml +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/gnome_extension/lsd-window-geometry@latent-descent/metadata.json +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/graphics/__init__.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/graphics/base.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/graphics/examples.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/graphics/executor.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/graphics/filter.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/graphics/filter.pyi +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/graphics/generate_stubs.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/graphics/registry.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/graphics/shader_compiler.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/graphics/shaders.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/graphics/stub_generator.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/graphics/texture_min_max.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/hdr_color.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/model/__init__.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/model/account_model.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/model/breakpoint_model.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/model/camera_model.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/model/code_dict_model.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/model/code_model.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/model/code_proxy_model.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/model/collection_model.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/model/color_model.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/model/cuda_buffer_model.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/model/cuda_tensor_model.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/model/cuda_texture_model.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/model/dropdown_model.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/model/file_metadata_model.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/model/format_model.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/model/graph_model.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/model/icon_model.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/model/input_recording_model.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/model/layout_model.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/model/lut_model.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/model/search_model.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/model/tensor_model.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/model/terminal_model.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/model/tile_model.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/model/trace_model.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/model/trace_report_model.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/models/__init__.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/models/function_console.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/models/orchestration.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/pbr.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/png_unfilter.c +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/resources/JetBrainsMono-Regular.ttf +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/resources/THIRD_PARTY_NOTICES.md +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/resources/dejavu/DejaVuSans-Bold.ttf +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/resources/dejavu/DejaVuSans-ExtraLight.ttf +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/resources/dejavu/DejaVuSans.ttf +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/resources/dejavu/LICENSE.txt +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/resources/fontawesome-LICENSE.txt +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/resources/fontawesome-webfont.ttf +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/resources/hdri/studio_small_09_1k.hdr +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/resources/jetbrains-weights/JetBrainsMono-Bold.ttf +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/resources/jetbrains-weights/JetBrainsMono-ExtraBold.ttf +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/resources/jetbrains-weights/JetBrainsMono-ExtraLight.ttf +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/resources/jetbrains-weights/JetBrainsMono-Light.ttf +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/resources/jetbrains-weights/JetBrainsMono-Medium.ttf +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/resources/jetbrains-weights/JetBrainsMono-SemiBold.ttf +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/resources/jetbrains-weights/JetBrainsMono-Thin.ttf +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/resources/jetbrains-weights/OFL.txt +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/resources/jetbrains-weights/README.md +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/state/__init__.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/state/account_state.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/state/animation_state.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/state/annotation_state.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/state/chat_state.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/state/code_state.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/state/core_enums.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/state/core_markers.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/state/core_undo.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/state/file_state.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/state/graph_state.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/state/inspection_state.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/state/menu_state.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/state/model_enums.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/state/orchestration_state.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/state/path_icon_state.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/state/query_state.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/state/tensor_state.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/state/terminal_state.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/state/texture_state.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/state/trace_state.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/state/view_reference.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/state/voxel_state.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/utils/__init__.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/utils/jump_to_code.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/utils/pkl_inspect.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/utils/render_utils.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/view/__init__.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/view/action_view.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/view/chat_decoration_view.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/view/chat_sidebar_view.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/view/chat_source_icon_view.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/view/code_view.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/view/decoration_view.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/view/diagnostic_view.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/view/file_icon_view.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/view/graph_cuda_view.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/view/input_recording_view.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/view/input_view.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/view/inspection_view.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/view/layout_view.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/view/lut_view.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/view/query_view.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/view/search_view.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/view/tab_view.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/view/tensor_view.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/view/terminal_view.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/view/voxel_cuda_view.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/view/window_view.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/tests/conftest.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/tests/fixtures/terminal_before_runtime.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/tests/profile_render_wrapper.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_app_exit_flush.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_background_palette.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_breakpoint_model.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_capture_passes.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_chat_auto_titles.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_chat_claude_code.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_chat_codex_fast.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_chat_messages.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_chat_presentation.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_chat_service.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_chat_token_usage.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_child_surface_cache_keepalive.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_clean_surface_skip.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_click_disambiguation.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_code_dict.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_code_dict_scenarios.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_column_edge_solve.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_column_frame_fit.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_column_maxes.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_column_right_drag_display_wall.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_context_menu_placement.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_core_relocation.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_crash_report_store.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_cuda_context_core.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_cuda_direct_lines.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_cuda_image_interop.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_cuda_interop.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_cuda_interop_core.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_cuda_kernel_core.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_cuda_march.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_deferred_view_returns.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_definition_relocation.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_dropdown_divider.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_edge_graph_solve.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_fast_draw_collection.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_file_model.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_file_watch_limits.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_file_watch_start.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_font_backing_scale.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_frame_geometry_hotswap.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_freeze_scrollbar_overlay.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_fstring_highlight.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_function_console.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_geometry_feed_grace.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_glfw_window_app_name.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_glfw_window_editable_root.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_gpu_frame_timer.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_hdr_color.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_held_input.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_hotswap_preserves_runtime_state.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_image_texture.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_import_boundary.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_initial_child_placement.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_input_recording.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_live_class_apply.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_live_function_apply.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_live_store_owner.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_lut_model.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_mask_batch.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_native_background_drag.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_native_body_cursor.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_native_collision_fallback.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_native_frame_contacts.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_native_resize_workarea.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_native_windows.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_nested_layout_right_drag.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_overlay_submission_state.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_package_contract.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_pending_signature_lint.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_readme_examples.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_recent_files.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_recompile_import_backfill.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_render_background.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_render_change_notification.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_render_context_injection.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_render_func_integration.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_render_host_surface_drag.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_restored_resource_ownership.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_row_edge_solve.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_saved_renderer_recovery.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_shader_func.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_shadow_capture_gl.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_shaped.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_source_site_keys.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_startup_imports.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_surface_body_resize.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_syntax_check_worker.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_tensor_controls.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_tensor_model.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_tensor_slices.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_terminal_live_migration.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_terminal_ownership.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_text_texture_contexts.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_tile_frame_reuse.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_tile_hotswap_content.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_toggles_color.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_typing_incremental_layout.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_unmanaged_window_frames.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_view_icon_locate.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_voxel_backends.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_voxel_ownership.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_voxel_roll_gl.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_window_call_state.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_window_collision_investigation.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_window_comment_overrides.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_windows_portability.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/tests/untitled.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/tools/native_wheels/build.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/tools/native_wheels/build_in_container.sh +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/tools/native_wheels/licenses/NVIDIA-CUDA-12.1-EULA.txt +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/tools/native_wheels/licenses/boost.txt +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/tools/native_wheels/licenses/imgui-MIT.txt +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/tools/native_wheels/licenses/imstb_rectpack.h.license.txt +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/tools/native_wheels/licenses/imstb_textedit.h.license.txt +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/tools/native_wheels/licenses/imstb_truetype.h.license.txt +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/tools/native_wheels/prepare.py +0 -0
- {meltygui-0.1.3 → meltygui-0.1.8}/tools/native_wheels/rewrite_imports.py +0 -0
meltygui-0.1.8/PKG-INFO
ADDED
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
Metadata-Version: 2.5
|
|
2
|
+
Name: meltygui
|
|
3
|
+
Version: 0.1.8
|
|
4
|
+
Summary: Immediate-mode Python UI, live inspection, HDR and tensor visualization
|
|
5
|
+
License-Expression: Apache-2.0
|
|
6
|
+
License-File: LICENSE
|
|
7
|
+
Classifier: Development Status :: 3 - Alpha
|
|
8
|
+
Classifier: Operating System :: MacOS :: MacOS X
|
|
9
|
+
Classifier: Operating System :: Microsoft :: Windows
|
|
10
|
+
Classifier: Operating System :: POSIX :: Linux
|
|
11
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
12
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
13
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
14
|
+
Requires-Python: <3.14,>=3.11
|
|
15
|
+
Requires-Dist: anthropic>=0.40
|
|
16
|
+
Requires-Dist: freetype-py>=2.4
|
|
17
|
+
Requires-Dist: glfw>=2.10; sys_platform != 'ios'
|
|
18
|
+
Requires-Dist: httpx>=0.27
|
|
19
|
+
Requires-Dist: jedi>=0.19
|
|
20
|
+
Requires-Dist: libcst>=1.4
|
|
21
|
+
Requires-Dist: mcp>=2.0
|
|
22
|
+
Requires-Dist: meltygui-imgui<2.0.4,>=2.0.3
|
|
23
|
+
Requires-Dist: numpy>=1.26
|
|
24
|
+
Requires-Dist: packaging>=24
|
|
25
|
+
Requires-Dist: paramiko>=3.5
|
|
26
|
+
Requires-Dist: pillow>=10
|
|
27
|
+
Requires-Dist: psutil>=6; sys_platform != 'ios'
|
|
28
|
+
Requires-Dist: pygments>=2.18
|
|
29
|
+
Requires-Dist: pyopengl-accelerate>=3.1.7; sys_platform != 'ios'
|
|
30
|
+
Requires-Dist: pyopengl>=3.1.7; sys_platform != 'ios'
|
|
31
|
+
Requires-Dist: pyte>=0.8
|
|
32
|
+
Requires-Dist: rich>=13
|
|
33
|
+
Requires-Dist: rtree>=1.2
|
|
34
|
+
Requires-Dist: symspellpy>=6.7
|
|
35
|
+
Requires-Dist: tomlkit>=0.13
|
|
36
|
+
Requires-Dist: uvicorn>=0.30
|
|
37
|
+
Requires-Dist: watchdog>=4
|
|
38
|
+
Provides-Extra: claude
|
|
39
|
+
Requires-Dist: claude-agent-sdk>=0.2.152; extra == 'claude'
|
|
40
|
+
Provides-Extra: input
|
|
41
|
+
Requires-Dist: evdev>=1.7; (sys_platform == 'linux') and extra == 'input'
|
|
42
|
+
Requires-Dist: pynput>=1.7; extra == 'input'
|
|
43
|
+
Provides-Extra: profile
|
|
44
|
+
Requires-Dist: line-profiler>=4; extra == 'profile'
|
|
45
|
+
Provides-Extra: tensor
|
|
46
|
+
Requires-Dist: meltygui-pycuda<2026.3,>=2026.2; (sys_platform == 'linux') and extra == 'tensor'
|
|
47
|
+
Requires-Dist: torch>=2.2; extra == 'tensor'
|
|
48
|
+
Description-Content-Type: text/markdown
|
|
49
|
+
|
|
50
|
+
# MeltyGUI
|
|
51
|
+
|
|
52
|
+
Low latency tensor visualization for PyTorch.
|
|
53
|
+
|
|
54
|
+
MeltyGUI is an open source data visualization toolkit for PyTorch, designed to render massive tensors in-place on the GPU at an interactive framerate. The purpose of this project is to make PyTorch code easier to understand and faster to debug. Along with its core tensor rendering components, MeltyGUI is bundled with a Blender inspired UI framework designed to make interacting with high dimensional tensors feel fast and intuitive.
|
|
55
|
+
|
|
56
|
+
MeltyGUI is capable of rendering tensors exceeding 64GB in size. The primary challenge with visualizing data this large is moving it around. MeltyGUI skips the data movement entirely, and ray-marches tensors directly from CUDA memory.
|
|
57
|
+
|
|
58
|
+
<img width="2410" height="2018" alt="Image" src="https://github.com/user-attachments/assets/82ffae2c-ec0a-456c-b781-5428c54009f8" />
|
|
59
|
+
|
|
60
|
+
## Getting started
|
|
61
|
+
|
|
62
|
+
MeltyGUI is not yet published to PyPI. For now, install from a checkout using
|
|
63
|
+
[the setup guide](docs/DEVELOPMENT.md#setup).
|
|
64
|
+
|
|
65
|
+
Linux x86-64 uses Python 3.11, 3.12 or 3.13 and OpenGL 4.3. The UI and editor
|
|
66
|
+
also run on Apple Silicon macOS with Python 3.12, OpenGL 4.1 and Retina
|
|
67
|
+
rendering. CUDA tensor rendering requires PyTorch, an
|
|
68
|
+
NVIDIA GPU, a CUDA toolkit, and MeltyGUI's GL-enabled CUDA binding. The native
|
|
69
|
+
bindings install as prebuilt wheels on those targets; elsewhere installers
|
|
70
|
+
compile them, see [when no wheel matches](docs/SUPPORT_WHEELS.md#when-no-wheel-matches).
|
|
71
|
+
CUDA rendering is unavailable on macOS.
|
|
72
|
+
|
|
73
|
+
## Public render functions
|
|
74
|
+
|
|
75
|
+
Every module-level function decorated with `@render_func` in the library is
|
|
76
|
+
automatically available as `meltygui.<function_name>`, including
|
|
77
|
+
`meltygui.draw_bool(True)`. No export list needs updating when adding a renderer.
|
|
78
|
+
Discovery reads source on the first render-function lookup or `dir(meltygui)`;
|
|
79
|
+
individual view modules still load only when accessed. Newly added functions
|
|
80
|
+
are discovered on the next interpreter run. `dir(meltygui)` and `__all__` include
|
|
81
|
+
the discovered names; static IDE completion may not enumerate these dynamic exports.
|
|
82
|
+
|
|
83
|
+
Render function names must be unique across library modules. Duplicate names
|
|
84
|
+
raise an error identifying both modules. Nested functions, class methods and
|
|
85
|
+
bundled examples are not package-level library exports.
|
|
86
|
+
|
|
87
|
+
## Use ImGui directly
|
|
88
|
+
|
|
89
|
+
The bundled ImGui bindings are public as `meltygui.imgui` (also available with
|
|
90
|
+
`from meltygui import imgui`). They load on first access and share the same
|
|
91
|
+
ImGui context as MeltyGUI. Call drawing functions inside a window callback:
|
|
92
|
+
|
|
93
|
+
```python
|
|
94
|
+
import meltygui
|
|
95
|
+
|
|
96
|
+
@meltygui.glfw_window
|
|
97
|
+
def some_window():
|
|
98
|
+
meltygui.imgui.text("Hello")
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
## Visualize a tensor
|
|
102
|
+
|
|
103
|
+
Create a small volume on the GPU and tag `draw_voxels` as an OS window with
|
|
104
|
+
`glfw_window`:
|
|
105
|
+
|
|
106
|
+
```python
|
|
107
|
+
import torch
|
|
108
|
+
import meltygui
|
|
109
|
+
|
|
110
|
+
axis = torch.linspace(-1.5, 1.5, 40, device="cuda:0")
|
|
111
|
+
x, y, z = torch.meshgrid(axis, axis, axis, indexing="ij")
|
|
112
|
+
volume = torch.exp(-4 * ((torch.sqrt(x * x + y * y) - 0.85) ** 2 + z * z))
|
|
113
|
+
|
|
114
|
+
meltygui.glfw_window(
|
|
115
|
+
meltygui.draw_voxels, name="Torus", value=volume, width=850, height=700
|
|
116
|
+
)
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
Save this as `tensor_demo.py` and run it with the Python from your configured
|
|
120
|
+
environment:
|
|
121
|
+
|
|
122
|
+
```sh
|
|
123
|
+
.venv/bin/python tensor_demo.py
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
`glfw_window` turns a view into a native window: `name` is the window title,
|
|
127
|
+
`width` / `height` its content size, `value` the view's input, and every other
|
|
128
|
+
keyword argument goes to the view. The window loop starts automatically after
|
|
129
|
+
the module finishes defining its windows. The CUDA renderer reads the volume on
|
|
130
|
+
its own GPU and transfers the rendered 2D image for display.
|
|
131
|
+
|
|
132
|
+
To compose several views in one window, decorate your own function instead. It
|
|
133
|
+
runs each frame, so create the tensor outside it to avoid reallocating the
|
|
134
|
+
volume on every frame:
|
|
135
|
+
|
|
136
|
+
```python
|
|
137
|
+
@meltygui.glfw_window(name="CUDA tensor", width=850, height=700)
|
|
138
|
+
def draw_frame():
|
|
139
|
+
# Interactive widget, rendered in a loop. This function will be called wheneven
|
|
140
|
+
# the rendered image is invalidated
|
|
141
|
+
meltygui.draw_voxels(volume, name="Torus", width=800, height=630)
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
`draw_voxels` chooses CUDA for CUDA tensors and OpenGL for CPU tensors, NumPy
|
|
145
|
+
arrays and GL textures. Select a renderer explicitly with the framework's
|
|
146
|
+
`view_func` override (or call either renderer directly):
|
|
147
|
+
|
|
148
|
+
```python
|
|
149
|
+
meltygui.draw_voxels(volume, view_func=meltygui.draw_voxels_opengl)
|
|
150
|
+
meltygui.draw_voxels(volume, view_func=meltygui.draw_voxels_cuda)
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
`draw_voxels_opengl` accepts tensors directly, including CUDA tensors; it slices
|
|
154
|
+
and uploads the displayed volume to a GL texture. `draw_voxels_cuda` requires a
|
|
155
|
+
CUDA tensor and reads it in place. Both expose the same camera, mapping and
|
|
156
|
+
shading controls. Backend selection no longer uses the obsolete `cuda_march`
|
|
157
|
+
parameter.
|
|
158
|
+
|
|
159
|
+
See [the tensor and live-code example](examples/tensor_live.py) for a tensor
|
|
160
|
+
viewer alongside an editable function view.
|
|
161
|
+
|
|
162
|
+
## Build an app
|
|
163
|
+
|
|
164
|
+
Use the bundled UI framework to add controls, editors, and additional windows.
|
|
165
|
+
[Building an app](docs/APPS.md) covers persistent view state, render functions,
|
|
166
|
+
and window lifecycle.
|
|
167
|
+
|
|
168
|
+
For framework design, feature ownership and render-function patterns, see
|
|
169
|
+
[Contributing](CONTRIBUTING.md). [Development](docs/DEVELOPMENT.md) covers setup,
|
|
170
|
+
checks and packaging; [Architecture gaps](docs/ARCHITECTURE_DEBT.md) tracks the
|
|
171
|
+
remaining migration work.
|
|
172
|
+
|
|
173
|
+
## License
|
|
174
|
+
|
|
175
|
+
MeltyGUI is licensed under [Apache 2.0](LICENSE). Bundled third-party code and
|
|
176
|
+
assets retain their own licenses. The separate commercial IDE is not part of
|
|
177
|
+
this distribution.
|
meltygui-0.1.8/README.md
ADDED
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
# MeltyGUI
|
|
2
|
+
|
|
3
|
+
Low latency tensor visualization for PyTorch.
|
|
4
|
+
|
|
5
|
+
MeltyGUI is an open source data visualization toolkit for PyTorch, designed to render massive tensors in-place on the GPU at an interactive framerate. The purpose of this project is to make PyTorch code easier to understand and faster to debug. Along with its core tensor rendering components, MeltyGUI is bundled with a Blender inspired UI framework designed to make interacting with high dimensional tensors feel fast and intuitive.
|
|
6
|
+
|
|
7
|
+
MeltyGUI is capable of rendering tensors exceeding 64GB in size. The primary challenge with visualizing data this large is moving it around. MeltyGUI skips the data movement entirely, and ray-marches tensors directly from CUDA memory.
|
|
8
|
+
|
|
9
|
+
<img width="2410" height="2018" alt="Image" src="https://github.com/user-attachments/assets/82ffae2c-ec0a-456c-b781-5428c54009f8" />
|
|
10
|
+
|
|
11
|
+
## Getting started
|
|
12
|
+
|
|
13
|
+
MeltyGUI is not yet published to PyPI. For now, install from a checkout using
|
|
14
|
+
[the setup guide](docs/DEVELOPMENT.md#setup).
|
|
15
|
+
|
|
16
|
+
Linux x86-64 uses Python 3.11, 3.12 or 3.13 and OpenGL 4.3. The UI and editor
|
|
17
|
+
also run on Apple Silicon macOS with Python 3.12, OpenGL 4.1 and Retina
|
|
18
|
+
rendering. CUDA tensor rendering requires PyTorch, an
|
|
19
|
+
NVIDIA GPU, a CUDA toolkit, and MeltyGUI's GL-enabled CUDA binding. The native
|
|
20
|
+
bindings install as prebuilt wheels on those targets; elsewhere installers
|
|
21
|
+
compile them, see [when no wheel matches](docs/SUPPORT_WHEELS.md#when-no-wheel-matches).
|
|
22
|
+
CUDA rendering is unavailable on macOS.
|
|
23
|
+
|
|
24
|
+
## Public render functions
|
|
25
|
+
|
|
26
|
+
Every module-level function decorated with `@render_func` in the library is
|
|
27
|
+
automatically available as `meltygui.<function_name>`, including
|
|
28
|
+
`meltygui.draw_bool(True)`. No export list needs updating when adding a renderer.
|
|
29
|
+
Discovery reads source on the first render-function lookup or `dir(meltygui)`;
|
|
30
|
+
individual view modules still load only when accessed. Newly added functions
|
|
31
|
+
are discovered on the next interpreter run. `dir(meltygui)` and `__all__` include
|
|
32
|
+
the discovered names; static IDE completion may not enumerate these dynamic exports.
|
|
33
|
+
|
|
34
|
+
Render function names must be unique across library modules. Duplicate names
|
|
35
|
+
raise an error identifying both modules. Nested functions, class methods and
|
|
36
|
+
bundled examples are not package-level library exports.
|
|
37
|
+
|
|
38
|
+
## Use ImGui directly
|
|
39
|
+
|
|
40
|
+
The bundled ImGui bindings are public as `meltygui.imgui` (also available with
|
|
41
|
+
`from meltygui import imgui`). They load on first access and share the same
|
|
42
|
+
ImGui context as MeltyGUI. Call drawing functions inside a window callback:
|
|
43
|
+
|
|
44
|
+
```python
|
|
45
|
+
import meltygui
|
|
46
|
+
|
|
47
|
+
@meltygui.glfw_window
|
|
48
|
+
def some_window():
|
|
49
|
+
meltygui.imgui.text("Hello")
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
## Visualize a tensor
|
|
53
|
+
|
|
54
|
+
Create a small volume on the GPU and tag `draw_voxels` as an OS window with
|
|
55
|
+
`glfw_window`:
|
|
56
|
+
|
|
57
|
+
```python
|
|
58
|
+
import torch
|
|
59
|
+
import meltygui
|
|
60
|
+
|
|
61
|
+
axis = torch.linspace(-1.5, 1.5, 40, device="cuda:0")
|
|
62
|
+
x, y, z = torch.meshgrid(axis, axis, axis, indexing="ij")
|
|
63
|
+
volume = torch.exp(-4 * ((torch.sqrt(x * x + y * y) - 0.85) ** 2 + z * z))
|
|
64
|
+
|
|
65
|
+
meltygui.glfw_window(
|
|
66
|
+
meltygui.draw_voxels, name="Torus", value=volume, width=850, height=700
|
|
67
|
+
)
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
Save this as `tensor_demo.py` and run it with the Python from your configured
|
|
71
|
+
environment:
|
|
72
|
+
|
|
73
|
+
```sh
|
|
74
|
+
.venv/bin/python tensor_demo.py
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
`glfw_window` turns a view into a native window: `name` is the window title,
|
|
78
|
+
`width` / `height` its content size, `value` the view's input, and every other
|
|
79
|
+
keyword argument goes to the view. The window loop starts automatically after
|
|
80
|
+
the module finishes defining its windows. The CUDA renderer reads the volume on
|
|
81
|
+
its own GPU and transfers the rendered 2D image for display.
|
|
82
|
+
|
|
83
|
+
To compose several views in one window, decorate your own function instead. It
|
|
84
|
+
runs each frame, so create the tensor outside it to avoid reallocating the
|
|
85
|
+
volume on every frame:
|
|
86
|
+
|
|
87
|
+
```python
|
|
88
|
+
@meltygui.glfw_window(name="CUDA tensor", width=850, height=700)
|
|
89
|
+
def draw_frame():
|
|
90
|
+
# Interactive widget, rendered in a loop. This function will be called wheneven
|
|
91
|
+
# the rendered image is invalidated
|
|
92
|
+
meltygui.draw_voxels(volume, name="Torus", width=800, height=630)
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
`draw_voxels` chooses CUDA for CUDA tensors and OpenGL for CPU tensors, NumPy
|
|
96
|
+
arrays and GL textures. Select a renderer explicitly with the framework's
|
|
97
|
+
`view_func` override (or call either renderer directly):
|
|
98
|
+
|
|
99
|
+
```python
|
|
100
|
+
meltygui.draw_voxels(volume, view_func=meltygui.draw_voxels_opengl)
|
|
101
|
+
meltygui.draw_voxels(volume, view_func=meltygui.draw_voxels_cuda)
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
`draw_voxels_opengl` accepts tensors directly, including CUDA tensors; it slices
|
|
105
|
+
and uploads the displayed volume to a GL texture. `draw_voxels_cuda` requires a
|
|
106
|
+
CUDA tensor and reads it in place. Both expose the same camera, mapping and
|
|
107
|
+
shading controls. Backend selection no longer uses the obsolete `cuda_march`
|
|
108
|
+
parameter.
|
|
109
|
+
|
|
110
|
+
See [the tensor and live-code example](examples/tensor_live.py) for a tensor
|
|
111
|
+
viewer alongside an editable function view.
|
|
112
|
+
|
|
113
|
+
## Build an app
|
|
114
|
+
|
|
115
|
+
Use the bundled UI framework to add controls, editors, and additional windows.
|
|
116
|
+
[Building an app](docs/APPS.md) covers persistent view state, render functions,
|
|
117
|
+
and window lifecycle.
|
|
118
|
+
|
|
119
|
+
For framework design, feature ownership and render-function patterns, see
|
|
120
|
+
[Contributing](CONTRIBUTING.md). [Development](docs/DEVELOPMENT.md) covers setup,
|
|
121
|
+
checks and packaging; [Architecture gaps](docs/ARCHITECTURE_DEBT.md) tracks the
|
|
122
|
+
remaining migration work.
|
|
123
|
+
|
|
124
|
+
## License
|
|
125
|
+
|
|
126
|
+
MeltyGUI is licensed under [Apache 2.0](LICENSE). Bundled third-party code and
|
|
127
|
+
assets retain their own licenses. The separate commercial IDE is not part of
|
|
128
|
+
this distribution.
|