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