cubevis 1.0.37__py3-none-any.whl → 1.0.38__py3-none-any.whl

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.
cubevis/__version__.py CHANGED
@@ -1 +1 @@
1
- __version__ = '1.0.37'
1
+ __version__ = '1.0.38'
@@ -91,33 +91,84 @@ class DataPipe(DataSource,BokehInit):
91
91
  try:
92
92
  from google.colab import output
93
93
  import os
94
+ import json
94
95
  port = self.address[1]
95
96
 
96
97
  # Expose the port
97
98
  output.serve_kernel_port_as_iframe(port)
98
99
 
99
- # Get the kernel domain and inject it into JavaScript
100
- # Colab sets environment variables we can use
101
- kernel_id = os.environ.get('COLAB_KERNEL_ID', '')
100
+ # Try to get kernel connection info
101
+ # Colab stores connection info in environment variables or files
102
+ kernel_info = {}
102
103
 
103
- # Inject the kernel WebSocket domain into the page
104
- from IPython.display import display, Javascript
104
+ # Check various environment variables
105
+ for key in ['COLAB_KERNEL_ID', 'JPY_SESSION_NAME', 'KERNEL_ID',
106
+ 'COLAB_GPU', 'COLAB_TPU_ADDR', 'HOSTNAME']:
107
+ value = os.environ.get(key)
108
+ if value:
109
+ kernel_info[key] = value
110
+
111
+ # Try to read kernel connection file
112
+ try:
113
+ # Jupyter/Colab stores connection info in runtime files
114
+ runtime_dir = os.environ.get('JUPYTER_RUNTIME_DIR', '/root/.local/share/jupyter/runtime')
115
+ if os.path.exists(runtime_dir):
116
+ import glob
117
+ connection_files = glob.glob(os.path.join(runtime_dir, 'kernel-*.json'))
118
+ if connection_files:
119
+ with open(connection_files[0], 'r') as f:
120
+ conn_info = json.load(f)
121
+ kernel_info['connection'] = conn_info
122
+ except Exception as e:
123
+ print(f" Could not read kernel connection file: {e}")
105
124
 
106
- # The kernel domain follows the pattern:
107
- # 8080-{session}.{region}.prod.colab.dev
108
- # We need to discover this or pass it from Python
125
+ # Get the actual WebSocket URL by checking where requests go
126
+ # This is hacky but might work
127
+ try:
128
+ import socket
129
+ hostname = socket.gethostname()
130
+ kernel_info['hostname'] = hostname
131
+
132
+ # Try to get external URL
133
+ import requests
134
+ # Colab has an internal metadata service
135
+ try:
136
+ # This might reveal the actual kernel URL
137
+ metadata_url = "http://metadata.google.internal/computeMetadata/v1/instance/"
138
+ headers = {"Metadata-Flavor": "Google"}
139
+
140
+ # Try to get instance info
141
+ instance_info = {}
142
+ for key in ['hostname', 'name', 'zone', 'id']:
143
+ try:
144
+ resp = requests.get(metadata_url + key, headers=headers, timeout=1)
145
+ if resp.status_code == 200:
146
+ instance_info[key] = resp.text
147
+ except:
148
+ pass
149
+
150
+ if instance_info:
151
+ kernel_info['instance'] = instance_info
152
+ except:
153
+ pass
154
+
155
+ except Exception as e:
156
+ print(f" Could not get hostname: {e}")
157
+
158
+ print(f"✓ Colab: Exposed WebSocket port {port} via iframe proxy")
159
+ print(f" Kernel info: {json.dumps(kernel_info, indent=2)}")
160
+
161
+ # Inject whatever we found into JavaScript
162
+ from IPython.display import display, Javascript
109
163
 
110
164
  display(Javascript(f"""
111
165
  window.CUBEVIS_COLAB_PORT_{port} = {{
112
166
  port: {port},
113
- kernelId: '{kernel_id}'
167
+ kernelInfo: {json.dumps(kernel_info)}
114
168
  }};
115
169
  console.log('Colab port info injected:', window.CUBEVIS_COLAB_PORT_{port});
116
170
  """))
117
171
 
118
- print(f"✓ Colab: Exposed WebSocket port {port} via iframe proxy")
119
- print(f" Kernel ID: {kernel_id}")
120
-
121
172
  except Exception as e:
122
173
  print(f"⚠ Warning: Could not expose port {port} in Colab: {e}")
123
174
  import traceback
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: cubevis
3
- Version: 1.0.37
3
+ Version: 1.0.38
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>
@@ -50,7 +50,7 @@ cubevis/bokeh/models/_showable.py,sha256=7BtQgl0tMSqcZrPrH4FnC2ei_FOVnO-SIhBH1_r
50
50
  cubevis/bokeh/models/_tip.py,sha256=yNoUWods0xxva1WOfh5It_Y8hbpVy8RVXUmm8p7a58M,1431
51
51
  cubevis/bokeh/models/_tip_button.py,sha256=mwk1C7BMVlZrAAyQLn45S4Q9GEQfU_wU2MWpO0Gwzj4,1610
52
52
  cubevis/bokeh/sources/__init__.py,sha256=4FsudFuVU4o7VG5OG3K1tiMoxIXcJWNz_K9yzMDE8ls,1581
53
- cubevis/bokeh/sources/_data_pipe.py,sha256=ujO6IBu1DJmG3wnumo2soGLeo7ZG10twMloXobw_qmk,21372
53
+ cubevis/bokeh/sources/_data_pipe.py,sha256=7M6D5grIVI5iNI-_E3EsCyDGL46hTR93RGGkHqt8t8c,23630
54
54
  cubevis/bokeh/sources/_image_data_source.py,sha256=5sEWdfqoMk08HQ0JWg6bHJ34dWmphHm52nOZywSAE5c,3789
55
55
  cubevis/bokeh/sources/_image_pipe.py,sha256=pQ05VynLuJbedGja7aXDbVXFkOYbdMceOuOEj-QuluQ,28692
56
56
  cubevis/bokeh/sources/_spectra_data_source.py,sha256=qL1IOjSefWlycaqS4Pz5EHwg-1EwCVmNwxysP9lxDeM,2451
@@ -127,8 +127,8 @@ cubevis/utils/_pkgs.py,sha256=mu2CCzndmJZYP81UkFhxveW_CisWLUvagJVolHOEVgM,2294
127
127
  cubevis/utils/_regions.py,sha256=TdAg4ZUUyhg3nFmX9_KLboqmc0LkyOdEW8M1WDR5Udk,1669
128
128
  cubevis/utils/_static.py,sha256=rN-sqXNqQ5R2M3wmPHU1GPP5OTyyWQlUPRuimCrht-g,2347
129
129
  cubevis/utils/_tiles.py,sha256=A9W1X61VOhBMTOKXVajzOIoiV2FBdO5N2SFB9SUpDOo,7336
130
- cubevis/__version__.py,sha256=Dk6NgvEkA90YBcCXKEWVV2hm_K3yECrlMiKnBRcIDXU,22
131
- cubevis-1.0.37.dist-info/WHEEL,sha256=B19PGBCYhWaz2p_UjAoRVh767nYQfk14Sn4TpIZ-nfU,87
132
- cubevis-1.0.37.dist-info/METADATA,sha256=gYmpxgO-lAivKsf19d3o4JgIuez4ZAQU91CjEKWUasU,2632
133
- cubevis-1.0.37.dist-info/licenses/LICENSE,sha256=IMF9i4xIpgCADf0U-V1cuf9HBmqWQd3qtI3FSuyW4zE,26526
134
- cubevis-1.0.37.dist-info/RECORD,,
130
+ cubevis/__version__.py,sha256=PxK7trj3XRaJAWKdUXKTshZP_6DU3CFjTcHnfhWOFrA,22
131
+ cubevis-1.0.38.dist-info/WHEEL,sha256=B19PGBCYhWaz2p_UjAoRVh767nYQfk14Sn4TpIZ-nfU,87
132
+ cubevis-1.0.38.dist-info/METADATA,sha256=Ug9X2LLzH_zLtIUKbzy2O5Omq5uHNSXxnkbVoEsXlFc,2632
133
+ cubevis-1.0.38.dist-info/licenses/LICENSE,sha256=IMF9i4xIpgCADf0U-V1cuf9HBmqWQd3qtI3FSuyW4zE,26526
134
+ cubevis-1.0.38.dist-info/RECORD,,