vispy 0.14.3__cp312-cp312-win_amd64.whl → 0.15.2__cp312-cp312-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.

@@ -0,0 +1,30 @@
1
+ # -*- coding: utf-8 -*-
2
+ # Copyright (c) Vispy Development Team. All Rights Reserved.
3
+ # Distributed under the (new) BSD License. See LICENSE.txt for more info.
4
+
5
+ """
6
+ Tests for GridLines
7
+ """
8
+
9
+ import numpy as np
10
+
11
+ from vispy.scene import GridLines, STTransform
12
+ from vispy.testing import (requires_application, TestingCanvas,
13
+ run_tests_if_main)
14
+
15
+
16
+ @requires_application()
17
+ def test_gridlines():
18
+ with TestingCanvas(size=(80, 80)) as c:
19
+ grid = GridLines(parent=c.scene)
20
+ grid.transform = STTransform(translate=(40, 40))
21
+ render = c.render()
22
+ np.testing.assert_array_equal(render[40, 40], (151, 151, 151, 255))
23
+ np.testing.assert_array_equal(render[50, 50], (0, 0, 0, 255))
24
+
25
+ grid.grid_bounds = (-10, 10, -10, 10)
26
+ render = c.render()
27
+ np.testing.assert_array_equal(render[50, 50], (255, 255, 255, 255))
28
+
29
+
30
+ run_tests_if_main()
@@ -128,28 +128,30 @@ def test_image_clims_and_gamma(input_dtype, texture_format, num_channels,
128
128
  @pytest.mark.xfail(IS_CI, reason="CI environments sometimes treat NaN as 0")
129
129
  @requires_application()
130
130
  @pytest.mark.parametrize('texture_format', [None, 'auto'])
131
- def test_image_nan_single_band(texture_format):
132
- size = (40, 40)
133
- data = np.ones((40, 40))
134
- data[:5, :5] = np.nan
135
- data[:5, -5:] = 0
131
+ @pytest.mark.parametrize('bad_color', [None, (1, 0, 0, 1)])
132
+ def test_image_nan(texture_format, bad_color):
133
+ size = (80, 80)
134
+ data = np.ones(size)
135
+ data[:20, :20] = np.nan
136
+ data[-20: -20:] = 0
136
137
 
137
- expected = (np.ones((40, 40, 4)) * 255).astype(np.uint8)
138
- # black square
139
- expected[:5, -5:, :3] = 0
138
+ expected = (np.ones(size + (4,)) * 255).astype(np.uint8)
139
+ expected[-20: -20:] = (0, 0, 0, 225)
140
140
  if texture_format is None:
141
141
  # CPU scaling's NaNs get converted to 0s
142
- expected[:5, :5, :3] = 0
142
+ expected[:20, :20] = (0, 0, 0, 255)
143
143
  else:
144
144
  # GPU receives NaNs
145
- # nan - transparent square
146
- expected[:5, :5, 0] = 0
147
- expected[:5, :5, 1] = 255 # match the 'green' background
148
- expected[:5, :5, 2] = 0
145
+ # nan - mapped to bad color
146
+ if bad_color is None:
147
+ # no bad color means transparent, so we should see the green canvas
148
+ bad_color = (0, 1, 0, 1)
149
+ expected[:20, :20] = np.array(bad_color) * 255
149
150
 
150
151
  with TestingCanvas(size=size[::-1], bgcolor=(0, 1, 0)) as c:
151
- Image(data, cmap='grays',
152
+ image = Image(data, cmap='grays', clim=(0, 1),
152
153
  texture_format=texture_format, parent=c.scene)
154
+ image.bad_color = bad_color
153
155
  rendered = c.render()
154
156
  np.testing.assert_allclose(rendered, expected)
155
157
 
@@ -327,7 +329,7 @@ def test_image_interpolation():
327
329
  assert np.allclose(render[center_left], black)
328
330
  assert np.allclose(render[center_right], white)
329
331
 
330
- image.interpolation = 'bilinear'
332
+ image.interpolation = 'linear'
331
333
  render = c.render()
332
334
  assert np.allclose(render[left], black)
333
335
  assert np.allclose(render[right], white)
@@ -133,6 +133,22 @@ def test_clim_handling_cpu():
133
133
  assert st.clim == (5, 25)
134
134
  assert st.clim_normalized == (0, 1)
135
135
 
136
+ # u8 auto -> f32 auto
137
+ st = CPUScaledStub()
138
+ st.set_clim("auto")
139
+ assert st.clim == "auto"
140
+ st.scale_and_set_data(ref_data.astype(np.uint8))
141
+ assert st.clim == (5, 25)
142
+ assert st.clim_normalized == (0, 1)
143
+ # set new data with an out-of-range value
144
+ # it should clip at the limits of the original data type
145
+ st.set_clim("auto")
146
+ assert st.clim == "auto"
147
+ new_data = np.array([[10, 10, 5], [15, 2048, 15]], dtype=np.float32)
148
+ st.scale_and_set_data(new_data)
149
+ assert st.clim == (5, 255)
150
+ assert st.clim_normalized == (0, 1)
151
+
136
152
 
137
153
  def test_clim_handling_gpu():
138
154
  ref_data = np.array([[10, 10, 5], [15, 25, 15]])
@@ -12,7 +12,8 @@ import pytest
12
12
  @requires_application()
13
13
  @pytest.mark.parametrize('x1dim', [True, False])
14
14
  @pytest.mark.parametrize('y1dim', [True, False])
15
- def test_surface_plot(x1dim:bool, y1dim:bool):
15
+ @pytest.mark.parametrize('use_vertex_colors', [True, False])
16
+ def test_surface_plot(x1dim:bool, y1dim:bool, use_vertex_colors:bool):
16
17
  """Test SurfacePlot visual"""
17
18
  with TestingCanvas(bgcolor='w') as c:
18
19
 
@@ -29,7 +30,8 @@ def test_surface_plot(x1dim:bool, y1dim:bool):
29
30
  # color vertices
30
31
  cnorm = z / abs(np.amax(z))
31
32
  colormap = get_colormap("viridis").map(cnorm)
32
- colormap.reshape(z.shape + (-1,))
33
+ if not use_vertex_colors:
34
+ colormap = colormap.reshape(z.shape + (-1,))
33
35
 
34
36
  # 1 or 2 dimensional x and y data
35
37
  x_input = x if x1dim else xv
@@ -41,7 +43,10 @@ def test_surface_plot(x1dim:bool, y1dim:bool):
41
43
  y=y_input,
42
44
  shading=None)
43
45
 
44
- surface.mesh_data.set_vertex_colors(colormap)
46
+ if use_vertex_colors:
47
+ surface.mesh_data.set_vertex_colors(colormap)
48
+ else:
49
+ surface.set_data(colors=colormap)
45
50
 
46
51
  # c.draw_visual(surface)
47
52
  view.add(surface)
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.4
2
2
  Name: vispy
3
- Version: 0.14.3
3
+ Version: 0.15.2
4
4
  Summary: Interactive visualization in Python
5
5
  Home-page: http://vispy.org
6
6
  Download-URL: https://pypi.python.org/pypi/vispy
@@ -33,40 +33,63 @@ Requires-Dist: freetype-py
33
33
  Requires-Dist: hsluv
34
34
  Requires-Dist: kiwisolver
35
35
  Requires-Dist: packaging
36
- Provides-Extra: doc
37
- Requires-Dist: pydata-sphinx-theme ; extra == 'doc'
38
- Requires-Dist: numpydoc ; extra == 'doc'
39
- Requires-Dist: sphinxcontrib-apidoc ; extra == 'doc'
40
- Requires-Dist: sphinx-gallery ; extra == 'doc'
41
- Requires-Dist: myst-parser ; extra == 'doc'
42
- Requires-Dist: pillow ; extra == 'doc'
43
- Requires-Dist: pytest ; extra == 'doc'
44
- Requires-Dist: pyopengl ; extra == 'doc'
45
- Provides-Extra: glfw
46
- Requires-Dist: glfw ; extra == 'glfw'
47
- Provides-Extra: io
48
- Requires-Dist: meshio ; extra == 'io'
49
- Requires-Dist: Pillow ; extra == 'io'
50
36
  Provides-Extra: ipython-static
51
- Requires-Dist: ipython ; extra == 'ipython-static'
37
+ Requires-Dist: ipython; extra == "ipython-static"
52
38
  Provides-Extra: pyglet
53
- Requires-Dist: pyglet >=1.2 ; extra == 'pyglet'
39
+ Requires-Dist: pyglet>=1.2; extra == "pyglet"
54
40
  Provides-Extra: pyqt5
55
- Requires-Dist: pyqt5 ; extra == 'pyqt5'
41
+ Requires-Dist: pyqt5; extra == "pyqt5"
56
42
  Provides-Extra: pyqt6
57
- Requires-Dist: pyqt6 ; extra == 'pyqt6'
43
+ Requires-Dist: pyqt6; extra == "pyqt6"
58
44
  Provides-Extra: pyside
59
- Requires-Dist: PySide ; extra == 'pyside'
45
+ Requires-Dist: PySide; extra == "pyside"
60
46
  Provides-Extra: pyside2
61
- Requires-Dist: PySide2 ; extra == 'pyside2'
47
+ Requires-Dist: PySide2; extra == "pyside2"
62
48
  Provides-Extra: pyside6
63
- Requires-Dist: PySide6 ; extra == 'pyside6'
49
+ Requires-Dist: PySide6; extra == "pyside6"
50
+ Provides-Extra: glfw
51
+ Requires-Dist: glfw; extra == "glfw"
64
52
  Provides-Extra: sdl2
65
- Requires-Dist: PySDL2 ; extra == 'sdl2'
66
- Provides-Extra: tk
67
- Requires-Dist: pyopengltk ; extra == 'tk'
53
+ Requires-Dist: PySDL2; extra == "sdl2"
68
54
  Provides-Extra: wx
69
- Requires-Dist: wxPython ; extra == 'wx'
55
+ Requires-Dist: wxPython; extra == "wx"
56
+ Provides-Extra: tk
57
+ Requires-Dist: pyopengltk; extra == "tk"
58
+ Provides-Extra: doc
59
+ Requires-Dist: pydata-sphinx-theme; extra == "doc"
60
+ Requires-Dist: numpydoc; extra == "doc"
61
+ Requires-Dist: sphinxcontrib-apidoc; extra == "doc"
62
+ Requires-Dist: sphinx-gallery; extra == "doc"
63
+ Requires-Dist: myst-parser; extra == "doc"
64
+ Requires-Dist: pillow; extra == "doc"
65
+ Requires-Dist: pytest; extra == "doc"
66
+ Requires-Dist: pyopengl; extra == "doc"
67
+ Provides-Extra: io
68
+ Requires-Dist: meshio; extra == "io"
69
+ Requires-Dist: Pillow; extra == "io"
70
+ Provides-Extra: test
71
+ Requires-Dist: pytest; extra == "test"
72
+ Requires-Dist: pytest-sugar; extra == "test"
73
+ Requires-Dist: meshio; extra == "test"
74
+ Requires-Dist: pillow; extra == "test"
75
+ Requires-Dist: sphinx_gallery; extra == "test"
76
+ Requires-Dist: imageio; extra == "test"
77
+ Dynamic: author
78
+ Dynamic: author-email
79
+ Dynamic: classifier
80
+ Dynamic: description
81
+ Dynamic: description-content-type
82
+ Dynamic: download-url
83
+ Dynamic: home-page
84
+ Dynamic: keywords
85
+ Dynamic: license
86
+ Dynamic: license-file
87
+ Dynamic: platform
88
+ Dynamic: provides
89
+ Dynamic: provides-extra
90
+ Dynamic: requires-dist
91
+ Dynamic: requires-python
92
+ Dynamic: summary
70
93
 
71
94
  VisPy: interactive scientific visualization in Python
72
95
  -----------------------------------------------------
@@ -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=KFGpPXFvW0paJWUPuXrMmn72yGv5mzyEp-ociMF1Hq4,429
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
@@ -22,7 +22,7 @@ vispy/app/backends/_pyqt6.py,sha256=Rgug7PyAevgYPzkxcsRGOKSuZxh9rdP_RFjl8Xzq97s,
22
22
  vispy/app/backends/_pyside.py,sha256=zljctUXPATBxgmMYCvnibRKN-OQC_lOWZGBTmSYQIoA,1371
23
23
  vispy/app/backends/_pyside2.py,sha256=qZpBbEVmrq6uXty8fn-cmitWQJyhPpuoAYC-MC43Cng,2017
24
24
  vispy/app/backends/_pyside6.py,sha256=3Tjd1WfxOGCvyhQgmo49_KGsfSfDgmWvSuD1LW9aKXw,1869
25
- vispy/app/backends/_qt.py,sha256=rNJOdkxwuqHyPxI79xmGjt40kLZLvDGHWTh1GODp1Kg,36424
25
+ vispy/app/backends/_qt.py,sha256=3k6RWi429at952rWrllESqQ3tIaE97lUlRT_p0HUr9Y,38469
26
26
  vispy/app/backends/_sdl2.py,sha256=6Rf6TOLuP-YLmA02rjBjxnMaZSQkSihryn6UDgjyxfc,15544
27
27
  vispy/app/backends/_template.py,sha256=zFzyc74YHyOvIL26zz2nb15M27OJ_iusTVTkUF_835A,8197
28
28
  vispy/app/backends/_test.py,sha256=JDzZW-aq-1eOM167zpf5aWWeIn2lw6F-k4RcDl7wM2E,259
@@ -43,11 +43,11 @@ vispy/color/__init__.py,sha256=3IPPPTuiFWGfVmhFBSk5QCcNp-8_paj8HPrLmgkSFPY,661
43
43
  vispy/color/_color_dict.py,sha256=TqlZoWaeO3ddWwm57MaGqqoiDU5q0OmBBxpzhAcz-iM,5417
44
44
  vispy/color/color_array.py,sha256=KCOVxr_qvNfgZQI6lJHeyIVne3MeYAEx6t0V3DhFjAY,14860
45
45
  vispy/color/color_space.py,sha256=h0ntDbT4PTYaCYf2bEGRbVKI_HjbyQ2zuFSwAet9EQA,6232
46
- vispy/color/colormap.py,sha256=tsSL64QFavSyY_wzlYW2_5pXThvDC9oY02jYta5g6Jo,43720
46
+ vispy/color/colormap.py,sha256=wDtv8zfRlTPyH3V25PkbQPV25G-hp9cn04kughc5230,46963
47
47
  vispy/color/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
48
- vispy/color/tests/test_color.py,sha256=wghhl5hWzLQAJexx53X2pGqxKkzvq7EsZZB6fjP1JcQ,13271
48
+ vispy/color/tests/test_color.py,sha256=hzMrptmlQ5jeu1d-xIUpZ7ZOMrQn0iOk1qR6fxweMzA,14092
49
49
  vispy/ext/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
50
- vispy/ext/cocoapy.py,sha256=H6G4xmHk-iof6jEtnsUj05rbLloODsuA_5woDU-O4s8,55782
50
+ vispy/ext/cocoapy.py,sha256=fJbQ4pFBAMVI91uqnTm0j5JgXr8SqTadlx2M5iF0VFk,55136
51
51
  vispy/ext/cubehelix.py,sha256=ubDEoEoc04mKuU8sqEZijsjPayfZjYiiIHYCyiSMd9c,5478
52
52
  vispy/ext/egl.py,sha256=K2vuBsbHUdomCNu74nXguoEms8Yi-FBBz9Q770esuYA,12535
53
53
  vispy/ext/fontconfig.py,sha256=DAGBvA1mN0RkKQ_QIRY1rWiPsT7HCwxpgmn4xtgvgyQ,4354
@@ -60,18 +60,18 @@ vispy/geometry/curves.py,sha256=aatBl8ArN1z_RumPHS4ZlCTXPUPOh8mGJ-jeKJ6LpXU,1354
60
60
  vispy/geometry/generation.py,sha256=eCJzZFJBz8dGwsPiN-Zzdq6vuP5JRFUhllPXayljMKg,21584
61
61
  vispy/geometry/isocurve.py,sha256=LNHyCpKDmtzITP1kvKQQvhmD__Pb25VYDn0fXbtJQTs,5971
62
62
  vispy/geometry/isosurface.py,sha256=NXWY0UREZQoTYe4RUPsUWDn5qdmdPHTPhpKCiR1Hyrk,21116
63
- vispy/geometry/meshdata.py,sha256=r01dO5HuMxWFsJz3YFyGJVVgslVHwvV4Y6PSCaQxPvg,27528
63
+ vispy/geometry/meshdata.py,sha256=cyOOS8f8-7zP7zUhcMUlUnH72WOpxULzc1_BrC7RtiI,27686
64
64
  vispy/geometry/normals.py,sha256=E1LF5g1Pf-9YdveK_385eJLmYCFjEvshrLVSd3s0jlc,2514
65
65
  vispy/geometry/parametric.py,sha256=1K2MoBwJJbWL46iqE3VM2LrgBqi08BW8r2qsMomlru4,1996
66
66
  vispy/geometry/polygon.py,sha256=VAgsEr4N7i1jhCUq7KBlm1juiueauNzh6a9S9WhSuxE,4338
67
67
  vispy/geometry/rect.py,sha256=m4rDnXT94nxggOGgdovgG1awqjzntaoMHlsa_xLuVTc,5894
68
68
  vispy/geometry/torusknot.py,sha256=iIQeIdkxVzEJPs6lx6a33C-Tlu5eFwozgA6FXbBvzA4,4404
69
- vispy/geometry/triangulation.py,sha256=N9ESaKS8MaoXAWpBPzIEmXEfAf8FiRiynJOMwQ6HvMY,32889
69
+ vispy/geometry/triangulation.py,sha256=IiJR1EmsGBKmoyy-T-Kg9ADIaZXfiBZwhH93vVR2Kxg,32784
70
70
  vispy/geometry/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
71
71
  vispy/geometry/tests/test_calculations.py,sha256=vIskbDm-LJkNE7pQ1Ig8dq1QYjS4ka6mgsnuGNdlPZA,1061
72
72
  vispy/geometry/tests/test_generation.py,sha256=GXZE3U9W7fZ7wow3j2RXcNGDV9FytRvb6yRPErKF3wc,2166
73
73
  vispy/geometry/tests/test_meshdata.py,sha256=awAY1VmD81HHXIox-bGvSPRs71nCChOGIZCUwTk-pRg,4335
74
- vispy/geometry/tests/test_triangulation.py,sha256=IrwcANHEIyjeE-b-ZyeYm8K_JLyOfczLJ2AGRzEIIjw,13206
74
+ vispy/geometry/tests/test_triangulation.py,sha256=RLj8iVL4Ce4sOHrgxTTY1YRSPUkzE_MH4f5ThsywAd8,15089
75
75
  vispy/gloo/__init__.py,sha256=zK8VDdY_d2sXDLe2ppCRkbXzqj9FrvKsuyU0SVa9OOU,2078
76
76
  vispy/gloo/buffer.py,sha256=aON7GEt0gU4K56b091TJ8MCvW05jaaYKg1fHDal04Tg,17300
77
77
  vispy/gloo/context.py,sha256=avyXSS9lpehlcjU1IG-3aaHEtVaU1peGEj_e54vvmSo,8912
@@ -79,7 +79,7 @@ vispy/gloo/framebuffer.py,sha256=rG0fcM2NkED9jFF-GFk0vBDZfqriP63W8VSDr0gcVnM,960
79
79
  vispy/gloo/glir.py,sha256=aBjezLai48LCQ6ibgjnvImcx1cVQ06L8yqoLoKnupfY,68263
80
80
  vispy/gloo/globject.py,sha256=eMkpFZrqJYSHx8A5j1lH-uczqZk-IX2ZYb77E-b1DOM,4013
81
81
  vispy/gloo/preprocessor.py,sha256=lMp2OxCyZDb5gyLUYK3qLMhStrmbyIgnVYnmniWr-wE,2358
82
- vispy/gloo/program.py,sha256=Uvo4TN6EViPqaDHhbDmOQjKYm-K6c_WHnFgPEvqTscc,22867
82
+ vispy/gloo/program.py,sha256=UglB_kz2W9UUvpgos5OepvUJUoE1Gr6evA2lOtCB9mI,22895
83
83
  vispy/gloo/texture.py,sha256=n21fLkSOAsDKTWbGXRfdzbbAGCu48V8SkqQn9an69rw,39502
84
84
  vispy/gloo/util.py,sha256=sC1OM-L0iY3ymJIU4eNOk_9hzDKZVNiKKHOBT_6m500,4548
85
85
  vispy/gloo/wrappers.py,sha256=Buyf8Xl8oPREzH9cn9Ez6ltQ6eaSKDfRrVmuA3GHys0,27222
@@ -276,13 +276,13 @@ vispy/scene/subscene.py,sha256=uIPaLqVpHxeK0YycOWxrdcNSrY4t3KkYqj6BckCS8O0,584
276
276
  vispy/scene/visuals.py,sha256=-sZfp5xdmB0tS8v8ZEJGaP6KY1FIR4ae8l--znzlM9M,10212
277
277
  vispy/scene/cameras/__init__.py,sha256=Yebnynea-WoUzrg72S6s9RVh2OkXY3FlYOxI6_EV2bk,1271
278
278
  vispy/scene/cameras/_base.py,sha256=CKRsQo7BtUTkQnKcSgL2qbIS5FtsGzO6ZNFWARrh4AY,1315
279
- vispy/scene/cameras/arcball.py,sha256=CfwtKfw5_q9XWj63NF8CuaDl4MVWZBU4iaMl3De3_kg,3712
280
- vispy/scene/cameras/base_camera.py,sha256=cQ8PXZjenxQ-PuHx5zDxrAXeuk32DHG2E73qETHRPyc,19439
279
+ vispy/scene/cameras/arcball.py,sha256=soHq17G6fELpXNh6il5m4UG7muBWeMOiJYrX8tqoUG0,3702
280
+ vispy/scene/cameras/base_camera.py,sha256=-pNpf_eRskxlfHhCA2XmRgzRtz76V7Q1YqEpAOKoS5M,19968
281
281
  vispy/scene/cameras/fly.py,sha256=alVajdbGl3LqBlC7-j54eOu5I3msXYvUtsZnfcVf8YU,16817
282
282
  vispy/scene/cameras/magnify.py,sha256=1SwWW3yA6OXnu-FjcuPY_k82XquaXI4PV8_XdcnCdvs,5550
283
- vispy/scene/cameras/panzoom.py,sha256=HPXim0zw41CS5ZUCQpV851jkMpJLNuPLrbOm82ZK8_I,11274
284
- vispy/scene/cameras/perspective.py,sha256=80u9xp25qUxSihyCxfwJX_rG_GylLZ19Drj9R93Kq7c,12172
285
- vispy/scene/cameras/turntable.py,sha256=wVAY12B23ckgY19s86Dhqq6t02D9MNZUCR7dA-2ufpo,5880
283
+ vispy/scene/cameras/panzoom.py,sha256=bLkvguUHWoo3QSLr7WyZELp3WQue6aDv1PAtuMUYU8I,11386
284
+ vispy/scene/cameras/perspective.py,sha256=3UPMBv1SC6U1u1DPXT2Eu__k2WxcrGrcaGZeZVB-5Us,12338
285
+ vispy/scene/cameras/turntable.py,sha256=kavbXrUjxSqF43hlXJ_eWDBOpGMRUQlbU_8bx7sgR4U,6162
286
286
  vispy/scene/cameras/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
287
287
  vispy/scene/cameras/tests/test_cameras.py,sha256=IJNUkgmmLSsgDk48hp1MOevner_eQNs7st324JsCjN4,1095
288
288
  vispy/scene/cameras/tests/test_link.py,sha256=HLQaBPyjCryXlIJD63hKkSBA-ubEzojbmatQqHGBi9I,1665
@@ -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=SOXH5UT2qNlKVPrrNQOIm_rAFrG1IB-ngFiwO46l_8I,19165
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=489bq_DqHGGwBxtxfCSPBkfGlFjT6Zp37DCygmnKsRI,14341
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
@@ -375,17 +375,17 @@ vispy/util/tests/test_run.py,sha256=m4MO_HygF_mk_aFK5zMp-5EDaxRcECJeRWc_x8Bv1ik,
375
375
  vispy/util/tests/test_transforms.py,sha256=LPX8AgB65LVO-sY2KxgBODzd_GmLDMwBpY4cjks17GA,1554
376
376
  vispy/util/tests/test_vispy.py,sha256=alCPm4Pc0pHyhLLrlflhmSVZWHNBjZ8LVx8QgOTWkb4,1542
377
377
  vispy/visuals/__init__.py,sha256=iCtogjsTpVVGd9GNFbpLHABetHoGEeTAJNP2MvXn-Jw,2278
378
- vispy/visuals/_scalable_textures.py,sha256=MF8LbK3ayS71_fgFQeN7TrEcbj9YaxVI8IIiDe65sxk,20199
378
+ vispy/visuals/_scalable_textures.py,sha256=CsI4kJPPpVHdHNw1_ISgJYGd-qJUA3ECMPqVWG7WVA4,20235
379
379
  vispy/visuals/axis.py,sha256=D_kdZYJ5tzX1NOrywRn57iMiiOLJLbC59NW-dabFg30,24250
380
380
  vispy/visuals/border.py,sha256=of996lva-tNa-kRb544IWkzrcP-YVtHGEZPMjxgs2lI,7085
381
381
  vispy/visuals/box.py,sha256=2noQWXwjCPluy0YLzrugoeV-vKfSOSRabsAKrJVV_T4,2906
382
382
  vispy/visuals/colorbar.py,sha256=-1saUDIeP8jjG8LgkAugYoWoyHvI0m10_xNY45ceapg,24459
383
383
  vispy/visuals/cube.py,sha256=c_YgNz4EuhKW5z_H5Yl2zIOpmwdJU64H378RZkuWDSA,1764
384
384
  vispy/visuals/ellipse.py,sha256=uqsSxUL74i2aiwXGHzuwbGbdnjLeKAlhageSpjc0mdw,5236
385
- vispy/visuals/gridlines.py,sha256=6VtSG-mhbRfhyqZTJgXvB8tVoy_c1bW_fOq9RwJLkPw,3626
385
+ vispy/visuals/gridlines.py,sha256=K9c6x-sPY6qH2cKG97z7ygnBT67xNa150EejfF_a6Vs,5378
386
386
  vispy/visuals/gridmesh.py,sha256=M9CBguUnFl97F-kNtchdkhXStuKPIwfJT1idugxV9Xo,3444
387
387
  vispy/visuals/histogram.py,sha256=LaTASUMj1XJHxTIL9tSATuFPIUitIxyUDKqfpQZqVt0,2122
388
- vispy/visuals/image.py,sha256=Pnukq08pdBd6DwwLVkEZBfItuCD5pdZ8seWscuotWwE,27357
388
+ vispy/visuals/image.py,sha256=JCyI9cQMRsHGEC0InCwdp9xDJatDnrrA7P9e80qsJtg,27725
389
389
  vispy/visuals/image_complex.py,sha256=GPzlC57zP6UjAVXQvW8kUFAfW27AqGLAzmPnMm43S6k,5403
390
390
  vispy/visuals/infinite_line.py,sha256=vOKsbwe0AoytKHynB4CM9RtHE7hWlhdse0j0KzlBX7o,6205
391
391
  vispy/visuals/instanced_mesh.py,sha256=3NqIPWGDdcP9gIh5BJWVX2fD6aithsTbEvT_qAk3C_g,5841
@@ -404,7 +404,7 @@ vispy/visuals/regular_polygon.py,sha256=3ckoUHt5j1jrFrelM3e3Q_ieEV58mYeYhbx0OQRe
404
404
  vispy/visuals/scrolling_lines.py,sha256=Pkxp8JuH_4Fbd9tMctZN1W5BNkI4NYKSCsGYe_yEPYk,7262
405
405
  vispy/visuals/spectrogram.py,sha256=Dho8_mOxvxT8QzdUIbUqOGNdSJhtf4IeZjyVNp1ZtZM,5109
406
406
  vispy/visuals/sphere.py,sha256=2JMsmoyjQvO6F7G-W1Bg2wAUQjyyeoTPWCPTQs04B1U,3171
407
- vispy/visuals/surface_plot.py,sha256=cM795YcJh49T9IzJqQlX8_nwbovgFJxPI8IofhnkEM0,7508
407
+ vispy/visuals/surface_plot.py,sha256=kg_e9URAGxH_ippWyrxGzKXiCvlKStrWM-N-M1s1qWI,7523
408
408
  vispy/visuals/tube.py,sha256=Attnn3Dtue0hTmONb3dDT0A56TAAkHoVumSMm26TyN8,6158
409
409
  vispy/visuals/visual.py,sha256=WnQQGr46ACEwiPnVDv_J0e3qEOSEkvZEdDwYEZpPvGM,30714
410
410
  vispy/visuals/volume.py,sha256=mzsrFQDFHqaiqFVhcriCrIlPrKB6imp9cLi-g0ACKHQ,52106
@@ -435,7 +435,7 @@ vispy/visuals/filters/clipper.py,sha256=S4O8DE0W2Mrn070Ra8y9weFyYrfkj-rMTDnxKHCn
435
435
  vispy/visuals/filters/clipping_planes.py,sha256=xyZopj2zg6vK1IhxwGRK-PyxBlViFLyjAmH2x41BLc0,4649
436
436
  vispy/visuals/filters/color.py,sha256=M_aF-TNCtwDjfvpbtjH62ToVCNrfMKEDMB_kgxR36ks,5230
437
437
  vispy/visuals/filters/markers.py,sha256=qS6EstAuH55oC6khhsXtw2_dXkZy1xgAlRTv3xRuIdA,799
438
- vispy/visuals/filters/mesh.py,sha256=S9U15viRCJUGSfYpRR3tVZ4wQBXIP4O5egJeRmDnRIw,26896
438
+ vispy/visuals/filters/mesh.py,sha256=gfIIrJM6fyg3uFbmw-CdrZQimDPbjIn1HibA5zEP4Ys,27191
439
439
  vispy/visuals/filters/picking.py,sha256=449YDNZYR14jt6KMhzs41wz1lsik7F0p2YaMZnyFZHo,1597
440
440
  vispy/visuals/filters/tests/__init__.py,sha256=yhDex0XDn0SIeqRp8QezJPJ3uoF6XE4TjIIi5suyVU0,163
441
441
  vispy/visuals/filters/tests/test_primitive_picking_filters.py,sha256=KpDuc4Sn_hMV9j4BIsYH--fcTtPIrPOYJiQWMi3nE6I,2212
@@ -478,8 +478,9 @@ vispy/visuals/tests/test_collections.py,sha256=jV70BkbcbSE_P3tzsNaKtTQF5UOXeIMGJ
478
478
  vispy/visuals/tests/test_colorbar.py,sha256=aK3yAMqRKxwGGkjfQrB9HZIA9P--Lz6gnCeQ6HhocSw,6166
479
479
  vispy/visuals/tests/test_colormap.py,sha256=mTHuruHPAnmVBD8D-811FhaI7SMUbdBh6uY0r4-dgLk,3838
480
480
  vispy/visuals/tests/test_ellipse.py,sha256=_vv3wnV6k_pT5cDQBKwk-4qKqddim2NFeU42K6FLMYw,5067
481
+ vispy/visuals/tests/test_gridlines.py,sha256=r7_oF7X8QNisS7B5BHqyMg-l1ucenFO3GrvKSG2Em4Q,933
481
482
  vispy/visuals/tests/test_histogram.py,sha256=x8kuryeEQPy8yZPEGHSPUgwnntn4lZQ556Rajy9NlxQ,838
482
- vispy/visuals/tests/test_image.py,sha256=xIXQGHFFv7Rrh-Frt4tbQT9m0Ff7Z75gTuja2CGtbJ0,14345
483
+ vispy/visuals/tests/test_image.py,sha256=DuVwUDhexe1bb8sJsXN9MvFmF2XKDpCiDjJk_nY6AxE,14537
483
484
  vispy/visuals/tests/test_image_complex.py,sha256=8xoC71Wy9t1yb5Bot02CEHMgmQJFGHPLCFr5I3ZnwtE,1487
484
485
  vispy/visuals/tests/test_infinite_line.py,sha256=PnyBJ9dKmFwPlon2rfE23OSeLiOH65mmZKgDdlWVgc4,1989
485
486
  vispy/visuals/tests/test_instanced_mesh.py,sha256=e1BnmF-JGI_8ZrZJ_VWUlEburrgSimB-GJE89qzLQow,1436
@@ -491,15 +492,15 @@ vispy/visuals/tests/test_mesh_normals.py,sha256=6L28MJSTn3Uq0fDnKP99_Qa6cXTgP5vx
491
492
  vispy/visuals/tests/test_polygon.py,sha256=C_tg_wqhOGypfaR_OgKGSovbN1e92uvAr8t0i8lrK3U,4269
492
493
  vispy/visuals/tests/test_rectangle.py,sha256=I3vKnjaGDeToEDocLPg8ZWm2RT2LaMidtUsZE7fpYiE,6821
493
494
  vispy/visuals/tests/test_regular_polygon.py,sha256=pQNkBeXFqPcgpuPIMdxGZQdew5bnyasfewXwQnkuIXo,4942
494
- vispy/visuals/tests/test_scalable_textures.py,sha256=KkiErVdNDxvRG057yIbqMwxxVY-337nkSMoB69F5TXg,5301
495
+ vispy/visuals/tests/test_scalable_textures.py,sha256=wwaXdMH4dexToU931RkuDxyxxbAqUpeepdRv_-N94Sg,5885
495
496
  vispy/visuals/tests/test_sdf.py,sha256=MWlBi6UftWRx0TGcvnrtLcUY1ZaSztR5gTA9GA8kWGg,3010
496
497
  vispy/visuals/tests/test_spectrogram.py,sha256=odK-n1nYM-wBy2H3Z9f5Ykh4yBmxT9HQB7E-C53czSw,1376
497
- vispy/visuals/tests/test_surface_plot.py,sha256=KHCvtjZIFdwVGrncTvHCYPE13Y8YX--u7-0aQ-s6k9M,1586
498
+ vispy/visuals/tests/test_surface_plot.py,sha256=xd0BrGhysIDzt1EpLM3f62JIhE1Aw_JfXeC3Bp1Lzbc,1819
498
499
  vispy/visuals/tests/test_text.py,sha256=webfWtJcSgUkj3QBtZ4kggrs5OdkGZGb0byYc4mtraM,2895
499
500
  vispy/visuals/tests/test_volume.py,sha256=mepaB3ssWl0s4gFU_yYTlhsQ1TCCkg_KtdTkLvR2Brs,18120
500
501
  vispy/visuals/tests/test_windbarb.py,sha256=cqEEcAnPMf29ZloL2fWJo2N04lrJgmQnD-Kt8mXWEQA,1135
501
502
  vispy/visuals/text/__init__.py,sha256=qWgGDKR-ezH4ZzzGKfs72S_zOauVDn5snJ5uHnYv6LE,364
502
- vispy/visuals/text/_sdf_cpu.cp312-win_amd64.pyd,sha256=L1xycSIU-UQHdkD7ZWh9iNKAmX151anOQC8c0w9gI1o,157696
503
+ vispy/visuals/text/_sdf_cpu.cp312-win_amd64.pyd,sha256=FtNyvuqK8FyYjocdvyNU5c0fFacEMa6sGRhMbwxZuw4,145408
503
504
  vispy/visuals/text/_sdf_cpu.pyx,sha256=ymPErgiHN9jhBFuj_GXnChAzTeDbGM-MUQl3lIlzENE,3922
504
505
  vispy/visuals/text/_sdf_gpu.py,sha256=XW5nKivmvUx7tA8LebC7u7N37QQfBcMSUrdPvkG9JU8,10796
505
506
  vispy/visuals/text/text.py,sha256=hK8oSjF34PfczzBa5V7nmsR6uCfI-eqcR3zUB73YpjA,25928
@@ -513,8 +514,8 @@ vispy/visuals/transforms/nonlinear.py,sha256=oiHDhqoM9E4rBGMmqZtVSJVspt1FgZORig6
513
514
  vispy/visuals/transforms/transform_system.py,sha256=dKRMid1Gm0bhh9K_v1RiC-xxbmQF61OHz_0Ur8GdMmU,14098
514
515
  vispy/visuals/transforms/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
515
516
  vispy/visuals/transforms/tests/test_transforms.py,sha256=QbAo0I3g5VkaQzzsZ03zktP-ge2JiXQeD2rqV6_LK7o,7114
516
- vispy-0.14.3.dist-info/LICENSE.txt,sha256=WDEavemgKeEMcbfp2qjU8y8yrxcTIF7ZDAxySta62p8,1810
517
- vispy-0.14.3.dist-info/METADATA,sha256=m7BeNoyrpxev9r_EMKI_oe7mIsvNw1z_sA9xSWd_iRk,8614
518
- vispy-0.14.3.dist-info/WHEEL,sha256=fZWyj_84lK0cA-ZNCsdwhbJl0OTrpWkxInEn424qrSs,102
519
- vispy-0.14.3.dist-info/top_level.txt,sha256=mciStn1SI48jYwEhJXlrMJ3HaJ90XOr5ZGJ8YdFI674,6
520
- vispy-0.14.3.dist-info/RECORD,,
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=b7PoVIxzH_MOHKjftqMzQiGKfdHRlRFepVBVPg0y3vc,101
520
+ vispy-0.15.2.dist-info/top_level.txt,sha256=mciStn1SI48jYwEhJXlrMJ3HaJ90XOr5ZGJ8YdFI674,6
521
+ vispy-0.15.2.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: bdist_wheel (0.43.0)
2
+ Generator: setuptools (80.7.1)
3
3
  Root-Is-Purelib: false
4
4
  Tag: cp312-cp312-win_amd64
5
5
 
@@ -3,7 +3,7 @@ Vispy licensing terms
3
3
 
4
4
  Vispy is licensed under the terms of the (new) BSD license:
5
5
 
6
- Copyright (c) 2013-2024, Vispy Development Team. All rights reserved.
6
+ Copyright (c) 2013-2025, Vispy Development Team. All rights reserved.
7
7
 
8
8
  Redistribution and use in source and binary forms, with or without
9
9
  modification, are permitted provided that the following conditions are met: