cubevis 1.0.57__tar.gz → 1.0.59__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 (166) hide show
  1. {cubevis-1.0.57 → cubevis-1.0.59}/PKG-INFO +1 -1
  2. cubevis-1.0.59/cubevis/bokeh/sources/transport/__init__.py +12 -0
  3. {cubevis-1.0.57 → cubevis-1.0.59}/pyproject.toml +1 -1
  4. cubevis-1.0.57/cubevis/bokeh/sources/transport/__init__.py +0 -80
  5. {cubevis-1.0.57 → cubevis-1.0.59}/LICENSE +0 -0
  6. {cubevis-1.0.57 → cubevis-1.0.59}/README.rst +0 -0
  7. {cubevis-1.0.57 → cubevis-1.0.59}/cubevis/LICENSE.rst +0 -0
  8. {cubevis-1.0.57 → cubevis-1.0.59}/cubevis/__icons__/20px/fast-backward.svg +0 -0
  9. {cubevis-1.0.57 → cubevis-1.0.59}/cubevis/__icons__/20px/fast-forward.svg +0 -0
  10. {cubevis-1.0.57 → cubevis-1.0.59}/cubevis/__icons__/20px/step-backward.svg +0 -0
  11. {cubevis-1.0.57 → cubevis-1.0.59}/cubevis/__icons__/20px/step-forward.svg +0 -0
  12. {cubevis-1.0.57 → cubevis-1.0.59}/cubevis/__icons__/add-chan.png +0 -0
  13. {cubevis-1.0.57 → cubevis-1.0.59}/cubevis/__icons__/add-chan.svg +0 -0
  14. {cubevis-1.0.57 → cubevis-1.0.59}/cubevis/__icons__/add-cube.png +0 -0
  15. {cubevis-1.0.57 → cubevis-1.0.59}/cubevis/__icons__/add-cube.svg +0 -0
  16. {cubevis-1.0.57 → cubevis-1.0.59}/cubevis/__icons__/drag.png +0 -0
  17. {cubevis-1.0.57 → cubevis-1.0.59}/cubevis/__icons__/drag.svg +0 -0
  18. {cubevis-1.0.57 → cubevis-1.0.59}/cubevis/__icons__/mask-selected.png +0 -0
  19. {cubevis-1.0.57 → cubevis-1.0.59}/cubevis/__icons__/mask.png +0 -0
  20. {cubevis-1.0.57 → cubevis-1.0.59}/cubevis/__icons__/mask.svg +0 -0
  21. {cubevis-1.0.57 → cubevis-1.0.59}/cubevis/__icons__/new-layer-sm-selected.png +0 -0
  22. {cubevis-1.0.57 → cubevis-1.0.59}/cubevis/__icons__/new-layer-sm-selected.svg +0 -0
  23. {cubevis-1.0.57 → cubevis-1.0.59}/cubevis/__icons__/new-layer-sm.png +0 -0
  24. {cubevis-1.0.57 → cubevis-1.0.59}/cubevis/__icons__/new-layer-sm.svg +0 -0
  25. {cubevis-1.0.57 → cubevis-1.0.59}/cubevis/__icons__/reset.png +0 -0
  26. {cubevis-1.0.57 → cubevis-1.0.59}/cubevis/__icons__/reset.svg +0 -0
  27. {cubevis-1.0.57 → cubevis-1.0.59}/cubevis/__icons__/sub-chan.png +0 -0
  28. {cubevis-1.0.57 → cubevis-1.0.59}/cubevis/__icons__/sub-chan.svg +0 -0
  29. {cubevis-1.0.57 → cubevis-1.0.59}/cubevis/__icons__/sub-cube.png +0 -0
  30. {cubevis-1.0.57 → cubevis-1.0.59}/cubevis/__icons__/sub-cube.svg +0 -0
  31. {cubevis-1.0.57 → cubevis-1.0.59}/cubevis/__icons__/trash.png +0 -0
  32. {cubevis-1.0.57 → cubevis-1.0.59}/cubevis/__icons__/trash.svg +0 -0
  33. {cubevis-1.0.57 → cubevis-1.0.59}/cubevis/__icons__/trash_full.png +0 -0
  34. {cubevis-1.0.57 → cubevis-1.0.59}/cubevis/__icons__/trash_full.svg +0 -0
  35. {cubevis-1.0.57 → cubevis-1.0.59}/cubevis/__icons__/trash_full_raw.png +0 -0
  36. {cubevis-1.0.57 → cubevis-1.0.59}/cubevis/__icons__/zoom-to-fit.png +0 -0
  37. {cubevis-1.0.57 → cubevis-1.0.59}/cubevis/__icons__/zoom-to-fit.svg +0 -0
  38. {cubevis-1.0.57 → cubevis-1.0.59}/cubevis/__init__.py +0 -0
  39. {cubevis-1.0.57 → cubevis-1.0.59}/cubevis/__js__/bokeh-3.6/cubevisjs.min.js +0 -0
  40. {cubevis-1.0.57 → cubevis-1.0.59}/cubevis/__js__/bokeh-3.7/cubevisjs.min.js +0 -0
  41. {cubevis-1.0.57 → cubevis-1.0.59}/cubevis/__js__/bokeh-3.8/cubevisjs.min.js +0 -0
  42. {cubevis-1.0.57 → cubevis-1.0.59}/cubevis/__js__/casalib.min.js +0 -0
  43. {cubevis-1.0.57 → cubevis-1.0.59}/cubevis/bokeh/__init__.py +0 -0
  44. {cubevis-1.0.57 → cubevis-1.0.59}/cubevis/bokeh/annotations/__init__.py +0 -0
  45. {cubevis-1.0.57 → cubevis-1.0.59}/cubevis/bokeh/annotations/_ev_poly_annotation.py +0 -0
  46. {cubevis-1.0.57 → cubevis-1.0.59}/cubevis/bokeh/components/__init__.py +0 -0
  47. {cubevis-1.0.57 → cubevis-1.0.59}/cubevis/bokeh/format/__init__.py +0 -0
  48. {cubevis-1.0.57 → cubevis-1.0.59}/cubevis/bokeh/format/_time_ticks.py +0 -0
  49. {cubevis-1.0.57 → cubevis-1.0.59}/cubevis/bokeh/format/_wcs_ticks.py +0 -0
  50. {cubevis-1.0.57 → cubevis-1.0.59}/cubevis/bokeh/models/__init__.py +0 -0
  51. {cubevis-1.0.57 → cubevis-1.0.59}/cubevis/bokeh/models/_bokeh_app_context.py +0 -0
  52. {cubevis-1.0.57 → cubevis-1.0.59}/cubevis/bokeh/models/_edit_span.py +0 -0
  53. {cubevis-1.0.57 → cubevis-1.0.59}/cubevis/bokeh/models/_ev_text_input.py +0 -0
  54. {cubevis-1.0.57 → cubevis-1.0.59}/cubevis/bokeh/models/_shared_dict.py +0 -0
  55. {cubevis-1.0.57 → cubevis-1.0.59}/cubevis/bokeh/models/_showable.py +0 -0
  56. {cubevis-1.0.57 → cubevis-1.0.59}/cubevis/bokeh/models/_tip.py +0 -0
  57. {cubevis-1.0.57 → cubevis-1.0.59}/cubevis/bokeh/models/_tip_button.py +0 -0
  58. {cubevis-1.0.57 → cubevis-1.0.59}/cubevis/bokeh/sources/__init__.py +0 -0
  59. {cubevis-1.0.57 → cubevis-1.0.59}/cubevis/bokeh/sources/_data_pipe.py +0 -0
  60. {cubevis-1.0.57 → cubevis-1.0.59}/cubevis/bokeh/sources/_image_data_source.py +0 -0
  61. {cubevis-1.0.57 → cubevis-1.0.59}/cubevis/bokeh/sources/_image_pipe.py +0 -0
  62. {cubevis-1.0.57 → cubevis-1.0.59}/cubevis/bokeh/sources/_spectra_data_source.py +0 -0
  63. {cubevis-1.0.57 → cubevis-1.0.59}/cubevis/bokeh/sources/_updatable_data_source.py +0 -0
  64. {cubevis-1.0.57 → cubevis-1.0.59}/cubevis/bokeh/state/__init__.py +0 -0
  65. {cubevis-1.0.57 → cubevis-1.0.59}/cubevis/bokeh/state/_current.py +0 -0
  66. {cubevis-1.0.57 → cubevis-1.0.59}/cubevis/bokeh/state/_initialize.py +0 -0
  67. {cubevis-1.0.57 → cubevis-1.0.59}/cubevis/bokeh/state/_javascript.py +0 -0
  68. {cubevis-1.0.57 → cubevis-1.0.59}/cubevis/bokeh/state/_palette.py +0 -0
  69. {cubevis-1.0.57 → cubevis-1.0.59}/cubevis/bokeh/state/_session.py +0 -0
  70. {cubevis-1.0.57 → cubevis-1.0.59}/cubevis/bokeh/state/js/bokeh-2.4.1.min.js +0 -0
  71. {cubevis-1.0.57 → cubevis-1.0.59}/cubevis/bokeh/state/js/bokeh-gl-2.4.1.min.js +0 -0
  72. {cubevis-1.0.57 → cubevis-1.0.59}/cubevis/bokeh/state/js/bokeh-tables-2.4.1.min.js +0 -0
  73. {cubevis-1.0.57 → cubevis-1.0.59}/cubevis/bokeh/state/js/bokeh-widgets-2.4.1.min.js +0 -0
  74. {cubevis-1.0.57 → cubevis-1.0.59}/cubevis/bokeh/state/js/casaguijs-v0.0.4.0-b2.4.min.js +0 -0
  75. {cubevis-1.0.57 → cubevis-1.0.59}/cubevis/bokeh/state/js/casaguijs-v0.0.5.0-b2.4.min.js +0 -0
  76. {cubevis-1.0.57 → cubevis-1.0.59}/cubevis/bokeh/state/js/casaguijs-v0.0.6.0-b2.4.min.js +0 -0
  77. {cubevis-1.0.57 → cubevis-1.0.59}/cubevis/bokeh/state/js/casalib-v0.0.1.min.js +0 -0
  78. {cubevis-1.0.57 → cubevis-1.0.59}/cubevis/bokeh/tools/__init__.py +0 -0
  79. {cubevis-1.0.57 → cubevis-1.0.59}/cubevis/bokeh/tools/_cbreset_tool.py +0 -0
  80. {cubevis-1.0.57 → cubevis-1.0.59}/cubevis/bokeh/tools/_drag_tool.py +0 -0
  81. {cubevis-1.0.57 → cubevis-1.0.59}/cubevis/bokeh/utils/__init__.py +0 -0
  82. {cubevis-1.0.57 → cubevis-1.0.59}/cubevis/bokeh/utils/_axes_labels.py +0 -0
  83. {cubevis-1.0.57 → cubevis-1.0.59}/cubevis/bokeh/utils/_svg_icon.py +0 -0
  84. {cubevis-1.0.57 → cubevis-1.0.59}/cubevis/data/__init__.py +0 -0
  85. {cubevis-1.0.57 → cubevis-1.0.59}/cubevis/data/casaimage/__init__.py +0 -0
  86. {cubevis-1.0.57 → cubevis-1.0.59}/cubevis/exe/__init__.py +0 -0
  87. {cubevis-1.0.57 → cubevis-1.0.59}/cubevis/exe/_context.py +0 -0
  88. {cubevis-1.0.57 → cubevis-1.0.59}/cubevis/exe/_mode.py +0 -0
  89. {cubevis-1.0.57 → cubevis-1.0.59}/cubevis/exe/_setting.py +0 -0
  90. {cubevis-1.0.57 → cubevis-1.0.59}/cubevis/exe/_task.py +0 -0
  91. {cubevis-1.0.57 → cubevis-1.0.59}/cubevis/private/_gclean.py +0 -0
  92. {cubevis-1.0.57 → cubevis-1.0.59}/cubevis/private/apps/__init__.py +0 -0
  93. {cubevis-1.0.57 → cubevis-1.0.59}/cubevis/private/apps/_createmask.py +0 -0
  94. {cubevis-1.0.57 → cubevis-1.0.59}/cubevis/private/apps/_createregion.py +0 -0
  95. {cubevis-1.0.57 → cubevis-1.0.59}/cubevis/private/apps/_interactiveclean.mustache +0 -0
  96. {cubevis-1.0.57 → cubevis-1.0.59}/cubevis/private/apps/_interactiveclean.py +0 -0
  97. {cubevis-1.0.57 → cubevis-1.0.59}/cubevis/private/apps/_interactivecleannotebook.mustache +0 -0
  98. {cubevis-1.0.57 → cubevis-1.0.59}/cubevis/private/apps/_interactivecleannotebook.py +0 -0
  99. {cubevis-1.0.57 → cubevis-1.0.59}/cubevis/private/apps/_plotants.py +0 -0
  100. {cubevis-1.0.57 → cubevis-1.0.59}/cubevis/private/apps/_plotbandpass.py +0 -0
  101. {cubevis-1.0.57 → cubevis-1.0.59}/cubevis/private/casashell/createmask.py +0 -0
  102. {cubevis-1.0.57 → cubevis-1.0.59}/cubevis/private/casashell/iclean.py +0 -0
  103. {cubevis-1.0.57 → cubevis-1.0.59}/cubevis/private/casatasks/__init__.py +0 -0
  104. {cubevis-1.0.57 → cubevis-1.0.59}/cubevis/private/casatasks/createmask.py +0 -0
  105. {cubevis-1.0.57 → cubevis-1.0.59}/cubevis/private/casatasks/createregion.py +0 -0
  106. {cubevis-1.0.57 → cubevis-1.0.59}/cubevis/private/casatasks/iclean.py +0 -0
  107. {cubevis-1.0.57 → cubevis-1.0.59}/cubevis/private/casatasks/iclean_notebook.py +0 -0
  108. {cubevis-1.0.57 → cubevis-1.0.59}/cubevis/readme.rst +0 -0
  109. {cubevis-1.0.57 → cubevis-1.0.59}/cubevis/remote/__init__.py +0 -0
  110. {cubevis-1.0.57 → cubevis-1.0.59}/cubevis/remote/_gclean.py +0 -0
  111. {cubevis-1.0.57 → cubevis-1.0.59}/cubevis/remote/_local.py +0 -0
  112. {cubevis-1.0.57 → cubevis-1.0.59}/cubevis/remote/_remote_kernel.py +0 -0
  113. {cubevis-1.0.57 → cubevis-1.0.59}/cubevis/toolbox/__init__.py +0 -0
  114. {cubevis-1.0.57 → cubevis-1.0.59}/cubevis/toolbox/_app_context.py +0 -0
  115. {cubevis-1.0.57 → cubevis-1.0.59}/cubevis/toolbox/_cube.py +0 -0
  116. {cubevis-1.0.57 → cubevis-1.0.59}/cubevis/toolbox/_interactive_clean_ui.mustache +0 -0
  117. {cubevis-1.0.57 → cubevis-1.0.59}/cubevis/toolbox/_interactive_clean_ui.py +0 -0
  118. {cubevis-1.0.57 → cubevis-1.0.59}/cubevis/toolbox/_interactiveclean_wrappers.py +0 -0
  119. {cubevis-1.0.57 → cubevis-1.0.59}/cubevis/toolbox/_region_list.py +0 -0
  120. {cubevis-1.0.57 → cubevis-1.0.59}/cubevis/utils/_ResourceManager.py +0 -0
  121. {cubevis-1.0.57 → cubevis-1.0.59}/cubevis/utils/__init__.py +0 -0
  122. {cubevis-1.0.57 → cubevis-1.0.59}/cubevis/utils/_browser.py +0 -0
  123. {cubevis-1.0.57 → cubevis-1.0.59}/cubevis/utils/_contextmgrchain.py +0 -0
  124. {cubevis-1.0.57 → cubevis-1.0.59}/cubevis/utils/_conversion.py +0 -0
  125. {cubevis-1.0.57 → cubevis-1.0.59}/cubevis/utils/_copydoc.py +0 -0
  126. {cubevis-1.0.57 → cubevis-1.0.59}/cubevis/utils/_docenum.py +0 -0
  127. {cubevis-1.0.57 → cubevis-1.0.59}/cubevis/utils/_git.py +0 -0
  128. {cubevis-1.0.57 → cubevis-1.0.59}/cubevis/utils/_import_protected_module.py +0 -0
  129. {cubevis-1.0.57 → cubevis-1.0.59}/cubevis/utils/_jupyter.py +0 -0
  130. {cubevis-1.0.57 → cubevis-1.0.59}/cubevis/utils/_logging.py +0 -0
  131. {cubevis-1.0.57 → cubevis-1.0.59}/cubevis/utils/_mutual_exclusion.py +0 -0
  132. {cubevis-1.0.57 → cubevis-1.0.59}/cubevis/utils/_pkgs.py +0 -0
  133. {cubevis-1.0.57 → cubevis-1.0.59}/cubevis/utils/_regions.py +0 -0
  134. {cubevis-1.0.57 → cubevis-1.0.59}/cubevis/utils/_static.py +0 -0
  135. {cubevis-1.0.57 → cubevis-1.0.59}/cubevis/utils/_tiles.py +0 -0
  136. {cubevis-1.0.57 → cubevis-1.0.59}/tests/manual/alma-many-chan/alma-many-chan.py +0 -0
  137. {cubevis-1.0.57 → cubevis-1.0.59}/tests/manual/basic-websockets-demo/client.html +0 -0
  138. {cubevis-1.0.57 → cubevis-1.0.59}/tests/manual/basic-websockets-demo/client.py +0 -0
  139. {cubevis-1.0.57 → cubevis-1.0.59}/tests/manual/basic-websockets-demo/server.py +0 -0
  140. {cubevis-1.0.57 → cubevis-1.0.59}/tests/manual/createmask-demo/run-createmask.py +0 -0
  141. {cubevis-1.0.57 → cubevis-1.0.59}/tests/manual/createregion-demo/run-createregion.py +0 -0
  142. {cubevis-1.0.57 → cubevis-1.0.59}/tests/manual/cubemask-demo/image-slider-spectra-done-stats.py +0 -0
  143. {cubevis-1.0.57 → cubevis-1.0.59}/tests/manual/cubemask-demo/image-slider-spectra-done.py +0 -0
  144. {cubevis-1.0.57 → cubevis-1.0.59}/tests/manual/cubemask-demo/image-slider-spectra.py +0 -0
  145. {cubevis-1.0.57 → cubevis-1.0.59}/tests/manual/cubemask-demo/image-slider.py +0 -0
  146. {cubevis-1.0.57 → cubevis-1.0.59}/tests/manual/cubemask-demo/image.py +0 -0
  147. {cubevis-1.0.57 → cubevis-1.0.59}/tests/manual/iclean-demo/iclean-demo.ipynb +0 -0
  148. {cubevis-1.0.57 → cubevis-1.0.59}/tests/manual/iclean-demo/m100_interactive.py +0 -0
  149. {cubevis-1.0.57 → cubevis-1.0.59}/tests/manual/iclean-demo/mask0-iclean.py +0 -0
  150. {cubevis-1.0.57 → cubevis-1.0.59}/tests/manual/iclean-demo/run-gclean.py +0 -0
  151. {cubevis-1.0.57 → cubevis-1.0.59}/tests/manual/iclean-demo/run-iclean-obj.py +0 -0
  152. {cubevis-1.0.57 → cubevis-1.0.59}/tests/manual/iclean-demo/run-iclean.py +0 -0
  153. {cubevis-1.0.57 → cubevis-1.0.59}/tests/manual/iclean-demo/vla-sim-jet-iclean.py +0 -0
  154. {cubevis-1.0.57 → cubevis-1.0.59}/tests/manual/iclean-first-look/run-fl-cont.py +0 -0
  155. {cubevis-1.0.57 → cubevis-1.0.59}/tests/manual/iclean-first-look/run-fl-line.py +0 -0
  156. {cubevis-1.0.57 → cubevis-1.0.59}/tests/manual/iclean-outlier/run-iclean.py +0 -0
  157. {cubevis-1.0.57 → cubevis-1.0.59}/tests/manual/iclean-outlier/test_outlier.txt +0 -0
  158. {cubevis-1.0.57 → cubevis-1.0.59}/tests/manual/iclean-remote/iclean_remote_webserver.py +0 -0
  159. {cubevis-1.0.57 → cubevis-1.0.59}/tests/manual/large-cube/run-largecube.py +0 -0
  160. {cubevis-1.0.57 → cubevis-1.0.59}/tests/manual/svg-test.py +0 -0
  161. {cubevis-1.0.57 → cubevis-1.0.59}/tests/manual/updatable-data-source/direct-plot.py +0 -0
  162. {cubevis-1.0.57 → cubevis-1.0.59}/tests/manual/updatable-data-source/simple-update.py +0 -0
  163. {cubevis-1.0.57 → cubevis-1.0.59}/tests/manual/updatable-data-source/updated-plot.py +0 -0
  164. {cubevis-1.0.57 → cubevis-1.0.59}/tests/manual/uranus-demo/uranus-iclean.py +0 -0
  165. {cubevis-1.0.57 → cubevis-1.0.59}/tests/manual/websocket-reconnect/client.html +0 -0
  166. {cubevis-1.0.57 → cubevis-1.0.59}/tests/manual/websocket-reconnect/server.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: cubevis
3
- Version: 1.0.57
3
+ Version: 1.0.59
4
4
  Summary: visualization toolkit and apps for casa
5
5
  License: LGPL
6
6
  Author-email: Darrell Schiebel <darrell@schiebel.us>,Pam Harris <pharris@nrao.edu>
@@ -0,0 +1,12 @@
1
+ import websockets
2
+ from cubevis.utils import is_colab
3
+
4
+ def create_ws_server(callback, ip_address, port):
5
+ """
6
+ Uniform wrapper for creating a WebSocket server.
7
+ """
8
+ if is_colab( ):
9
+ print( f'''websocket startup: {ip_address}/{port} (bind IP 0.0.0.0)''' )
10
+ return websockets.serve( callback, "0.0.0.0", port, origins=None )
11
+ else:
12
+ return websockets.serve( callback, ip_address, port )
@@ -16,7 +16,7 @@ dependencies = [
16
16
  ]
17
17
  requires-python = ">=3.11"
18
18
  readme = "README.rst"
19
- version = "1.0.57"
19
+ version = "1.0.59"
20
20
 
21
21
  [project.license]
22
22
  text = "LGPL"
@@ -1,80 +0,0 @@
1
- from cubevis.utils import is_colab
2
- import websockets
3
- import http
4
- import asyncio
5
- try:
6
- from websockets.http11 import Response
7
- except ImportError:
8
- Response = None # Fallback for very old versions
9
-
10
- log_path = "/content/package_debug.txt"
11
-
12
- try:
13
- from websockets.server import ServerConnection as BaseConnection
14
- IS_LEGACY = False
15
- except ImportError:
16
- from websockets.server import WebSocketServerProtocol as BaseConnection
17
- IS_LEGACY = True
18
-
19
- def universal_process_request(*args):
20
- """
21
- Handles CORS priming.
22
- Legacy signature: (path, request_headers)
23
- Modern signature: (request)
24
- """
25
- if IS_LEGACY:
26
- # Legacy passes: (path, headers)
27
- path, headers = args[0], args[1]
28
- method = "GET"
29
- else:
30
- request = args[0]
31
- path, headers, method = request.path, request.headers, request.method
32
-
33
- with open(log_path, "a") as f:
34
- f.write(f"Top-level process_request: {method} {path}\n")
35
-
36
- is_upgrade = "upgrade" in headers.get("Connection", "").lower()
37
-
38
- if not is_upgrade:
39
- origin = headers.get("Origin", "*")
40
- resp_headers = {
41
- "Content-Type": "text/plain",
42
- "Connection": "close",
43
- "Access-Control-Allow-Origin": origin,
44
- "Access-Control-Allow-Credentials": "true",
45
- "Access-Control-Allow-Methods": "GET, OPTIONS, POST",
46
- "Access-Control-Allow-Headers": "Content-Type, Authorization, X-Requested-With",
47
- }
48
-
49
- if method == "OPTIONS":
50
- return (http.HTTPStatus.NO_CONTENT, resp_headers, b"") if IS_LEGACY else Response(http.HTTPStatus.NO_CONTENT, "No Content", resp_headers)
51
-
52
- if method == "GET":
53
- return (http.HTTPStatus.OK, resp_headers, b"OK") if IS_LEGACY else Response(http.HTTPStatus.OK, "OK", resp_headers)
54
-
55
- return None
56
-
57
- class ColabWebSocketServerProtocol(BaseConnection):
58
- def __init__(self, *args, **kwargs):
59
- with open(log_path, "a") as f:
60
- f.write(f"ColabWebSocketServerProtocol.__init__ constructed\n")
61
- super().__init__(*args, **kwargs)
62
-
63
- def create_ws_server(callback, ip_address, port):
64
- host = "0.0.0.0" if is_colab() else ip_address
65
-
66
- # Pass everything. websockets.serve ignores unknown kwargs.
67
- conf = {
68
- "host": host,
69
- "port": port,
70
- "origins": None,
71
- "process_request": universal_process_request,
72
- "create_connection": ColabWebSocketServerProtocol,
73
- "create_protocol": ColabWebSocketServerProtocol
74
- }
75
-
76
- if is_colab():
77
- with open(log_path, "a") as f:
78
- f.write(f"Websocket startup: {host}:{port} | Mode: {'Legacy' if IS_LEGACY else 'Modern'}\n")
79
-
80
- return websockets.serve(callback, **conf)
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes