vispy 0.14.2__tar.gz → 0.15.1__tar.gz

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.

Files changed (829) hide show
  1. {vispy-0.14.2 → vispy-0.15.1}/.github/workflows/main.yml +9 -7
  2. {vispy-0.14.2 → vispy-0.15.1}/.github/workflows/wheels.yml +8 -48
  3. {vispy-0.14.2 → vispy-0.15.1}/.gitignore +2 -1
  4. {vispy-0.14.2 → vispy-0.15.1}/CHANGELOG.md +70 -0
  5. {vispy-0.14.2 → vispy-0.15.1}/LICENSE.txt +1 -1
  6. {vispy-0.14.2/vispy.egg-info → vispy-0.15.1}/PKG-INFO +56 -6
  7. {vispy-0.14.2 → vispy-0.15.1}/README.rst +1 -1
  8. {vispy-0.14.2 → vispy-0.15.1}/ci/requirements/linux_full_deps_apt.txt +2 -0
  9. {vispy-0.14.2 → vispy-0.15.1}/ci/requirements/linux_full_deps_conda.txt +2 -2
  10. {vispy-0.14.2 → vispy-0.15.1}/ci/requirements/linux_full_newqtdeps_apt.txt +1 -1
  11. {vispy-0.14.2 → vispy-0.15.1}/doc/conf.py +33 -33
  12. {vispy-0.14.2 → vispy-0.15.1}/doc/getting_started/modern-gl.rst +1 -1
  13. {vispy-0.14.2 → vispy-0.15.1}/doc/installation.rst +1 -1
  14. vispy-0.15.1/examples/scene/instanced_mesh_picking.py +96 -0
  15. vispy-0.15.1/pyproject.toml +27 -0
  16. {vispy-0.14.2 → vispy-0.15.1}/setup.py +4 -2
  17. {vispy-0.14.2 → vispy-0.15.1}/vispy/app/backends/_qt.py +46 -11
  18. {vispy-0.14.2 → vispy-0.15.1}/vispy/color/colormap.py +106 -27
  19. {vispy-0.14.2 → vispy-0.15.1}/vispy/color/tests/test_color.py +27 -1
  20. {vispy-0.14.2 → vispy-0.15.1}/vispy/ext/cocoapy.py +1 -21
  21. {vispy-0.14.2 → vispy-0.15.1}/vispy/geometry/__init__.py +1 -1
  22. {vispy-0.14.2 → vispy-0.15.1}/vispy/geometry/calculations.py +30 -2
  23. {vispy-0.14.2 → vispy-0.15.1}/vispy/geometry/meshdata.py +3 -1
  24. {vispy-0.14.2 → vispy-0.15.1}/vispy/geometry/tests/test_triangulation.py +88 -0
  25. {vispy-0.14.2 → vispy-0.15.1}/vispy/geometry/triangulation.py +14 -14
  26. {vispy-0.14.2 → vispy-0.15.1}/vispy/gloo/buffer.py +4 -4
  27. {vispy-0.14.2 → vispy-0.15.1}/vispy/gloo/gl/tests/test_functionality.py +4 -2
  28. {vispy-0.14.2 → vispy-0.15.1}/vispy/gloo/glir.py +7 -2
  29. {vispy-0.14.2 → vispy-0.15.1}/vispy/gloo/program.py +2 -2
  30. {vispy-0.14.2 → vispy-0.15.1}/vispy/gloo/texture.py +4 -3
  31. {vispy-0.14.2 → vispy-0.15.1}/vispy/scene/cameras/arcball.py +1 -2
  32. {vispy-0.14.2 → vispy-0.15.1}/vispy/scene/cameras/base_camera.py +63 -50
  33. {vispy-0.14.2 → vispy-0.15.1}/vispy/scene/cameras/panzoom.py +4 -1
  34. {vispy-0.14.2 → vispy-0.15.1}/vispy/scene/cameras/perspective.py +6 -1
  35. {vispy-0.14.2 → vispy-0.15.1}/vispy/scene/cameras/turntable.py +11 -1
  36. {vispy-0.14.2 → vispy-0.15.1}/vispy/testing/_runners.py +3 -1
  37. {vispy-0.14.2 → vispy-0.15.1}/vispy/util/__init__.py +15 -0
  38. vispy-0.15.1/vispy/version.py +21 -0
  39. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/_scalable_textures.py +7 -5
  40. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/collections/array_list.py +4 -4
  41. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/filters/mesh.py +6 -1
  42. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/gridlines.py +61 -5
  43. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/image.py +21 -8
  44. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/surface_plot.py +1 -1
  45. vispy-0.15.1/vispy/visuals/tests/test_gridlines.py +30 -0
  46. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/tests/test_image.py +17 -15
  47. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/tests/test_scalable_textures.py +16 -0
  48. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/tests/test_surface_plot.py +8 -3
  49. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/text/_sdf_cpu.pyx +2 -0
  50. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/volume.py +35 -4
  51. {vispy-0.14.2 → vispy-0.15.1/vispy.egg-info}/PKG-INFO +56 -6
  52. {vispy-0.14.2 → vispy-0.15.1}/vispy.egg-info/SOURCES.txt +2 -0
  53. {vispy-0.14.2 → vispy-0.15.1}/vispy.egg-info/requires.txt +11 -1
  54. vispy-0.14.2/pyproject.toml +0 -12
  55. vispy-0.14.2/vispy/version.py +0 -4
  56. {vispy-0.14.2 → vispy-0.15.1}/.coveragerc +0 -0
  57. {vispy-0.14.2 → vispy-0.15.1}/.git_archival.txt +0 -0
  58. {vispy-0.14.2 → vispy-0.15.1}/.gitattributes +0 -0
  59. {vispy-0.14.2 → vispy-0.15.1}/.github/dependabot.yml +0 -0
  60. {vispy-0.14.2 → vispy-0.15.1}/.github_changelog_generator +0 -0
  61. {vispy-0.14.2 → vispy-0.15.1}/CITATION.rst +0 -0
  62. {vispy-0.14.2 → vispy-0.15.1}/CODE_OF_CONDUCT.md +0 -0
  63. {vispy-0.14.2 → vispy-0.15.1}/CONTRIBUTING.md +0 -0
  64. {vispy-0.14.2 → vispy-0.15.1}/MANIFEST.in +0 -0
  65. {vispy-0.14.2 → vispy-0.15.1}/ci/build_website.sh +0 -0
  66. {vispy-0.14.2 → vispy-0.15.1}/ci/requirements/linux_full_deps_pip.txt +0 -0
  67. {vispy-0.14.2 → vispy-0.15.1}/ci/requirements/linux_full_newqtdeps_conda.txt +0 -0
  68. {vispy-0.14.2 → vispy-0.15.1}/ci/requirements/linux_full_newqtdeps_pip.txt +0 -0
  69. {vispy-0.14.2 → vispy-0.15.1}/ci/requirements/linux_min_deps_conda.txt +0 -0
  70. {vispy-0.14.2 → vispy-0.15.1}/ci/requirements/linux_osmesa_deps_conda.txt +0 -0
  71. {vispy-0.14.2 → vispy-0.15.1}/ci/requirements/linux_website_deps_pip.txt +0 -0
  72. {vispy-0.14.2 → vispy-0.15.1}/ci/requirements/py310.yml +0 -0
  73. {vispy-0.14.2 → vispy-0.15.1}/ci/requirements/py39.yml +0 -0
  74. {vispy-0.14.2 → vispy-0.15.1}/doc/.gitignore +0 -0
  75. {vispy-0.14.2 → vispy-0.15.1}/doc/.nojekyll +0 -0
  76. {vispy-0.14.2 → vispy-0.15.1}/doc/CNAME +0 -0
  77. {vispy-0.14.2 → vispy-0.15.1}/doc/Makefile +0 -0
  78. {vispy-0.14.2 → vispy-0.15.1}/doc/README.rst +0 -0
  79. {vispy-0.14.2 → vispy-0.15.1}/doc/_static/ViewFrustum.png +0 -0
  80. {vispy-0.14.2 → vispy-0.15.1}/doc/_static/ViewFrustum.svg +0 -0
  81. {vispy-0.14.2 → vispy-0.15.1}/doc/_static/carousel/galaxy.png +0 -0
  82. {vispy-0.14.2 → vispy-0.15.1}/doc/_static/carousel/high-frequency.png +0 -0
  83. {vispy-0.14.2 → vispy-0.15.1}/doc/_static/carousel/mandelbrot.png +0 -0
  84. {vispy-0.14.2 → vispy-0.15.1}/doc/_static/carousel/signals.png +0 -0
  85. {vispy-0.14.2 → vispy-0.15.1}/doc/_static/favicon.ico +0 -0
  86. {vispy-0.14.2 → vispy-0.15.1}/doc/_static/frustum-matrix.png +0 -0
  87. {vispy-0.14.2 → vispy-0.15.1}/doc/_static/gl-history.png +0 -0
  88. {vispy-0.14.2 → vispy-0.15.1}/doc/_static/gl-pipeline.png +0 -0
  89. {vispy-0.14.2 → vispy-0.15.1}/doc/_static/gl-pipeline.svg +0 -0
  90. {vispy-0.14.2 → vispy-0.15.1}/doc/_static/ortho-matrix.png +0 -0
  91. {vispy-0.14.2 → vispy-0.15.1}/doc/_static/perspective-matrix.png +0 -0
  92. {vispy-0.14.2 → vispy-0.15.1}/doc/_static/style.css +0 -0
  93. {vispy-0.14.2 → vispy-0.15.1}/doc/_static/vispy-logo-V.png +0 -0
  94. {vispy-0.14.2 → vispy-0.15.1}/doc/_static/vispy-logo-V.svg +0 -0
  95. {vispy-0.14.2 → vispy-0.15.1}/doc/_static/vispy-teaser-short.png +0 -0
  96. {vispy-0.14.2 → vispy-0.15.1}/doc/_static/vispy-teaser-short.svg +0 -0
  97. {vispy-0.14.2 → vispy-0.15.1}/doc/_static/vispy-teaser.png +0 -0
  98. {vispy-0.14.2 → vispy-0.15.1}/doc/_static/vispy-teaser.svg +0 -0
  99. {vispy-0.14.2 → vispy-0.15.1}/doc/_static/vispy-text-white.png +0 -0
  100. {vispy-0.14.2 → vispy-0.15.1}/doc/_static/vispy-text-white.svg +0 -0
  101. {vispy-0.14.2 → vispy-0.15.1}/doc/api/.gitkeep +0 -0
  102. {vispy-0.14.2 → vispy-0.15.1}/doc/community.rst +0 -0
  103. {vispy-0.14.2 → vispy-0.15.1}/doc/dev_guide/contributor_guide.rst +0 -0
  104. {vispy-0.14.2 → vispy-0.15.1}/doc/dev_guide/index.rst +0 -0
  105. {vispy-0.14.2 → vispy-0.15.1}/doc/dev_guide/writing_examples.rst +0 -0
  106. {vispy-0.14.2 → vispy-0.15.1}/doc/faq.rst +0 -0
  107. {vispy-0.14.2 → vispy-0.15.1}/doc/gallery/index.rst +0 -0
  108. {vispy-0.14.2 → vispy-0.15.1}/doc/getting_started/_canvas_app.rst +0 -0
  109. {vispy-0.14.2 → vispy-0.15.1}/doc/getting_started/gloo.rst +0 -0
  110. {vispy-0.14.2 → vispy-0.15.1}/doc/getting_started/index.rst +0 -0
  111. {vispy-0.14.2 → vispy-0.15.1}/doc/getting_started/plot.rst +0 -0
  112. {vispy-0.14.2 → vispy-0.15.1}/doc/getting_started/scene.rst +0 -0
  113. {vispy-0.14.2 → vispy-0.15.1}/doc/getting_started/visuals.rst +0 -0
  114. {vispy-0.14.2 → vispy-0.15.1}/doc/governance/GOVERNANCE.md +0 -0
  115. {vispy-0.14.2 → vispy-0.15.1}/doc/governance/MAINTAINERS.md +0 -0
  116. {vispy-0.14.2 → vispy-0.15.1}/doc/index.rst +0 -0
  117. {vispy-0.14.2 → vispy-0.15.1}/doc/news.rst +0 -0
  118. {vispy-0.14.2 → vispy-0.15.1}/doc/org/ANTITRUST.md +0 -0
  119. {vispy-0.14.2 → vispy-0.15.1}/doc/org/CHARTER.md +0 -0
  120. {vispy-0.14.2 → vispy-0.15.1}/doc/org/STEERING-COMMITTEE.md +0 -0
  121. {vispy-0.14.2 → vispy-0.15.1}/doc/org/TRADEMARKS.md +0 -0
  122. {vispy-0.14.2 → vispy-0.15.1}/doc/overview.rst +0 -0
  123. {vispy-0.14.2 → vispy-0.15.1}/doc/raspberry.rst +0 -0
  124. {vispy-0.14.2 → vispy-0.15.1}/doc/resources.rst +0 -0
  125. {vispy-0.14.2 → vispy-0.15.1}/doc/roadmap.rst +0 -0
  126. {vispy-0.14.2 → vispy-0.15.1}/doc/thirdparty.rst +0 -0
  127. {vispy-0.14.2 → vispy-0.15.1}/examples/README.rst +0 -0
  128. {vispy-0.14.2 → vispy-0.15.1}/examples/basics/scene/modular_shaders/editor.py +0 -0
  129. {vispy-0.14.2 → vispy-0.15.1}/examples/basics/scene/modular_shaders/sandbox.py +0 -0
  130. {vispy-0.14.2 → vispy-0.15.1}/examples/basics/scene/shared_context.py +0 -0
  131. {vispy-0.14.2 → vispy-0.15.1}/examples/basics/scene/stereo.py +0 -0
  132. {vispy-0.14.2 → vispy-0.15.1}/examples/basics/visuals/arcball.py +0 -0
  133. {vispy-0.14.2 → vispy-0.15.1}/examples/basics/visuals/arrows.py +0 -0
  134. {vispy-0.14.2 → vispy-0.15.1}/examples/basics/visuals/arrows_quiver.py +0 -0
  135. {vispy-0.14.2 → vispy-0.15.1}/examples/basics/visuals/axially_symmetric_surfaces.py +0 -0
  136. {vispy-0.14.2 → vispy-0.15.1}/examples/basics/visuals/bezier.py +0 -0
  137. {vispy-0.14.2 → vispy-0.15.1}/examples/basics/visuals/box.py +0 -0
  138. {vispy-0.14.2 → vispy-0.15.1}/examples/basics/visuals/colorbar_visual.py +0 -0
  139. {vispy-0.14.2 → vispy-0.15.1}/examples/basics/visuals/colorbar_visual_types.py +0 -0
  140. {vispy-0.14.2 → vispy-0.15.1}/examples/basics/visuals/custom_visual.py +0 -0
  141. {vispy-0.14.2 → vispy-0.15.1}/examples/basics/visuals/dynamic_polygon.py +0 -0
  142. {vispy-0.14.2 → vispy-0.15.1}/examples/basics/visuals/graph.py +0 -0
  143. {vispy-0.14.2 → vispy-0.15.1}/examples/basics/visuals/grid_mesh.py +0 -0
  144. {vispy-0.14.2 → vispy-0.15.1}/examples/basics/visuals/image_transforms.py +0 -0
  145. {vispy-0.14.2 → vispy-0.15.1}/examples/basics/visuals/image_visual.py +0 -0
  146. {vispy-0.14.2 → vispy-0.15.1}/examples/basics/visuals/line.py +0 -0
  147. {vispy-0.14.2 → vispy-0.15.1}/examples/basics/visuals/line_draw.py +0 -0
  148. {vispy-0.14.2 → vispy-0.15.1}/examples/basics/visuals/line_plot.py +0 -0
  149. {vispy-0.14.2 → vispy-0.15.1}/examples/basics/visuals/line_plot3d.py +0 -0
  150. {vispy-0.14.2 → vispy-0.15.1}/examples/basics/visuals/line_plot_axes.py +0 -0
  151. {vispy-0.14.2 → vispy-0.15.1}/examples/basics/visuals/line_prototype.py +0 -0
  152. {vispy-0.14.2 → vispy-0.15.1}/examples/basics/visuals/line_transform.py +0 -0
  153. {vispy-0.14.2 → vispy-0.15.1}/examples/basics/visuals/markers.py +0 -0
  154. {vispy-0.14.2 → vispy-0.15.1}/examples/basics/visuals/mesh.py +0 -0
  155. {vispy-0.14.2 → vispy-0.15.1}/examples/basics/visuals/networkx_layout.py +0 -0
  156. {vispy-0.14.2 → vispy-0.15.1}/examples/basics/visuals/plane.py +0 -0
  157. {vispy-0.14.2 → vispy-0.15.1}/examples/basics/visuals/polygon_visual.py +0 -0
  158. {vispy-0.14.2 → vispy-0.15.1}/examples/basics/visuals/rescalingmarkers.py +0 -0
  159. {vispy-0.14.2 → vispy-0.15.1}/examples/basics/visuals/rotating_box.py +0 -0
  160. {vispy-0.14.2 → vispy-0.15.1}/examples/basics/visuals/text_scatter.py +0 -0
  161. {vispy-0.14.2 → vispy-0.15.1}/examples/basics/visuals/text_visual.py +0 -0
  162. {vispy-0.14.2 → vispy-0.15.1}/examples/basics/visuals/tube.py +0 -0
  163. {vispy-0.14.2 → vispy-0.15.1}/examples/basics/visuals/visual_filters.py +0 -0
  164. {vispy-0.14.2 → vispy-0.15.1}/examples/basics/visuals/windbarb_quiver.py +0 -0
  165. {vispy-0.14.2 → vispy-0.15.1}/examples/benchmark/scene_test_1.py +0 -0
  166. {vispy-0.14.2 → vispy-0.15.1}/examples/benchmark/scene_test_2.py +0 -0
  167. {vispy-0.14.2 → vispy-0.15.1}/examples/benchmark/simple_glut.py +0 -0
  168. {vispy-0.14.2 → vispy-0.15.1}/examples/benchmark/simple_vispy.py +0 -0
  169. {vispy-0.14.2 → vispy-0.15.1}/examples/collections/chloropleth.py +0 -0
  170. {vispy-0.14.2 → vispy-0.15.1}/examples/collections/path_collection.py +0 -0
  171. {vispy-0.14.2 → vispy-0.15.1}/examples/collections/point_collection.py +0 -0
  172. {vispy-0.14.2 → vispy-0.15.1}/examples/collections/polygon_collection.py +0 -0
  173. {vispy-0.14.2 → vispy-0.15.1}/examples/collections/segment_collection.py +0 -0
  174. {vispy-0.14.2 → vispy-0.15.1}/examples/collections/tiger.py +0 -0
  175. {vispy-0.14.2 → vispy-0.15.1}/examples/collections/triangle_collection.py +0 -0
  176. {vispy-0.14.2 → vispy-0.15.1}/examples/demo/gloo/atom.py +0 -0
  177. {vispy-0.14.2 → vispy-0.15.1}/examples/demo/gloo/boids.py +0 -0
  178. {vispy-0.14.2 → vispy-0.15.1}/examples/demo/gloo/brain.py +0 -0
  179. {vispy-0.14.2 → vispy-0.15.1}/examples/demo/gloo/camera.py +0 -0
  180. {vispy-0.14.2 → vispy-0.15.1}/examples/demo/gloo/cloud.py +0 -0
  181. {vispy-0.14.2 → vispy-0.15.1}/examples/demo/gloo/donut.py +0 -0
  182. {vispy-0.14.2 → vispy-0.15.1}/examples/demo/gloo/fireworks.py +0 -0
  183. {vispy-0.14.2 → vispy-0.15.1}/examples/demo/gloo/galaxy/galaxy.py +0 -0
  184. {vispy-0.14.2 → vispy-0.15.1}/examples/demo/gloo/galaxy/galaxy_simulation.py +0 -0
  185. {vispy-0.14.2 → vispy-0.15.1}/examples/demo/gloo/galaxy/galaxy_specrend.py +0 -0
  186. {vispy-0.14.2 → vispy-0.15.1}/examples/demo/gloo/galaxy.py +0 -0
  187. {vispy-0.14.2 → vispy-0.15.1}/examples/demo/gloo/game_of_life.py +0 -0
  188. {vispy-0.14.2 → vispy-0.15.1}/examples/demo/gloo/glsl_sandbox_cube.py +0 -0
  189. {vispy-0.14.2 → vispy-0.15.1}/examples/demo/gloo/graph.py +0 -0
  190. {vispy-0.14.2 → vispy-0.15.1}/examples/demo/gloo/grayscott.py +0 -0
  191. {vispy-0.14.2 → vispy-0.15.1}/examples/demo/gloo/high_frequency.py +0 -0
  192. {vispy-0.14.2 → vispy-0.15.1}/examples/demo/gloo/imshow.py +0 -0
  193. {vispy-0.14.2 → vispy-0.15.1}/examples/demo/gloo/imshow_cuts.py +0 -0
  194. {vispy-0.14.2 → vispy-0.15.1}/examples/demo/gloo/jfa/fragment_display.glsl +0 -0
  195. {vispy-0.14.2 → vispy-0.15.1}/examples/demo/gloo/jfa/fragment_flood.glsl +0 -0
  196. {vispy-0.14.2 → vispy-0.15.1}/examples/demo/gloo/jfa/fragment_seed.glsl +0 -0
  197. {vispy-0.14.2 → vispy-0.15.1}/examples/demo/gloo/jfa/jfa_translation.py +0 -0
  198. {vispy-0.14.2 → vispy-0.15.1}/examples/demo/gloo/jfa/jfa_vispy.py +0 -0
  199. {vispy-0.14.2 → vispy-0.15.1}/examples/demo/gloo/jfa/vertex.glsl +0 -0
  200. {vispy-0.14.2 → vispy-0.15.1}/examples/demo/gloo/jfa/vertex_vispy.glsl +0 -0
  201. {vispy-0.14.2 → vispy-0.15.1}/examples/demo/gloo/mandelbrot.py +0 -0
  202. {vispy-0.14.2 → vispy-0.15.1}/examples/demo/gloo/mandelbrot_double.py +0 -0
  203. {vispy-0.14.2 → vispy-0.15.1}/examples/demo/gloo/molecular_viewer.py +0 -0
  204. {vispy-0.14.2 → vispy-0.15.1}/examples/demo/gloo/ndscatter.py +0 -0
  205. {vispy-0.14.2 → vispy-0.15.1}/examples/demo/gloo/offscreen.py +0 -0
  206. {vispy-0.14.2 → vispy-0.15.1}/examples/demo/gloo/primitive_mesh_viewer_qt.py +0 -0
  207. {vispy-0.14.2 → vispy-0.15.1}/examples/demo/gloo/quiver.py +0 -0
  208. {vispy-0.14.2 → vispy-0.15.1}/examples/demo/gloo/rain.py +0 -0
  209. {vispy-0.14.2 → vispy-0.15.1}/examples/demo/gloo/raytracing.py +0 -0
  210. {vispy-0.14.2 → vispy-0.15.1}/examples/demo/gloo/realtime_signals.py +0 -0
  211. {vispy-0.14.2 → vispy-0.15.1}/examples/demo/gloo/signals.py +0 -0
  212. {vispy-0.14.2 → vispy-0.15.1}/examples/demo/gloo/skybox.py +0 -0
  213. {vispy-0.14.2 → vispy-0.15.1}/examples/demo/gloo/spacy.py +0 -0
  214. {vispy-0.14.2 → vispy-0.15.1}/examples/demo/gloo/terrain.py +0 -0
  215. {vispy-0.14.2 → vispy-0.15.1}/examples/demo/gloo/two_qt_widgets.py +0 -0
  216. {vispy-0.14.2 → vispy-0.15.1}/examples/demo/gloo/unstructured_2d.py +0 -0
  217. {vispy-0.14.2 → vispy-0.15.1}/examples/demo/gloo/voronoi.py +0 -0
  218. {vispy-0.14.2 → vispy-0.15.1}/examples/demo/plot/plot.py +0 -0
  219. {vispy-0.14.2 → vispy-0.15.1}/examples/demo/scene/flow_lines.py +0 -0
  220. {vispy-0.14.2 → vispy-0.15.1}/examples/demo/scene/force_directed_graph.py +0 -0
  221. {vispy-0.14.2 → vispy-0.15.1}/examples/demo/scene/klein.py +0 -0
  222. {vispy-0.14.2 → vispy-0.15.1}/examples/demo/scene/oscilloscope.py +0 -0
  223. {vispy-0.14.2 → vispy-0.15.1}/examples/demo/scene/picking.py +0 -0
  224. {vispy-0.14.2 → vispy-0.15.1}/examples/demo/scene/scrolling_plots.py +0 -0
  225. {vispy-0.14.2 → vispy-0.15.1}/examples/demo/visuals/wiggly_bar.py +0 -0
  226. {vispy-0.14.2 → vispy-0.15.1}/examples/gloo/README.rst +0 -0
  227. {vispy-0.14.2 → vispy-0.15.1}/examples/gloo/animate_images.py +0 -0
  228. {vispy-0.14.2 → vispy-0.15.1}/examples/gloo/animate_images_slice.py +0 -0
  229. {vispy-0.14.2 → vispy-0.15.1}/examples/gloo/animate_shape.py +0 -0
  230. {vispy-0.14.2 → vispy-0.15.1}/examples/gloo/colored_cube.py +0 -0
  231. {vispy-0.14.2 → vispy-0.15.1}/examples/gloo/colored_cube_instanced.py +0 -0
  232. {vispy-0.14.2 → vispy-0.15.1}/examples/gloo/colored_quad.py +0 -0
  233. {vispy-0.14.2 → vispy-0.15.1}/examples/gloo/display_lines.py +0 -0
  234. {vispy-0.14.2 → vispy-0.15.1}/examples/gloo/display_points.py +0 -0
  235. {vispy-0.14.2 → vispy-0.15.1}/examples/gloo/display_shape.py +0 -0
  236. {vispy-0.14.2 → vispy-0.15.1}/examples/gloo/geometry_shader.py +0 -0
  237. {vispy-0.14.2 → vispy-0.15.1}/examples/gloo/gl/README.rst +0 -0
  238. {vispy-0.14.2 → vispy-0.15.1}/examples/gloo/gl/cube.py +0 -0
  239. {vispy-0.14.2 → vispy-0.15.1}/examples/gloo/gl/fireworks.py +0 -0
  240. {vispy-0.14.2 → vispy-0.15.1}/examples/gloo/gl/quad.py +0 -0
  241. {vispy-0.14.2 → vispy-0.15.1}/examples/gloo/gl/quad_instanced.py +0 -0
  242. {vispy-0.14.2 → vispy-0.15.1}/examples/gloo/gpuimage.py +0 -0
  243. {vispy-0.14.2 → vispy-0.15.1}/examples/gloo/hello_fbo.py +0 -0
  244. {vispy-0.14.2 → vispy-0.15.1}/examples/gloo/lighted_cube.py +0 -0
  245. {vispy-0.14.2 → vispy-0.15.1}/examples/gloo/multi_texture.py +0 -0
  246. {vispy-0.14.2 → vispy-0.15.1}/examples/gloo/outlined_cube.py +0 -0
  247. {vispy-0.14.2 → vispy-0.15.1}/examples/gloo/post_processing.py +0 -0
  248. {vispy-0.14.2 → vispy-0.15.1}/examples/gloo/rotate_cube.py +0 -0
  249. {vispy-0.14.2 → vispy-0.15.1}/examples/gloo/rotating_quad.py +0 -0
  250. {vispy-0.14.2 → vispy-0.15.1}/examples/gloo/spatial_filters.py +0 -0
  251. {vispy-0.14.2 → vispy-0.15.1}/examples/gloo/start.py +0 -0
  252. {vispy-0.14.2 → vispy-0.15.1}/examples/gloo/start_shaders.py +0 -0
  253. {vispy-0.14.2 → vispy-0.15.1}/examples/gloo/texture_precision.py +0 -0
  254. {vispy-0.14.2 → vispy-0.15.1}/examples/gloo/textured_cube.py +0 -0
  255. {vispy-0.14.2 → vispy-0.15.1}/examples/gloo/textured_quad.py +0 -0
  256. {vispy-0.14.2 → vispy-0.15.1}/examples/jupyter/Rotating Cube.ipynb +0 -0
  257. {vispy-0.14.2 → vispy-0.15.1}/examples/jupyter/colormaps.ipynb +0 -0
  258. {vispy-0.14.2 → vispy-0.15.1}/examples/jupyter/gloo_display_lines.ipynb +0 -0
  259. {vispy-0.14.2 → vispy-0.15.1}/examples/jupyter/gloo_molecular_viewer.ipynb +0 -0
  260. {vispy-0.14.2 → vispy-0.15.1}/examples/offscreen/simple_egl.py +0 -0
  261. {vispy-0.14.2 → vispy-0.15.1}/examples/offscreen/simple_osmesa.py +0 -0
  262. {vispy-0.14.2 → vispy-0.15.1}/examples/plotting/README.rst +0 -0
  263. {vispy-0.14.2 → vispy-0.15.1}/examples/plotting/colorbar.py +0 -0
  264. {vispy-0.14.2 → vispy-0.15.1}/examples/plotting/export.py +0 -0
  265. {vispy-0.14.2 → vispy-0.15.1}/examples/plotting/ipython_fig_playground.py +0 -0
  266. {vispy-0.14.2 → vispy-0.15.1}/examples/plotting/plot.py +0 -0
  267. {vispy-0.14.2 → vispy-0.15.1}/examples/plotting/plot_colorbars.py +0 -0
  268. {vispy-0.14.2 → vispy-0.15.1}/examples/plotting/scatter_histogram.py +0 -0
  269. {vispy-0.14.2 → vispy-0.15.1}/examples/plotting/spectrogram.py +0 -0
  270. {vispy-0.14.2 → vispy-0.15.1}/examples/plotting/volume_plot.py +0 -0
  271. {vispy-0.14.2 → vispy-0.15.1}/examples/scene/README.rst +0 -0
  272. {vispy-0.14.2 → vispy-0.15.1}/examples/scene/axes_plot.py +0 -0
  273. {vispy-0.14.2 → vispy-0.15.1}/examples/scene/background_borders.py +0 -0
  274. {vispy-0.14.2 → vispy-0.15.1}/examples/scene/clipping_planes.py +0 -0
  275. {vispy-0.14.2 → vispy-0.15.1}/examples/scene/colorbar_widget.py +0 -0
  276. {vispy-0.14.2 → vispy-0.15.1}/examples/scene/colored_line.py +0 -0
  277. {vispy-0.14.2 → vispy-0.15.1}/examples/scene/complex_image.py +0 -0
  278. {vispy-0.14.2 → vispy-0.15.1}/examples/scene/console.py +0 -0
  279. {vispy-0.14.2 → vispy-0.15.1}/examples/scene/contour.py +0 -0
  280. {vispy-0.14.2 → vispy-0.15.1}/examples/scene/example..gif +0 -0
  281. {vispy-0.14.2 → vispy-0.15.1}/examples/scene/example.png +0 -0
  282. {vispy-0.14.2 → vispy-0.15.1}/examples/scene/face_picking.py +0 -0
  283. {vispy-0.14.2 → vispy-0.15.1}/examples/scene/flipped_axis.py +0 -0
  284. {vispy-0.14.2 → vispy-0.15.1}/examples/scene/graph.py +0 -0
  285. {vispy-0.14.2 → vispy-0.15.1}/examples/scene/grid_layout/README.rst +0 -0
  286. {vispy-0.14.2 → vispy-0.15.1}/examples/scene/grid_layout/grid.py +0 -0
  287. {vispy-0.14.2 → vispy-0.15.1}/examples/scene/grid_layout/grid_basic.py +0 -0
  288. {vispy-0.14.2 → vispy-0.15.1}/examples/scene/grid_layout/grid_holed.py +0 -0
  289. {vispy-0.14.2 → vispy-0.15.1}/examples/scene/grid_layout/grid_large.py +0 -0
  290. {vispy-0.14.2 → vispy-0.15.1}/examples/scene/grid_layout/grid_uneven_col.py +0 -0
  291. {vispy-0.14.2 → vispy-0.15.1}/examples/scene/grid_layout/grid_x_y_viewbox.py +0 -0
  292. {vispy-0.14.2 → vispy-0.15.1}/examples/scene/image.py +0 -0
  293. {vispy-0.14.2 → vispy-0.15.1}/examples/scene/image_custom_kernel.py +0 -0
  294. {vispy-0.14.2 → vispy-0.15.1}/examples/scene/infinite_line.py +0 -0
  295. {vispy-0.14.2 → vispy-0.15.1}/examples/scene/instanced_mesh.py +0 -0
  296. {vispy-0.14.2 → vispy-0.15.1}/examples/scene/instanced_mesh_visual.py +0 -0
  297. {vispy-0.14.2 → vispy-0.15.1}/examples/scene/instanced_quad_visual.py +0 -0
  298. {vispy-0.14.2 → vispy-0.15.1}/examples/scene/isocurve.py +0 -0
  299. {vispy-0.14.2 → vispy-0.15.1}/examples/scene/isocurve_for_trisurface.py +0 -0
  300. {vispy-0.14.2 → vispy-0.15.1}/examples/scene/isocurve_for_trisurface_qt.py +0 -0
  301. {vispy-0.14.2 → vispy-0.15.1}/examples/scene/isocurve_updates.py +0 -0
  302. {vispy-0.14.2 → vispy-0.15.1}/examples/scene/isosurface.py +0 -0
  303. {vispy-0.14.2 → vispy-0.15.1}/examples/scene/lasso.py +0 -0
  304. {vispy-0.14.2 → vispy-0.15.1}/examples/scene/line.py +0 -0
  305. {vispy-0.14.2 → vispy-0.15.1}/examples/scene/line_update.py +0 -0
  306. {vispy-0.14.2 → vispy-0.15.1}/examples/scene/linear_region.py +0 -0
  307. {vispy-0.14.2 → vispy-0.15.1}/examples/scene/magnify.py +0 -0
  308. {vispy-0.14.2 → vispy-0.15.1}/examples/scene/marker_picking.py +0 -0
  309. {vispy-0.14.2 → vispy-0.15.1}/examples/scene/marker_spheres.py +0 -0
  310. {vispy-0.14.2 → vispy-0.15.1}/examples/scene/mesh_normals.py +0 -0
  311. {vispy-0.14.2 → vispy-0.15.1}/examples/scene/mesh_shading.py +0 -0
  312. {vispy-0.14.2 → vispy-0.15.1}/examples/scene/mesh_texture.py +0 -0
  313. {vispy-0.14.2 → vispy-0.15.1}/examples/scene/nested_viewbox.py +0 -0
  314. {vispy-0.14.2 → vispy-0.15.1}/examples/scene/one_cam_two_scenes.py +0 -0
  315. {vispy-0.14.2 → vispy-0.15.1}/examples/scene/one_scene_four_cams.py +0 -0
  316. {vispy-0.14.2 → vispy-0.15.1}/examples/scene/point_cloud.py +0 -0
  317. {vispy-0.14.2 → vispy-0.15.1}/examples/scene/polygon.py +0 -0
  318. {vispy-0.14.2 → vispy-0.15.1}/examples/scene/realtime_data/README.rst +0 -0
  319. {vispy-0.14.2 → vispy-0.15.1}/examples/scene/realtime_data/ex01_embedded_vispy.py +0 -0
  320. {vispy-0.14.2 → vispy-0.15.1}/examples/scene/realtime_data/ex02_control_vispy_from_qt.py +0 -0
  321. {vispy-0.14.2 → vispy-0.15.1}/examples/scene/realtime_data/ex03a_data_sources_timer.py +0 -0
  322. {vispy-0.14.2 → vispy-0.15.1}/examples/scene/realtime_data/ex03b_data_sources_threaded_loop.py +0 -0
  323. {vispy-0.14.2 → vispy-0.15.1}/examples/scene/realtime_data/ex03c_data_sources_threaded_events.py +0 -0
  324. {vispy-0.14.2 → vispy-0.15.1}/examples/scene/save_animation.py +0 -0
  325. {vispy-0.14.2 → vispy-0.15.1}/examples/scene/sensitivity.py +0 -0
  326. {vispy-0.14.2 → vispy-0.15.1}/examples/scene/shape_draw.py +0 -0
  327. {vispy-0.14.2 → vispy-0.15.1}/examples/scene/sphere.py +0 -0
  328. {vispy-0.14.2 → vispy-0.15.1}/examples/scene/surface_plot.py +0 -0
  329. {vispy-0.14.2 → vispy-0.15.1}/examples/scene/text.py +0 -0
  330. {vispy-0.14.2 → vispy-0.15.1}/examples/scene/turntable_box.py +0 -0
  331. {vispy-0.14.2 → vispy-0.15.1}/examples/scene/viewbox.py +0 -0
  332. {vispy-0.14.2 → vispy-0.15.1}/examples/scene/volume.py +0 -0
  333. {vispy-0.14.2 → vispy-0.15.1}/examples/scene/volume_plane.py +0 -0
  334. {vispy-0.14.2 → vispy-0.15.1}/examples/tutorial/app/app_events.py +0 -0
  335. {vispy-0.14.2 → vispy-0.15.1}/examples/tutorial/app/fps.py +0 -0
  336. {vispy-0.14.2 → vispy-0.15.1}/examples/tutorial/app/shared_context.py +0 -0
  337. {vispy-0.14.2 → vispy-0.15.1}/examples/tutorial/app/simple.py +0 -0
  338. {vispy-0.14.2 → vispy-0.15.1}/examples/tutorial/app/simple_wx.py +0 -0
  339. {vispy-0.14.2 → vispy-0.15.1}/examples/tutorial/visuals/T01_basic_visual.py +0 -0
  340. {vispy-0.14.2 → vispy-0.15.1}/examples/tutorial/visuals/T02_measurements.py +0 -0
  341. {vispy-0.14.2 → vispy-0.15.1}/examples/tutorial/visuals/T03_antialiasing.py +0 -0
  342. {vispy-0.14.2 → vispy-0.15.1}/examples/tutorial/visuals/T04_fragment_programs.py +0 -0
  343. {vispy-0.14.2 → vispy-0.15.1}/examples/tutorial/visuals/T05_viewer_location.py +0 -0
  344. {vispy-0.14.2 → vispy-0.15.1}/pytest.ini +0 -0
  345. {vispy-0.14.2 → vispy-0.15.1}/setup.cfg +0 -0
  346. {vispy-0.14.2 → vispy-0.15.1}/vispy/__init__.py +0 -0
  347. {vispy-0.14.2 → vispy-0.15.1}/vispy/app/__init__.py +0 -0
  348. {vispy-0.14.2 → vispy-0.15.1}/vispy/app/_default_app.py +0 -0
  349. {vispy-0.14.2 → vispy-0.15.1}/vispy/app/_detect_eventloop.py +0 -0
  350. {vispy-0.14.2 → vispy-0.15.1}/vispy/app/application.py +0 -0
  351. {vispy-0.14.2 → vispy-0.15.1}/vispy/app/backends/__init__.py +0 -0
  352. {vispy-0.14.2 → vispy-0.15.1}/vispy/app/backends/_egl.py +0 -0
  353. {vispy-0.14.2 → vispy-0.15.1}/vispy/app/backends/_glfw.py +0 -0
  354. {vispy-0.14.2 → vispy-0.15.1}/vispy/app/backends/_jupyter_rfb.py +0 -0
  355. {vispy-0.14.2 → vispy-0.15.1}/vispy/app/backends/_offscreen_util.py +0 -0
  356. {vispy-0.14.2 → vispy-0.15.1}/vispy/app/backends/_osmesa.py +0 -0
  357. {vispy-0.14.2 → vispy-0.15.1}/vispy/app/backends/_pyglet.py +0 -0
  358. {vispy-0.14.2 → vispy-0.15.1}/vispy/app/backends/_pyqt4.py +0 -0
  359. {vispy-0.14.2 → vispy-0.15.1}/vispy/app/backends/_pyqt5.py +0 -0
  360. {vispy-0.14.2 → vispy-0.15.1}/vispy/app/backends/_pyqt6.py +0 -0
  361. {vispy-0.14.2 → vispy-0.15.1}/vispy/app/backends/_pyside.py +0 -0
  362. {vispy-0.14.2 → vispy-0.15.1}/vispy/app/backends/_pyside2.py +0 -0
  363. {vispy-0.14.2 → vispy-0.15.1}/vispy/app/backends/_pyside6.py +0 -0
  364. {vispy-0.14.2 → vispy-0.15.1}/vispy/app/backends/_sdl2.py +0 -0
  365. {vispy-0.14.2 → vispy-0.15.1}/vispy/app/backends/_template.py +0 -0
  366. {vispy-0.14.2 → vispy-0.15.1}/vispy/app/backends/_test.py +0 -0
  367. {vispy-0.14.2 → vispy-0.15.1}/vispy/app/backends/_tk.py +0 -0
  368. {vispy-0.14.2 → vispy-0.15.1}/vispy/app/backends/_wx.py +0 -0
  369. {vispy-0.14.2 → vispy-0.15.1}/vispy/app/backends/tests/__init__.py +0 -0
  370. {vispy-0.14.2 → vispy-0.15.1}/vispy/app/backends/tests/test_offscreen_util.py +0 -0
  371. {vispy-0.14.2 → vispy-0.15.1}/vispy/app/backends/tests/test_rfb.py +0 -0
  372. {vispy-0.14.2 → vispy-0.15.1}/vispy/app/base.py +0 -0
  373. {vispy-0.14.2 → vispy-0.15.1}/vispy/app/canvas.py +0 -0
  374. {vispy-0.14.2 → vispy-0.15.1}/vispy/app/qt.py +0 -0
  375. {vispy-0.14.2 → vispy-0.15.1}/vispy/app/tests/__init__.py +0 -0
  376. {vispy-0.14.2 → vispy-0.15.1}/vispy/app/tests/qt-designer.ui +0 -0
  377. {vispy-0.14.2 → vispy-0.15.1}/vispy/app/tests/test_app.py +0 -0
  378. {vispy-0.14.2 → vispy-0.15.1}/vispy/app/tests/test_backends.py +0 -0
  379. {vispy-0.14.2 → vispy-0.15.1}/vispy/app/tests/test_canvas.py +0 -0
  380. {vispy-0.14.2 → vispy-0.15.1}/vispy/app/tests/test_context.py +0 -0
  381. {vispy-0.14.2 → vispy-0.15.1}/vispy/app/tests/test_qt.py +0 -0
  382. {vispy-0.14.2 → vispy-0.15.1}/vispy/app/tests/test_simultaneous.py +0 -0
  383. {vispy-0.14.2 → vispy-0.15.1}/vispy/app/timer.py +0 -0
  384. {vispy-0.14.2 → vispy-0.15.1}/vispy/color/__init__.py +0 -0
  385. {vispy-0.14.2 → vispy-0.15.1}/vispy/color/_color_dict.py +0 -0
  386. {vispy-0.14.2 → vispy-0.15.1}/vispy/color/color_array.py +0 -0
  387. {vispy-0.14.2 → vispy-0.15.1}/vispy/color/color_space.py +0 -0
  388. {vispy-0.14.2 → vispy-0.15.1}/vispy/color/tests/__init__.py +0 -0
  389. {vispy-0.14.2 → vispy-0.15.1}/vispy/conftest.py +0 -0
  390. {vispy-0.14.2 → vispy-0.15.1}/vispy/ext/__init__.py +0 -0
  391. {vispy-0.14.2 → vispy-0.15.1}/vispy/ext/cubehelix.py +0 -0
  392. {vispy-0.14.2 → vispy-0.15.1}/vispy/ext/egl.py +0 -0
  393. {vispy-0.14.2 → vispy-0.15.1}/vispy/ext/fontconfig.py +0 -0
  394. {vispy-0.14.2 → vispy-0.15.1}/vispy/ext/gdi32plus.py +0 -0
  395. {vispy-0.14.2 → vispy-0.15.1}/vispy/ext/osmesa.py +0 -0
  396. {vispy-0.14.2 → vispy-0.15.1}/vispy/geometry/_triangulation_debugger.py +0 -0
  397. {vispy-0.14.2 → vispy-0.15.1}/vispy/geometry/curves.py +0 -0
  398. {vispy-0.14.2 → vispy-0.15.1}/vispy/geometry/generation.py +0 -0
  399. {vispy-0.14.2 → vispy-0.15.1}/vispy/geometry/isocurve.py +0 -0
  400. {vispy-0.14.2 → vispy-0.15.1}/vispy/geometry/isosurface.py +0 -0
  401. {vispy-0.14.2 → vispy-0.15.1}/vispy/geometry/normals.py +0 -0
  402. {vispy-0.14.2 → vispy-0.15.1}/vispy/geometry/parametric.py +0 -0
  403. {vispy-0.14.2 → vispy-0.15.1}/vispy/geometry/polygon.py +0 -0
  404. {vispy-0.14.2 → vispy-0.15.1}/vispy/geometry/rect.py +0 -0
  405. {vispy-0.14.2 → vispy-0.15.1}/vispy/geometry/tests/__init__.py +0 -0
  406. {vispy-0.14.2 → vispy-0.15.1}/vispy/geometry/tests/test_calculations.py +0 -0
  407. {vispy-0.14.2 → vispy-0.15.1}/vispy/geometry/tests/test_generation.py +0 -0
  408. {vispy-0.14.2 → vispy-0.15.1}/vispy/geometry/tests/test_meshdata.py +0 -0
  409. {vispy-0.14.2 → vispy-0.15.1}/vispy/geometry/torusknot.py +0 -0
  410. {vispy-0.14.2 → vispy-0.15.1}/vispy/gloo/__init__.py +0 -0
  411. {vispy-0.14.2 → vispy-0.15.1}/vispy/gloo/context.py +0 -0
  412. {vispy-0.14.2 → vispy-0.15.1}/vispy/gloo/framebuffer.py +0 -0
  413. {vispy-0.14.2 → vispy-0.15.1}/vispy/gloo/gl/__init__.py +0 -0
  414. {vispy-0.14.2 → vispy-0.15.1}/vispy/gloo/gl/_constants.py +0 -0
  415. {vispy-0.14.2 → vispy-0.15.1}/vispy/gloo/gl/_es2.py +0 -0
  416. {vispy-0.14.2 → vispy-0.15.1}/vispy/gloo/gl/_gl2.py +0 -0
  417. {vispy-0.14.2 → vispy-0.15.1}/vispy/gloo/gl/_proxy.py +0 -0
  418. {vispy-0.14.2 → vispy-0.15.1}/vispy/gloo/gl/_pyopengl2.py +0 -0
  419. {vispy-0.14.2 → vispy-0.15.1}/vispy/gloo/gl/dummy.py +0 -0
  420. {vispy-0.14.2 → vispy-0.15.1}/vispy/gloo/gl/es2.py +0 -0
  421. {vispy-0.14.2 → vispy-0.15.1}/vispy/gloo/gl/gl2.py +0 -0
  422. {vispy-0.14.2 → vispy-0.15.1}/vispy/gloo/gl/glplus.py +0 -0
  423. {vispy-0.14.2 → vispy-0.15.1}/vispy/gloo/gl/pyopengl2.py +0 -0
  424. {vispy-0.14.2 → vispy-0.15.1}/vispy/gloo/gl/tests/__init__.py +0 -0
  425. {vispy-0.14.2 → vispy-0.15.1}/vispy/gloo/gl/tests/test_basics.py +0 -0
  426. {vispy-0.14.2 → vispy-0.15.1}/vispy/gloo/gl/tests/test_names.py +0 -0
  427. {vispy-0.14.2 → vispy-0.15.1}/vispy/gloo/gl/tests/test_use.py +0 -0
  428. {vispy-0.14.2 → vispy-0.15.1}/vispy/gloo/globject.py +0 -0
  429. {vispy-0.14.2 → vispy-0.15.1}/vispy/gloo/preprocessor.py +0 -0
  430. {vispy-0.14.2 → vispy-0.15.1}/vispy/gloo/tests/__init__.py +0 -0
  431. {vispy-0.14.2 → vispy-0.15.1}/vispy/gloo/tests/test_buffer.py +0 -0
  432. {vispy-0.14.2 → vispy-0.15.1}/vispy/gloo/tests/test_context.py +0 -0
  433. {vispy-0.14.2 → vispy-0.15.1}/vispy/gloo/tests/test_framebuffer.py +0 -0
  434. {vispy-0.14.2 → vispy-0.15.1}/vispy/gloo/tests/test_glir.py +0 -0
  435. {vispy-0.14.2 → vispy-0.15.1}/vispy/gloo/tests/test_globject.py +0 -0
  436. {vispy-0.14.2 → vispy-0.15.1}/vispy/gloo/tests/test_program.py +0 -0
  437. {vispy-0.14.2 → vispy-0.15.1}/vispy/gloo/tests/test_texture.py +0 -0
  438. {vispy-0.14.2 → vispy-0.15.1}/vispy/gloo/tests/test_use_gloo.py +0 -0
  439. {vispy-0.14.2 → vispy-0.15.1}/vispy/gloo/tests/test_util.py +0 -0
  440. {vispy-0.14.2 → vispy-0.15.1}/vispy/gloo/tests/test_wrappers.py +0 -0
  441. {vispy-0.14.2 → vispy-0.15.1}/vispy/gloo/util.py +0 -0
  442. {vispy-0.14.2 → vispy-0.15.1}/vispy/gloo/wrappers.py +0 -0
  443. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/__init__.py +0 -0
  444. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/antialias/antialias.glsl +0 -0
  445. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/antialias/cap-butt.glsl +0 -0
  446. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/antialias/cap-round.glsl +0 -0
  447. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/antialias/cap-square.glsl +0 -0
  448. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/antialias/cap-triangle-in.glsl +0 -0
  449. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/antialias/cap-triangle-out.glsl +0 -0
  450. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/antialias/cap.glsl +0 -0
  451. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/antialias/caps.glsl +0 -0
  452. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/antialias/filled.glsl +0 -0
  453. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/antialias/outline.glsl +0 -0
  454. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/antialias/stroke.glsl +0 -0
  455. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/arrowheads/angle.glsl +0 -0
  456. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/arrowheads/arrowheads.frag +0 -0
  457. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/arrowheads/arrowheads.glsl +0 -0
  458. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/arrowheads/arrowheads.vert +0 -0
  459. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/arrowheads/curved.glsl +0 -0
  460. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/arrowheads/inhibitor.glsl +0 -0
  461. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/arrowheads/stealth.glsl +0 -0
  462. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/arrowheads/triangle.glsl +0 -0
  463. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/arrowheads/util.glsl +0 -0
  464. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/arrows/angle-30.glsl +0 -0
  465. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/arrows/angle-60.glsl +0 -0
  466. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/arrows/angle-90.glsl +0 -0
  467. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/arrows/arrow.frag +0 -0
  468. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/arrows/arrow.vert +0 -0
  469. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/arrows/arrows.glsl +0 -0
  470. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/arrows/common.glsl +0 -0
  471. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/arrows/curved.glsl +0 -0
  472. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/arrows/stealth.glsl +0 -0
  473. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/arrows/triangle-30.glsl +0 -0
  474. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/arrows/triangle-60.glsl +0 -0
  475. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/arrows/triangle-90.glsl +0 -0
  476. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/arrows/util.glsl +0 -0
  477. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/build_spatial_filters.py +0 -0
  478. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/collections/agg-fast-path.frag +0 -0
  479. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/collections/agg-fast-path.vert +0 -0
  480. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/collections/agg-glyph.frag +0 -0
  481. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/collections/agg-glyph.vert +0 -0
  482. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/collections/agg-marker.frag +0 -0
  483. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/collections/agg-marker.vert +0 -0
  484. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/collections/agg-path.frag +0 -0
  485. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/collections/agg-path.vert +0 -0
  486. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/collections/agg-point.frag +0 -0
  487. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/collections/agg-point.vert +0 -0
  488. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/collections/agg-segment.frag +0 -0
  489. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/collections/agg-segment.vert +0 -0
  490. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/collections/marker.frag +0 -0
  491. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/collections/marker.vert +0 -0
  492. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/collections/raw-path.frag +0 -0
  493. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/collections/raw-path.vert +0 -0
  494. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/collections/raw-point.frag +0 -0
  495. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/collections/raw-point.vert +0 -0
  496. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/collections/raw-segment.frag +0 -0
  497. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/collections/raw-segment.vert +0 -0
  498. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/collections/raw-triangle.frag +0 -0
  499. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/collections/raw-triangle.vert +0 -0
  500. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/collections/sdf-glyph-ticks.vert +0 -0
  501. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/collections/sdf-glyph.frag +0 -0
  502. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/collections/sdf-glyph.vert +0 -0
  503. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/collections/tick-labels.vert +0 -0
  504. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/colormaps/autumn.glsl +0 -0
  505. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/colormaps/blues.glsl +0 -0
  506. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/colormaps/color-space.glsl +0 -0
  507. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/colormaps/colormaps.glsl +0 -0
  508. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/colormaps/cool.glsl +0 -0
  509. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/colormaps/fire.glsl +0 -0
  510. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/colormaps/gray.glsl +0 -0
  511. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/colormaps/greens.glsl +0 -0
  512. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/colormaps/hot.glsl +0 -0
  513. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/colormaps/ice.glsl +0 -0
  514. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/colormaps/icefire.glsl +0 -0
  515. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/colormaps/parse.py +0 -0
  516. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/colormaps/reds.glsl +0 -0
  517. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/colormaps/spring.glsl +0 -0
  518. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/colormaps/summer.glsl +0 -0
  519. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/colormaps/user.glsl +0 -0
  520. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/colormaps/util.glsl +0 -0
  521. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/colormaps/wheel.glsl +0 -0
  522. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/colormaps/winter.glsl +0 -0
  523. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/lines/agg.frag +0 -0
  524. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/lines/agg.vert +0 -0
  525. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/markers/arrow.glsl +0 -0
  526. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/markers/asterisk.glsl +0 -0
  527. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/markers/chevron.glsl +0 -0
  528. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/markers/clover.glsl +0 -0
  529. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/markers/club.glsl +0 -0
  530. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/markers/cross.glsl +0 -0
  531. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/markers/diamond.glsl +0 -0
  532. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/markers/disc.glsl +0 -0
  533. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/markers/ellipse.glsl +0 -0
  534. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/markers/hbar.glsl +0 -0
  535. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/markers/heart.glsl +0 -0
  536. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/markers/infinity.glsl +0 -0
  537. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/markers/marker-sdf.frag +0 -0
  538. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/markers/marker-sdf.vert +0 -0
  539. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/markers/marker.frag +0 -0
  540. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/markers/marker.vert +0 -0
  541. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/markers/markers.glsl +0 -0
  542. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/markers/pin.glsl +0 -0
  543. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/markers/ring.glsl +0 -0
  544. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/markers/spade.glsl +0 -0
  545. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/markers/square.glsl +0 -0
  546. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/markers/tag.glsl +0 -0
  547. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/markers/triangle.glsl +0 -0
  548. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/markers/vbar.glsl +0 -0
  549. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/math/circle-through-2-points.glsl +0 -0
  550. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/math/constants.glsl +0 -0
  551. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/math/double.glsl +0 -0
  552. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/math/functions.glsl +0 -0
  553. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/math/point-to-line-distance.glsl +0 -0
  554. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/math/point-to-line-projection.glsl +0 -0
  555. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/math/signed-line-distance.glsl +0 -0
  556. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/math/signed-segment-distance.glsl +0 -0
  557. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/misc/regular-grid.frag +0 -0
  558. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/misc/spatial-filters.frag +0 -0
  559. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/misc/viewport-NDC.glsl +0 -0
  560. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/transforms/azimuthal-equal-area.glsl +0 -0
  561. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/transforms/azimuthal-equidistant.glsl +0 -0
  562. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/transforms/hammer.glsl +0 -0
  563. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/transforms/identity.glsl +0 -0
  564. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/transforms/identity_forward.glsl +0 -0
  565. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/transforms/identity_inverse.glsl +0 -0
  566. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/transforms/linear-scale.glsl +0 -0
  567. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/transforms/log-scale.glsl +0 -0
  568. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/transforms/mercator-transverse-forward.glsl +0 -0
  569. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/transforms/mercator-transverse-inverse.glsl +0 -0
  570. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/transforms/panzoom.glsl +0 -0
  571. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/transforms/polar.glsl +0 -0
  572. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/transforms/position.glsl +0 -0
  573. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/transforms/power-scale.glsl +0 -0
  574. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/transforms/projection.glsl +0 -0
  575. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/transforms/pvm.glsl +0 -0
  576. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/transforms/rotate.glsl +0 -0
  577. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/transforms/trackball.glsl +0 -0
  578. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/transforms/translate.glsl +0 -0
  579. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/transforms/transverse_mercator.glsl +0 -0
  580. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/transforms/viewport-clipping.glsl +0 -0
  581. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/transforms/viewport-transform.glsl +0 -0
  582. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/transforms/viewport.glsl +0 -0
  583. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/transforms/x.glsl +0 -0
  584. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/transforms/y.glsl +0 -0
  585. {vispy-0.14.2 → vispy-0.15.1}/vispy/glsl/transforms/z.glsl +0 -0
  586. {vispy-0.14.2 → vispy-0.15.1}/vispy/io/__init__.py +0 -0
  587. {vispy-0.14.2 → vispy-0.15.1}/vispy/io/_data/spatial-filters.npy +0 -0
  588. {vispy-0.14.2 → vispy-0.15.1}/vispy/io/datasets.py +0 -0
  589. {vispy-0.14.2 → vispy-0.15.1}/vispy/io/image.py +0 -0
  590. {vispy-0.14.2 → vispy-0.15.1}/vispy/io/mesh.py +0 -0
  591. {vispy-0.14.2 → vispy-0.15.1}/vispy/io/stl.py +0 -0
  592. {vispy-0.14.2 → vispy-0.15.1}/vispy/io/tests/__init__.py +0 -0
  593. {vispy-0.14.2 → vispy-0.15.1}/vispy/io/tests/test_image.py +0 -0
  594. {vispy-0.14.2 → vispy-0.15.1}/vispy/io/tests/test_io.py +0 -0
  595. {vispy-0.14.2 → vispy-0.15.1}/vispy/io/wavefront.py +0 -0
  596. {vispy-0.14.2 → vispy-0.15.1}/vispy/plot/__init__.py +0 -0
  597. {vispy-0.14.2 → vispy-0.15.1}/vispy/plot/fig.py +0 -0
  598. {vispy-0.14.2 → vispy-0.15.1}/vispy/plot/plotwidget.py +0 -0
  599. {vispy-0.14.2 → vispy-0.15.1}/vispy/plot/tests/__init__.py +0 -0
  600. {vispy-0.14.2 → vispy-0.15.1}/vispy/plot/tests/test_plot.py +0 -0
  601. {vispy-0.14.2 → vispy-0.15.1}/vispy/scene/__init__.py +0 -0
  602. {vispy-0.14.2 → vispy-0.15.1}/vispy/scene/cameras/__init__.py +0 -0
  603. {vispy-0.14.2 → vispy-0.15.1}/vispy/scene/cameras/_base.py +0 -0
  604. {vispy-0.14.2 → vispy-0.15.1}/vispy/scene/cameras/fly.py +0 -0
  605. {vispy-0.14.2 → vispy-0.15.1}/vispy/scene/cameras/magnify.py +0 -0
  606. {vispy-0.14.2 → vispy-0.15.1}/vispy/scene/cameras/tests/__init__.py +0 -0
  607. {vispy-0.14.2 → vispy-0.15.1}/vispy/scene/cameras/tests/test_cameras.py +0 -0
  608. {vispy-0.14.2 → vispy-0.15.1}/vispy/scene/cameras/tests/test_link.py +0 -0
  609. {vispy-0.14.2 → vispy-0.15.1}/vispy/scene/cameras/tests/test_perspective.py +0 -0
  610. {vispy-0.14.2 → vispy-0.15.1}/vispy/scene/canvas.py +0 -0
  611. {vispy-0.14.2 → vispy-0.15.1}/vispy/scene/events.py +0 -0
  612. {vispy-0.14.2 → vispy-0.15.1}/vispy/scene/node.py +0 -0
  613. {vispy-0.14.2 → vispy-0.15.1}/vispy/scene/subscene.py +0 -0
  614. {vispy-0.14.2 → vispy-0.15.1}/vispy/scene/tests/__init__.py +0 -0
  615. {vispy-0.14.2 → vispy-0.15.1}/vispy/scene/tests/test_canvas.py +0 -0
  616. {vispy-0.14.2 → vispy-0.15.1}/vispy/scene/tests/test_node.py +0 -0
  617. {vispy-0.14.2 → vispy-0.15.1}/vispy/scene/tests/test_visuals.py +0 -0
  618. {vispy-0.14.2 → vispy-0.15.1}/vispy/scene/visuals.py +0 -0
  619. {vispy-0.14.2 → vispy-0.15.1}/vispy/scene/widgets/__init__.py +0 -0
  620. {vispy-0.14.2 → vispy-0.15.1}/vispy/scene/widgets/anchor.py +0 -0
  621. {vispy-0.14.2 → vispy-0.15.1}/vispy/scene/widgets/axis.py +0 -0
  622. {vispy-0.14.2 → vispy-0.15.1}/vispy/scene/widgets/colorbar.py +0 -0
  623. {vispy-0.14.2 → vispy-0.15.1}/vispy/scene/widgets/console.py +0 -0
  624. {vispy-0.14.2 → vispy-0.15.1}/vispy/scene/widgets/grid.py +0 -0
  625. {vispy-0.14.2 → vispy-0.15.1}/vispy/scene/widgets/label.py +0 -0
  626. {vispy-0.14.2 → vispy-0.15.1}/vispy/scene/widgets/tests/__init__.py +0 -0
  627. {vispy-0.14.2 → vispy-0.15.1}/vispy/scene/widgets/tests/test_colorbar.py +0 -0
  628. {vispy-0.14.2 → vispy-0.15.1}/vispy/scene/widgets/viewbox.py +0 -0
  629. {vispy-0.14.2 → vispy-0.15.1}/vispy/scene/widgets/widget.py +0 -0
  630. {vispy-0.14.2 → vispy-0.15.1}/vispy/testing/__init__.py +0 -0
  631. {vispy-0.14.2 → vispy-0.15.1}/vispy/testing/_testing.py +0 -0
  632. {vispy-0.14.2 → vispy-0.15.1}/vispy/testing/image_tester.py +0 -0
  633. {vispy-0.14.2 → vispy-0.15.1}/vispy/testing/rendered_array_tester.py +0 -0
  634. {vispy-0.14.2 → vispy-0.15.1}/vispy/testing/tests/__init__.py +0 -0
  635. {vispy-0.14.2 → vispy-0.15.1}/vispy/testing/tests/test_testing.py +0 -0
  636. {vispy-0.14.2 → vispy-0.15.1}/vispy/util/bunch.py +0 -0
  637. {vispy-0.14.2 → vispy-0.15.1}/vispy/util/check_environment.py +0 -0
  638. {vispy-0.14.2 → vispy-0.15.1}/vispy/util/config.py +0 -0
  639. {vispy-0.14.2 → vispy-0.15.1}/vispy/util/dpi/__init__.py +0 -0
  640. {vispy-0.14.2 → vispy-0.15.1}/vispy/util/dpi/_linux.py +0 -0
  641. {vispy-0.14.2 → vispy-0.15.1}/vispy/util/dpi/_quartz.py +0 -0
  642. {vispy-0.14.2 → vispy-0.15.1}/vispy/util/dpi/_win32.py +0 -0
  643. {vispy-0.14.2 → vispy-0.15.1}/vispy/util/dpi/tests/__init__.py +0 -0
  644. {vispy-0.14.2 → vispy-0.15.1}/vispy/util/dpi/tests/test_dpi.py +0 -0
  645. {vispy-0.14.2 → vispy-0.15.1}/vispy/util/eq.py +0 -0
  646. {vispy-0.14.2 → vispy-0.15.1}/vispy/util/event.py +0 -0
  647. {vispy-0.14.2 → vispy-0.15.1}/vispy/util/fetching.py +0 -0
  648. {vispy-0.14.2 → vispy-0.15.1}/vispy/util/filter.py +0 -0
  649. {vispy-0.14.2 → vispy-0.15.1}/vispy/util/fonts/__init__.py +0 -0
  650. {vispy-0.14.2 → vispy-0.15.1}/vispy/util/fonts/_freetype.py +0 -0
  651. {vispy-0.14.2 → vispy-0.15.1}/vispy/util/fonts/_quartz.py +0 -0
  652. {vispy-0.14.2 → vispy-0.15.1}/vispy/util/fonts/_triage.py +0 -0
  653. {vispy-0.14.2 → vispy-0.15.1}/vispy/util/fonts/_vispy_fonts.py +0 -0
  654. {vispy-0.14.2 → vispy-0.15.1}/vispy/util/fonts/_win32.py +0 -0
  655. {vispy-0.14.2 → vispy-0.15.1}/vispy/util/fonts/data/OpenSans-Bold.ttf +0 -0
  656. {vispy-0.14.2 → vispy-0.15.1}/vispy/util/fonts/data/OpenSans-BoldItalic.ttf +0 -0
  657. {vispy-0.14.2 → vispy-0.15.1}/vispy/util/fonts/data/OpenSans-Italic.ttf +0 -0
  658. {vispy-0.14.2 → vispy-0.15.1}/vispy/util/fonts/data/OpenSans-Regular.ttf +0 -0
  659. {vispy-0.14.2 → vispy-0.15.1}/vispy/util/fonts/tests/__init__.py +0 -0
  660. {vispy-0.14.2 → vispy-0.15.1}/vispy/util/fonts/tests/test_font.py +0 -0
  661. {vispy-0.14.2 → vispy-0.15.1}/vispy/util/fourier.py +0 -0
  662. {vispy-0.14.2 → vispy-0.15.1}/vispy/util/frozen.py +0 -0
  663. {vispy-0.14.2 → vispy-0.15.1}/vispy/util/gallery_scraper.py +0 -0
  664. {vispy-0.14.2 → vispy-0.15.1}/vispy/util/keys.py +0 -0
  665. {vispy-0.14.2 → vispy-0.15.1}/vispy/util/logs.py +0 -0
  666. {vispy-0.14.2 → vispy-0.15.1}/vispy/util/osmesa_gl.py +0 -0
  667. {vispy-0.14.2 → vispy-0.15.1}/vispy/util/profiler.py +0 -0
  668. {vispy-0.14.2 → vispy-0.15.1}/vispy/util/ptime.py +0 -0
  669. {vispy-0.14.2 → vispy-0.15.1}/vispy/util/quaternion.py +0 -0
  670. {vispy-0.14.2 → vispy-0.15.1}/vispy/util/svg/__init__.py +0 -0
  671. {vispy-0.14.2 → vispy-0.15.1}/vispy/util/svg/base.py +0 -0
  672. {vispy-0.14.2 → vispy-0.15.1}/vispy/util/svg/color.py +0 -0
  673. {vispy-0.14.2 → vispy-0.15.1}/vispy/util/svg/element.py +0 -0
  674. {vispy-0.14.2 → vispy-0.15.1}/vispy/util/svg/geometry.py +0 -0
  675. {vispy-0.14.2 → vispy-0.15.1}/vispy/util/svg/group.py +0 -0
  676. {vispy-0.14.2 → vispy-0.15.1}/vispy/util/svg/length.py +0 -0
  677. {vispy-0.14.2 → vispy-0.15.1}/vispy/util/svg/number.py +0 -0
  678. {vispy-0.14.2 → vispy-0.15.1}/vispy/util/svg/path.py +0 -0
  679. {vispy-0.14.2 → vispy-0.15.1}/vispy/util/svg/shapes.py +0 -0
  680. {vispy-0.14.2 → vispy-0.15.1}/vispy/util/svg/style.py +0 -0
  681. {vispy-0.14.2 → vispy-0.15.1}/vispy/util/svg/svg.py +0 -0
  682. {vispy-0.14.2 → vispy-0.15.1}/vispy/util/svg/transform.py +0 -0
  683. {vispy-0.14.2 → vispy-0.15.1}/vispy/util/svg/transformable.py +0 -0
  684. {vispy-0.14.2 → vispy-0.15.1}/vispy/util/svg/viewport.py +0 -0
  685. {vispy-0.14.2 → vispy-0.15.1}/vispy/util/tests/__init__.py +0 -0
  686. {vispy-0.14.2 → vispy-0.15.1}/vispy/util/tests/test_config.py +0 -0
  687. {vispy-0.14.2 → vispy-0.15.1}/vispy/util/tests/test_docstring_parameters.py +0 -0
  688. {vispy-0.14.2 → vispy-0.15.1}/vispy/util/tests/test_emitter_group.py +0 -0
  689. {vispy-0.14.2 → vispy-0.15.1}/vispy/util/tests/test_event_emitter.py +0 -0
  690. {vispy-0.14.2 → vispy-0.15.1}/vispy/util/tests/test_fourier.py +0 -0
  691. {vispy-0.14.2 → vispy-0.15.1}/vispy/util/tests/test_gallery_scraper.py +0 -0
  692. {vispy-0.14.2 → vispy-0.15.1}/vispy/util/tests/test_import.py +0 -0
  693. {vispy-0.14.2 → vispy-0.15.1}/vispy/util/tests/test_key.py +0 -0
  694. {vispy-0.14.2 → vispy-0.15.1}/vispy/util/tests/test_logging.py +0 -0
  695. {vispy-0.14.2 → vispy-0.15.1}/vispy/util/tests/test_run.py +0 -0
  696. {vispy-0.14.2 → vispy-0.15.1}/vispy/util/tests/test_transforms.py +0 -0
  697. {vispy-0.14.2 → vispy-0.15.1}/vispy/util/tests/test_vispy.py +0 -0
  698. {vispy-0.14.2 → vispy-0.15.1}/vispy/util/transforms.py +0 -0
  699. {vispy-0.14.2 → vispy-0.15.1}/vispy/util/wrappers.py +0 -0
  700. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/__init__.py +0 -0
  701. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/axis.py +0 -0
  702. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/border.py +0 -0
  703. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/box.py +0 -0
  704. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/collections/__init__.py +0 -0
  705. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/collections/agg_fast_path_collection.py +0 -0
  706. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/collections/agg_path_collection.py +0 -0
  707. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/collections/agg_point_collection.py +0 -0
  708. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/collections/agg_segment_collection.py +0 -0
  709. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/collections/base_collection.py +0 -0
  710. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/collections/collection.py +0 -0
  711. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/collections/path_collection.py +0 -0
  712. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/collections/point_collection.py +0 -0
  713. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/collections/polygon_collection.py +0 -0
  714. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/collections/raw_path_collection.py +0 -0
  715. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/collections/raw_point_collection.py +0 -0
  716. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/collections/raw_polygon_collection.py +0 -0
  717. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/collections/raw_segment_collection.py +0 -0
  718. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/collections/raw_triangle_collection.py +0 -0
  719. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/collections/segment_collection.py +0 -0
  720. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/collections/triangle_collection.py +0 -0
  721. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/collections/util.py +0 -0
  722. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/colorbar.py +0 -0
  723. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/cube.py +0 -0
  724. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/ellipse.py +0 -0
  725. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/filters/__init__.py +0 -0
  726. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/filters/base_filter.py +0 -0
  727. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/filters/clipper.py +0 -0
  728. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/filters/clipping_planes.py +0 -0
  729. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/filters/color.py +0 -0
  730. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/filters/markers.py +0 -0
  731. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/filters/picking.py +0 -0
  732. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/filters/tests/__init__.py +0 -0
  733. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/filters/tests/test_primitive_picking_filters.py +0 -0
  734. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/filters/tests/test_wireframe_filter.py +0 -0
  735. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/glsl/__init__.py +0 -0
  736. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/glsl/antialiasing.py +0 -0
  737. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/glsl/color.py +0 -0
  738. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/graphs/__init__.py +0 -0
  739. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/graphs/graph.py +0 -0
  740. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/graphs/layouts/__init__.py +0 -0
  741. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/graphs/layouts/circular.py +0 -0
  742. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/graphs/layouts/force_directed.py +0 -0
  743. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/graphs/layouts/networkx_layout.py +0 -0
  744. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/graphs/layouts/random.py +0 -0
  745. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/graphs/tests/__init__.py +0 -0
  746. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/graphs/tests/test_layouts.py +0 -0
  747. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/graphs/tests/test_networkx_layout.py +0 -0
  748. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/graphs/util.py +0 -0
  749. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/gridmesh.py +0 -0
  750. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/histogram.py +0 -0
  751. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/image_complex.py +0 -0
  752. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/infinite_line.py +0 -0
  753. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/instanced_mesh.py +0 -0
  754. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/isocurve.py +0 -0
  755. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/isoline.py +0 -0
  756. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/isosurface.py +0 -0
  757. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/line/__init__.py +0 -0
  758. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/line/arrow.py +0 -0
  759. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/line/dash_atlas.py +0 -0
  760. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/line/line.py +0 -0
  761. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/line_plot.py +0 -0
  762. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/linear_region.py +0 -0
  763. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/markers.py +0 -0
  764. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/mesh.py +0 -0
  765. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/mesh_normals.py +0 -0
  766. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/plane.py +0 -0
  767. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/polygon.py +0 -0
  768. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/rectangle.py +0 -0
  769. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/regular_polygon.py +0 -0
  770. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/scrolling_lines.py +0 -0
  771. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/shaders/__init__.py +0 -0
  772. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/shaders/compiler.py +0 -0
  773. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/shaders/expression.py +0 -0
  774. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/shaders/function.py +0 -0
  775. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/shaders/multiprogram.py +0 -0
  776. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/shaders/parsing.py +0 -0
  777. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/shaders/program.py +0 -0
  778. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/shaders/shader_object.py +0 -0
  779. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/shaders/tests/__init__.py +0 -0
  780. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/shaders/tests/test_function.py +0 -0
  781. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/shaders/tests/test_multiprogram.py +0 -0
  782. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/shaders/tests/test_parsing.py +0 -0
  783. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/shaders/variable.py +0 -0
  784. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/spectrogram.py +0 -0
  785. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/sphere.py +0 -0
  786. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/tests/__init__.py +0 -0
  787. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/tests/test_arrows.py +0 -0
  788. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/tests/test_axis.py +0 -0
  789. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/tests/test_collections.py +0 -0
  790. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/tests/test_colorbar.py +0 -0
  791. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/tests/test_colormap.py +0 -0
  792. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/tests/test_ellipse.py +0 -0
  793. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/tests/test_histogram.py +0 -0
  794. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/tests/test_image_complex.py +0 -0
  795. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/tests/test_infinite_line.py +0 -0
  796. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/tests/test_instanced_mesh.py +0 -0
  797. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/tests/test_isosurface.py +0 -0
  798. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/tests/test_linear_region.py +0 -0
  799. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/tests/test_markers.py +0 -0
  800. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/tests/test_mesh.py +0 -0
  801. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/tests/test_mesh_normals.py +0 -0
  802. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/tests/test_polygon.py +0 -0
  803. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/tests/test_rectangle.py +0 -0
  804. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/tests/test_regular_polygon.py +0 -0
  805. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/tests/test_sdf.py +0 -0
  806. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/tests/test_spectrogram.py +0 -0
  807. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/tests/test_text.py +0 -0
  808. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/tests/test_volume.py +0 -0
  809. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/tests/test_windbarb.py +0 -0
  810. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/text/__init__.py +0 -0
  811. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/text/_sdf_gpu.py +0 -0
  812. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/text/text.py +0 -0
  813. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/transforms/__init__.py +0 -0
  814. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/transforms/_util.py +0 -0
  815. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/transforms/base_transform.py +0 -0
  816. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/transforms/chain.py +0 -0
  817. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/transforms/interactive.py +0 -0
  818. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/transforms/linear.py +0 -0
  819. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/transforms/nonlinear.py +0 -0
  820. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/transforms/tests/__init__.py +0 -0
  821. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/transforms/tests/test_transforms.py +0 -0
  822. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/transforms/transform_system.py +0 -0
  823. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/tube.py +0 -0
  824. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/visual.py +0 -0
  825. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/windbarb.py +0 -0
  826. {vispy-0.14.2 → vispy-0.15.1}/vispy/visuals/xyz_axis.py +0 -0
  827. {vispy-0.14.2 → vispy-0.15.1}/vispy.egg-info/dependency_links.txt +0 -0
  828. {vispy-0.14.2 → vispy-0.15.1}/vispy.egg-info/not-zip-safe +0 -0
  829. {vispy-0.14.2 → vispy-0.15.1}/vispy.egg-info/top_level.txt +0 -0
@@ -23,8 +23,9 @@ jobs:
23
23
  name: OpenGL checks
24
24
  runs-on: ubuntu-latest
25
25
  defaults:
26
+ # use login shell to make use of .bash_profile /.bashrc
26
27
  run:
27
- shell: bash -l {0}
28
+ shell: bash --login -e {0}
28
29
  steps:
29
30
  - name: Install OpenGL
30
31
  run: |
@@ -66,7 +67,8 @@ jobs:
66
67
  python make test lineendings
67
68
  - name: Lint with flake8
68
69
  run: |
69
- python make test flake
70
+ # FIXME: deliberately ignore linting errors for now
71
+ python make test flake || true
70
72
  # FIXME: Re-enable this when all docstrings are fixed
71
73
  # - name: Test docstring parameters
72
74
  # run: |
@@ -79,7 +81,7 @@ jobs:
79
81
  defaults:
80
82
  # use login shell to make use of .bash_profile /.bashrc
81
83
  run:
82
- shell: bash -l {0}
84
+ shell: bash --login -e {0}
83
85
  steps:
84
86
  - uses: actions/checkout@v4
85
87
  with:
@@ -111,7 +113,7 @@ jobs:
111
113
  sleep 5
112
114
  # export python_version
113
115
  echo "python_version=310" >> $GITHUB_OUTPUT
114
- - uses: mamba-org/setup-micromamba@v1
116
+ - uses: mamba-org/setup-micromamba@v2
115
117
  with:
116
118
  environment-file: ./ci/requirements/py${{ steps.vars.outputs.python_version }}.yml
117
119
  - name: Install conda-dependencies
@@ -145,7 +147,7 @@ jobs:
145
147
  retention-days: 1
146
148
  - name: deploy website
147
149
  if: github.event_name == 'push'
148
- uses: peaceiris/actions-gh-pages@v3
150
+ uses: peaceiris/actions-gh-pages@v4
149
151
  with:
150
152
  personal_token: ${{ secrets.VISPY_WEBSITE_TOKEN }}
151
153
  publish_dir: doc/_build/html
@@ -163,7 +165,7 @@ jobs:
163
165
  defaults:
164
166
  # use login shell to make use of .bash_profile /.bashrc
165
167
  run:
166
- shell: bash -l {0}
168
+ shell: bash --login -e {0}
167
169
  strategy:
168
170
  fail-fast: false
169
171
  matrix:
@@ -225,7 +227,7 @@ jobs:
225
227
  # export python_version
226
228
  PY_VER=${{ matrix.python_version }}
227
229
  echo "python_version=${PY_VER//.}" >> $GITHUB_OUTPUT
228
- - uses: mamba-org/setup-micromamba@v1
230
+ - uses: mamba-org/setup-micromamba@v2
229
231
  with:
230
232
  environment-file: ./ci/requirements/py${{ steps.vars.outputs.python_version }}.yml
231
233
  - name: Install conda-dependencies
@@ -14,11 +14,8 @@ jobs:
14
14
  strategy:
15
15
  fail-fast: false
16
16
  matrix:
17
- os: [ubuntu-20.04, windows-2019, macOS-latest]
17
+ os: [ubuntu-latest, windows-2019, macOS-latest, macos-13, ubuntu-24.04-arm]
18
18
  arch: [auto]
19
- include:
20
- - os: ubuntu-20.04
21
- arch: aarch64
22
19
  steps:
23
20
  - uses: actions/checkout@v4
24
21
  with:
@@ -27,25 +24,9 @@ jobs:
27
24
  if: ${{ matrix.arch == 'aarch64' }}
28
25
  uses: docker/setup-qemu-action@v3
29
26
  - name: Build wheels
30
- uses: pypa/cibuildwheel@v2.16.5
27
+ uses: pypa/cibuildwheel@v2.23.3
31
28
  env:
32
- CIBW_SKIP: "cp36-* pp* *-win32 *-manylinux_i686 *-musllinux*"
33
29
  CIBW_ARCHS_LINUX: ${{ matrix.arch }}
34
- CIBW_TEST_REQUIRES: "pytest pytest-sugar meshio pillow sphinx_gallery imageio"
35
- CIBW_TEST_COMMAND: "python -c \"import vispy; vispy.test('nobackend')\""
36
- CIBW_BUILD_VERBOSITY: "2"
37
- # Get numpy release candidate to have Python 3.12 compatibility (hopefully)
38
- CIBW_BEFORE_BUILD: "python -m pip install -U Cython pip setuptools"
39
- CIBW_BEFORE_TEST: "python -m pip install -U Cython pip setuptools"
40
- #CIBW_BEFORE_BUILD_MACOS: "pip install -U pip setuptools"
41
- CIBW_BEFORE_BUILD_LINUX: "yum install -y fontconfig || apk add fontconfig-dev jpeg-dev; pip install freetype-py"
42
- # If freetype-py is installed from source (no wheel found), include bundled freetype library
43
- CIBW_ENVIRONMENT_WINDOWS: "FREETYPEPY_BUNDLE_FT=1"
44
- CIBW_ENVIRONMENT: "GITHUB_ACTIONS=true"
45
- CIBW_MANYLINUX_X86_64_IMAGE: manylinux2014
46
- CIBW_MANYLINUX_I686_IMAGE: manylinux2014
47
- CIBW_ARCHS_MACOS: 'x86_64 arm64'
48
- CIBW_TEST_SKIP: '*-macosx_arm64'
49
30
  - uses: actions/upload-artifact@v4
50
31
  with:
51
32
  name: wheels-${{ matrix.os }}-${{ matrix.arch }}
@@ -61,7 +42,7 @@ jobs:
61
42
  - uses: actions/setup-python@v5
62
43
  name: Install Python
63
44
  with:
64
- python-version: '3.7'
45
+ python-version: '3.9'
65
46
  - name: Build sdist
66
47
  run: |
67
48
  python -m pip install --upgrade pip setuptools build wheel
@@ -82,19 +63,8 @@ jobs:
82
63
  path: dist
83
64
  - uses: actions/download-artifact@v4
84
65
  with:
85
- name: wheels-ubuntu-20.04-auto
86
- path: dist
87
- - uses: actions/download-artifact@v4
88
- with:
89
- name: wheels-windows-2019-auto
90
- path: dist
91
- - uses: actions/download-artifact@v4
92
- with:
93
- name: wheels-macOS-latest-auto
94
- path: dist
95
- - uses: actions/download-artifact@v4
96
- with:
97
- name: wheels-ubuntu-20.04-aarch64
66
+ pattern: wheels-*
67
+ merge-multiple: true
98
68
  path: dist
99
69
  - uses: pypa/gh-action-pypi-publish@master
100
70
  # upload to Test PyPI for every commit on main branch
@@ -112,21 +82,11 @@ jobs:
112
82
  with:
113
83
  name: sdist
114
84
  path: dist
85
+
115
86
  - uses: actions/download-artifact@v4
116
87
  with:
117
- name: wheels-ubuntu-20.04-auto
118
- path: dist
119
- - uses: actions/download-artifact@v4
120
- with:
121
- name: wheels-windows-2019-auto
122
- path: dist
123
- - uses: actions/download-artifact@v4
124
- with:
125
- name: wheels-macOS-latest-auto
126
- path: dist
127
- - uses: actions/download-artifact@v4
128
- with:
129
- name: wheels-ubuntu-20.04-aarch64
88
+ pattern: wheels-*
89
+ merge-multiple: true
130
90
  path: dist
131
91
  - uses: pypa/gh-action-pypi-publish@master
132
92
  # upload to PyPI on every tag starting with 'v'
@@ -30,4 +30,5 @@ vispy/static/
30
30
  vispy/version.py
31
31
  .vscode
32
32
  vispy/visuals/text/_sdf_cpu*.pyd
33
- .spyproject
33
+ .spyproject
34
+ wheelhouse
@@ -1,5 +1,75 @@
1
1
  # Release Notes
2
2
 
3
+ ## [v0.15.1](https://github.com/vispy/vispy/tree/v0.15.1) (2025-05-15)
4
+
5
+ **Fixed bugs:**
6
+
7
+ - Restore sdist upload to pypi [\#2672](https://github.com/vispy/vispy/pull/2672) ([Czaki](https://github.com/Czaki))
8
+
9
+ **Merged pull requests:**
10
+
11
+ - Bump pypa/cibuildwheel from 2.23.2 to 2.23.3 [\#2669](https://github.com/vispy/vispy/pull/2669) ([dependabot[bot]](https://github.com/apps/dependabot))
12
+
13
+
14
+ ## [v0.15.0](https://github.com/vispy/vispy/tree/v0.15.0) (2025-04-22)
15
+
16
+ **Enhancements:**
17
+
18
+ - Add high and low color settings for colormaps \(HiLo mapping\) [\#2663](https://github.com/vispy/vispy/pull/2663) ([brisvag](https://github.com/brisvag))
19
+ - Allow setting bad color on colormap \(continue \#2620\) [\#2659](https://github.com/vispy/vispy/pull/2659) ([brisvag](https://github.com/brisvag))
20
+ - Add modifiers to QT native gesture events [\#2631](https://github.com/vispy/vispy/pull/2631) ([arambert](https://github.com/arambert))
21
+ - Implement limiting size for gridlines \(2\) [\#2630](https://github.com/vispy/vispy/pull/2630) ([brisvag](https://github.com/brisvag))
22
+ - Various optimizations related to camera linking and mesh normals [\#2532](https://github.com/vispy/vispy/pull/2532) ([djhoese](https://github.com/djhoese))
23
+
24
+ **Fixed bugs:**
25
+
26
+ - Fix bad\_color handling and simplify some logic [\#2662](https://github.com/vispy/vispy/pull/2662) ([brisvag](https://github.com/brisvag))
27
+ - Fix type of vertice passed to function for adding triangles [\#2647](https://github.com/vispy/vispy/pull/2647) ([Czaki](https://github.com/Czaki))
28
+ - Fix mesh colors reshaping [\#2645](https://github.com/vispy/vispy/pull/2645) ([BenZickel](https://github.com/BenZickel))
29
+ - Use visual coordinates in ArcballCamera [\#2642](https://github.com/vispy/vispy/pull/2642) ([Seon82](https://github.com/Seon82))
30
+ - fix: prevent zerodiv error when auto-calculating clims in scalable textures [\#2621](https://github.com/vispy/vispy/pull/2621) ([tlambert03](https://github.com/tlambert03))
31
+ - Set self.\_data\_dtype in scale\_and\_set\_data for CPU scaled textures [\#2601](https://github.com/vispy/vispy/pull/2601) ([aganders3](https://github.com/aganders3))
32
+ - Ignore unhandled Qt events [\#2600](https://github.com/vispy/vispy/pull/2600) ([gselzer](https://github.com/gselzer))
33
+ - Ignore all flat triangles in triangulation [\#2248](https://github.com/vispy/vispy/pull/2248) ([andy-sweet](https://github.com/andy-sweet))
34
+
35
+ **Merged pull requests:**
36
+
37
+ - Bump pypa/cibuildwheel from 2.23.1 to 2.23.2 [\#2660](https://github.com/vispy/vispy/pull/2660) ([dependabot[bot]](https://github.com/apps/dependabot))
38
+ - Fix small mistake in docs [\#2658](https://github.com/vispy/vispy/pull/2658) ([jspast](https://github.com/jspast))
39
+ - Bump pypa/cibuildwheel from 2.23.0 to 2.23.1 [\#2655](https://github.com/vispy/vispy/pull/2655) ([dependabot[bot]](https://github.com/apps/dependabot))
40
+ - Bump pypa/cibuildwheel from 2.22.0 to 2.23.0 [\#2652](https://github.com/vispy/vispy/pull/2652) ([dependabot[bot]](https://github.com/apps/dependabot))
41
+ - Bump pypa/cibuildwheel from 2.21.2 to 2.22.0 [\#2632](https://github.com/vispy/vispy/pull/2632) ([dependabot[bot]](https://github.com/apps/dependabot))
42
+ - Bump mamba-org/setup-micromamba from 1 to 2 [\#2626](https://github.com/vispy/vispy/pull/2626) ([dependabot[bot]](https://github.com/apps/dependabot))
43
+ - Bump pypa/cibuildwheel from 2.21.1 to 2.21.2 [\#2625](https://github.com/vispy/vispy/pull/2625) ([dependabot[bot]](https://github.com/apps/dependabot))
44
+ - Bump pypa/cibuildwheel from 2.21.0 to 2.21.1 [\#2623](https://github.com/vispy/vispy/pull/2623) ([dependabot[bot]](https://github.com/apps/dependabot))
45
+ - Bump pypa/cibuildwheel from 2.20.0 to 2.21.0 [\#2622](https://github.com/vispy/vispy/pull/2622) ([dependabot[bot]](https://github.com/apps/dependabot))
46
+ - Bump pypa/cibuildwheel from 2.19.2 to 2.20.0 [\#2611](https://github.com/vispy/vispy/pull/2611) ([dependabot[bot]](https://github.com/apps/dependabot))
47
+ - Add variable name in errors to help debugging [\#2605](https://github.com/vispy/vispy/pull/2605) ([brisvag](https://github.com/brisvag))
48
+ - Bump pypa/cibuildwheel from 2.19.1 to 2.19.2 [\#2604](https://github.com/vispy/vispy/pull/2604) ([dependabot[bot]](https://github.com/apps/dependabot))
49
+ - Bump pypa/cibuildwheel from 2.18.1 to 2.19.1 [\#2602](https://github.com/vispy/vispy/pull/2602) ([dependabot[bot]](https://github.com/apps/dependabot))
50
+
51
+
52
+ ## [v0.14.3](https://github.com/vispy/vispy/tree/v0.14.3) (2024-06-17)
53
+
54
+ **Enhancements:**
55
+
56
+ - Clip step size based on maximum detail on an 8K monitor [\#2589](https://github.com/vispy/vispy/pull/2589) ([jni](https://github.com/jni))
57
+
58
+ **Fixed bugs:**
59
+
60
+ - Fix integral computation in attenuated mip [\#2588](https://github.com/vispy/vispy/pull/2588) ([jni](https://github.com/jni))
61
+ - Reset VertexAttribDivisor even if None [\#2583](https://github.com/vispy/vispy/pull/2583) ([aganders3](https://github.com/aganders3))
62
+
63
+ **Merged pull requests:**
64
+
65
+ - Fix CI: failing tests and linting errors not failing checks [\#2597](https://github.com/vispy/vispy/pull/2597) ([aganders3](https://github.com/aganders3))
66
+ - Bump pypa/cibuildwheel from 2.18.0 to 2.18.1 [\#2586](https://github.com/vispy/vispy/pull/2586) ([dependabot[bot]](https://github.com/apps/dependabot))
67
+ - Bump pypa/cibuildwheel from 2.17.0 to 2.18.0 [\#2584](https://github.com/vispy/vispy/pull/2584) ([dependabot[bot]](https://github.com/apps/dependabot))
68
+ - Bump peaceiris/actions-gh-pages from 3 to 4 [\#2582](https://github.com/vispy/vispy/pull/2582) ([dependabot[bot]](https://github.com/apps/dependabot))
69
+ - Fix gallery link in README.rst [\#2579](https://github.com/vispy/vispy/pull/2579) ([inigoalonso](https://github.com/inigoalonso))
70
+ - Bump pypa/cibuildwheel from 2.16.5 to 2.17.0 [\#2578](https://github.com/vispy/vispy/pull/2578) ([dependabot[bot]](https://github.com/apps/dependabot))
71
+
72
+
3
73
  ## [v0.14.2](https://github.com/vispy/vispy/tree/v0.14.2) (2024-03-14)
4
74
 
5
75
  **Enhancements:**
@@ -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:
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.4
2
2
  Name: vispy
3
- Version: 0.14.2
3
+ Version: 0.15.1
4
4
  Summary: Interactive visualization in Python
5
5
  Home-page: http://vispy.org
6
6
  Download-URL: https://pypi.python.org/pypi/vispy
@@ -19,27 +19,77 @@ Classifier: Operating System :: MacOS :: MacOS X
19
19
  Classifier: Operating System :: Microsoft :: Windows
20
20
  Classifier: Operating System :: POSIX
21
21
  Classifier: Programming Language :: Python
22
- Classifier: Programming Language :: Python :: 3.8
23
22
  Classifier: Programming Language :: Python :: 3.9
24
23
  Classifier: Programming Language :: Python :: 3.10
25
24
  Classifier: Programming Language :: Python :: 3.11
25
+ Classifier: Programming Language :: Python :: 3.12
26
26
  Classifier: Framework :: IPython
27
27
  Provides: vispy
28
- Requires-Python: >=3.8
28
+ Requires-Python: >=3.9
29
29
  Description-Content-Type: text/x-rst
30
+ License-File: LICENSE.txt
31
+ Requires-Dist: numpy
32
+ Requires-Dist: freetype-py
33
+ Requires-Dist: hsluv
34
+ Requires-Dist: kiwisolver
35
+ Requires-Dist: packaging
30
36
  Provides-Extra: ipython-static
37
+ Requires-Dist: ipython; extra == "ipython-static"
31
38
  Provides-Extra: pyglet
39
+ Requires-Dist: pyglet>=1.2; extra == "pyglet"
32
40
  Provides-Extra: pyqt5
41
+ Requires-Dist: pyqt5; extra == "pyqt5"
33
42
  Provides-Extra: pyqt6
43
+ Requires-Dist: pyqt6; extra == "pyqt6"
34
44
  Provides-Extra: pyside
45
+ Requires-Dist: PySide; extra == "pyside"
35
46
  Provides-Extra: pyside2
47
+ Requires-Dist: PySide2; extra == "pyside2"
36
48
  Provides-Extra: pyside6
49
+ Requires-Dist: PySide6; extra == "pyside6"
50
+ Provides-Extra: glfw
51
+ Requires-Dist: glfw; extra == "glfw"
37
52
  Provides-Extra: sdl2
53
+ Requires-Dist: PySDL2; extra == "sdl2"
38
54
  Provides-Extra: wx
55
+ Requires-Dist: wxPython; extra == "wx"
39
56
  Provides-Extra: tk
57
+ Requires-Dist: pyopengltk; extra == "tk"
40
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"
41
67
  Provides-Extra: io
42
- License-File: LICENSE.txt
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
43
93
 
44
94
  VisPy: interactive scientific visualization in Python
45
95
  -----------------------------------------------------
@@ -180,7 +230,7 @@ External links
180
230
  - `Chat room <https://gitter.im/vispy/vispy>`__
181
231
  - `Developer chat room <https://gitter.im/vispy/vispy-dev>`__
182
232
  - `Wiki <http://github.com/vispy/vispy/wiki>`__
183
- - `Gallery <http://vispy.org/gallery.html>`__
233
+ - `Gallery <http://vispy.org/gallery/index.html>`__
184
234
  - `Documentation <http://vispy.readthedocs.org>`__
185
235
 
186
236
  .. |Build Status| image:: https://github.com/vispy/vispy/workflows/CI/badge.svg
@@ -137,7 +137,7 @@ External links
137
137
  - `Chat room <https://gitter.im/vispy/vispy>`__
138
138
  - `Developer chat room <https://gitter.im/vispy/vispy-dev>`__
139
139
  - `Wiki <http://github.com/vispy/vispy/wiki>`__
140
- - `Gallery <http://vispy.org/gallery.html>`__
140
+ - `Gallery <http://vispy.org/gallery/index.html>`__
141
141
  - `Documentation <http://vispy.readthedocs.org>`__
142
142
 
143
143
  .. |Build Status| image:: https://github.com/vispy/vispy/workflows/CI/badge.svg
@@ -6,3 +6,5 @@ libgles2-mesa-dev
6
6
  libsdl2-2.0-0
7
7
  mesa-utils
8
8
  x11-utils
9
+ zlib1g-dev
10
+ libjpeg8-dev
@@ -6,7 +6,7 @@ freetype-py
6
6
  glfw!=3.3.1
7
7
  imageio
8
8
  jupyter
9
- matplotlib
9
+ matplotlib-base
10
10
  meshio
11
11
  networkx
12
12
  numpy
@@ -16,7 +16,7 @@ pysdl2
16
16
  pytest
17
17
  pytest-cov
18
18
  pytest-sugar
19
- pyopengl
19
+ pyopengl!=3.1.7,!=3.1.8,!=3.1.9
20
20
  scikit-image
21
21
  scipy
22
22
  networkx
@@ -15,5 +15,5 @@ libxcb-xinerama0
15
15
  libxcb-icccm4-dev
16
16
  libxcb-image0-dev
17
17
  libxcb-keysyms1
18
- libegl1-mesa
18
+ libegl1
19
19
  x11-utils
@@ -15,7 +15,8 @@ from datetime import date
15
15
  import sys
16
16
  import os
17
17
  import re
18
- import warnings
18
+ from pathlib import Path
19
+
19
20
  import vispy
20
21
 
21
22
  # If extensions (or modules to document with autodoc) are in another directory,
@@ -49,8 +50,6 @@ apidoc_excluded_paths = ["../vispy/ext"]
49
50
  apidoc_separate_modules = True
50
51
 
51
52
  # Sphinx Gallery
52
- from sphinx_gallery.sorting import FileNameSortKey
53
-
54
53
  # the following files are ignored from gallery processing
55
54
  ignore_files = ['plotting/export.py',
56
55
  'gloo/geometry_shader.py',
@@ -67,7 +66,7 @@ sphinx_gallery_conf = {
67
66
  'image_scrapers': ('vispy',),
68
67
  'reset_modules': tuple(), # remove default matplotlib/seaborn resetters
69
68
  'first_notebook_cell': '%gui qt', # tell notebooks to use Qt backend
70
- 'within_subsection_order': FileNameSortKey,
69
+ 'within_subsection_order': "FileNameSortKey",
71
70
  }
72
71
  # Let vispy.app.application:Application.run know that we are generating gallery images
73
72
  os.environ["_VISPY_RUNNING_GALLERY_EXAMPLES"] = "1"
@@ -142,41 +141,42 @@ pygments_style = 'sphinx'
142
141
  # a list of builtin themes.
143
142
  html_theme = 'pydata_sphinx_theme'
144
143
 
145
- # Tell the theme where the code lives
146
-
147
-
148
- def _custom_edit_url(github_user, github_repo, github_version, doc_path, file_name, default_edit_page_url_template):
149
- """Create custom 'edit' URLs for API modules since they are dynamically generated."""
150
- if file_name.startswith("api/"):
151
- # this is a dynamically generated API page, link to actual Python source
152
- modpath = os.sep.join(os.path.splitext(file_name[4:])[0].split("."))
153
- if modpath == "modules":
154
- # main package listing
155
- modpath = "vispy"
156
- rel_modpath = os.path.join("..", modpath)
157
- if os.path.isdir(rel_modpath):
158
- doc_path = modpath + "/"
159
- file_name = "__init__.py"
160
- elif os.path.isfile(rel_modpath + ".py"):
161
- doc_path = os.path.dirname(modpath)
162
- file_name = os.path.basename(modpath) + ".py"
163
- else:
164
- warnings.warn(f"Not sure how to generate the API URL for: {file_name}")
165
- return default_edit_page_url_template.format(github_user=github_user,
166
- github_repo=github_repo,
167
- github_version=github_version,
168
- doc_path=doc_path,
169
- file_name=file_name)
170
-
144
+ # Create custom 'edit' URLs for API modules since they are dynamically generated.
145
+ # We precompute this so the values in the `html_context` are static, and it can be cached
146
+ # `modules.rst` is a special case, and we link it to the main `vispy` package
147
+ edit_link_paths = {"api/modules.rst": "vispy/__init__.py"}
148
+ for root, dirs, files in os.walk("../vispy"):
149
+ # remove leading "../"
150
+ root = Path(root).relative_to("..")
151
+ if root.name == "__pycache__":
152
+ continue
153
+ for file in files:
154
+ full_path = root / file
155
+ if full_path.name == "__init__.py":
156
+ package_name = ".".join(root.parts)
157
+ apidoc_file_name = "api" / Path(package_name + ".rst")
158
+ elif full_path.suffix == ".py":
159
+ module_name = ".".join(full_path.with_suffix("").parts)
160
+ apidoc_file_name = "api" / Path(module_name + ".rst")
161
+ edit_link_paths[str(apidoc_file_name)] = full_path
162
+
163
+ edit_page_url_template = """\
164
+ {%- if file_name in edit_link_paths %}
165
+ {% set file_name = edit_link_paths[file_name] %}
166
+ https://github.com/{{github_user}}/{{github_repo}}/edit/{{github_version}}/{{file_name}}
167
+ {%- else %}
168
+ {# the last slash between doc_path and file_name is not needed for non-apidoc files #}
169
+ https://github.com/{{github_user}}/{{github_repo}}/edit/{{github_version}}/{{doc_path}}{{file_name}}
170
+ {%- endif %}
171
+ """
171
172
 
172
173
  html_context = {
173
174
  "github_user": "vispy",
174
175
  "github_repo": "vispy",
175
176
  "github_version": "main",
176
177
  "doc_path": "doc",
177
- "edit_page_url_template": "{{ vispy_custom_edit_url(github_user, github_repo, github_version, doc_path, file_name, default_edit_page_url_template) }}",
178
- "default_edit_page_url_template": "https://github.com/{github_user}/{github_repo}/edit/{github_version}/{doc_path}{file_name}",
179
- "vispy_custom_edit_url": _custom_edit_url,
178
+ "edit_link_paths": edit_link_paths,
179
+ "edit_page_url_template": edit_page_url_template,
180
180
  }
181
181
 
182
182
  # Theme options are theme-specific and customize the look and feel of a theme
@@ -66,7 +66,7 @@ Buffers
66
66
 
67
67
  We explained earlier that the vertex shader act on the vertices. The question
68
68
  is thus where do those vertices comes from? The idea of modern GL is that
69
- vertices are stored on the GPU and needs to be uploaded (only once) to the GPU
69
+ vertices are stored on the GPU and need to be uploaded (only once) to the GPU
70
70
  before rendering. The way to do that is to build buffers onto the CPU and to
71
71
  send them onto the GPU. If your data does not change, no need to upload it
72
72
  again. That is the big difference with the previous fixed pipeline where data
@@ -108,7 +108,7 @@ install most of the VisPy dependencies for you. If your computer is low on hard
108
108
  disk space, or you would like a minimal python installation, you may install
109
109
  the `Miniconda <https://conda.io/miniconda.html>`_ package also from
110
110
  Continuum Analytics. Once Anaconda is installed, create a
111
- `conda python environment <https://conda.io/docs/user-guide/tasks/manage-python.html>`_.
111
+ `conda python environment <https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-python.html>`_.
112
112
 
113
113
  Via conda
114
114
  ---------
@@ -0,0 +1,96 @@
1
+ # -*- coding: utf-8 -*-
2
+ # vispy: gallery 30
3
+ # -----------------------------------------------------------------------------
4
+ # Copyright (c) Vispy Development Team. All Rights Reserved.
5
+ # Distributed under the (new) BSD License. See LICENSE.txt for more info.
6
+ # -----------------------------------------------------------------------------
7
+ """
8
+ Picking Instance of InstancedMeshes
9
+ ===================================
10
+
11
+ Demonstrates how to identify (pick) individual instanced meshes.
12
+
13
+ """
14
+
15
+ import numpy as np
16
+
17
+ from vispy import app, scene, use
18
+ from vispy.io import read_mesh, load_data_file
19
+ from vispy.scene.visuals import InstancedMesh
20
+ from vispy.scene import transforms
21
+ from scipy.spatial.transform import Rotation
22
+
23
+ #Necessary to use InstancedMesh
24
+ use(gl='gl+')
25
+
26
+ canvas = scene.SceneCanvas(keys='interactive', bgcolor='white')
27
+ view = canvas.central_widget.add_view()
28
+
29
+ view.camera = 'turntable'
30
+ view.camera.depth_value = 1e3
31
+
32
+ #Load an mesh file
33
+ mesh_path = load_data_file('spot/spot.obj.gz')
34
+
35
+ n_instances = 8
36
+ vertices, faces, normals, texcoords = read_mesh(mesh_path)
37
+ instance_colors = np.random.rand(n_instances, 3).astype(np.float32)
38
+ instance_positions = [[0,2,0], [2,0,0], [6,0,0], [3,4,1], [5,3,2], [6,2,1], [8,4,6], [1,2,6]]
39
+ instance_transforms = Rotation.identity(n_instances).as_matrix().astype(np.float32)
40
+
41
+ # Create a colored `MeshVisual`.
42
+ mesh = InstancedMesh(
43
+ vertices,
44
+ faces,
45
+ instance_colors=instance_colors,
46
+ instance_positions=instance_positions,
47
+ instance_transforms=instance_transforms,
48
+ parent=view.scene,
49
+ )
50
+
51
+ scene.visuals.XYZAxis(parent=view.scene)
52
+ mesh.interactive = True
53
+
54
+ @canvas.events.mouse_press.connect
55
+ def on_mouse_press(event):
56
+ clicked_mesh = canvas.visual_at(event.pos)
57
+ if isinstance(clicked_mesh, InstancedMesh):
58
+ pos1, min, min_pos = get_view_axis_in_scene_coordinates(
59
+ event.pos, clicked_mesh
60
+ )
61
+ instance_pos = clicked_mesh.instance_positions[min_pos]
62
+ print(f"visual at : {clicked_mesh}")
63
+ print(f"event.pos : {event.pos}")
64
+ print(f"min distance : {min} and min_pos : {instance_pos}")
65
+
66
+
67
+
68
+ def get_view_axis_in_scene_coordinates(pos, mesh):
69
+ event_pos = np.array([pos[0], pos[1], 0, 1])
70
+ instances_on_canvas = []
71
+ # Translate each position to corresponding 2d canvas coordinates
72
+ for instance in mesh.instance_positions:
73
+ on_canvas = mesh.get_transform(map_from="visual", map_to="canvas").map(instance)
74
+ on_canvas /= on_canvas[3:]
75
+ instances_on_canvas.append(on_canvas)
76
+
77
+ min = 10000
78
+ min_pos = None
79
+ # Find the closest position to the clicked position
80
+ for i, instance_pos in enumerate(instances_on_canvas):
81
+ # Not minding z axis
82
+ temp_min = np.linalg.norm(
83
+ np.array(event_pos[:2]) - np.array(instance_pos[:2])
84
+ )
85
+ if temp_min < min:
86
+ min = temp_min
87
+ min_pos = i
88
+
89
+ return instances_on_canvas, min, min_pos
90
+
91
+ canvas.show()
92
+
93
+
94
+ if __name__ == "__main__":
95
+ print(__doc__)
96
+ app.run()
@@ -0,0 +1,27 @@
1
+ [build-system]
2
+ requires = [
3
+ "setuptools>=69.4.0",
4
+ # see https://numpy.org/devdocs/dev/depending_on_numpy.html#numpy-2-0-specific-advice
5
+ "numpy>=2.0.0",
6
+ "setuptools_scm[toml]>=8.1",
7
+ "Cython>=3.0.0"
8
+ ]
9
+
10
+ [tools.setuptools_scm]
11
+ write_to = "vispy/version.py"
12
+ local_scheme = "dirty-tag"
13
+
14
+
15
+ [tool.cibuildwheel]
16
+ skip = "pp* *-win32 *-manylinux_i686 *-musllinux*"
17
+ test-command = "python -c \"import vispy; vispy.test('nobackend')\""
18
+ test-extras = ["test"]
19
+
20
+
21
+ [tool.cibuildwheel.linux]
22
+ before-all = [
23
+ "yum install -y fontconfig || apk add fontconfig-dev jpeg-dev; pip install freetype-py",
24
+ ]
25
+
26
+ [tool.cibuildwheel.windows]
27
+ environment = {FREETYPEPY_BUNDLE_FT=1}