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.
Files changed (869) hide show
  1. meltygui-0.1.8/.gitignore +12 -0
  2. meltygui-0.1.8/PKG-INFO +177 -0
  3. meltygui-0.1.8/README.md +128 -0
  4. meltygui-0.1.8/docs/APPS.md +369 -0
  5. meltygui-0.1.8/docs/DEVELOPMENT.md +169 -0
  6. meltygui-0.1.8/docs/PUBLISHING.md +91 -0
  7. meltygui-0.1.8/examples/gui_collision_lab.py +65 -0
  8. meltygui-0.1.8/examples/gui_imgui_widgets.py +30 -0
  9. meltygui-0.1.8/examples/portable_counter/main.py +23 -0
  10. meltygui-0.1.8/examples/portable_counter/pyproject.toml +5 -0
  11. meltygui-0.1.8/examples/rust_example.py +31 -0
  12. meltygui-0.1.8/examples/rust_tiles_gui.py +50 -0
  13. meltygui-0.1.8/examples/tile_manager.py +35 -0
  14. meltygui-0.1.8/meltygui/__init__.py +101 -0
  15. meltygui-0.1.8/meltygui/accounts/internet_accounts.py +1365 -0
  16. meltygui-0.1.8/meltygui/chat/chat_interface.py +759 -0
  17. meltygui-0.1.8/meltygui/chat/images.py +227 -0
  18. meltygui-0.1.8/meltygui/chat/main.py +208 -0
  19. meltygui-0.1.8/meltygui/code/chain_converters.py +2111 -0
  20. meltygui-0.1.8/meltygui/code/codec_registry.py +42 -0
  21. meltygui-0.1.8/meltygui/code/embedded_jedi.py +47 -0
  22. meltygui-0.1.8/meltygui/code/fileref.py +718 -0
  23. meltygui-0.1.8/meltygui/code/libcst_conversion.py +9759 -0
  24. meltygui-0.1.8/meltygui/code/new_codecs.py +1398 -0
  25. meltygui-0.1.8/meltygui/code/new_converters.py +3046 -0
  26. meltygui-0.1.8/meltygui/code/project_code.py +309 -0
  27. meltygui-0.1.8/meltygui/code/source_context.py +225 -0
  28. meltygui-0.1.8/meltygui/code/symbol_roster.py +1948 -0
  29. meltygui-0.1.8/meltygui/completion/providers/anthropic_oauth.py +446 -0
  30. meltygui-0.1.8/meltygui/completion/providers/anthropic_requests.py +69 -0
  31. meltygui-0.1.8/meltygui/completion/providers/claude_usage.py +499 -0
  32. meltygui-0.1.8/meltygui/completion/providers/codex_accounts.py +180 -0
  33. meltygui-0.1.8/meltygui/core/automation/orchestration_core.py +2638 -0
  34. meltygui-0.1.8/meltygui/core/automation/query_core.py +124 -0
  35. meltygui-0.1.8/meltygui/core/cache/deferred_invalidation.py +88 -0
  36. meltygui-0.1.8/meltygui/core/cache/tile_cache.py +6224 -0
  37. meltygui-0.1.8/meltygui/core/conversion/dict_conversion_util.py +178 -0
  38. meltygui-0.1.8/meltygui/core/conversion/render_host.py +1082 -0
  39. meltygui-0.1.8/meltygui/core/core_render.py +6334 -0
  40. meltygui-0.1.8/meltygui/core/diagnostics/edge_motion_guard.py +627 -0
  41. meltygui-0.1.8/meltygui/core/diagnostics/fps_counter.py +65 -0
  42. meltygui-0.1.8/meltygui/core/diagnostics/geometry_jitter.py +211 -0
  43. meltygui-0.1.8/meltygui/core/diagnostics/resize_trace.py +68 -0
  44. meltygui-0.1.8/meltygui/core/files/ios_file_observer.py +147 -0
  45. meltygui-0.1.8/meltygui/core/files/workspace_paths.py +59 -0
  46. meltygui-0.1.8/meltygui/core/graphics/desktop_gl.py +14 -0
  47. meltygui-0.1.8/meltygui/core/graphics/gl_state.py +660 -0
  48. meltygui-0.1.8/meltygui/core/graphics/metal_renderer.py +273 -0
  49. meltygui-0.1.8/meltygui/core/graphics/metal_tiles.py +376 -0
  50. meltygui-0.1.8/meltygui/core/graphics/overlay_renderer.py +1038 -0
  51. meltygui-0.1.8/meltygui/core/graphics/scene_target.py +180 -0
  52. meltygui-0.1.8/meltygui/core/graphics/shader_func.py +487 -0
  53. meltygui-0.1.8/meltygui/core/graphics/text_texture.py +329 -0
  54. meltygui-0.1.8/meltygui/core/input/input_handler.py +1229 -0
  55. meltygui-0.1.8/meltygui/core/input/ios_input.py +476 -0
  56. meltygui-0.1.8/meltygui/core/input/pynput_backend.py +1060 -0
  57. meltygui-0.1.8/meltygui/core/input/touch_input.py +232 -0
  58. meltygui-0.1.8/meltygui/core/layout/column_core.py +2271 -0
  59. meltygui-0.1.8/meltygui/core/layout/tile_links.py +178 -0
  60. meltygui-0.1.8/meltygui/core/layout/tile_manager_core.py +830 -0
  61. meltygui-0.1.8/meltygui/core/layout/tile_resize.py +55 -0
  62. meltygui-0.1.8/meltygui/core/melty.py +7208 -0
  63. meltygui-0.1.8/meltygui/core/module_map.json +916 -0
  64. meltygui-0.1.8/meltygui/core/rendering/gui_imgui_import.py +40 -0
  65. meltygui-0.1.8/meltygui/core/rendering/gui_imgui_input.py +188 -0
  66. meltygui-0.1.8/meltygui/core/rendering/gui_layout_prototype.py +666 -0
  67. meltygui-0.1.8/meltygui/core/rendering/gui_native_collision.py +156 -0
  68. meltygui-0.1.8/meltygui/core/rendering/gui_prototype.py +110 -0
  69. meltygui-0.1.8/meltygui/core/rendering/gui_window_prototype.py +96 -0
  70. meltygui-0.1.8/meltygui/core/rendering/mode.py +864 -0
  71. meltygui-0.1.8/meltygui/core/rendering/overlay.py +463 -0
  72. meltygui-0.1.8/meltygui/core/rendering/render_funcs.py +280 -0
  73. meltygui-0.1.8/meltygui/core/rendering/retained_gui_prototype.py +593 -0
  74. meltygui-0.1.8/meltygui/core/rendering/view_identity.py +213 -0
  75. meltygui-0.1.8/meltygui/core/runtime/app.py +1081 -0
  76. meltygui-0.1.8/meltygui/core/runtime/app_session.py +140 -0
  77. meltygui-0.1.8/meltygui/core/runtime/app_settings.py +183 -0
  78. meltygui-0.1.8/meltygui/core/runtime/gc_manager.py +1163 -0
  79. meltygui-0.1.8/meltygui/core/runtime/launch_override.py +226 -0
  80. meltygui-0.1.8/meltygui/core/runtime/native_app.py +303 -0
  81. meltygui-0.1.8/meltygui/core/runtime/paths.py +89 -0
  82. meltygui-0.1.8/meltygui/core/runtime/public_exports.py +79 -0
  83. meltygui-0.1.8/meltygui/core/runtime/toggles.py +3192 -0
  84. meltygui-0.1.8/meltygui/core/styling/fonts.py +656 -0
  85. meltygui-0.1.8/meltygui/core/styling/style_core.py +526 -0
  86. meltygui-0.1.8/meltygui/core/windowing/backends/imgui_renderer.py +143 -0
  87. meltygui-0.1.8/meltygui/core/windowing/backends/native_ios.py +197 -0
  88. meltygui-0.1.8/meltygui/core/windowing/geometry_feed.py +956 -0
  89. meltygui-0.1.8/meltygui/core/windowing/glfw_utils.py +1448 -0
  90. meltygui-0.1.8/meltygui/core/windowing/melty_windows.py +358 -0
  91. meltygui-0.1.8/meltygui/core/windowing/os_frame.py +1650 -0
  92. meltygui-0.1.8/meltygui/core/windowing/surface.py +625 -0
  93. meltygui-0.1.8/meltygui/core/windowing/surface_frame.py +181 -0
  94. meltygui-0.1.8/meltygui/core/windowing/titlebar.py +1808 -0
  95. meltygui-0.1.8/meltygui/core/windowing/titlebar_buttons.py +456 -0
  96. meltygui-0.1.8/meltygui/core/windowing/window_api.py +97 -0
  97. meltygui-0.1.8/meltygui/editor/pending_save.py +1467 -0
  98. meltygui-0.1.8/meltygui/editor/text_editor.py +9127 -0
  99. meltygui-0.1.8/meltygui/examples/retained_gui_demo.py +164 -0
  100. meltygui-0.1.8/meltygui/examples/retained_layout_demo.py +146 -0
  101. meltygui-0.1.8/meltygui/examples/rust_gui_demo.py +308 -0
  102. meltygui-0.1.8/meltygui/files/fast_file_explorer.py +450 -0
  103. meltygui-0.1.8/meltygui/image_load.py +313 -0
  104. meltygui-0.1.8/meltygui/model/chat_folder_model.py +171 -0
  105. meltygui-0.1.8/meltygui/model/chat_model.py +178 -0
  106. meltygui-0.1.8/meltygui/model/file_location_model.py +265 -0
  107. meltygui-0.1.8/meltygui/model/file_model.py +327 -0
  108. meltygui-0.1.8/meltygui/model/folder_icon_model.py +475 -0
  109. meltygui-0.1.8/meltygui/model/import_graph_model.py +472 -0
  110. meltygui-0.1.8/meltygui/model/source_snapshot_model.py +296 -0
  111. meltygui-0.1.8/meltygui/model/ssh_auth_model.py +148 -0
  112. meltygui-0.1.8/meltygui/model/ssh_file_model.py +459 -0
  113. meltygui-0.1.8/meltygui/model/texture_model.py +306 -0
  114. meltygui-0.1.8/meltygui/models/file_meta.py +791 -0
  115. meltygui-0.1.8/meltygui/platforms/__init__.py +1 -0
  116. meltygui-0.1.8/meltygui/platforms/ios/.gitignore +2 -0
  117. meltygui-0.1.8/meltygui/platforms/ios/Host/App.mm +316 -0
  118. meltygui-0.1.8/meltygui/platforms/ios/Host/Info.plist +34 -0
  119. meltygui-0.1.8/meltygui/platforms/ios/Host/InputQueue.hpp +66 -0
  120. meltygui-0.1.8/meltygui/platforms/ios/Host/LocalNetworkAccess.h +96 -0
  121. meltygui-0.1.8/meltygui/platforms/ios/Host/MeltyHost.h +25 -0
  122. meltygui-0.1.8/meltygui/platforms/ios/Host/MeltyHost.mm +808 -0
  123. meltygui-0.1.8/meltygui/platforms/ios/Host/MeltyMetalRenderer.mm +426 -0
  124. meltygui-0.1.8/meltygui/platforms/ios/Host/MeltyRenderer.h +32 -0
  125. meltygui-0.1.8/meltygui/platforms/ios/Host/SSHAuthentication.h +183 -0
  126. meltygui-0.1.8/meltygui/platforms/ios/Python/melty_ios_bootstrap.py +255 -0
  127. meltygui-0.1.8/meltygui/platforms/ios/README.md +440 -0
  128. meltygui-0.1.8/meltygui/platforms/ios/Renderer/MetalShaders.metal +102 -0
  129. meltygui-0.1.8/meltygui/platforms/ios/__init__.py +9 -0
  130. meltygui-0.1.8/meltygui/platforms/ios/__main__.py +21 -0
  131. meltygui-0.1.8/meltygui/platforms/ios/app_icon.py +441 -0
  132. meltygui-0.1.8/meltygui/platforms/ios/application.py +20 -0
  133. meltygui-0.1.8/meltygui/platforms/ios/build_crypto.py +269 -0
  134. meltygui-0.1.8/meltygui/platforms/ios/build_imgui.py +236 -0
  135. meltygui-0.1.8/meltygui/platforms/ios/build_platform_deps.py +278 -0
  136. meltygui-0.1.8/meltygui/platforms/ios/build_rust_deps.py +257 -0
  137. meltygui-0.1.8/meltygui/platforms/ios/compile_shaders.py +192 -0
  138. meltygui-0.1.8/meltygui/platforms/ios/dependencies.json +308 -0
  139. meltygui-0.1.8/meltygui/platforms/ios/devices.py +329 -0
  140. meltygui-0.1.8/meltygui/platforms/ios/download_numeric_wheels.py +223 -0
  141. meltygui-0.1.8/meltygui/platforms/ios/generate.py +216 -0
  142. meltygui-0.1.8/meltygui/platforms/ios/prepare_bundle.py +237 -0
  143. meltygui-0.1.8/meltygui/platforms/ios/provision.py +851 -0
  144. meltygui-0.1.8/meltygui/platforms/ios/rec2020-pq.icc +0 -0
  145. meltygui-0.1.8/meltygui/platforms/ios/runtime.py +77 -0
  146. meltygui-0.1.8/meltygui/platforms/ios/stage_dependencies.py +409 -0
  147. meltygui-0.1.8/meltygui/state/new_core_model.py +2525 -0
  148. meltygui-0.1.8/meltygui/text_index.py +818 -0
  149. meltygui-0.1.8/meltygui/view/account_view.py +524 -0
  150. meltygui-0.1.8/meltygui/view/chat_view.py +1595 -0
  151. meltygui-0.1.8/meltygui/view/collection_view.py +1515 -0
  152. meltygui-0.1.8/meltygui/view/color_view.py +982 -0
  153. meltygui-0.1.8/meltygui/view/control_view.py +608 -0
  154. meltygui-0.1.8/meltygui/view/dropdown_view.py +1414 -0
  155. meltygui-0.1.8/meltygui/view/file_view.py +1840 -0
  156. meltygui-0.1.8/meltygui/view/graph_view.py +885 -0
  157. meltygui-0.1.8/meltygui/view/header_view.py +877 -0
  158. meltygui-0.1.8/meltygui/view/menu_view.py +230 -0
  159. meltygui-0.1.8/meltygui/view/orchestration_view.py +658 -0
  160. meltygui-0.1.8/meltygui/view/path_icon_view.py +107 -0
  161. meltygui-0.1.8/meltygui/view/text_view.py +8330 -0
  162. meltygui-0.1.8/meltygui/view/texture_view.py +258 -0
  163. meltygui-0.1.8/meltygui/view/tile_view.py +338 -0
  164. meltygui-0.1.8/meltygui/view/trace_view.py +971 -0
  165. meltygui-0.1.8/meltygui/view/voxel_view.py +1864 -0
  166. meltygui-0.1.8/pyproject.toml +62 -0
  167. meltygui-0.1.8/tests/benchmark_gui_collisions.py +57 -0
  168. meltygui-0.1.8/tests/benchmark_gui_full_app.py +173 -0
  169. meltygui-0.1.8/tests/benchmark_gui_prototype.py +86 -0
  170. meltygui-0.1.8/tests/benchmark_gui_retained.py +71 -0
  171. meltygui-0.1.8/tests/ios/build_metal_test.py +26 -0
  172. meltygui-0.1.8/tests/ios/check_keyboard_animation.py +79 -0
  173. meltygui-0.1.8/tests/ios/conftest.py +22 -0
  174. meltygui-0.1.8/tests/ios/device_ui_check.py +290 -0
  175. meltygui-0.1.8/tests/ios/input_queue.cpp +89 -0
  176. meltygui-0.1.8/tests/ios/keyboard_animation.mm +115 -0
  177. meltygui-0.1.8/tests/ios/presentation.mm +70 -0
  178. meltygui-0.1.8/tests/ios/safe_area_layout.mm +102 -0
  179. meltygui-0.1.8/tests/ios/test_app_icon.py +402 -0
  180. meltygui-0.1.8/tests/ios/test_application.py +91 -0
  181. meltygui-0.1.8/tests/ios/test_dependencies.py +241 -0
  182. meltygui-0.1.8/tests/ios/test_devices.py +263 -0
  183. meltygui-0.1.8/tests/ios/test_dropdown_metal.py +112 -0
  184. meltygui-0.1.8/tests/ios/test_host.py +656 -0
  185. meltygui-0.1.8/tests/ios/test_keyboard_metal.py +104 -0
  186. meltygui-0.1.8/tests/ios/test_metal.py +377 -0
  187. meltygui-0.1.8/tests/ios/test_picker_metal.py +134 -0
  188. meltygui-0.1.8/tests/ios/test_presentation.py +24 -0
  189. meltygui-0.1.8/tests/ios/test_provision.py +629 -0
  190. meltygui-0.1.8/tests/ios/test_render_errors_metal.py +98 -0
  191. meltygui-0.1.8/tests/ios/test_text_caret_metal.py +111 -0
  192. meltygui-0.1.8/tests/native_gui_support.py +11 -0
  193. meltygui-0.1.8/tests/test_app_checkpoint.py +101 -0
  194. meltygui-0.1.8/tests/test_app_settings.py +208 -0
  195. meltygui-0.1.8/tests/test_background_frame_parking.py +53 -0
  196. meltygui-0.1.8/tests/test_bool_geometry.py +57 -0
  197. meltygui-0.1.8/tests/test_cached_input_delivery.py +151 -0
  198. meltygui-0.1.8/tests/test_chat_main.py +81 -0
  199. meltygui-0.1.8/tests/test_chat_turn_status.py +76 -0
  200. meltygui-0.1.8/tests/test_cocoa_drag_motion.py +170 -0
  201. meltygui-0.1.8/tests/test_color_picker_state.py +111 -0
  202. meltygui-0.1.8/tests/test_console_colors.py +73 -0
  203. meltygui-0.1.8/tests/test_control_paint.py +73 -0
  204. meltygui-0.1.8/tests/test_cooperative_parse_yield.py +69 -0
  205. meltygui-0.1.8/tests/test_core_syntax.py +994 -0
  206. meltygui-0.1.8/tests/test_deferred_invalidation.py +196 -0
  207. meltygui-0.1.8/tests/test_desktop_gl.py +83 -0
  208. meltygui-0.1.8/tests/test_draw_state_parent_geometry.py +177 -0
  209. meltygui-0.1.8/tests/test_edge_motion_guard.py +527 -0
  210. meltygui-0.1.8/tests/test_embedded_frame.py +68 -0
  211. meltygui-0.1.8/tests/test_embedded_imports.py +70 -0
  212. meltygui-0.1.8/tests/test_fast_draw_dropdown.py +149 -0
  213. meltygui-0.1.8/tests/test_fast_menu_bar.py +38 -0
  214. meltygui-0.1.8/tests/test_file_meta_ios_notifications.py +44 -0
  215. meltygui-0.1.8/tests/test_file_meta_read_failures.py +62 -0
  216. meltygui-0.1.8/tests/test_file_metadata_model.py +244 -0
  217. meltygui-0.1.8/tests/test_file_rows_overlay.py +108 -0
  218. meltygui-0.1.8/tests/test_file_type_codecs.py +345 -0
  219. meltygui-0.1.8/tests/test_folder_icons.py +253 -0
  220. meltygui-0.1.8/tests/test_fps_counter.py +91 -0
  221. meltygui-0.1.8/tests/test_fractional_tiles.py +210 -0
  222. meltygui-0.1.8/tests/test_geometry_jitter.py +244 -0
  223. meltygui-0.1.8/tests/test_gui_collision_layout.py +597 -0
  224. meltygui-0.1.8/tests/test_gui_edges.py +76 -0
  225. meltygui-0.1.8/tests/test_gui_imgui_widgets.py +496 -0
  226. meltygui-0.1.8/tests/test_gui_prototype.py +210 -0
  227. meltygui-0.1.8/tests/test_gui_prototype_rendering.py +119 -0
  228. meltygui-0.1.8/tests/test_gui_public_api.py +139 -0
  229. meltygui-0.1.8/tests/test_gui_table_demo.py +75 -0
  230. meltygui-0.1.8/tests/test_gui_window_prototype.py +122 -0
  231. meltygui-0.1.8/tests/test_hdr_folder_icons.py +87 -0
  232. meltygui-0.1.8/tests/test_ios_capture_on_demand.py +26 -0
  233. meltygui-0.1.8/tests/test_ios_failure_display.py +54 -0
  234. meltygui-0.1.8/tests/test_ios_file_observer.py +170 -0
  235. meltygui-0.1.8/tests/test_ios_header_tint.py +160 -0
  236. meltygui-0.1.8/tests/test_ios_input.py +708 -0
  237. meltygui-0.1.8/tests/test_ios_jedi.py +208 -0
  238. meltygui-0.1.8/tests/test_ios_paths.py +166 -0
  239. meltygui-0.1.8/tests/test_ios_render_wake.py +34 -0
  240. meltygui-0.1.8/tests/test_ios_scroll_clock.py +143 -0
  241. meltygui-0.1.8/tests/test_ios_window_fallback.py +42 -0
  242. meltygui-0.1.8/tests/test_ios_workspace.py +86 -0
  243. meltygui-0.1.8/tests/test_melty_windows.py +184 -0
  244. meltygui-0.1.8/tests/test_metal_shadow_reuse.py +98 -0
  245. meltygui-0.1.8/tests/test_native_app.py +715 -0
  246. meltygui-0.1.8/tests/test_native_background_move.py +129 -0
  247. meltygui-0.1.8/tests/test_native_collision_surface.py +122 -0
  248. meltygui-0.1.8/tests/test_native_graphics_imports.py +30 -0
  249. meltygui-0.1.8/tests/test_native_images.py +107 -0
  250. meltygui-0.1.8/tests/test_native_input_invalidation.py +156 -0
  251. meltygui-0.1.8/tests/test_native_live_resize.py +214 -0
  252. meltygui-0.1.8/tests/test_native_settings_surface.py +133 -0
  253. meltygui-0.1.8/tests/test_native_text.py +20 -0
  254. meltygui-0.1.8/tests/test_nested_class_discovery.py +17 -0
  255. meltygui-0.1.8/tests/test_os_frame.py +1972 -0
  256. meltygui-0.1.8/tests/test_path_icon_view.py +85 -0
  257. meltygui-0.1.8/tests/test_portable_native_app.py +171 -0
  258. meltygui-0.1.8/tests/test_public_boundary.py +86 -0
  259. meltygui-0.1.8/tests/test_public_render_exports.py +75 -0
  260. meltygui-0.1.8/tests/test_release_workflow.py +135 -0
  261. meltygui-0.1.8/tests/test_render_catalog_sources.py +53 -0
  262. meltygui-0.1.8/tests/test_render_func_metadata.py +85 -0
  263. meltygui-0.1.8/tests/test_render_func_pickle.py +16 -0
  264. meltygui-0.1.8/tests/test_render_overlay.py +522 -0
  265. meltygui-0.1.8/tests/test_retained_gui_gpu.py +375 -0
  266. meltygui-0.1.8/tests/test_retained_gui_layout.py +578 -0
  267. meltygui-0.1.8/tests/test_retained_gui_prototype.py +341 -0
  268. meltygui-0.1.8/tests/test_retina_tile_capture.py +93 -0
  269. meltygui-0.1.8/tests/test_search_symbol_tables.py +36 -0
  270. meltygui-0.1.8/tests/test_source_ownership_cache.py +220 -0
  271. meltygui-0.1.8/tests/test_source_text_cache.py +111 -0
  272. meltygui-0.1.8/tests/test_subpixel_rendering.py +116 -0
  273. meltygui-0.1.8/tests/test_surface_frame_drag.py +34 -0
  274. meltygui-0.1.8/tests/test_surface_persistence.py +88 -0
  275. meltygui-0.1.8/tests/test_symbol_roster_async_names.py +230 -0
  276. meltygui-0.1.8/tests/test_symbol_roster_incremental_names.py +159 -0
  277. meltygui-0.1.8/tests/test_symbol_roster_ownership.py +38 -0
  278. meltygui-0.1.8/tests/test_symbol_roster_sweep.py +199 -0
  279. meltygui-0.1.8/tests/test_symbol_roster_watch_filter.py +73 -0
  280. meltygui-0.1.8/tests/test_system_titlebar_buttons.py +117 -0
  281. meltygui-0.1.8/tests/test_text_focus_bounds.py +184 -0
  282. meltygui-0.1.8/tests/test_texture_overlay.py +173 -0
  283. meltygui-0.1.8/tests/test_tile_links.py +724 -0
  284. meltygui-0.1.8/tests/test_tile_manager.py +652 -0
  285. meltygui-0.1.8/tests/test_tile_pixel_phase.py +81 -0
  286. meltygui-0.1.8/tests/test_tile_resize_replay.py +319 -0
  287. meltygui-0.1.8/tests/test_titlebar_hotpath.py +154 -0
  288. meltygui-0.1.8/tests/test_touch_gestures.py +438 -0
  289. meltygui-0.1.8/tests/test_view_identity.py +128 -0
  290. meltygui-0.1.8/tools/release.py +111 -0
  291. meltygui-0.1.3/.gitignore +0 -10
  292. meltygui-0.1.3/PKG-INFO +0 -148
  293. meltygui-0.1.3/README.md +0 -100
  294. meltygui-0.1.3/docs/APPS.md +0 -340
  295. meltygui-0.1.3/docs/DEVELOPMENT.md +0 -164
  296. meltygui-0.1.3/docs/PUBLISHING.md +0 -79
  297. meltygui-0.1.3/examples/tile_manager.py +0 -12
  298. meltygui-0.1.3/meltygui/__init__.py +0 -120
  299. meltygui-0.1.3/meltygui/accounts/internet_accounts.py +0 -1365
  300. meltygui-0.1.3/meltygui/chat/chat_interface.py +0 -759
  301. meltygui-0.1.3/meltygui/chat/images.py +0 -227
  302. meltygui-0.1.3/meltygui/chat/main.py +0 -202
  303. meltygui-0.1.3/meltygui/code/chain_converters.py +0 -2111
  304. meltygui-0.1.3/meltygui/code/codec_registry.py +0 -40
  305. meltygui-0.1.3/meltygui/code/fileref.py +0 -702
  306. meltygui-0.1.3/meltygui/code/libcst_conversion.py +0 -9724
  307. meltygui-0.1.3/meltygui/code/new_codecs.py +0 -1292
  308. meltygui-0.1.3/meltygui/code/new_converters.py +0 -3034
  309. meltygui-0.1.3/meltygui/code/project_code.py +0 -278
  310. meltygui-0.1.3/meltygui/code/source_context.py +0 -63
  311. meltygui-0.1.3/meltygui/code/symbol_roster.py +0 -1588
  312. meltygui-0.1.3/meltygui/completion/providers/anthropic_oauth.py +0 -446
  313. meltygui-0.1.3/meltygui/completion/providers/anthropic_requests.py +0 -69
  314. meltygui-0.1.3/meltygui/completion/providers/claude_usage.py +0 -499
  315. meltygui-0.1.3/meltygui/completion/providers/codex_accounts.py +0 -180
  316. meltygui-0.1.3/meltygui/core/automation/orchestration_core.py +0 -2638
  317. meltygui-0.1.3/meltygui/core/automation/query_core.py +0 -124
  318. meltygui-0.1.3/meltygui/core/cache/tile_cache.py +0 -6095
  319. meltygui-0.1.3/meltygui/core/conversion/dict_conversion_util.py +0 -177
  320. meltygui-0.1.3/meltygui/core/conversion/render_host.py +0 -1083
  321. meltygui-0.1.3/meltygui/core/core_render.py +0 -6363
  322. meltygui-0.1.3/meltygui/core/diagnostics/edge_motion_guard.py +0 -621
  323. meltygui-0.1.3/meltygui/core/diagnostics/fps_counter.py +0 -25
  324. meltygui-0.1.3/meltygui/core/diagnostics/geometry_jitter.py +0 -208
  325. meltygui-0.1.3/meltygui/core/diagnostics/resize_trace.py +0 -64
  326. meltygui-0.1.3/meltygui/core/graphics/gl_state.py +0 -658
  327. meltygui-0.1.3/meltygui/core/graphics/overlay_renderer.py +0 -1012
  328. meltygui-0.1.3/meltygui/core/graphics/scene_target.py +0 -180
  329. meltygui-0.1.3/meltygui/core/graphics/shader_func.py +0 -478
  330. meltygui-0.1.3/meltygui/core/graphics/text_texture.py +0 -329
  331. meltygui-0.1.3/meltygui/core/input/input_handler.py +0 -1149
  332. meltygui-0.1.3/meltygui/core/input/pynput_backend.py +0 -1057
  333. meltygui-0.1.3/meltygui/core/layout/column_core.py +0 -2256
  334. meltygui-0.1.3/meltygui/core/layout/tile_links.py +0 -180
  335. meltygui-0.1.3/meltygui/core/layout/tile_manager_core.py +0 -768
  336. meltygui-0.1.3/meltygui/core/layout/tile_resize.py +0 -54
  337. meltygui-0.1.3/meltygui/core/melty.py +0 -6990
  338. meltygui-0.1.3/meltygui/core/module_map.json +0 -915
  339. meltygui-0.1.3/meltygui/core/rendering/mode.py +0 -864
  340. meltygui-0.1.3/meltygui/core/rendering/overlay.py +0 -353
  341. meltygui-0.1.3/meltygui/core/rendering/render_funcs.py +0 -272
  342. meltygui-0.1.3/meltygui/core/rendering/view_identity.py +0 -199
  343. meltygui-0.1.3/meltygui/core/runtime/app.py +0 -980
  344. meltygui-0.1.3/meltygui/core/runtime/app_session.py +0 -140
  345. meltygui-0.1.3/meltygui/core/runtime/app_settings.py +0 -183
  346. meltygui-0.1.3/meltygui/core/runtime/gc_manager.py +0 -1163
  347. meltygui-0.1.3/meltygui/core/runtime/launch_override.py +0 -223
  348. meltygui-0.1.3/meltygui/core/runtime/paths.py +0 -27
  349. meltygui-0.1.3/meltygui/core/runtime/toggles.py +0 -3177
  350. meltygui-0.1.3/meltygui/core/styling/fonts.py +0 -656
  351. meltygui-0.1.3/meltygui/core/styling/style_core.py +0 -522
  352. meltygui-0.1.3/meltygui/core/windowing/backends/imgui_renderer.py +0 -138
  353. meltygui-0.1.3/meltygui/core/windowing/geometry_feed.py +0 -956
  354. meltygui-0.1.3/meltygui/core/windowing/glfw_utils.py +0 -1442
  355. meltygui-0.1.3/meltygui/core/windowing/os_frame.py +0 -1608
  356. meltygui-0.1.3/meltygui/core/windowing/surface.py +0 -712
  357. meltygui-0.1.3/meltygui/core/windowing/titlebar.py +0 -1689
  358. meltygui-0.1.3/meltygui/core/windowing/titlebar_buttons.py +0 -281
  359. meltygui-0.1.3/meltygui/core/windowing/window_api.py +0 -62
  360. meltygui-0.1.3/meltygui/editor/pending_save.py +0 -1382
  361. meltygui-0.1.3/meltygui/editor/text_editor.py +0 -9083
  362. meltygui-0.1.3/meltygui/files/fast_file_explorer.py +0 -437
  363. meltygui-0.1.3/meltygui/image_load.py +0 -308
  364. meltygui-0.1.3/meltygui/model/chat_folder_model.py +0 -163
  365. meltygui-0.1.3/meltygui/model/chat_model.py +0 -178
  366. meltygui-0.1.3/meltygui/model/file_location_model.py +0 -118
  367. meltygui-0.1.3/meltygui/model/file_model.py +0 -289
  368. meltygui-0.1.3/meltygui/model/folder_icon_model.py +0 -348
  369. meltygui-0.1.3/meltygui/model/import_graph_model.py +0 -468
  370. meltygui-0.1.3/meltygui/model/source_snapshot_model.py +0 -288
  371. meltygui-0.1.3/meltygui/model/texture_model.py +0 -250
  372. meltygui-0.1.3/meltygui/models/file_meta.py +0 -700
  373. meltygui-0.1.3/meltygui/state/new_core_model.py +0 -2440
  374. meltygui-0.1.3/meltygui/text_index.py +0 -816
  375. meltygui-0.1.3/meltygui/view/account_view.py +0 -524
  376. meltygui-0.1.3/meltygui/view/chat_view.py +0 -1595
  377. meltygui-0.1.3/meltygui/view/collection_view.py +0 -1512
  378. meltygui-0.1.3/meltygui/view/color_view.py +0 -1039
  379. meltygui-0.1.3/meltygui/view/control_view.py +0 -607
  380. meltygui-0.1.3/meltygui/view/dropdown_view.py +0 -1363
  381. meltygui-0.1.3/meltygui/view/file_view.py +0 -1831
  382. meltygui-0.1.3/meltygui/view/graph_view.py +0 -885
  383. meltygui-0.1.3/meltygui/view/header_view.py +0 -862
  384. meltygui-0.1.3/meltygui/view/menu_view.py +0 -228
  385. meltygui-0.1.3/meltygui/view/orchestration_view.py +0 -658
  386. meltygui-0.1.3/meltygui/view/path_icon_view.py +0 -105
  387. meltygui-0.1.3/meltygui/view/text_view.py +0 -8099
  388. meltygui-0.1.3/meltygui/view/texture_view.py +0 -244
  389. meltygui-0.1.3/meltygui/view/tile_view.py +0 -316
  390. meltygui-0.1.3/meltygui/view/trace_view.py +0 -971
  391. meltygui-0.1.3/meltygui/view/voxel_view.py +0 -1864
  392. meltygui-0.1.3/pyproject.toml +0 -39
  393. meltygui-0.1.3/tests/test_app_settings.py +0 -161
  394. meltygui-0.1.3/tests/test_cached_input_delivery.py +0 -103
  395. meltygui-0.1.3/tests/test_chat_main.py +0 -69
  396. meltygui-0.1.3/tests/test_chat_turn_status.py +0 -76
  397. meltygui-0.1.3/tests/test_control_paint.py +0 -34
  398. meltygui-0.1.3/tests/test_core_syntax.py +0 -996
  399. meltygui-0.1.3/tests/test_draw_state_parent_geometry.py +0 -177
  400. meltygui-0.1.3/tests/test_edge_motion_guard.py +0 -512
  401. meltygui-0.1.3/tests/test_fast_draw_dropdown.py +0 -107
  402. meltygui-0.1.3/tests/test_fast_menu_bar.py +0 -32
  403. meltygui-0.1.3/tests/test_file_metadata_model.py +0 -244
  404. meltygui-0.1.3/tests/test_file_rows_overlay.py +0 -108
  405. meltygui-0.1.3/tests/test_file_type_codecs.py +0 -271
  406. meltygui-0.1.3/tests/test_folder_icons.py +0 -228
  407. meltygui-0.1.3/tests/test_fps_counter.py +0 -46
  408. meltygui-0.1.3/tests/test_geometry_jitter.py +0 -229
  409. meltygui-0.1.3/tests/test_native_collision_surface.py +0 -118
  410. meltygui-0.1.3/tests/test_native_live_resize.py +0 -143
  411. meltygui-0.1.3/tests/test_os_frame.py +0 -1886
  412. meltygui-0.1.3/tests/test_path_icon_view.py +0 -75
  413. meltygui-0.1.3/tests/test_public_boundary.py +0 -63
  414. meltygui-0.1.3/tests/test_release_workflow.py +0 -105
  415. meltygui-0.1.3/tests/test_render_overlay.py +0 -448
  416. meltygui-0.1.3/tests/test_retina_tile_capture.py +0 -78
  417. meltygui-0.1.3/tests/test_search_symbol_tables.py +0 -24
  418. meltygui-0.1.3/tests/test_texture_overlay.py +0 -150
  419. meltygui-0.1.3/tests/test_tile_links.py +0 -706
  420. meltygui-0.1.3/tests/test_tile_manager.py +0 -476
  421. meltygui-0.1.3/tests/test_tile_resize_replay.py +0 -179
  422. meltygui-0.1.3/tests/test_view_identity.py +0 -91
  423. meltygui-0.1.3/tools/release.py +0 -111
  424. {meltygui-0.1.3 → meltygui-0.1.8}/LICENSE +0 -0
  425. {meltygui-0.1.3 → meltygui-0.1.8}/docs/INPUT_RECORDING.md +0 -0
  426. {meltygui-0.1.3 → meltygui-0.1.8}/docs/SUPPORT_WHEELS.md +0 -0
  427. {meltygui-0.1.3 → meltygui-0.1.8}/examples/render_overlay.py +0 -0
  428. {meltygui-0.1.3 → meltygui-0.1.8}/examples/tensor_live.py +0 -0
  429. {meltygui-0.1.3 → meltygui-0.1.8}/examples/tile_sibling_links.py +0 -0
  430. {meltygui-0.1.3 → meltygui-0.1.8}/examples/voxel_playground.py +0 -0
  431. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/accounts/__init__.py +0 -0
  432. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/chat/__init__.py +0 -0
  433. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/chat/__main__.py +0 -0
  434. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/chat/activity.py +0 -0
  435. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/chat/assets/source-icons/LICENSE +0 -0
  436. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/chat/assets/source-icons/README.md +0 -0
  437. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/chat/assets/source-icons/claude.png +0 -0
  438. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/chat/assets/source-icons/claude.svg +0 -0
  439. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/chat/assets/source-icons/codex.png +0 -0
  440. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/chat/assets/source-icons/codex.svg +0 -0
  441. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/chat/auto_titles.py +0 -0
  442. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/chat/backends.py +0 -0
  443. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/chat/chat_proxy.py +0 -0
  444. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/chat/chat_service.py +0 -0
  445. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/chat/claude_code.py +0 -0
  446. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/chat/codex_proxy.py +0 -0
  447. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/chat/codex_settings.py +0 -0
  448. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/chat/codex_transport.py +0 -0
  449. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/chat/command_parser.py +0 -0
  450. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/chat/messages.py +0 -0
  451. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/chat/metadata.py +0 -0
  452. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/chat/writer_locks.py +0 -0
  453. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/code/__init__.py +0 -0
  454. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/code/basic_converters.py +0 -0
  455. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/code/code_checks.py +0 -0
  456. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/code/core_syntax.py +0 -0
  457. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/code/file_converters.py +0 -0
  458. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/code/hotswap_guard.py +0 -0
  459. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/code/live_instrument.py +0 -0
  460. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/code/live_view.py +0 -0
  461. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/code/melty_scan.py +0 -0
  462. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/code/syntax_check.py +0 -0
  463. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/code/syntax_check_worker.py +0 -0
  464. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/completion/__init__.py +0 -0
  465. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/completion/fim.py +0 -0
  466. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/completion/fim_context.py +0 -0
  467. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/completion/providers/__init__.py +0 -0
  468. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/completion/providers/claude.py +0 -0
  469. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/completion/providers/copilot.py +0 -0
  470. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/completion/providers/oauth_popup.py +0 -0
  471. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/completion/providers/ollama.py +0 -0
  472. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/completion/providers/profiles.py +0 -0
  473. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/README.md +0 -0
  474. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/__init__.py +0 -0
  475. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/automation/__init__.py +0 -0
  476. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/automation/action_core.py +0 -0
  477. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/automation/collection_action.py +0 -0
  478. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/automation/input_recording_core.py +0 -0
  479. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/automation/input_replay.py +0 -0
  480. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/automation/mcp_eval.py +0 -0
  481. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/automation/mcp_hotswap.py +0 -0
  482. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/automation/mcp_query.py +0 -0
  483. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/automation/mcp_server.py +0 -0
  484. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/automation/search_core.py +0 -0
  485. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/automation/selector_core.py +0 -0
  486. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/automation/value_core.py +0 -0
  487. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/cache/__init__.py +0 -0
  488. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/cache/cache_diagnostics.py +0 -0
  489. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/cache/invalidation_decoration.py +0 -0
  490. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/cache/invalidation_tracker.py +0 -0
  491. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/cache/mask_batch.py +0 -0
  492. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/cache/parameter_dependencies.py +0 -0
  493. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/cache/tile_marks.py +0 -0
  494. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/conversion/__init__.py +0 -0
  495. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/conversion/bubbling.py +0 -0
  496. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/conversion/cache_tree.py +0 -0
  497. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/conversion/chain.py +0 -0
  498. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/conversion/converter_register.py +0 -0
  499. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/conversion/data_decoration.py +0 -0
  500. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/conversion/dict_conversion.py +0 -0
  501. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/conversion/dynamic_obj.py +0 -0
  502. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/conversion/graph_compare.py +0 -0
  503. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/conversion/load_save_v2.py +0 -0
  504. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/conversion/missing_saved_class.py +0 -0
  505. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/conversion/path_finder.py +0 -0
  506. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/definition_hotswap.py +0 -0
  507. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/diagnostics/__init__.py +0 -0
  508. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/diagnostics/attribute_churn.py +0 -0
  509. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/diagnostics/gpu_frame_timer.py +0 -0
  510. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/diagnostics/inspection_core.py +0 -0
  511. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/diagnostics/monitor_core.py +0 -0
  512. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/diagnostics/notifications.py +0 -0
  513. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/diagnostics/perf_trace.py +0 -0
  514. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/diagnostics/profile_decoration.py +0 -0
  515. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/diagnostics/screenshot_core.py +0 -0
  516. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/diagnostics/session_status.py +0 -0
  517. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/diagnostics/trace_core.py +0 -0
  518. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/files/__init__.py +0 -0
  519. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/files/file_core.py +0 -0
  520. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/files/file_explorer_core.py +0 -0
  521. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/files/file_tree_core.py +0 -0
  522. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/files/file_watch_core.py +0 -0
  523. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/files/import_graph_core.py +0 -0
  524. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/files/metadata_core.py +0 -0
  525. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/files/path_icons.py +0 -0
  526. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/graphics/__init__.py +0 -0
  527. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/graphics/cuda_context_core.py +0 -0
  528. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/graphics/cuda_interop_core.py +0 -0
  529. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/graphics/cuda_kernel_core.py +0 -0
  530. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/graphics/framebuffer_recorder.py +0 -0
  531. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/graphics/lut_core.py +0 -0
  532. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/graphics/screenshot.py +0 -0
  533. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/graphics/tensor_core.py +0 -0
  534. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/graphics/wayland_color.py +0 -0
  535. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/input/__init__.py +0 -0
  536. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/input/collision.py +0 -0
  537. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/input/drag_drop_core.py +0 -0
  538. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/input/hypr_left_drag.py +0 -0
  539. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/input/input_core.py +0 -0
  540. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/input/mouse_cursor.py +0 -0
  541. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/input/space_mouse.py +0 -0
  542. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/input/touchpad_backend.py +0 -0
  543. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/input/view_selection.py +0 -0
  544. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/layout/__init__.py +0 -0
  545. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/layout/cursor_core.py +0 -0
  546. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/layout/dropdown_core.py +0 -0
  547. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/layout/edge_constraints.py +0 -0
  548. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/layout/grid_core.py +0 -0
  549. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/layout/header_core.py +0 -0
  550. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/layout/header_runtime.py +0 -0
  551. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/layout/layout_core.py +0 -0
  552. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/module_names.py +0 -0
  553. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/rendering/__init__.py +0 -0
  554. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/rendering/core_decoration.py +0 -0
  555. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/rendering/core_render_helpers.py +0 -0
  556. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/rendering/fast_view.py +0 -0
  557. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/rendering/func_metadata.py +0 -0
  558. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/rendering/injected_state.py +0 -0
  559. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/rendering/mode_defaults.py +0 -0
  560. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/rendering/modes.py +0 -0
  561. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/rendering/parameter_core.py +0 -0
  562. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/rendering/render_dispatch.py +0 -0
  563. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/rendering/shaped.py +0 -0
  564. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/rendering/window_decoration.py +0 -0
  565. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/runtime/__init__.py +0 -0
  566. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/runtime/background.py +0 -0
  567. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/runtime/extensions.py +0 -0
  568. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/runtime/lifecycle.py +0 -0
  569. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/runtime/settings.py +0 -0
  570. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/runtime/singleton.py +0 -0
  571. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/runtime/thread_safe_bool.py +0 -0
  572. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/runtime/thread_signal.py +0 -0
  573. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/services/__init__.py +0 -0
  574. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/services/account_core.py +0 -0
  575. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/services/chat_core.py +0 -0
  576. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/services/claude_terminal_core.py +0 -0
  577. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/services/terminal_core.py +0 -0
  578. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/services/terminal_runtime.py +0 -0
  579. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/styling/__init__.py +0 -0
  580. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/styling/color_core.py +0 -0
  581. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/styling/global_style.py +0 -0
  582. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/styling/style.py +0 -0
  583. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/styling/warm_start.py +0 -0
  584. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/windowing/__init__.py +0 -0
  585. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/windowing/backends/PYIMGUI_LICENSE +0 -0
  586. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/windowing/backends/__init__.py +0 -0
  587. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/windowing/backends/native_wayland.py +0 -0
  588. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/windowing/backends/protocols/xdg-decoration-unstable-v1.xml +0 -0
  589. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/windowing/backends/protocols/xdg-shell.xml +0 -0
  590. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/windowing/backends/wayland_protocol.py +0 -0
  591. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/windowing/dock_core.py +0 -0
  592. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/windowing/frame_geometry.py +0 -0
  593. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/windowing/wayland_move.py +0 -0
  594. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/windowing/window_constants.py +0 -0
  595. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/core/windowing/window_visibility.py +0 -0
  596. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/debug/__init__.py +0 -0
  597. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/debug/app_view_utils.py +0 -0
  598. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/editor/__init__.py +0 -0
  599. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/editor/bash_syntax.py +0 -0
  600. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/editor/code_line_fast.py +0 -0
  601. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/editor/diff.py +0 -0
  602. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/editor/external_changes.py +0 -0
  603. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/editor/file_header.py +0 -0
  604. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/editor/live_usage.py +0 -0
  605. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/editor/live_view_views.py +0 -0
  606. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/editor/roster_tints.py +0 -0
  607. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/editor/source_preview.py +0 -0
  608. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/editor/source_tools.py +0 -0
  609. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/editor/source_ui.py +0 -0
  610. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/editor/spell_check.py +0 -0
  611. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/editor/usage_picker.py +0 -0
  612. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/events/__init__.py +0 -0
  613. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/events/example.py +0 -0
  614. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/examples/__init__.py +0 -0
  615. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/examples/columns_demo.py +0 -0
  616. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/examples/columns_window_demo.py +0 -0
  617. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/examples/context_menu_demo.py +0 -0
  618. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/examples/context_menu_window_demo.py +0 -0
  619. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/examples/gui_playground.py +0 -0
  620. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/examples/live_view_playground.py +0 -0
  621. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/examples/lora.py +0 -0
  622. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/examples/lora_data.py +0 -0
  623. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/examples/lora_policies.py +0 -0
  624. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/examples/mode_demo.py +0 -0
  625. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/examples/modifies_demo.py +0 -0
  626. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/examples/scalar_policies.py +0 -0
  627. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/examples/settings_demo.py +0 -0
  628. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/examples/style_layouts.py +0 -0
  629. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/examples/tile_manager_demo.py +0 -0
  630. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/examples/tint_demo.py +0 -0
  631. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/examples/tint_functions.py +0 -0
  632. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/examples/trace_demo.py +0 -0
  633. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/examples/two_windows.py +0 -0
  634. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/examples/voxel_transfer_paths.py +0 -0
  635. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/files/__init__.py +0 -0
  636. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/gnome_extension/lsd-window-geometry@latent-descent/extension.js +0 -0
  637. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/gnome_extension/lsd-window-geometry@latent-descent/lsd-window-geometry@latent-descent.iml +0 -0
  638. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/gnome_extension/lsd-window-geometry@latent-descent/metadata.json +0 -0
  639. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/graphics/__init__.py +0 -0
  640. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/graphics/base.py +0 -0
  641. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/graphics/examples.py +0 -0
  642. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/graphics/executor.py +0 -0
  643. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/graphics/filter.py +0 -0
  644. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/graphics/filter.pyi +0 -0
  645. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/graphics/generate_stubs.py +0 -0
  646. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/graphics/registry.py +0 -0
  647. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/graphics/shader_compiler.py +0 -0
  648. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/graphics/shaders.py +0 -0
  649. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/graphics/stub_generator.py +0 -0
  650. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/graphics/texture_min_max.py +0 -0
  651. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/hdr_color.py +0 -0
  652. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/model/__init__.py +0 -0
  653. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/model/account_model.py +0 -0
  654. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/model/breakpoint_model.py +0 -0
  655. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/model/camera_model.py +0 -0
  656. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/model/code_dict_model.py +0 -0
  657. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/model/code_model.py +0 -0
  658. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/model/code_proxy_model.py +0 -0
  659. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/model/collection_model.py +0 -0
  660. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/model/color_model.py +0 -0
  661. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/model/cuda_buffer_model.py +0 -0
  662. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/model/cuda_tensor_model.py +0 -0
  663. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/model/cuda_texture_model.py +0 -0
  664. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/model/dropdown_model.py +0 -0
  665. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/model/file_metadata_model.py +0 -0
  666. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/model/format_model.py +0 -0
  667. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/model/graph_model.py +0 -0
  668. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/model/icon_model.py +0 -0
  669. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/model/input_recording_model.py +0 -0
  670. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/model/layout_model.py +0 -0
  671. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/model/lut_model.py +0 -0
  672. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/model/search_model.py +0 -0
  673. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/model/tensor_model.py +0 -0
  674. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/model/terminal_model.py +0 -0
  675. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/model/tile_model.py +0 -0
  676. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/model/trace_model.py +0 -0
  677. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/model/trace_report_model.py +0 -0
  678. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/models/__init__.py +0 -0
  679. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/models/function_console.py +0 -0
  680. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/models/orchestration.py +0 -0
  681. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/pbr.py +0 -0
  682. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/png_unfilter.c +0 -0
  683. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/resources/JetBrainsMono-Regular.ttf +0 -0
  684. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/resources/THIRD_PARTY_NOTICES.md +0 -0
  685. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/resources/dejavu/DejaVuSans-Bold.ttf +0 -0
  686. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/resources/dejavu/DejaVuSans-ExtraLight.ttf +0 -0
  687. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/resources/dejavu/DejaVuSans.ttf +0 -0
  688. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/resources/dejavu/LICENSE.txt +0 -0
  689. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/resources/fontawesome-LICENSE.txt +0 -0
  690. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/resources/fontawesome-webfont.ttf +0 -0
  691. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/resources/hdri/studio_small_09_1k.hdr +0 -0
  692. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/resources/jetbrains-weights/JetBrainsMono-Bold.ttf +0 -0
  693. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/resources/jetbrains-weights/JetBrainsMono-ExtraBold.ttf +0 -0
  694. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/resources/jetbrains-weights/JetBrainsMono-ExtraLight.ttf +0 -0
  695. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/resources/jetbrains-weights/JetBrainsMono-Light.ttf +0 -0
  696. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/resources/jetbrains-weights/JetBrainsMono-Medium.ttf +0 -0
  697. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/resources/jetbrains-weights/JetBrainsMono-SemiBold.ttf +0 -0
  698. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/resources/jetbrains-weights/JetBrainsMono-Thin.ttf +0 -0
  699. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/resources/jetbrains-weights/OFL.txt +0 -0
  700. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/resources/jetbrains-weights/README.md +0 -0
  701. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/state/__init__.py +0 -0
  702. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/state/account_state.py +0 -0
  703. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/state/animation_state.py +0 -0
  704. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/state/annotation_state.py +0 -0
  705. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/state/chat_state.py +0 -0
  706. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/state/code_state.py +0 -0
  707. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/state/core_enums.py +0 -0
  708. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/state/core_markers.py +0 -0
  709. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/state/core_undo.py +0 -0
  710. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/state/file_state.py +0 -0
  711. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/state/graph_state.py +0 -0
  712. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/state/inspection_state.py +0 -0
  713. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/state/menu_state.py +0 -0
  714. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/state/model_enums.py +0 -0
  715. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/state/orchestration_state.py +0 -0
  716. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/state/path_icon_state.py +0 -0
  717. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/state/query_state.py +0 -0
  718. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/state/tensor_state.py +0 -0
  719. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/state/terminal_state.py +0 -0
  720. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/state/texture_state.py +0 -0
  721. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/state/trace_state.py +0 -0
  722. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/state/view_reference.py +0 -0
  723. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/state/voxel_state.py +0 -0
  724. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/utils/__init__.py +0 -0
  725. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/utils/jump_to_code.py +0 -0
  726. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/utils/pkl_inspect.py +0 -0
  727. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/utils/render_utils.py +0 -0
  728. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/view/__init__.py +0 -0
  729. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/view/action_view.py +0 -0
  730. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/view/chat_decoration_view.py +0 -0
  731. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/view/chat_sidebar_view.py +0 -0
  732. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/view/chat_source_icon_view.py +0 -0
  733. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/view/code_view.py +0 -0
  734. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/view/decoration_view.py +0 -0
  735. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/view/diagnostic_view.py +0 -0
  736. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/view/file_icon_view.py +0 -0
  737. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/view/graph_cuda_view.py +0 -0
  738. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/view/input_recording_view.py +0 -0
  739. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/view/input_view.py +0 -0
  740. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/view/inspection_view.py +0 -0
  741. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/view/layout_view.py +0 -0
  742. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/view/lut_view.py +0 -0
  743. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/view/query_view.py +0 -0
  744. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/view/search_view.py +0 -0
  745. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/view/tab_view.py +0 -0
  746. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/view/tensor_view.py +0 -0
  747. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/view/terminal_view.py +0 -0
  748. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/view/voxel_cuda_view.py +0 -0
  749. {meltygui-0.1.3 → meltygui-0.1.8}/meltygui/view/window_view.py +0 -0
  750. {meltygui-0.1.3 → meltygui-0.1.8}/tests/conftest.py +0 -0
  751. {meltygui-0.1.3 → meltygui-0.1.8}/tests/fixtures/terminal_before_runtime.py +0 -0
  752. {meltygui-0.1.3 → meltygui-0.1.8}/tests/profile_render_wrapper.py +0 -0
  753. {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_app_exit_flush.py +0 -0
  754. {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_background_palette.py +0 -0
  755. {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_breakpoint_model.py +0 -0
  756. {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_capture_passes.py +0 -0
  757. {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_chat_auto_titles.py +0 -0
  758. {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_chat_claude_code.py +0 -0
  759. {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_chat_codex_fast.py +0 -0
  760. {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_chat_messages.py +0 -0
  761. {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_chat_presentation.py +0 -0
  762. {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_chat_service.py +0 -0
  763. {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_chat_token_usage.py +0 -0
  764. {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_child_surface_cache_keepalive.py +0 -0
  765. {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_clean_surface_skip.py +0 -0
  766. {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_click_disambiguation.py +0 -0
  767. {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_code_dict.py +0 -0
  768. {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_code_dict_scenarios.py +0 -0
  769. {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_column_edge_solve.py +0 -0
  770. {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_column_frame_fit.py +0 -0
  771. {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_column_maxes.py +0 -0
  772. {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_column_right_drag_display_wall.py +0 -0
  773. {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_context_menu_placement.py +0 -0
  774. {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_core_relocation.py +0 -0
  775. {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_crash_report_store.py +0 -0
  776. {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_cuda_context_core.py +0 -0
  777. {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_cuda_direct_lines.py +0 -0
  778. {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_cuda_image_interop.py +0 -0
  779. {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_cuda_interop.py +0 -0
  780. {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_cuda_interop_core.py +0 -0
  781. {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_cuda_kernel_core.py +0 -0
  782. {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_cuda_march.py +0 -0
  783. {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_deferred_view_returns.py +0 -0
  784. {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_definition_relocation.py +0 -0
  785. {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_dropdown_divider.py +0 -0
  786. {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_edge_graph_solve.py +0 -0
  787. {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_fast_draw_collection.py +0 -0
  788. {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_file_model.py +0 -0
  789. {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_file_watch_limits.py +0 -0
  790. {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_file_watch_start.py +0 -0
  791. {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_font_backing_scale.py +0 -0
  792. {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_frame_geometry_hotswap.py +0 -0
  793. {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_freeze_scrollbar_overlay.py +0 -0
  794. {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_fstring_highlight.py +0 -0
  795. {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_function_console.py +0 -0
  796. {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_geometry_feed_grace.py +0 -0
  797. {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_glfw_window_app_name.py +0 -0
  798. {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_glfw_window_editable_root.py +0 -0
  799. {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_gpu_frame_timer.py +0 -0
  800. {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_hdr_color.py +0 -0
  801. {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_held_input.py +0 -0
  802. {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_hotswap_preserves_runtime_state.py +0 -0
  803. {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_image_texture.py +0 -0
  804. {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_import_boundary.py +0 -0
  805. {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_initial_child_placement.py +0 -0
  806. {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_input_recording.py +0 -0
  807. {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_live_class_apply.py +0 -0
  808. {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_live_function_apply.py +0 -0
  809. {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_live_store_owner.py +0 -0
  810. {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_lut_model.py +0 -0
  811. {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_mask_batch.py +0 -0
  812. {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_native_background_drag.py +0 -0
  813. {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_native_body_cursor.py +0 -0
  814. {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_native_collision_fallback.py +0 -0
  815. {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_native_frame_contacts.py +0 -0
  816. {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_native_resize_workarea.py +0 -0
  817. {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_native_windows.py +0 -0
  818. {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_nested_layout_right_drag.py +0 -0
  819. {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_overlay_submission_state.py +0 -0
  820. {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_package_contract.py +0 -0
  821. {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_pending_signature_lint.py +0 -0
  822. {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_readme_examples.py +0 -0
  823. {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_recent_files.py +0 -0
  824. {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_recompile_import_backfill.py +0 -0
  825. {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_render_background.py +0 -0
  826. {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_render_change_notification.py +0 -0
  827. {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_render_context_injection.py +0 -0
  828. {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_render_func_integration.py +0 -0
  829. {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_render_host_surface_drag.py +0 -0
  830. {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_restored_resource_ownership.py +0 -0
  831. {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_row_edge_solve.py +0 -0
  832. {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_saved_renderer_recovery.py +0 -0
  833. {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_shader_func.py +0 -0
  834. {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_shadow_capture_gl.py +0 -0
  835. {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_shaped.py +0 -0
  836. {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_source_site_keys.py +0 -0
  837. {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_startup_imports.py +0 -0
  838. {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_surface_body_resize.py +0 -0
  839. {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_syntax_check_worker.py +0 -0
  840. {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_tensor_controls.py +0 -0
  841. {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_tensor_model.py +0 -0
  842. {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_tensor_slices.py +0 -0
  843. {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_terminal_live_migration.py +0 -0
  844. {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_terminal_ownership.py +0 -0
  845. {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_text_texture_contexts.py +0 -0
  846. {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_tile_frame_reuse.py +0 -0
  847. {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_tile_hotswap_content.py +0 -0
  848. {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_toggles_color.py +0 -0
  849. {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_typing_incremental_layout.py +0 -0
  850. {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_unmanaged_window_frames.py +0 -0
  851. {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_view_icon_locate.py +0 -0
  852. {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_voxel_backends.py +0 -0
  853. {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_voxel_ownership.py +0 -0
  854. {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_voxel_roll_gl.py +0 -0
  855. {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_window_call_state.py +0 -0
  856. {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_window_collision_investigation.py +0 -0
  857. {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_window_comment_overrides.py +0 -0
  858. {meltygui-0.1.3 → meltygui-0.1.8}/tests/test_windows_portability.py +0 -0
  859. {meltygui-0.1.3 → meltygui-0.1.8}/tests/untitled.py +0 -0
  860. {meltygui-0.1.3 → meltygui-0.1.8}/tools/native_wheels/build.py +0 -0
  861. {meltygui-0.1.3 → meltygui-0.1.8}/tools/native_wheels/build_in_container.sh +0 -0
  862. {meltygui-0.1.3 → meltygui-0.1.8}/tools/native_wheels/licenses/NVIDIA-CUDA-12.1-EULA.txt +0 -0
  863. {meltygui-0.1.3 → meltygui-0.1.8}/tools/native_wheels/licenses/boost.txt +0 -0
  864. {meltygui-0.1.3 → meltygui-0.1.8}/tools/native_wheels/licenses/imgui-MIT.txt +0 -0
  865. {meltygui-0.1.3 → meltygui-0.1.8}/tools/native_wheels/licenses/imstb_rectpack.h.license.txt +0 -0
  866. {meltygui-0.1.3 → meltygui-0.1.8}/tools/native_wheels/licenses/imstb_textedit.h.license.txt +0 -0
  867. {meltygui-0.1.3 → meltygui-0.1.8}/tools/native_wheels/licenses/imstb_truetype.h.license.txt +0 -0
  868. {meltygui-0.1.3 → meltygui-0.1.8}/tools/native_wheels/prepare.py +0 -0
  869. {meltygui-0.1.3 → meltygui-0.1.8}/tools/native_wheels/rewrite_imports.py +0 -0
@@ -0,0 +1,12 @@
1
+ .venv/
2
+ __pycache__/
3
+ *.pyc
4
+ .pytest_cache/
5
+ dist/
6
+ build/
7
+ *.egg-info/
8
+ .melty/
9
+ .DS_Store
10
+ .idea/
11
+ meltygui/core/rendering/_gui_native*.so
12
+ meltygui/core/rendering/_gui_native*.pyd
@@ -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.
@@ -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.