vispy 0.15.1__cp310-cp310-win_amd64.whl → 0.15.2__cp310-cp310-win_amd64.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.
Potentially problematic release.
This version of vispy might be problematic. Click here for more details.
- vispy/scene/widgets/grid.py +191 -71
- vispy/scene/widgets/widget.py +11 -0
- vispy/version.py +2 -2
- vispy/visuals/text/_sdf_cpu.cp310-win_amd64.pyd +0 -0
- {vispy-0.15.1.dist-info → vispy-0.15.2.dist-info}/METADATA +1 -1
- {vispy-0.15.1.dist-info → vispy-0.15.2.dist-info}/RECORD +9 -9
- {vispy-0.15.1.dist-info → vispy-0.15.2.dist-info}/WHEEL +1 -1
- {vispy-0.15.1.dist-info → vispy-0.15.2.dist-info}/licenses/LICENSE.txt +0 -0
- {vispy-0.15.1.dist-info → vispy-0.15.2.dist-info}/top_level.txt +0 -0
vispy/scene/widgets/grid.py
CHANGED
|
@@ -4,7 +4,11 @@
|
|
|
4
4
|
"""Grid widget for providing a gridded layout to child widgets."""
|
|
5
5
|
|
|
6
6
|
from __future__ import division
|
|
7
|
+
|
|
8
|
+
from typing import Tuple, Union, Dict
|
|
9
|
+
|
|
7
10
|
import numpy as np
|
|
11
|
+
from numpy.typing import NDArray
|
|
8
12
|
|
|
9
13
|
from vispy.geometry import Rect
|
|
10
14
|
from .widget import Widget
|
|
@@ -21,17 +25,19 @@ class Grid(Widget):
|
|
|
21
25
|
|
|
22
26
|
Parameters
|
|
23
27
|
----------
|
|
24
|
-
spacing : int
|
|
25
|
-
Spacing between widgets.
|
|
28
|
+
spacing : int | tuple[int, int]
|
|
29
|
+
Spacing between widgets. If `tuple` then it must be of length two, the first element
|
|
30
|
+
being `width_spacing` and the second being `height_spacing`.
|
|
26
31
|
**kwargs : dict
|
|
27
32
|
Keyword arguments to pass to `Widget`.
|
|
28
33
|
"""
|
|
29
34
|
|
|
30
|
-
def __init__(self, spacing=
|
|
35
|
+
def __init__(self, spacing=0, **kwargs):
|
|
31
36
|
"""Create solver and basic grid parameters."""
|
|
32
37
|
self._next_cell = [0, 0] # row, col
|
|
33
38
|
self._cells = {}
|
|
34
39
|
self._grid_widgets = {}
|
|
40
|
+
|
|
35
41
|
self.spacing = spacing
|
|
36
42
|
self._n_added = 0
|
|
37
43
|
self._default_class = ViewBox # what to add when __getitem__ is used
|
|
@@ -45,9 +51,6 @@ class Grid(Widget):
|
|
|
45
51
|
self._width_grid = None
|
|
46
52
|
self._height_grid = None
|
|
47
53
|
|
|
48
|
-
# self._height_stay = None
|
|
49
|
-
# self._width_stay = None
|
|
50
|
-
|
|
51
54
|
Widget.__init__(self, **kwargs)
|
|
52
55
|
|
|
53
56
|
def __getitem__(self, idxs):
|
|
@@ -256,53 +259,129 @@ class Grid(Widget):
|
|
|
256
259
|
locs[r:r + rs, c:c + cs] = key
|
|
257
260
|
return locs
|
|
258
261
|
|
|
262
|
+
@property
|
|
263
|
+
def spacing(self):
|
|
264
|
+
"""
|
|
265
|
+
The spacing between individual Viewbox widgets in the grid.
|
|
266
|
+
"""
|
|
267
|
+
return self._spacing
|
|
268
|
+
|
|
269
|
+
@spacing.setter
|
|
270
|
+
def spacing(self, value: Union[int, Tuple[int, int]]):
|
|
271
|
+
if not (
|
|
272
|
+
isinstance(value, int)
|
|
273
|
+
or isinstance(value, tuple)
|
|
274
|
+
and len(value) == 2
|
|
275
|
+
and isinstance(value[0], int)
|
|
276
|
+
and isinstance(value[1], int)
|
|
277
|
+
):
|
|
278
|
+
raise ValueError('spacing must be of type int | tuple[int, int]')
|
|
279
|
+
|
|
280
|
+
self._spacing = value
|
|
281
|
+
self._need_solver_recreate = True
|
|
282
|
+
|
|
259
283
|
def __repr__(self):
|
|
260
284
|
return (('<Grid at %s:\n' % hex(id(self))) +
|
|
261
285
|
str(self.layout_array + 1) + '>')
|
|
262
286
|
|
|
263
287
|
@staticmethod
|
|
264
|
-
def
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
for w in ws[1:]:
|
|
268
|
-
width_expr += w
|
|
269
|
-
solver.addConstraint(width_expr == _var_w)
|
|
288
|
+
def _add_total_dim_length_constraints(solver: Solver, grid_dim_variables: NDArray[Variable],
|
|
289
|
+
n_added: int, _var_dim_length: Variable, spacing: float):
|
|
290
|
+
"""Add constraint: total height == sum(col heights) + sum(spacing).
|
|
270
291
|
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
292
|
+
The total height of the grid is constrained to be equal to the sum of the heights of
|
|
293
|
+
its columns, including spacing between widgets.
|
|
294
|
+
|
|
295
|
+
Parameters
|
|
296
|
+
----------
|
|
297
|
+
solver: Solver
|
|
298
|
+
Solver for a system of linear equations.
|
|
299
|
+
grid_dim_variables: NDArray[Variable]:
|
|
300
|
+
The grid of width or height variables of either shape col * row or row * col with each element being a
|
|
301
|
+
Variable in the solver representing the height or width of each grid box.
|
|
302
|
+
n_added: int
|
|
303
|
+
The number of ViewBoxes added to the grid.
|
|
304
|
+
_var_dim_length: Variable
|
|
305
|
+
The solver variable representing either total width or height of the grid.
|
|
306
|
+
spacing: float
|
|
307
|
+
The amount of spacing between single adjacent Viewbox widgets in the grid.
|
|
308
|
+
"""
|
|
309
|
+
total_spacing = 0
|
|
310
|
+
if n_added > 1:
|
|
311
|
+
for _ in range(grid_dim_variables.shape[1] - 1):
|
|
312
|
+
total_spacing += spacing
|
|
313
|
+
|
|
314
|
+
for ds in grid_dim_variables:
|
|
315
|
+
dim_length_expr = ds[0]
|
|
316
|
+
for d in ds[1:]:
|
|
317
|
+
dim_length_expr += d
|
|
318
|
+
dim_length_expr += total_spacing
|
|
319
|
+
solver.addConstraint(dim_length_expr == _var_dim_length)
|
|
278
320
|
|
|
279
321
|
@staticmethod
|
|
280
|
-
def
|
|
322
|
+
def _add_gridding_dim_constraints(solver: Solver, grid_dim_variables: NDArray[Variable]):
|
|
323
|
+
"""Add constraint: all viewbox dims in each dimension are equal.
|
|
324
|
+
|
|
325
|
+
With all dims the reserved space for a widget with a col_span and row_span of 1 is meant, e.g. we have 3
|
|
326
|
+
widgets arranged in columns or rows with col_span or row_span 1 and those are being constrained to all be of
|
|
327
|
+
width/height 100. In other words the same dim length is reserved for each position in the grid, not taking
|
|
328
|
+
into account the spacing between grid positions.
|
|
329
|
+
|
|
330
|
+
Parameters
|
|
331
|
+
----------
|
|
332
|
+
solver: Solver
|
|
333
|
+
Solver for a system of linear equations.
|
|
334
|
+
grid_dim_variables:
|
|
335
|
+
The grid of width or height variables of either shape col * row or row * col with each element being a
|
|
336
|
+
Variable in the solver representing the height or width of each grid box.
|
|
337
|
+
"""
|
|
281
338
|
# access widths of one "y", different x
|
|
282
|
-
for
|
|
283
|
-
for
|
|
284
|
-
solver.addConstraint(
|
|
339
|
+
for ds in grid_dim_variables.T:
|
|
340
|
+
for d in ds[1:]:
|
|
341
|
+
solver.addConstraint(ds[0] == d)
|
|
285
342
|
|
|
286
343
|
@staticmethod
|
|
287
|
-
def
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
344
|
+
def _add_stretch_constraints(solver: Solver, width_grid: NDArray[Variable] , height_grid: NDArray[Variable],
|
|
345
|
+
grid_widgets: Dict[int, Tuple[int, int, int, int, ViewBox]],
|
|
346
|
+
widget_grid: NDArray[ViewBox]):
|
|
347
|
+
"""
|
|
348
|
+
Add proportional stretch constraints to the linear system solver of the grid.
|
|
292
349
|
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
350
|
+
This method enforces that grid rows and columns stretch in proportion
|
|
351
|
+
to the widgets' specified stretch factors. It uses weak constraints
|
|
352
|
+
so that proportionality is preserved when possible but can be violated
|
|
353
|
+
if stronger layout constraints are present.
|
|
354
|
+
|
|
355
|
+
Parameters
|
|
356
|
+
----------
|
|
357
|
+
solver : Solver
|
|
358
|
+
Solver for a system of linear equations.
|
|
359
|
+
width_grid : NDArray[Variable]
|
|
360
|
+
The grid of width variables in the linear system of equations to be solved.
|
|
361
|
+
height_grid : NDArray[Variable]
|
|
362
|
+
The grid of height variables in the linear system of equations to be solved.
|
|
363
|
+
grid_widgets : dict[int, tuple[int, int, int, int, ViewBox]]
|
|
364
|
+
Dictionary mapping order of viewboxes added as int to their grid layout description:
|
|
365
|
+
(start_y, start_x, span_y, span_x, ViewBox).
|
|
366
|
+
widget_grid : NDArray[ViewBox]
|
|
367
|
+
Array of viewboxes in shape n_columns x n_rows.
|
|
368
|
+
|
|
369
|
+
Notes
|
|
370
|
+
-----
|
|
371
|
+
- Stretch constraints are added with 'weak' strength, allowing them to
|
|
372
|
+
be overridden by stronger constraints such as fixed sizes or min/max bounds.
|
|
373
|
+
- The constraint `total_size / stretch_factor` is used to maintain
|
|
374
|
+
proportional relationships among rows and columns.
|
|
375
|
+
"""
|
|
296
376
|
xmax = len(height_grid)
|
|
297
377
|
ymax = len(width_grid)
|
|
298
378
|
|
|
299
|
-
stretch_widths = [[] for _ in range(
|
|
300
|
-
stretch_heights = [[] for _ in range(
|
|
379
|
+
stretch_widths = [[] for _ in range(ymax)]
|
|
380
|
+
stretch_heights = [[] for _ in range(xmax)]
|
|
301
381
|
|
|
302
382
|
for (y, x, ys, xs, widget) in grid_widgets.values():
|
|
303
383
|
for ws in width_grid[y:y+ys]:
|
|
304
384
|
total_w = np.sum(ws[x:x+xs])
|
|
305
|
-
|
|
306
385
|
for sw in stretch_widths[y:y+ys]:
|
|
307
386
|
sw.append((total_w, widget.stretch[0]))
|
|
308
387
|
|
|
@@ -339,14 +418,36 @@ class Grid(Widget):
|
|
|
339
418
|
'weak')
|
|
340
419
|
|
|
341
420
|
@staticmethod
|
|
342
|
-
def _add_widget_dim_constraints(solver, width_grid, height_grid,
|
|
343
|
-
total_var_w, total_var_h,
|
|
421
|
+
def _add_widget_dim_constraints(solver: Solver, width_grid: NDArray[Variable], height_grid: NDArray[Variable],
|
|
422
|
+
total_var_w: Variable, total_var_h: Variable,
|
|
423
|
+
grid_widgets: Dict[int, Tuple[int, int, int, int, ViewBox]]):
|
|
424
|
+
"""Add constraints based on min/max width/height of widgets.
|
|
425
|
+
|
|
426
|
+
These constraints ensure that each widget's dimensions stay within its
|
|
427
|
+
specified minimum and maximum values.
|
|
428
|
+
|
|
429
|
+
Parameters
|
|
430
|
+
----------
|
|
431
|
+
solver : Solver
|
|
432
|
+
Solver for a system of linear equations.
|
|
433
|
+
width_grid : NDArray[Variable]
|
|
434
|
+
The grid of width variables in the linear system of equations to be solved.
|
|
435
|
+
height_grid : NDArray[Variable]
|
|
436
|
+
The grid of height variables in the linear system of equations to be solved.
|
|
437
|
+
total_var_w : Variable
|
|
438
|
+
The Variable representing the total width of the grid in the linear system of equations.
|
|
439
|
+
total_var_w : Variable
|
|
440
|
+
The Variable representing the total height of the grid in the linear system of equations.
|
|
441
|
+
grid_widgets : dict[int, tuple[int, int, int, int, ViewBox]]
|
|
442
|
+
Dictionary mapping order of viewboxes added as int to their grid layout description:
|
|
443
|
+
(start_y, start_x, span_y, span_x, ViewBox).
|
|
444
|
+
"""
|
|
344
445
|
assert(total_var_w is not None)
|
|
345
446
|
assert(total_var_h is not None)
|
|
346
447
|
|
|
347
448
|
for ws in width_grid:
|
|
348
449
|
for w in ws:
|
|
349
|
-
solver.addConstraint(w >= 0
|
|
450
|
+
solver.addConstraint(w >= 0)
|
|
350
451
|
|
|
351
452
|
for hs in height_grid:
|
|
352
453
|
for h in hs:
|
|
@@ -375,6 +476,7 @@ class Grid(Widget):
|
|
|
375
476
|
solver.addConstraint(total_h <= total_var_h)
|
|
376
477
|
|
|
377
478
|
def _recreate_solver(self):
|
|
479
|
+
"""Recreate the linear system solver with all constraints."""
|
|
378
480
|
self._solver.reset()
|
|
379
481
|
self._var_w = Variable("w_rect")
|
|
380
482
|
self._var_h = Variable("h_rect")
|
|
@@ -390,43 +492,40 @@ class Grid(Widget):
|
|
|
390
492
|
self._solver.addConstraint(self._var_w >= 0)
|
|
391
493
|
self._solver.addConstraint(self._var_h >= 0)
|
|
392
494
|
|
|
393
|
-
# self._height_stay = None
|
|
394
|
-
# self._width_stay = None
|
|
395
|
-
|
|
396
495
|
# add widths
|
|
397
|
-
self._width_grid = np.array(
|
|
398
|
-
|
|
399
|
-
|
|
496
|
+
self._width_grid = np.array(
|
|
497
|
+
[
|
|
498
|
+
[Variable(f"width(x: {x}, y: {y})") for x in range(xmax)]
|
|
499
|
+
for y in range(ymax)
|
|
500
|
+
]
|
|
501
|
+
)
|
|
400
502
|
|
|
401
503
|
# add heights
|
|
402
|
-
self._height_grid = np.array(
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
504
|
+
self._height_grid = np.array(
|
|
505
|
+
[
|
|
506
|
+
[Variable(f"height(x: {x}, y: {y})") for y in range(ymax)]
|
|
507
|
+
for x in range(xmax)
|
|
508
|
+
]
|
|
509
|
+
)
|
|
510
|
+
|
|
511
|
+
if isinstance(self.spacing, tuple):
|
|
512
|
+
width_spacing, height_spacing = self.spacing
|
|
513
|
+
else:
|
|
514
|
+
width_spacing = height_spacing = self.spacing
|
|
414
515
|
# even though these are REQUIRED, these should never fail
|
|
415
516
|
# since they're added first, and thus the slack will "simply work".
|
|
416
|
-
Grid.
|
|
417
|
-
self._width_grid, self._var_w)
|
|
418
|
-
Grid.
|
|
419
|
-
self._height_grid, self._var_h)
|
|
517
|
+
Grid._add_total_dim_length_constraints(self._solver,
|
|
518
|
+
self._width_grid, self._n_added, self._var_w, width_spacing)
|
|
519
|
+
Grid._add_total_dim_length_constraints(self._solver,
|
|
520
|
+
self._height_grid, self._n_added, self._var_h, height_spacing)
|
|
420
521
|
|
|
421
522
|
try:
|
|
422
523
|
# these are REQUIRED constraints for width and height.
|
|
423
524
|
# These are the constraints which can fail if
|
|
424
525
|
# the corresponding dimension of the widget cannot be fit in the
|
|
425
526
|
# grid.
|
|
426
|
-
Grid.
|
|
427
|
-
|
|
428
|
-
Grid._add_gridding_height_constraints(self._solver,
|
|
429
|
-
self._height_grid)
|
|
527
|
+
Grid._add_gridding_dim_constraints(self._solver, self._width_grid)
|
|
528
|
+
Grid._add_gridding_dim_constraints(self._solver, self._height_grid)
|
|
430
529
|
except UnsatisfiableConstraint:
|
|
431
530
|
self._need_solver_recreate = True
|
|
432
531
|
|
|
@@ -436,24 +535,27 @@ class Grid(Widget):
|
|
|
436
535
|
self._width_grid,
|
|
437
536
|
self._height_grid,
|
|
438
537
|
self._grid_widgets,
|
|
439
|
-
self._widget_grid
|
|
538
|
+
self._widget_grid,
|
|
539
|
+
)
|
|
440
540
|
|
|
441
541
|
Grid._add_widget_dim_constraints(self._solver,
|
|
442
542
|
self._width_grid,
|
|
443
543
|
self._height_grid,
|
|
444
544
|
self._var_w,
|
|
445
545
|
self._var_h,
|
|
446
|
-
self._grid_widgets
|
|
546
|
+
self._grid_widgets
|
|
547
|
+
)
|
|
447
548
|
|
|
448
549
|
self._solver.updateVariables()
|
|
449
550
|
|
|
450
551
|
def _update_child_widget_dim(self):
|
|
552
|
+
"""Solve the linear system of equations in order to assign Viewbox parameters such as position."""
|
|
451
553
|
# think in terms of (x, y). (row, col) makes code harder to read
|
|
452
554
|
ymax, xmax = self.grid_size
|
|
453
555
|
if ymax <= 0 or xmax <= 0:
|
|
454
556
|
return
|
|
455
557
|
|
|
456
|
-
rect = self.rect
|
|
558
|
+
rect = self.rect.padded(self.padding + self.margin)
|
|
457
559
|
if rect.width <= 0 or rect.height <= 0:
|
|
458
560
|
return
|
|
459
561
|
if self._need_solver_recreate:
|
|
@@ -474,22 +576,40 @@ class Grid(Widget):
|
|
|
474
576
|
|
|
475
577
|
value_vectorized = np.vectorize(lambda x: x.value())
|
|
476
578
|
|
|
477
|
-
|
|
579
|
+
if isinstance(self.spacing, tuple):
|
|
580
|
+
width_spacing, height_spacing = self.spacing
|
|
581
|
+
else:
|
|
582
|
+
width_spacing = height_spacing = self.spacing
|
|
583
|
+
|
|
584
|
+
for index, (_, val) in enumerate(self._grid_widgets.items()):
|
|
478
585
|
(row, col, rspan, cspan, widget) = val
|
|
479
586
|
|
|
587
|
+
# If spacing, always one spacing unit between 2 grid positions, even when span is > 1.
|
|
588
|
+
# If span is > 1, spacing will be added to the dim length of Viewbox
|
|
589
|
+
spacing_width_offset = col * width_spacing if self._n_added > 1 else 0
|
|
590
|
+
spacing_height_offset = row * height_spacing if self._n_added > 1 else 0
|
|
591
|
+
|
|
592
|
+
# Add one spacing unit to dim length of the Viewbox per grid positions the ViewBox spans if span > 1.
|
|
593
|
+
width_increase_spacing = width_spacing * (cspan - 1)
|
|
594
|
+
height_increase_spacing = height_spacing * (rspan - 1)
|
|
595
|
+
|
|
480
596
|
width = np.sum(value_vectorized(
|
|
481
|
-
self._width_grid[row][col:col+cspan]))
|
|
597
|
+
self._width_grid[row][col:col+cspan])) + width_increase_spacing
|
|
482
598
|
height = np.sum(value_vectorized(
|
|
483
|
-
self._height_grid[col][row:row+rspan]))
|
|
599
|
+
self._height_grid[col][row:row+rspan])) + height_increase_spacing
|
|
600
|
+
|
|
484
601
|
if col == 0:
|
|
485
602
|
x = 0
|
|
486
603
|
else:
|
|
487
|
-
x = np.sum(value_vectorized(self._width_grid[row][
|
|
604
|
+
x = np.sum(value_vectorized(self._width_grid[row][:col])) + spacing_width_offset
|
|
488
605
|
|
|
489
606
|
if row == 0:
|
|
490
607
|
y = 0
|
|
491
608
|
else:
|
|
492
|
-
y = np.sum(value_vectorized(self._height_grid[col][
|
|
609
|
+
y = np.sum(value_vectorized(self._height_grid[col][:row])) + spacing_height_offset
|
|
610
|
+
|
|
611
|
+
x += self.padding
|
|
612
|
+
y += self.padding
|
|
493
613
|
|
|
494
614
|
if isinstance(widget, ViewBox):
|
|
495
615
|
widget.rect = Rect(x, y, width, height)
|
vispy/scene/widgets/widget.py
CHANGED
|
@@ -312,6 +312,17 @@ class Widget(Compound):
|
|
|
312
312
|
self._update_line()
|
|
313
313
|
self.update()
|
|
314
314
|
|
|
315
|
+
@property
|
|
316
|
+
def border_width(self):
|
|
317
|
+
"""The width of the border."""
|
|
318
|
+
return self._border_width
|
|
319
|
+
|
|
320
|
+
@border_width.setter
|
|
321
|
+
def border_width(self, b):
|
|
322
|
+
self._border_width = float(b)
|
|
323
|
+
self._update_line()
|
|
324
|
+
self.update()
|
|
325
|
+
|
|
315
326
|
@property
|
|
316
327
|
def bgcolor(self):
|
|
317
328
|
"""The background color of the Widget."""
|
vispy/version.py
CHANGED
|
Binary file
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
vispy/__init__.py,sha256=Q-ECX_hCYaK0N0nHaVUQM6bNTUf4A3uGTxGcnlY2FFU,935
|
|
2
2
|
vispy/conftest.py,sha256=SUNIUsn7o-cQa0mDMAhxoyeU_ENZjqO5B_xTJSNi-yQ,501
|
|
3
|
-
vispy/version.py,sha256=
|
|
3
|
+
vispy/version.py,sha256=FcgcUHimv_-asWfNIYd3Rsj0Nwxxy5PM5GkTpNL_x7g,534
|
|
4
4
|
vispy/app/__init__.py,sha256=NDhvVlPpRUm5zkfs4L1VwbdE1Hhg7dGEkI28RYH2KTM,640
|
|
5
5
|
vispy/app/_default_app.py,sha256=ACldZQfK7nl2zGInuJBsCm1sfFKZE-UFBgSeavG8gVo,2497
|
|
6
6
|
vispy/app/_detect_eventloop.py,sha256=h7IMsSZXuIAz9M3bezB_gB2BQqcfiPcdpo5vAn8cd7Y,6622
|
|
@@ -296,10 +296,10 @@ vispy/scene/widgets/anchor.py,sha256=EHuMUcdR7HZYNlfgMwuRzP8bD65EXElF8AVXxptsi7o
|
|
|
296
296
|
vispy/scene/widgets/axis.py,sha256=rv2Egm1Fukybm08m--GDqxsIlk9-qkUHPSWtAJSM3Do,3042
|
|
297
297
|
vispy/scene/widgets/colorbar.py,sha256=kGgNv4gwzLfXpjOu8oZNS1kXozH02L7ymeHWym7EqmE,6334
|
|
298
298
|
vispy/scene/widgets/console.py,sha256=NqM_5k97owZfGigtnTRkopfy9PzM067SW0Y0HMbmHGI,14364
|
|
299
|
-
vispy/scene/widgets/grid.py,sha256=
|
|
299
|
+
vispy/scene/widgets/grid.py,sha256=qQ4JL-oop_nka8mgI0eICNkRBc7kpLhTxaz97znBoFE,25429
|
|
300
300
|
vispy/scene/widgets/label.py,sha256=t_UuHoqezAJZA7HZHfczRIZ0Yu2bjvQLe9ACsfyfmvs,1358
|
|
301
301
|
vispy/scene/widgets/viewbox.py,sha256=_JjowJ5U8MJtaFduOk0wvIec59TKRKU3dffcIkkVti4,6873
|
|
302
|
-
vispy/scene/widgets/widget.py,sha256=
|
|
302
|
+
vispy/scene/widgets/widget.py,sha256=3n78S_HJd_IJgf8fN6odp_z0qYy7OSRd5oV5ZONdnhI,14613
|
|
303
303
|
vispy/scene/widgets/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
304
304
|
vispy/scene/widgets/tests/test_colorbar.py,sha256=f1FeuORX6gNAlpOM8UwTTjbP1Wj4T9cX3W3q61OWkOw,1409
|
|
305
305
|
vispy/testing/__init__.py,sha256=u0CuG-XtGGsOUwzCgMf6o7iLo-DVRjqDGFek1BGVO3c,2488
|
|
@@ -500,7 +500,7 @@ vispy/visuals/tests/test_text.py,sha256=webfWtJcSgUkj3QBtZ4kggrs5OdkGZGb0byYc4mt
|
|
|
500
500
|
vispy/visuals/tests/test_volume.py,sha256=mepaB3ssWl0s4gFU_yYTlhsQ1TCCkg_KtdTkLvR2Brs,18120
|
|
501
501
|
vispy/visuals/tests/test_windbarb.py,sha256=cqEEcAnPMf29ZloL2fWJo2N04lrJgmQnD-Kt8mXWEQA,1135
|
|
502
502
|
vispy/visuals/text/__init__.py,sha256=qWgGDKR-ezH4ZzzGKfs72S_zOauVDn5snJ5uHnYv6LE,364
|
|
503
|
-
vispy/visuals/text/_sdf_cpu.cp310-win_amd64.pyd,sha256=
|
|
503
|
+
vispy/visuals/text/_sdf_cpu.cp310-win_amd64.pyd,sha256=8h2FaEte-WwGqgQkhpBWyMsGQ91EjD7Ykkck2wMUMFo,142336
|
|
504
504
|
vispy/visuals/text/_sdf_cpu.pyx,sha256=ymPErgiHN9jhBFuj_GXnChAzTeDbGM-MUQl3lIlzENE,3922
|
|
505
505
|
vispy/visuals/text/_sdf_gpu.py,sha256=XW5nKivmvUx7tA8LebC7u7N37QQfBcMSUrdPvkG9JU8,10796
|
|
506
506
|
vispy/visuals/text/text.py,sha256=hK8oSjF34PfczzBa5V7nmsR6uCfI-eqcR3zUB73YpjA,25928
|
|
@@ -514,8 +514,8 @@ vispy/visuals/transforms/nonlinear.py,sha256=oiHDhqoM9E4rBGMmqZtVSJVspt1FgZORig6
|
|
|
514
514
|
vispy/visuals/transforms/transform_system.py,sha256=dKRMid1Gm0bhh9K_v1RiC-xxbmQF61OHz_0Ur8GdMmU,14098
|
|
515
515
|
vispy/visuals/transforms/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
516
516
|
vispy/visuals/transforms/tests/test_transforms.py,sha256=QbAo0I3g5VkaQzzsZ03zktP-ge2JiXQeD2rqV6_LK7o,7114
|
|
517
|
-
vispy-0.15.
|
|
518
|
-
vispy-0.15.
|
|
519
|
-
vispy-0.15.
|
|
520
|
-
vispy-0.15.
|
|
521
|
-
vispy-0.15.
|
|
517
|
+
vispy-0.15.2.dist-info/licenses/LICENSE.txt,sha256=P3Z4TJCTzLqGNr2AqFiKF7o5T9LmKWb0FfaY0VN1bnA,1810
|
|
518
|
+
vispy-0.15.2.dist-info/METADATA,sha256=owPWvLknX3dW9nfORM763J-AtIHhiT7VMg0Els9PZ0s,9221
|
|
519
|
+
vispy-0.15.2.dist-info/WHEEL,sha256=KuuxPnOSDo1K7Ftl6Qe10qwYOgcJ4uyjbQRY_npPeyg,101
|
|
520
|
+
vispy-0.15.2.dist-info/top_level.txt,sha256=mciStn1SI48jYwEhJXlrMJ3HaJ90XOr5ZGJ8YdFI674,6
|
|
521
|
+
vispy-0.15.2.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|