lavavu-osmesa 1.8.81__cp310-cp310-manylinux_2_28_x86_64.whl → 1.8.84__cp310-cp310-manylinux_2_28_x86_64.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.
lavavu/control.py CHANGED
@@ -481,8 +481,20 @@ class Window(_Container):
481
481
  self.align = align
482
482
  self.wrapper = wrapper
483
483
  self.fullscreen = fullscreen
484
- if resolution is not None:
485
- viewer.output_resolution = resolution
484
+ if resolution is None:
485
+ #Default to largest of 640x480 or output res / 2
486
+ resolution = [0,0]
487
+ resolution[0] = max(viewer.output_resolution[0]//2, 640)
488
+ resolution[1] = int(resolution[0] * viewer.output_resolution[1]/viewer.output_resolution[0])
489
+ elif isinstance(resolution, int):
490
+ #Passed interger - interpert as width
491
+ resolution = [resolution,0]
492
+
493
+ if resolution[1] == 0:
494
+ #Width only, set height based on output aspect ratio
495
+ resolution[1] = int(resolution[0] * viewer.output_resolution[1]/viewer.output_resolution[0])
496
+
497
+ viewer.output_resolution = resolution
486
498
 
487
499
  def html(self):
488
500
  #print(self.viewer["resolution"], self.viewer.output_resolution)
lavavu/html/webview.html CHANGED
@@ -27,7 +27,7 @@
27
27
 
28
28
  <input id="fileinput" type="file" style="visibility:hidden" onchange="useFileInput(this)" />
29
29
 
30
- <script async src="https://cdn.jsdelivr.net/gh/lavavu/lavavu.github.io@1.8.81/LavaVu-amalgamated.min.js"></script>
30
+ <script async src="https://cdn.jsdelivr.net/gh/lavavu/lavavu.github.io@1.8.84/LavaVu-amalgamated.min.js"></script>
31
31
  <!--script src="dat.gui.min.js"></script>
32
32
  <script src="OK-min.js"></script>
33
33
 
lavavu/lavavu.py CHANGED
@@ -4194,7 +4194,7 @@ class Viewer(dict):
4194
4194
 
4195
4195
  try:
4196
4196
  fn = self.app.video(filename, fps, resolution[0], resolution[1], start, end, quality, **kwargs)
4197
- player(fn)
4197
+ player(fn, **kwargs)
4198
4198
  except (Exception) as e:
4199
4199
  print("Video output error: " + str(e))
4200
4200
  pass
@@ -4357,8 +4357,10 @@ class Viewer(dict):
4357
4357
 
4358
4358
  Parameters
4359
4359
  ----------
4360
- resolution : tuple(int,int)
4361
- Frame size in pixels: width, height. Defaults to the viewer default output resolution, usually (640,480)
4360
+ resolution : int, tuple(int,int)
4361
+ Frame size in pixels: width, height.
4362
+ Defaults to half the viewer default output resolution with a minimum width of 640 pixels
4363
+ If a single integer is passed, will use as the width while maintaining output aspect ratio
4362
4364
  menu : boolean
4363
4365
  Adds a menu to the top right allowing control of vis parameters, defaults to on
4364
4366
  """
@@ -4402,7 +4404,7 @@ class Viewer(dict):
4402
4404
  vdat = {}
4403
4405
  if len(self.state["views"]) and self.state["views"][0]:
4404
4406
  def copyview(dst, src):
4405
- for key in ["translate", "rotate", "xyzrotate", "fov"]:
4407
+ for key in ["translate", "rotate", "xyzrotate", "fov", "focus"]:
4406
4408
  if key in src:
4407
4409
  dst[key] = copy.copy(src[key])
4408
4410
  #Round down arrays to max 3 decimal places
@@ -4426,7 +4428,6 @@ class Viewer(dict):
4426
4428
  #Return
4427
4429
  return vdat
4428
4430
 
4429
-
4430
4431
  def getview(self):
4431
4432
  """
4432
4433
  Get current view settings
@@ -5232,7 +5233,7 @@ class DrawData(object):
5232
5233
  renderlist = [geomnames[value] for value in geomtypes if value == self.data.type]
5233
5234
  return ' '.join(['DrawData("' + r + '")' for r in renderlist]) + ' ==> ' + str(self.available)
5234
5235
 
5235
- def player(filename, width=None, height=None, params=""):
5236
+ def player(filename, params="controls autoplay loop", **kwargs):
5236
5237
  """
5237
5238
  Shows a video inline within an ipython notebook.
5238
5239
  If IPython is not running, just returns
@@ -5241,43 +5242,62 @@ def player(filename, width=None, height=None, params=""):
5241
5242
  ----------
5242
5243
  filename : str
5243
5244
  Path and name of the file to play
5244
- width : int
5245
- Fixed width of player window, otherwise will use video resolution
5246
- height : int
5247
- Fixed height of player window, otherwise will use video resolution
5248
5245
  params : str
5249
- Any other parameters to add to the <video> tag, eg: "autoplay"
5246
+ Additional html attributes for the video control, see:
5247
+ https://developer.mozilla.org/en-US/docs/Web/HTML/Element/video
5248
+ **kwargs :
5249
+ width=W,height=H will set fixed size of player window
5250
+ See further player arguments at
5251
+ https://ipython.readthedocs.io/en/latest/api/generated/IPython.display.html#IPython.display.Video
5250
5252
  """
5251
5253
 
5252
5254
  if is_notebook():
5253
- from IPython.display import display,HTML,Video
5254
- extra_params = params
5255
- if width and height:
5256
- extra_params += ' width=' + str(width) + ' height=' + str(height)
5255
+ from IPython.display import display,HTML,Video,Javascript
5256
+ import uuid
5257
+ vid = 'video_' + str(uuid.uuid4())[:8]
5257
5258
 
5259
+ '''
5258
5260
  def get_fn(filename):
5259
5261
  import os
5262
+ #This is unreliable, path incorrect on NCI
5260
5263
  nbpath = os.getenv('JPY_SESSION_NAME')
5261
5264
  if nbpath is not None:
5262
5265
  import os.path
5263
- relpath = os.path.relpath(os.getcwd(), start=nbpath)
5266
+ relpath = os.path.relpath(os.getcwd(), start=os.path.dirname(nbpath))
5264
5267
  return relpath + '/' + filename
5265
5268
  return filename
5269
+ ''';
5266
5270
 
5267
5271
  import uuid
5268
5272
  uid = uuid.uuid1()
5269
- filename_rel = get_fn(filename)
5270
5273
 
5271
- display(Video(filename, width=width, height=height))
5272
- #display(HTML(f"""
5273
- #<video controls loop {extra_params}>
5274
- # <source src="{filename_rel}">
5275
- #Sorry, your browser doesn't support embedded videos
5276
- #</video><br>
5277
- #"""))
5274
+ #Embed player
5275
+ display(Video(url=os.path.relpath(filename), html_attributes=f"id='{vid}' " + params, **kwargs))
5278
5276
 
5279
5277
  #Add download link
5280
- display(HTML('<a href="{fn}" download>Download Video</a>'.format(fn=filename)))
5278
+ display(HTML(f'<a id="link_{vid}" href="{filename}" download>Download Video</a>'))
5279
+
5280
+ # Fallback - replace url on gadi and similar jupyterhub installs with
5281
+ # fixed working directory that doesn't match notebook dir
5282
+ # check the video tag url and remove subpath on 404 error
5283
+ display(Javascript(f"""
5284
+ let el = document.getElementById('{vid}');
5285
+ let url = el.src;
5286
+ fetch(url, {{method: 'HEAD'}}).then(response=>{{
5287
+ if(response.status == 404) {{
5288
+ console.log("Bad video url: " + url);
5289
+ let toppath = "/files/home/"
5290
+ let baseurl = url.substring(0, url.indexOf(toppath)+toppath.length);
5291
+ let endurl = url.substring(url.indexOf("{filename}"));
5292
+ let fixed = baseurl + endurl;
5293
+ console.log("Replaced video url: " + fixed);
5294
+ el.src = fixed;
5295
+ //Also fix download link
5296
+ document.getElementById('link_{vid}').href = fixed;
5297
+ }}
5298
+ }});
5299
+ """))
5300
+
5281
5301
 
5282
5302
  #Class for managing video animation recording
5283
5303
  class Video(object):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: lavavu-osmesa
3
- Version: 1.8.81
3
+ Version: 1.8.84
4
4
  Summary: Python interface to LavaVu OpenGL 3D scientific visualisation utilities
5
5
  Author-email: Owen Kaluza <owen@kaluza.id.au>
6
6
  License: ### Licensing
@@ -221,7 +221,7 @@ Requires-Dist: jupyter-server-proxy
221
221
  [![Build Status](https://github.com/lavavu/LavaVu/workflows/Test/badge.svg)](https://github.com/lavavu/LavaVu/actions?query=workflow:Test)
222
222
  [![Deploy Status](https://github.com/lavavu/LavaVu/workflows/Deploy/badge.svg?branch=1.7.3)](https://github.com/lavavu/LavaVu/actions?query=workflow:Deploy)
223
223
  [![DOI](https://zenodo.org/badge/45163055.svg)](https://zenodo.org/badge/latestdoi/45163055)
224
- [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/lavavu/LavaVu/1.8.81)
224
+ [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/lavavu/LavaVu/1.8.84)
225
225
 
226
226
  A scientific visualisation tool with a python interface for fast and flexible visual analysis.
227
227
 
@@ -1,42 +1,42 @@
1
- lavavu_osmesa-1.8.81.dist-info/top_level.txt,sha256=JptS0k1nlBumjLs_0hITr3_XUJhxqvKBXD2jGho3E3A,7
2
- lavavu_osmesa-1.8.81.dist-info/RECORD,,
3
- lavavu_osmesa-1.8.81.dist-info/entry_points.txt,sha256=LC2qXR6EMe45Cb7zGAF99R9HFrAECP6Qkp_YuG6HZB0,44
4
- lavavu_osmesa-1.8.81.dist-info/LICENSE.md,sha256=EhfNgC6BYh5gDEaq4tcrN3S0wbO4CtJO46botJnCF8c,8603
5
- lavavu_osmesa-1.8.81.dist-info/METADATA,sha256=0AGMy35QtwKh_TQgybtGdDQ1xlwXRbZs2CoWk3jwQ0U,18244
6
- lavavu_osmesa-1.8.81.dist-info/WHEEL,sha256=pNQYdFK8JbZcKxD8rYioE4NVlKyArF8gQtbAZyXo2_w,113
1
+ lavavu_osmesa-1.8.84.dist-info/top_level.txt,sha256=JptS0k1nlBumjLs_0hITr3_XUJhxqvKBXD2jGho3E3A,7
2
+ lavavu_osmesa-1.8.84.dist-info/RECORD,,
3
+ lavavu_osmesa-1.8.84.dist-info/entry_points.txt,sha256=LC2qXR6EMe45Cb7zGAF99R9HFrAECP6Qkp_YuG6HZB0,44
4
+ lavavu_osmesa-1.8.84.dist-info/LICENSE.md,sha256=EhfNgC6BYh5gDEaq4tcrN3S0wbO4CtJO46botJnCF8c,8603
5
+ lavavu_osmesa-1.8.84.dist-info/METADATA,sha256=fsMw6VpQGwXKb5OGVncG5qP2pCki8tRXjWJIpqfpWiI,18244
6
+ lavavu_osmesa-1.8.84.dist-info/WHEEL,sha256=pNQYdFK8JbZcKxD8rYioE4NVlKyArF8gQtbAZyXo2_w,113
7
+ lavavu_osmesa.libs/libavcodec-e9f4b4d9.so.61.24.100,sha256=Regr2rtawk7_PlO-Lj1j_LA7aNPPcVjZy-zV32hXrYg,15042481
8
+ lavavu_osmesa.libs/libavutil-54907a11.so.59.46.100,sha256=a2oV34NnMLzX6Wx58JEQxI8682WR9Amzu6Fvw4Yqpi0,1009281
7
9
  lavavu_osmesa.libs/libglapi-d9260dde.so.0.0.0,sha256=lk2-KJ-TfqKogN82K9yu6G_StS6MtPDFNP7dN1CZSjo,247921
8
10
  lavavu_osmesa.libs/libdrm-b0291a67.so.2.4.0,sha256=K48ZAlNAuvSdX7i2toETxCm6886w4E17JmP2c8RM2-0,96417
9
- lavavu_osmesa.libs/libavformat-2c4b075e.so.61.9.100,sha256=FscWR6X-KZVOGGZHqilkHwwOUdlxYtPztWaIfmLP5Yc,2702745
10
- lavavu_osmesa.libs/libswscale-4ff68837.so.8.9.101,sha256=QluomWhZTk8Fa6lREeOBDJ8N5ztrfAk07Du3TF4cWUM,648705
11
- lavavu_osmesa.libs/libtiff-97fb0e7a.so.5.3.0,sha256=ReUrhN0yHYGg-Fws0_oHS7soNRaqYFAMCqpS5FXXbMU,517801
11
+ lavavu_osmesa.libs/libswscale-4ff68837.so.8.9.101,sha256=XJH4L1oSKLzYkPmBfMJL8daHDTWPNYMGWFxpc61O1IM,648705
12
12
  lavavu_osmesa.libs/libx264-6f5370e2.so.164,sha256=eB4ZQMvXUl_lla5tVyk8Xg8MVldtlDovZOpc8g0WhlE,2435841
13
13
  lavavu_osmesa.libs/libzstd-76b78bac.so.1.4.4,sha256=F2-A6yQ3AA2N0vHZe-81OfEUOcwgjjWiOnYAxk2Kflc,686073
14
- lavavu_osmesa.libs/libavutil-1e63d46c.so.59.46.100,sha256=khP7ezU-qUnsHWF-UAqWkyVrR4S6Aq3Gyod4UlvNMV8,1009281
15
14
  lavavu_osmesa.libs/libjpeg-da649728.so.62.2.0,sha256=IoO1YzjSjixVQSs5SiWK95E-RREenSFc2B97tb-x_5E,437961
16
15
  lavavu_osmesa.libs/libtinfo-3a2cb85b.so.6.1,sha256=6Co83bxdB4J-rBU5l0p_7HpGlU46RG2EDnf-LpF5kBY,194041
17
16
  lavavu_osmesa.libs/libpcre2-8-516f4c9d.so.0.7.1,sha256=IcbljW_oKuAVlrAwKz8qtRZxfi1sQH_iKxPSoNpzsmU,547745
18
- lavavu_osmesa.libs/libOSMesa-25f49adf.so.8.0.0,sha256=_WFDCZkS9KhK_WNSRQUG-CcR4NgKRfGtGaSkw--0EKw,12995657
17
+ lavavu_osmesa.libs/libOSMesa-25f49adf.so.8.0.0,sha256=VvnkEih66KdjLynA69Wfft-HaBzyQefNVlMD1DZzpyg,12995657
18
+ lavavu_osmesa.libs/libswresample-3aad7a38.so.5.4.100,sha256=qlNS5bfKiZBO6wo_UMOSKHg1zF7ifx7PUzhLgbNYSr0,128265
19
+ lavavu_osmesa.libs/libtiff-5faff81f.so.5.3.0,sha256=_nDyPRF3kPCuqI_DmXegna3ky_SOJ0mmz7rROMg8KtQ,517801
19
20
  lavavu_osmesa.libs/libbz2-e34b29ae.so.1.0.6,sha256=t0Rx5MGhoqFd8hOzCgew5TwGvZFpy_XTk-dae2FXAEs,79145
20
- lavavu_osmesa.libs/libLLVM-17-daa109ce.so,sha256=0F8UnMl03hrXBMto2ewBZRdnfzIbg6qvo-qVBIWY7H8,120778961
21
+ lavavu_osmesa.libs/libavformat-dd2ce9c7.so.61.9.100,sha256=zYqQ_5Bvr8NrcLx6SeagIy8-mFXfVooDKA6BSC6ZGhk,2702745
21
22
  lavavu_osmesa.libs/libjbig-2504a0c3.so.2.1,sha256=VejIx8sDX3xfCuJkrk9HEyWBYjZbUiTyIRuoPqT-ibE,54265
22
- lavavu_osmesa.libs/libswresample-0ba304d7.so.5.4.100,sha256=i6FYI2DuKjgjVxmbqNm2mXewyRNM-a6WSzgGJwFKuZc,128265
23
23
  lavavu_osmesa.libs/libselinux-64a010fa.so.1,sha256=dNJwuKqYp8fwkmrQ9hom3hVQ-lYUkNxxHb4vmrk8zmE,195097
24
24
  lavavu_osmesa.libs/libffi-3a37023a.so.6.0.2,sha256=Q1Rq1XplFBXNFHvg92SNmTgQ0T6E9wmcqZcgOZ7DgLE,42489
25
- lavavu_osmesa.libs/libavcodec-c07e82e9.so.61.24.100,sha256=xMKCq1bFKmc36ShXE1AXmXVVJbxHjQiZo1O-nmDPwvs,15042481
25
+ lavavu_osmesa.libs/libLLVM-17-51492e70.so,sha256=s_fu2V3vueF5k7yndLsOoMFVm3WjR4z7BrEPBATtmV8,120758265
26
26
  lavavu/server.py,sha256=L-_yPCbNfwYxJCPjDQtr_lxPnDp4oMNVFyxXhBERYrQ,12468
27
27
  lavavu/LavaVuPython.py,sha256=ixhceiAr0gGGfCe3d2cY0IIgS4hbgoYJGa_RfgAmmrU,33207
28
28
  lavavu/amalgamate.py,sha256=Xloq1IZ4VUvYiROzQtwKcQIWC65c7EZrdiGVhZdolL8,586
29
- lavavu/_LavaVuPython.cpython-310-x86_64-linux-gnu.so,sha256=x2QO3iY8Nw9QWJzQzPvJfsauB-AoQGm0TFxox9MwFfg,76661833
29
+ lavavu/_LavaVuPython.cpython-310-x86_64-linux-gnu.so,sha256=-LRSNK0lFfcc7PLQXkSfUST6JH7czkuI3enmkp3gFeo,76661833
30
30
  lavavu/__init__.py,sha256=JroZQiUbuVN7ifixk2zNDGlyLGaM8bqfRbw4D_F9qIQ,191
31
31
  lavavu/vutils.py,sha256=6Vm_xl1bp9mWlfk7jgLDwbRw-tdE_oxin77YkLel3_4,5437
32
32
  lavavu/aserver.py,sha256=SfFvLeDTcx1XtS8fY_HIrDmh3q9HicCBRSAriY5yyOE,12003
33
33
  lavavu/points.py,sha256=jRRtA6CrcA46Y2jUJmkxnIiVoMC5a14xEd_ojhmjhz4,5871
34
34
  lavavu/tracers.py,sha256=0dB6v9Jg5G-IeZxiVFvbPoTycGvyAQBtgyEAZUmq4XU,4257
35
35
  lavavu/dict.json,sha256=lsZEHc7Bb6_lt7tkSBQMgkq7AEn_2hnhWzzdokmvIY8,52729
36
- lavavu/lavavu.py,sha256=BvswUID0WxpWuxV29qHfRj5AAeHkmm-QvuhfYnxqhZc,207324
36
+ lavavu/lavavu.py,sha256=B_n4pude411uaNukrugiM3JUdKgWvhW3q6UxfFCoFxs,208383
37
37
  lavavu/__main__.py,sha256=EbDetijCjyoiNxmExqnDGoRVs996tSVave5DML9zuMY,235
38
38
  lavavu/font.bin,sha256=fvi5zkvmq6gh9v3jXedBVuxNJWKmHtbjECzv6eT9wb4,225360
39
- lavavu/control.py,sha256=eNocZPc-2Dz-nSty_KRz_9RzLvbU0clJGuAV3qnzxbU,65841
39
+ lavavu/control.py,sha256=C5fLZeeNazRODDlWyWhKINry86uW7jAu3x_MvmrKeO8,66434
40
40
  lavavu/convert.py,sha256=tbYRjLE2l1hI4d6tsW41Lia1JXmrWSc0-JAYCiMrjys,35516
41
41
  lavavu/html/OK-min.js,sha256=-4Gc1-dWfxP_w6r9ZOHa8u-X2BlGUoSQbX68lwCxQ3E,39115
42
42
  lavavu/html/dat.gui.min.js,sha256=S4_QjoXe4IOpU0f0Sj5jEQLTWPoX9uRl1ohB91jyhuw,56992
@@ -57,7 +57,7 @@ lavavu/html/server.js,sha256=b5eNlWWbiEk90n3WARJ1Mh7lmfHM0pOtZfrrmM-wfyc,7099
57
57
  lavavu/html/baseviewer.js,sha256=u3UhC1At6rMBKmcQ7d2DXTRxQ20wsQkc4lqA-7sL7i4,9567
58
58
  lavavu/html/stats.min.js,sha256=iiwrLW4SUBhrzWrfW2VZP_9mowHX-Ks1EKORFv4EHdE,1965
59
59
  lavavu/html/LavaVu-amalgamated.css,sha256=iE2xrxFcwmY0AcASrXxNa_RpvFEbS_YO4H5OILbPteE,8640
60
- lavavu/html/webview.html,sha256=XMXO4b4vKNYXBp5Duzur80g86yT-9tTkbEJtMp1emrY,1522
60
+ lavavu/html/webview.html,sha256=FtI5i_Fw4DPfDfJyY6OnphZmyAmqFW1Mc14I6ouG9nM,1522
61
61
  lavavu/shaders/default.frag,sha256=xCkYz8QriRlnAr-NtenZSIWI_liSxv9jz3Lp5immK9k,258
62
62
  lavavu/shaders/lineShader.frag,sha256=aCmOWC20fHinR32p6LZPdCZP6abn-K1V2slbJ_5NoVA,945
63
63
  lavavu/shaders/volumeShader.vert,sha256=uGdQjGqi7V5kE6V7nxymfugtU4cbf6u570xBy13RgmY,78
index f24dfad..686594a 100755
Binary file
index 8f7fb14..eb49905 100755
Binary file
index 3d47415..b189751 100755
Binary file