vidavis 0.0.15__py3-none-any.whl → 0.1.1__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.
vidavis/__version__.py CHANGED
@@ -1 +1 @@
1
- __version__ = '0.0.15'
1
+ __version__ = '0.1.1'
@@ -184,7 +184,7 @@ class MsRaster(MsPlot):
184
184
  start = time.time()
185
185
 
186
186
  # If previous plot was shown, unlink from data streams
187
- super().unlink_plot_streams()
187
+ super().unlink_plot_locate()
188
188
 
189
189
  # Clear for new plot
190
190
  self._reset_plot(clear_plots)
@@ -518,9 +518,9 @@ class MsRaster(MsPlot):
518
518
  def _locate_gui_points(self, x, y, data, bounds):
519
519
  ''' Callback for locate streams '''
520
520
  if self._gui_plot_data:
521
- super()._locate_cursor(x, y, self._gui_plot_data, self._gui_panel[0])
522
- super()._locate_points(data, self._gui_plot_data, self._gui_panel[0])
523
- super()._locate_box(bounds, self._gui_plot_data, self._gui_panel[0])
521
+ super()._locate_cursor(x, y, self._gui_plot_data, self._gui_panel[0][0][1])
522
+ super()._locate_points(data, self._gui_plot_data, self._gui_panel[2])
523
+ super()._locate_box(bounds, self._gui_plot_data, self._gui_panel[3])
524
524
  return self._last_gui_plot
525
525
 
526
526
  def _do_gui_selection(self):
@@ -551,6 +551,10 @@ class MsRaster(MsPlot):
551
551
 
552
552
  # Make single Overlay raster plot for DynamicMap
553
553
  gui_plot = self._do_plot(True)
554
+ gui_plot = gui_plot.opts(
555
+ hv.opts.QuadMesh(**self._locate_plot_options),
556
+ hv.opts.Scatter(**self._locate_plot_options)
557
+ )
554
558
 
555
559
  # Update color limits in gui with data range
556
560
  plot_params = self._raster_plot.get_plot_params()
@@ -598,7 +602,7 @@ class MsRaster(MsPlot):
598
602
  if not self._gui_panel:
599
603
  return None
600
604
 
601
- selectors = self._gui_panel[2][1]
605
+ selectors = self._gui_panel[0][2][1]
602
606
  if name == "selectors":
603
607
  return selectors
604
608
 
@@ -749,19 +753,19 @@ class MsRaster(MsPlot):
749
753
  ''' Callback to start spinner when Plot button clicked. '''
750
754
  if self._gui_panel:
751
755
  # Start spinner
752
- spinner = self._gui_panel[2][2][1]
756
+ spinner = self._gui_panel[0][2][2][1]
753
757
  spinner.value = plot_clicked
754
758
 
755
759
  def _update_plot_status(self, plot_changed):
756
760
  ''' Change button color when plot inputs change. '''
757
761
  if self._gui_panel:
758
762
  # Set button color
759
- button = self._gui_panel[2][2][0]
763
+ button = self._gui_panel[0][2][2][0]
760
764
  button.button_style = 'solid' if plot_changed else 'outline'
761
765
 
762
766
  def _show_plot_inputs(self):
763
767
  ''' Show inputs for raster plot in column in GUI tab '''
764
- inputs_column = self._gui_panel[0][1]
768
+ inputs_column = self._gui_panel[1]
765
769
  super()._fill_inputs_column(inputs_column)
766
770
 
767
771
  ###
@@ -51,23 +51,28 @@ class PsData:
51
51
  print(ps_summary)
52
52
  elif columns == "by_ms":
53
53
  for row in ps_summary.itertuples(index=False):
54
- print(f"MSv4 name: {row[0]}")
55
- print(f"intent: {row[1]}")
54
+ print(f"name: {row[0]}")
55
+ print(f"scan_intents: {row[1]}")
56
56
  shape = row[2]
57
57
  print(f"shape: {shape[0]} times, {shape[1]} baselines, {shape[2]} channels, {shape[3]} polarizations")
58
- print(f"polarization: {row[3]}")
59
- scans = [str(scan) for scan in row[4]]
58
+ print(f"execution_block_UID: {row[3]}")
59
+ print(f"polarization: {row[4]}")
60
+ scans = [str(scan) for scan in row[5]]
60
61
  print(f"scan_name: {scans}")
61
- print(f"spw_name: {row[5]}")
62
- fields = [str(field) for field in row[6]]
62
+ print(f"spw_name: {row[6]}")
63
+ print(f"spw_intents: {row[7]}")
64
+ fields = [str(field) for field in row[8]]
63
65
  print(f"field_name: {fields}")
64
- sources = [str(source) for source in row[7]]
66
+ sources = [str(source) for source in row[9]]
65
67
  print(f"source_name: {sources}")
66
- lines = [str(line) for line in row[8]]
68
+ lines = [str(line) for line in row[10]]
67
69
  print(f"line_name: {lines}")
68
- field_coords = row[9]
70
+ field_coords = row[11]
69
71
  print(f"field_coords: ({field_coords[0]}) {field_coords[1]} {field_coords[2]}")
70
- print(f"frequency range: {row[10]:e} - {row[11]:e}")
72
+ print(f"session_reference_UID: {row[12]}")
73
+ print(f"scheduling_block_UID: {row[13]}")
74
+ print(f"project_UID: {row[14]}")
75
+ print(f"frequency range: {row[15]:e} - {row[16]:e}")
71
76
  print("-----")
72
77
  else:
73
78
  if isinstance(columns, str):
@@ -41,9 +41,9 @@ def update_cursor_location(cursor, plot_axes, xds, cursor_locate_box):
41
41
  ''' Show data values for cursor x,y position in cursor location box (pn.WidgetBox) '''
42
42
  # Convert plot values to selection values to select plot data
43
43
  cursor_locate_box.clear()
44
-
45
44
  x, y = cursor
46
45
  x_axis, y_axis, vis_axis = plot_axes
46
+
47
47
  cursor_position = {x_axis: x, y_axis: y}
48
48
  cursor_location = _locate_point(xds, cursor_position, vis_axis)
49
49
 
@@ -54,29 +54,32 @@ def update_cursor_location(cursor, plot_axes, xds, cursor_locate_box):
54
54
  # Add location column to widget box
55
55
  cursor_locate_box.append(location_column)
56
56
 
57
- def update_points_location(data, plot_axes, xds, points_tab_column, logger):
57
+ def update_points_location(data, plot_axes, xds, points_tab_feed):
58
58
  ''' Show data values for points in point_draw in tab and log '''
59
- points_tab_column.clear()
59
+ points_tab_feed.clear()
60
+ locate_log = []
60
61
  if data:
61
62
  x_axis, y_axis, vis_axis = plot_axes
62
- logger.info("Locate selected points:")
63
-
63
+ message = f"Locate {len(data['x'])} points:"
64
+ locate_log.append(message)
64
65
  for point in list(zip(data['x'], data['y'])):
65
66
  # Locate point
66
67
  point_position = {x_axis: point[0], y_axis: point[1]}
67
68
  point_location = _locate_point(xds, point_position, vis_axis)
68
69
  # Format location and add to points locate column
69
70
  location_layout = _layout_point_location(point_location)
70
- points_tab_column.append(location_layout)
71
- points_tab_column.append(pn.layout.Divider())
71
+ points_tab_feed.append(location_layout)
72
+ points_tab_feed.append(pn.layout.Divider())
72
73
 
73
74
  # Format and add to log
74
75
  location_list = [f"{static_text.name}={static_text.value}" for static_text in point_location]
75
- logger.info(", ".join(location_list))
76
+ locate_log.append(", ".join(location_list))
77
+ return locate_log
76
78
 
77
- def update_box_location(bounds, plot_axes, xds, box_tab_column, logger):
79
+ def update_box_location(bounds, plot_axes, xds, box_tab_feed):
78
80
  ''' Show data values for points in box_select in tab and log '''
79
- box_tab_column.clear()
81
+ box_tab_feed.clear()
82
+ locate_log = []
80
83
  if bounds:
81
84
  x_axis, y_axis, vis_axis = plot_axes
82
85
  box_bounds = {x_axis: (bounds[0], bounds[2]), y_axis: (bounds[1], bounds[3])}
@@ -84,18 +87,19 @@ def update_box_location(bounds, plot_axes, xds, box_tab_column, logger):
84
87
 
85
88
  message = f"Locate {npoints} points"
86
89
  message += " (only first 100 shown):" if npoints > 100 else ":"
87
- logger.info(message)
88
- box_tab_column.append(pn.pane.Str(message))
90
+ locate_log.append(message)
91
+ box_tab_feed.append(pn.pane.Str(message))
89
92
 
90
93
  for point in point_locations:
91
94
  # Format and add to box locate column
92
95
  location_layout = _layout_point_location(point)
93
- box_tab_column.append(location_layout)
94
- box_tab_column.append(pn.layout.Divider())
96
+ box_tab_feed.append(location_layout)
97
+ box_tab_feed.append(pn.layout.Divider())
95
98
 
96
99
  # Format and add to log
97
100
  location_list = [f"{static_text.name}={static_text.value}" for static_text in point]
98
- logger.info(", ".join(location_list))
101
+ locate_log.append(", ".join(location_list))
102
+ return locate_log
99
103
 
100
104
  def _locate_point(xds, position, vis_axis):
101
105
  '''
@@ -3,6 +3,7 @@ Base class for ms plots
3
3
  '''
4
4
 
5
5
  import os
6
+ import logging
6
7
  import time
7
8
 
8
9
  from bokeh.io import export_png, export_svg
@@ -29,7 +30,13 @@ class MsPlot:
29
30
 
30
31
  # Set logger: use toolviper logger else casalog else python logger
31
32
  self._logger = setup_logger(app_name, log_to_term=True, log_to_file=log_to_file, log_file=app_name.lower(), log_level=log_level.upper())
32
- self._logger.propagate = False # avoid repeating unformatted log messages in console
33
+
34
+ # For removing stdout logging when using locate
35
+ self._stdout_handler = None
36
+ for handler in self._logger.handlers:
37
+ if isinstance(handler, logging.StreamHandler):
38
+ self._stdout_handler = handler
39
+ break
33
40
 
34
41
  # Save parameters; ms set below
35
42
  self._show_gui = show_gui
@@ -142,10 +149,10 @@ class MsPlot:
142
149
  self._plot_params.clear()
143
150
  self._plot_axes = None
144
151
  if self._gui_panel is not None:
145
- self._gui_panel[0][2].clear() # locate points
146
- self._gui_panel[0][3].clear() # locate box
152
+ self._gui_panel[2].clear() # locate points
153
+ self._gui_panel[3].clear() # locate box
147
154
 
148
- def unlink_plot_streams(self):
155
+ def unlink_plot_locate(self):
149
156
  ''' Disconnect streams when plot data is going to be replaced '''
150
157
  if self._show_panel and len(self._show_panel.objects) == 4:
151
158
  # Remove dmap (streams with callback) from previous plot
@@ -203,8 +210,8 @@ class MsPlot:
203
210
  )
204
211
  if inputs_column:
205
212
  self._show_panel.append(('Plot Inputs', inputs_column))
206
- self._show_panel.append(('Locate Selected Points', pn.Column()))
207
- self._show_panel.append(('Locate Selected Box', pn.Column()))
213
+ self._show_panel.append(('Locate Selected Points', pn.Feed(sizing_mode='stretch_height')))
214
+ self._show_panel.append(('Locate Selected Box', pn.Feed(sizing_mode='stretch_height')))
208
215
 
209
216
  # return value for locate callback
210
217
  self._last_plot = plot
@@ -411,35 +418,43 @@ class MsPlot:
411
418
 
412
419
  def _locate(self, x, y, data, bounds):
413
420
  ''' Callback for all show plot streams '''
414
- self._locate_cursor(x, y, self._plot_data, self._show_panel)
415
- self._locate_points(data, self._plot_data, self._show_panel)
416
- self._locate_box(bounds, self._plot_data, self._show_panel)
421
+ self._locate_cursor(x, y, self._plot_data, self._show_panel[0][1])
422
+ self._locate_points(data, self._plot_data, self._show_panel[2])
423
+ self._locate_box(bounds, self._plot_data, self._show_panel[3])
417
424
  return self._last_plot
418
425
 
419
- def _locate_cursor(self, x, y, plot_data, tabs):
426
+ def _locate_cursor(self, x, y, plot_data, cursor_box):
420
427
  ''' Show location from cursor position in cursor locate box '''
421
428
  cursor = (x, y)
422
429
  if cursor_changed(cursor, self._last_cursor):
423
430
  # new cursor position - update cursor location box
424
- plot_axes = self._get_plot_axes()
425
- cursor_box = tabs[0][1]
426
- update_cursor_location(cursor, plot_axes, plot_data, cursor_box)
431
+ update_cursor_location(cursor, self._get_plot_axes(), plot_data, cursor_box)
427
432
  self._last_cursor = cursor
428
433
 
429
- def _locate_points(self, point_data, plot_data, tabs):
434
+ def _locate_points(self, point_data, plot_data, points_tab):
430
435
  ''' Show points locations from point_draw tool '''
431
436
  if points_changed(point_data, self._last_points):
432
- # new points position - update selected points location tab
433
- plot_axes = self._get_plot_axes()
434
- points_tab = tabs[2]
435
- update_points_location(point_data, plot_axes, plot_data, points_tab, self._logger)
437
+ # update selected points location tab
438
+ location_info = update_points_location(point_data, self._get_plot_axes(), plot_data, points_tab)
439
+
440
+ # log to file only
441
+ self._logger.removeHandler(self._stdout_handler)
442
+ for info in location_info:
443
+ self._logger.info(info)
444
+ self._logger.addHandler(self._stdout_handler)
445
+
436
446
  self._last_points = point_data
437
447
 
438
- def _locate_box(self, box_bounds, plot_data, tabs):
448
+ def _locate_box(self, box_bounds, plot_data, box_tab):
439
449
  ''' Show points locations in box from box_select tool '''
440
450
  if box_changed(box_bounds, self._last_box):
441
- # new box_select position - update selected box location tab
442
- plot_axes = self._get_plot_axes()
443
- box_tab = tabs[3]
444
- update_box_location(box_bounds, plot_axes, plot_data, box_tab, self._logger)
451
+ # update selected box location tab
452
+ location_info = update_box_location(box_bounds, self._get_plot_axes(), plot_data, box_tab)
453
+
454
+ # log to file only
455
+ self._logger.removeHandler(self._stdout_handler)
456
+ for info in location_info:
457
+ self._logger.info(info)
458
+ self._logger.addHandler(self._stdout_handler)
459
+
445
460
  self._last_box = box_bounds
@@ -10,7 +10,7 @@ WEIGHT_AXIS_OPTIONS = ['weight', 'sigma']
10
10
  # GUI label to selection keyword
11
11
  PS_SELECTION_OPTIONS = {
12
12
  'MSv4 Name': 'name',
13
- 'Intents': 'intents',
13
+ 'Scan Intents': 'scan_intents',
14
14
  'Scan Name': 'scan_name',
15
15
  'Spectral Window Name': 'spw_name',
16
16
  'Field Name': 'field_name',
@@ -21,29 +21,26 @@ def create_raster_gui(callbacks, plot_info, empty_plot):
21
21
  # Dynamic map for plot, with callback when inputs change or location needed
22
22
  #dmap, points = get_plot_dmap(callbacks, selectors, init_plot)
23
23
 
24
- return pn.Row(
25
- pn.Tabs( # Row [0]
26
- ('Plot', # Tabs[0]
27
- pn.Column(
28
- pn.pane.HoloViews(empty_plot), # [0] plot
29
- pn.WidgetBox(), # [1] cursor location
30
- )
24
+ return pn.Tabs(
25
+ ('Plot', pn.Row( # Tabs[0]
26
+ pn.Column( # Row[0]
27
+ pn.pane.HoloViews(empty_plot), # Column[0] plot
28
+ pn.WidgetBox(), # Column[1] cursor location
31
29
  ),
32
- ('Plot Inputs', pn.Column()), # Tabs[1]
33
- ('Locate Selected Points', pn.Column()), # Tabs[2]
34
- ('Locate Selected Box', pn.Column()), # Tabs[3]
35
- sizing_mode='stretch_width',
36
- ),
37
- pn.Spacer(width=10), # Row [1]
38
- pn.Column( # Row [2]
39
- pn.Spacer(height=25), # Column[0]
40
- selectors, # Column[1]
41
- init_plot, # Column[2]
42
- width_policy='min',
43
- width=400,
44
- sizing_mode='stretch_height',
45
- ),
46
- sizing_mode='stretch_height',
30
+ pn.Spacer(width=10), # Row[1]
31
+ pn.Column( # Row[2]
32
+ pn.Spacer(height=25), # Column[0]
33
+ selectors, # Column[1] selectors
34
+ init_plot, # Column[2] plot button and spinner
35
+ width_policy='min',
36
+ width=300,
37
+ sizing_mode='stretch_height',
38
+ ),
39
+ )),
40
+ ('Plot Inputs', pn.Column()), # Tabs[1]
41
+ ('Locate Selected Points', pn.Feed(sizing_mode='stretch_height')), # Tabs[2]
42
+ ('Locate Selected Box', pn.Feed(sizing_mode='stretch_height')), # Tabs[3]
43
+ sizing_mode='stretch_width',
47
44
  )
48
45
 
49
46
  def get_plot_input_selectors(callbacks, plot_info):
@@ -1,14 +1,15 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: vidavis
3
- Version: 0.0.15
3
+ Version: 0.1.1
4
4
  Summary: Radio astronomy visibility data visualization
5
5
  License: LGPL
6
6
  Author-email: Darrell Schiebel <darrell@schiebel.us>,Pam Harris <pharris@nrao.edu>
7
7
  Requires-Python: >=3.11, <3.14
8
- Requires-Dist: bokeh==3.6.1
8
+ Requires-Dist: bokeh<3.9,>=3.7
9
9
  Requires-Dist: graphviper
10
10
  Requires-Dist: hvplot
11
11
  Requires-Dist: matplotlib
12
+ Requires-Dist: panel==1.8.2
12
13
  Requires-Dist: selenium
13
14
  Description-Content-Type: text/x-rst
14
15
 
@@ -1,7 +1,7 @@
1
1
  vidavis/LICENSE.rst,sha256=qzGpkvhDzf_MgF1PIn6rCmYPrcEhkfrBUchosLJj-U4,26371
2
2
  vidavis/__init__.py,sha256=FVM92yTXUplR7tVHiGao0Y3Hd80pRTrwVIYDLjzICws,1709
3
3
  vidavis/apps/__init__.py,sha256=ZQ5v1VFtjn3ztmuOHLOk5WbC1uLNIgL9rbHQ4v0zJwY,87
4
- vidavis/apps/_ms_raster.py,sha256=wyY7WS9L4zPXtGMYt_v8dze4HP7xEUQrHUS7phMYTss,40972
4
+ vidavis/apps/_ms_raster.py,sha256=e-vEBjoNajE3gZPSRHUJwWGugHRbdVPBd7WVFYnH3DM,41175
5
5
  vidavis/bokeh/__init__.py,sha256=gdPPxBCe0enCSjvPFxkgMlhpVnAMFXKcw9GN28tVdXM,95
6
6
  vidavis/bokeh/_palette.py,sha256=gzfJHuUgqxd8hJpZe-gQPFTCPq9f5I8uLEkHAK5FNDM,2480
7
7
  vidavis/data/__init__.py,sha256=-RDRe0PYK6vPlhdRV2Dy1vGbnDGoXWDATmfxaR-gXcE,48
@@ -10,7 +10,7 @@ vidavis/data/measurement_set/_ms_data.py,sha256=7ATsPbGFAv8WtWk_PRxlfoLdqapd6eMv
10
10
  vidavis/data/measurement_set/processing_set/__init__.py,sha256=TVQe5Nl4APCB2E1T1giAkOvSxg7OBNcOm9-BeZelY2Q,95
11
11
  vidavis/data/measurement_set/processing_set/_ps_concat.py,sha256=uTuxE7krTu6SS7lwV9ITMsAxJ4BJhKOU9dLlQ9L1oNY,3513
12
12
  vidavis/data/measurement_set/processing_set/_ps_coords.py,sha256=SDp-0ebd94QjO_jPv00weiYmp-OD1XqsCzWvNc0D-94,3747
13
- vidavis/data/measurement_set/processing_set/_ps_data.py,sha256=2Ss3iUdyIgtMuMTpl9mAGt4K89zgDmRsoTjbjurpDmc,11353
13
+ vidavis/data/measurement_set/processing_set/_ps_data.py,sha256=aO_J8ETi-Lqu4eNNKsKUHzvvnyRhww4hECUjbBS9Z9U,11626
14
14
  vidavis/data/measurement_set/processing_set/_ps_io.py,sha256=VeNi-s1hozgCAGAGHs4NUXtlVFwUh-mkqrY9iYWOfW4,1717
15
15
  vidavis/data/measurement_set/processing_set/_ps_raster_data.py,sha256=m7d0qe5bS-XjGD_1mrpRn9dTobwG8WDidCmAaLP2TWQ,7378
16
16
  vidavis/data/measurement_set/processing_set/_ps_select.py,sha256=AtEsLy3bSHEyFUFKM-OO6_-YwUdWOWcGkXkEgFxMaEE,10859
@@ -19,13 +19,13 @@ vidavis/data/measurement_set/processing_set/_xds_data.py,sha256=qLO2VkLINkSAQ7CG
19
19
  vidavis/plot/__init__.py,sha256=thxe5vAGdpEiqoKPHLJoWUqKMVrUVx0ajpsGf5pVP98,95
20
20
  vidavis/plot/ms_plot/__init__.py,sha256=wY0_7gY9M6K1D6tKQsr89L_uSs3seJlD-uicx7dx5Mo,74
21
21
  vidavis/plot/ms_plot/_check_raster_inputs.py,sha256=a7u5wlDKTxWYW36-Xp3xd4c756SbYURdFkGHbUaX440,4786
22
- vidavis/plot/ms_plot/_locate_points.py,sha256=mWXGeUoXPLFdyxR2hCCAZkNtEhtPmZ39mm1-C92TPmE,10898
23
- vidavis/plot/ms_plot/_ms_plot.py,sha256=tpUWFto-tuSehj-aXHuvGJpdc9yq2m4bmt1EsSWkVjI,18865
24
- vidavis/plot/ms_plot/_ms_plot_constants.py,sha256=cX_TQhKJ3hJzPuRYmuRJxue1sjq82yl_ZN2_w6TshmI,930
22
+ vidavis/plot/ms_plot/_locate_points.py,sha256=DPGdCHanRkNp-6nYJcZknX8iNMlYrNllKhmQuwxqONQ,11006
23
+ vidavis/plot/ms_plot/_ms_plot.py,sha256=EQx348f6ifYakQREmkfh2ybIefsPYqKjNT5gd44LqjI,19343
24
+ vidavis/plot/ms_plot/_ms_plot_constants.py,sha256=xbn_dEx4QWbZIsUDziJifrT7pXwO2Qr2B5CHyAy16So,940
25
25
  vidavis/plot/ms_plot/_ms_plot_selectors.py,sha256=jBjthBjfXDf6W19HG8j8Pzxxzmnte5apeVDjsMy-dDg,11146
26
26
  vidavis/plot/ms_plot/_plot_inputs.py,sha256=GeErBB3pYz6ecJiMTGQMNXkPeMLbWbYGmqL5dr8A46Q,687
27
27
  vidavis/plot/ms_plot/_raster_plot.py,sha256=Uv0D-P7PyvcMBqFHqmbNxnDkUMekVok511WIvaA-JB0,10894
28
- vidavis/plot/ms_plot/_raster_plot_gui.py,sha256=3oEfZqOI3sgxfCQx9t3i679TffV2466-KBUrJ-m8uik,3546
28
+ vidavis/plot/ms_plot/_raster_plot_gui.py,sha256=f57Jj9BMNuTTzCC3AgHqL17R0MGfiO9Rxt6u0mesnYA,3623
29
29
  vidavis/plot/ms_plot/_raster_plot_inputs.py,sha256=kxR6-1Qn4IyQ4FjgpVZ9HEZ7EnPHxJZWomb0n_zaRwo,4071
30
30
  vidavis/plot/ms_plot/_time_ticks.py,sha256=j-DcPh7RfGE8iX2bPjLQDQPIbiAbmjiEWQnKmdMWA3I,1773
31
31
  vidavis/plot/ms_plot/_xds_plot_axes.py,sha256=EeWvAbiKV33nEWdI8V3M0uwLTnycq4bFYBOyVWkxCu0,4429
@@ -33,8 +33,8 @@ vidavis/toolbox/__init__.py,sha256=jqFa-eziVz_frNnXxwjJFK36qNpz1H38s-VlpBcq-R8,1
33
33
  vidavis/toolbox/_app_context.py,sha256=H7gtF8RrAH46FqDcMobv3KM1Osbnapgu6aTG-m3VCWA,3049
34
34
  vidavis/toolbox/_logging.py,sha256=OEisrd8FM8VTNBMc7neLh9ekelf29ZILYB5pScebly0,2739
35
35
  vidavis/toolbox/_static.py,sha256=HJLMtClppgOJXWAtV6Umn5EqN80u0oZiIouQ1JsB9PM,2346
36
- vidavis/__version__.py,sha256=YtkQ0xJuRN_ZjjhJ2kXBIkzEenORzuw78h9h_vJ-MGY,22
37
- vidavis-0.0.15.dist-info/WHEEL,sha256=B19PGBCYhWaz2p_UjAoRVh767nYQfk14Sn4TpIZ-nfU,87
38
- vidavis-0.0.15.dist-info/METADATA,sha256=TmHASCjUzIjDPZzY8Mgce0h6p7Jg569JPfvXjfdpabA,2238
39
- vidavis-0.0.15.dist-info/licenses/LICENSE,sha256=IMF9i4xIpgCADf0U-V1cuf9HBmqWQd3qtI3FSuyW4zE,26526
40
- vidavis-0.0.15.dist-info/RECORD,,
36
+ vidavis/__version__.py,sha256=jZ5uWOiyV1Hb9rhNyo3bAgfWmHx8_xkueUWpcUrkz_w,21
37
+ vidavis-0.1.1.dist-info/WHEEL,sha256=B19PGBCYhWaz2p_UjAoRVh767nYQfk14Sn4TpIZ-nfU,87
38
+ vidavis-0.1.1.dist-info/METADATA,sha256=8zI_duU6ZeUuTgbF0ufb3Vr6EnDlrB3MxfdBu5vcunA,2268
39
+ vidavis-0.1.1.dist-info/licenses/LICENSE,sha256=IMF9i4xIpgCADf0U-V1cuf9HBmqWQd3qtI3FSuyW4zE,26526
40
+ vidavis-0.1.1.dist-info/RECORD,,