vispy 0.14.2__tar.gz → 0.14.3__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 (826) hide show
  1. {vispy-0.14.2 → vispy-0.14.3}/.github/workflows/main.yml +7 -5
  2. {vispy-0.14.2 → vispy-0.14.3}/.github/workflows/wheels.yml +3 -3
  3. {vispy-0.14.2 → vispy-0.14.3}/CHANGELOG.md +22 -0
  4. {vispy-0.14.2/vispy.egg-info → vispy-0.14.3}/PKG-INFO +32 -5
  5. {vispy-0.14.2 → vispy-0.14.3}/README.rst +1 -1
  6. {vispy-0.14.2 → vispy-0.14.3}/doc/conf.py +33 -33
  7. {vispy-0.14.2 → vispy-0.14.3}/pyproject.toml +2 -1
  8. {vispy-0.14.2 → vispy-0.14.3}/setup.py +3 -2
  9. {vispy-0.14.2 → vispy-0.14.3}/vispy/geometry/__init__.py +1 -1
  10. {vispy-0.14.2 → vispy-0.14.3}/vispy/geometry/calculations.py +30 -2
  11. {vispy-0.14.2 → vispy-0.14.3}/vispy/geometry/triangulation.py +4 -2
  12. {vispy-0.14.2 → vispy-0.14.3}/vispy/gloo/buffer.py +4 -4
  13. {vispy-0.14.2 → vispy-0.14.3}/vispy/gloo/gl/tests/test_functionality.py +4 -2
  14. {vispy-0.14.2 → vispy-0.14.3}/vispy/gloo/glir.py +7 -2
  15. {vispy-0.14.2 → vispy-0.14.3}/vispy/gloo/texture.py +4 -3
  16. {vispy-0.14.2 → vispy-0.14.3}/vispy/testing/_runners.py +3 -1
  17. {vispy-0.14.2 → vispy-0.14.3}/vispy/util/__init__.py +15 -0
  18. vispy-0.14.3/vispy/version.py +16 -0
  19. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/_scalable_textures.py +2 -1
  20. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/collections/array_list.py +4 -4
  21. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/image.py +2 -1
  22. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/text/_sdf_cpu.pyx +2 -0
  23. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/volume.py +35 -4
  24. {vispy-0.14.2 → vispy-0.14.3/vispy.egg-info}/PKG-INFO +32 -5
  25. {vispy-0.14.2 → vispy-0.14.3}/vispy.egg-info/requires.txt +3 -1
  26. vispy-0.14.2/vispy/version.py +0 -4
  27. {vispy-0.14.2 → vispy-0.14.3}/.coveragerc +0 -0
  28. {vispy-0.14.2 → vispy-0.14.3}/.git_archival.txt +0 -0
  29. {vispy-0.14.2 → vispy-0.14.3}/.gitattributes +0 -0
  30. {vispy-0.14.2 → vispy-0.14.3}/.github/dependabot.yml +0 -0
  31. {vispy-0.14.2 → vispy-0.14.3}/.github_changelog_generator +0 -0
  32. {vispy-0.14.2 → vispy-0.14.3}/.gitignore +0 -0
  33. {vispy-0.14.2 → vispy-0.14.3}/CITATION.rst +0 -0
  34. {vispy-0.14.2 → vispy-0.14.3}/CODE_OF_CONDUCT.md +0 -0
  35. {vispy-0.14.2 → vispy-0.14.3}/CONTRIBUTING.md +0 -0
  36. {vispy-0.14.2 → vispy-0.14.3}/LICENSE.txt +0 -0
  37. {vispy-0.14.2 → vispy-0.14.3}/MANIFEST.in +0 -0
  38. {vispy-0.14.2 → vispy-0.14.3}/ci/build_website.sh +0 -0
  39. {vispy-0.14.2 → vispy-0.14.3}/ci/requirements/linux_full_deps_apt.txt +0 -0
  40. {vispy-0.14.2 → vispy-0.14.3}/ci/requirements/linux_full_deps_conda.txt +0 -0
  41. {vispy-0.14.2 → vispy-0.14.3}/ci/requirements/linux_full_deps_pip.txt +0 -0
  42. {vispy-0.14.2 → vispy-0.14.3}/ci/requirements/linux_full_newqtdeps_apt.txt +0 -0
  43. {vispy-0.14.2 → vispy-0.14.3}/ci/requirements/linux_full_newqtdeps_conda.txt +0 -0
  44. {vispy-0.14.2 → vispy-0.14.3}/ci/requirements/linux_full_newqtdeps_pip.txt +0 -0
  45. {vispy-0.14.2 → vispy-0.14.3}/ci/requirements/linux_min_deps_conda.txt +0 -0
  46. {vispy-0.14.2 → vispy-0.14.3}/ci/requirements/linux_osmesa_deps_conda.txt +0 -0
  47. {vispy-0.14.2 → vispy-0.14.3}/ci/requirements/linux_website_deps_pip.txt +0 -0
  48. {vispy-0.14.2 → vispy-0.14.3}/ci/requirements/py310.yml +0 -0
  49. {vispy-0.14.2 → vispy-0.14.3}/ci/requirements/py39.yml +0 -0
  50. {vispy-0.14.2 → vispy-0.14.3}/doc/.gitignore +0 -0
  51. {vispy-0.14.2 → vispy-0.14.3}/doc/.nojekyll +0 -0
  52. {vispy-0.14.2 → vispy-0.14.3}/doc/CNAME +0 -0
  53. {vispy-0.14.2 → vispy-0.14.3}/doc/Makefile +0 -0
  54. {vispy-0.14.2 → vispy-0.14.3}/doc/README.rst +0 -0
  55. {vispy-0.14.2 → vispy-0.14.3}/doc/_static/ViewFrustum.png +0 -0
  56. {vispy-0.14.2 → vispy-0.14.3}/doc/_static/ViewFrustum.svg +0 -0
  57. {vispy-0.14.2 → vispy-0.14.3}/doc/_static/carousel/galaxy.png +0 -0
  58. {vispy-0.14.2 → vispy-0.14.3}/doc/_static/carousel/high-frequency.png +0 -0
  59. {vispy-0.14.2 → vispy-0.14.3}/doc/_static/carousel/mandelbrot.png +0 -0
  60. {vispy-0.14.2 → vispy-0.14.3}/doc/_static/carousel/signals.png +0 -0
  61. {vispy-0.14.2 → vispy-0.14.3}/doc/_static/favicon.ico +0 -0
  62. {vispy-0.14.2 → vispy-0.14.3}/doc/_static/frustum-matrix.png +0 -0
  63. {vispy-0.14.2 → vispy-0.14.3}/doc/_static/gl-history.png +0 -0
  64. {vispy-0.14.2 → vispy-0.14.3}/doc/_static/gl-pipeline.png +0 -0
  65. {vispy-0.14.2 → vispy-0.14.3}/doc/_static/gl-pipeline.svg +0 -0
  66. {vispy-0.14.2 → vispy-0.14.3}/doc/_static/ortho-matrix.png +0 -0
  67. {vispy-0.14.2 → vispy-0.14.3}/doc/_static/perspective-matrix.png +0 -0
  68. {vispy-0.14.2 → vispy-0.14.3}/doc/_static/style.css +0 -0
  69. {vispy-0.14.2 → vispy-0.14.3}/doc/_static/vispy-logo-V.png +0 -0
  70. {vispy-0.14.2 → vispy-0.14.3}/doc/_static/vispy-logo-V.svg +0 -0
  71. {vispy-0.14.2 → vispy-0.14.3}/doc/_static/vispy-teaser-short.png +0 -0
  72. {vispy-0.14.2 → vispy-0.14.3}/doc/_static/vispy-teaser-short.svg +0 -0
  73. {vispy-0.14.2 → vispy-0.14.3}/doc/_static/vispy-teaser.png +0 -0
  74. {vispy-0.14.2 → vispy-0.14.3}/doc/_static/vispy-teaser.svg +0 -0
  75. {vispy-0.14.2 → vispy-0.14.3}/doc/_static/vispy-text-white.png +0 -0
  76. {vispy-0.14.2 → vispy-0.14.3}/doc/_static/vispy-text-white.svg +0 -0
  77. {vispy-0.14.2 → vispy-0.14.3}/doc/api/.gitkeep +0 -0
  78. {vispy-0.14.2 → vispy-0.14.3}/doc/community.rst +0 -0
  79. {vispy-0.14.2 → vispy-0.14.3}/doc/dev_guide/contributor_guide.rst +0 -0
  80. {vispy-0.14.2 → vispy-0.14.3}/doc/dev_guide/index.rst +0 -0
  81. {vispy-0.14.2 → vispy-0.14.3}/doc/dev_guide/writing_examples.rst +0 -0
  82. {vispy-0.14.2 → vispy-0.14.3}/doc/faq.rst +0 -0
  83. {vispy-0.14.2 → vispy-0.14.3}/doc/gallery/index.rst +0 -0
  84. {vispy-0.14.2 → vispy-0.14.3}/doc/getting_started/_canvas_app.rst +0 -0
  85. {vispy-0.14.2 → vispy-0.14.3}/doc/getting_started/gloo.rst +0 -0
  86. {vispy-0.14.2 → vispy-0.14.3}/doc/getting_started/index.rst +0 -0
  87. {vispy-0.14.2 → vispy-0.14.3}/doc/getting_started/modern-gl.rst +0 -0
  88. {vispy-0.14.2 → vispy-0.14.3}/doc/getting_started/plot.rst +0 -0
  89. {vispy-0.14.2 → vispy-0.14.3}/doc/getting_started/scene.rst +0 -0
  90. {vispy-0.14.2 → vispy-0.14.3}/doc/getting_started/visuals.rst +0 -0
  91. {vispy-0.14.2 → vispy-0.14.3}/doc/governance/GOVERNANCE.md +0 -0
  92. {vispy-0.14.2 → vispy-0.14.3}/doc/governance/MAINTAINERS.md +0 -0
  93. {vispy-0.14.2 → vispy-0.14.3}/doc/index.rst +0 -0
  94. {vispy-0.14.2 → vispy-0.14.3}/doc/installation.rst +0 -0
  95. {vispy-0.14.2 → vispy-0.14.3}/doc/news.rst +0 -0
  96. {vispy-0.14.2 → vispy-0.14.3}/doc/org/ANTITRUST.md +0 -0
  97. {vispy-0.14.2 → vispy-0.14.3}/doc/org/CHARTER.md +0 -0
  98. {vispy-0.14.2 → vispy-0.14.3}/doc/org/STEERING-COMMITTEE.md +0 -0
  99. {vispy-0.14.2 → vispy-0.14.3}/doc/org/TRADEMARKS.md +0 -0
  100. {vispy-0.14.2 → vispy-0.14.3}/doc/overview.rst +0 -0
  101. {vispy-0.14.2 → vispy-0.14.3}/doc/raspberry.rst +0 -0
  102. {vispy-0.14.2 → vispy-0.14.3}/doc/resources.rst +0 -0
  103. {vispy-0.14.2 → vispy-0.14.3}/doc/roadmap.rst +0 -0
  104. {vispy-0.14.2 → vispy-0.14.3}/doc/thirdparty.rst +0 -0
  105. {vispy-0.14.2 → vispy-0.14.3}/examples/README.rst +0 -0
  106. {vispy-0.14.2 → vispy-0.14.3}/examples/basics/scene/modular_shaders/editor.py +0 -0
  107. {vispy-0.14.2 → vispy-0.14.3}/examples/basics/scene/modular_shaders/sandbox.py +0 -0
  108. {vispy-0.14.2 → vispy-0.14.3}/examples/basics/scene/shared_context.py +0 -0
  109. {vispy-0.14.2 → vispy-0.14.3}/examples/basics/scene/stereo.py +0 -0
  110. {vispy-0.14.2 → vispy-0.14.3}/examples/basics/visuals/arcball.py +0 -0
  111. {vispy-0.14.2 → vispy-0.14.3}/examples/basics/visuals/arrows.py +0 -0
  112. {vispy-0.14.2 → vispy-0.14.3}/examples/basics/visuals/arrows_quiver.py +0 -0
  113. {vispy-0.14.2 → vispy-0.14.3}/examples/basics/visuals/axially_symmetric_surfaces.py +0 -0
  114. {vispy-0.14.2 → vispy-0.14.3}/examples/basics/visuals/bezier.py +0 -0
  115. {vispy-0.14.2 → vispy-0.14.3}/examples/basics/visuals/box.py +0 -0
  116. {vispy-0.14.2 → vispy-0.14.3}/examples/basics/visuals/colorbar_visual.py +0 -0
  117. {vispy-0.14.2 → vispy-0.14.3}/examples/basics/visuals/colorbar_visual_types.py +0 -0
  118. {vispy-0.14.2 → vispy-0.14.3}/examples/basics/visuals/custom_visual.py +0 -0
  119. {vispy-0.14.2 → vispy-0.14.3}/examples/basics/visuals/dynamic_polygon.py +0 -0
  120. {vispy-0.14.2 → vispy-0.14.3}/examples/basics/visuals/graph.py +0 -0
  121. {vispy-0.14.2 → vispy-0.14.3}/examples/basics/visuals/grid_mesh.py +0 -0
  122. {vispy-0.14.2 → vispy-0.14.3}/examples/basics/visuals/image_transforms.py +0 -0
  123. {vispy-0.14.2 → vispy-0.14.3}/examples/basics/visuals/image_visual.py +0 -0
  124. {vispy-0.14.2 → vispy-0.14.3}/examples/basics/visuals/line.py +0 -0
  125. {vispy-0.14.2 → vispy-0.14.3}/examples/basics/visuals/line_draw.py +0 -0
  126. {vispy-0.14.2 → vispy-0.14.3}/examples/basics/visuals/line_plot.py +0 -0
  127. {vispy-0.14.2 → vispy-0.14.3}/examples/basics/visuals/line_plot3d.py +0 -0
  128. {vispy-0.14.2 → vispy-0.14.3}/examples/basics/visuals/line_plot_axes.py +0 -0
  129. {vispy-0.14.2 → vispy-0.14.3}/examples/basics/visuals/line_prototype.py +0 -0
  130. {vispy-0.14.2 → vispy-0.14.3}/examples/basics/visuals/line_transform.py +0 -0
  131. {vispy-0.14.2 → vispy-0.14.3}/examples/basics/visuals/markers.py +0 -0
  132. {vispy-0.14.2 → vispy-0.14.3}/examples/basics/visuals/mesh.py +0 -0
  133. {vispy-0.14.2 → vispy-0.14.3}/examples/basics/visuals/networkx_layout.py +0 -0
  134. {vispy-0.14.2 → vispy-0.14.3}/examples/basics/visuals/plane.py +0 -0
  135. {vispy-0.14.2 → vispy-0.14.3}/examples/basics/visuals/polygon_visual.py +0 -0
  136. {vispy-0.14.2 → vispy-0.14.3}/examples/basics/visuals/rescalingmarkers.py +0 -0
  137. {vispy-0.14.2 → vispy-0.14.3}/examples/basics/visuals/rotating_box.py +0 -0
  138. {vispy-0.14.2 → vispy-0.14.3}/examples/basics/visuals/text_scatter.py +0 -0
  139. {vispy-0.14.2 → vispy-0.14.3}/examples/basics/visuals/text_visual.py +0 -0
  140. {vispy-0.14.2 → vispy-0.14.3}/examples/basics/visuals/tube.py +0 -0
  141. {vispy-0.14.2 → vispy-0.14.3}/examples/basics/visuals/visual_filters.py +0 -0
  142. {vispy-0.14.2 → vispy-0.14.3}/examples/basics/visuals/windbarb_quiver.py +0 -0
  143. {vispy-0.14.2 → vispy-0.14.3}/examples/benchmark/scene_test_1.py +0 -0
  144. {vispy-0.14.2 → vispy-0.14.3}/examples/benchmark/scene_test_2.py +0 -0
  145. {vispy-0.14.2 → vispy-0.14.3}/examples/benchmark/simple_glut.py +0 -0
  146. {vispy-0.14.2 → vispy-0.14.3}/examples/benchmark/simple_vispy.py +0 -0
  147. {vispy-0.14.2 → vispy-0.14.3}/examples/collections/chloropleth.py +0 -0
  148. {vispy-0.14.2 → vispy-0.14.3}/examples/collections/path_collection.py +0 -0
  149. {vispy-0.14.2 → vispy-0.14.3}/examples/collections/point_collection.py +0 -0
  150. {vispy-0.14.2 → vispy-0.14.3}/examples/collections/polygon_collection.py +0 -0
  151. {vispy-0.14.2 → vispy-0.14.3}/examples/collections/segment_collection.py +0 -0
  152. {vispy-0.14.2 → vispy-0.14.3}/examples/collections/tiger.py +0 -0
  153. {vispy-0.14.2 → vispy-0.14.3}/examples/collections/triangle_collection.py +0 -0
  154. {vispy-0.14.2 → vispy-0.14.3}/examples/demo/gloo/atom.py +0 -0
  155. {vispy-0.14.2 → vispy-0.14.3}/examples/demo/gloo/boids.py +0 -0
  156. {vispy-0.14.2 → vispy-0.14.3}/examples/demo/gloo/brain.py +0 -0
  157. {vispy-0.14.2 → vispy-0.14.3}/examples/demo/gloo/camera.py +0 -0
  158. {vispy-0.14.2 → vispy-0.14.3}/examples/demo/gloo/cloud.py +0 -0
  159. {vispy-0.14.2 → vispy-0.14.3}/examples/demo/gloo/donut.py +0 -0
  160. {vispy-0.14.2 → vispy-0.14.3}/examples/demo/gloo/fireworks.py +0 -0
  161. {vispy-0.14.2 → vispy-0.14.3}/examples/demo/gloo/galaxy/galaxy.py +0 -0
  162. {vispy-0.14.2 → vispy-0.14.3}/examples/demo/gloo/galaxy/galaxy_simulation.py +0 -0
  163. {vispy-0.14.2 → vispy-0.14.3}/examples/demo/gloo/galaxy/galaxy_specrend.py +0 -0
  164. {vispy-0.14.2 → vispy-0.14.3}/examples/demo/gloo/galaxy.py +0 -0
  165. {vispy-0.14.2 → vispy-0.14.3}/examples/demo/gloo/game_of_life.py +0 -0
  166. {vispy-0.14.2 → vispy-0.14.3}/examples/demo/gloo/glsl_sandbox_cube.py +0 -0
  167. {vispy-0.14.2 → vispy-0.14.3}/examples/demo/gloo/graph.py +0 -0
  168. {vispy-0.14.2 → vispy-0.14.3}/examples/demo/gloo/grayscott.py +0 -0
  169. {vispy-0.14.2 → vispy-0.14.3}/examples/demo/gloo/high_frequency.py +0 -0
  170. {vispy-0.14.2 → vispy-0.14.3}/examples/demo/gloo/imshow.py +0 -0
  171. {vispy-0.14.2 → vispy-0.14.3}/examples/demo/gloo/imshow_cuts.py +0 -0
  172. {vispy-0.14.2 → vispy-0.14.3}/examples/demo/gloo/jfa/fragment_display.glsl +0 -0
  173. {vispy-0.14.2 → vispy-0.14.3}/examples/demo/gloo/jfa/fragment_flood.glsl +0 -0
  174. {vispy-0.14.2 → vispy-0.14.3}/examples/demo/gloo/jfa/fragment_seed.glsl +0 -0
  175. {vispy-0.14.2 → vispy-0.14.3}/examples/demo/gloo/jfa/jfa_translation.py +0 -0
  176. {vispy-0.14.2 → vispy-0.14.3}/examples/demo/gloo/jfa/jfa_vispy.py +0 -0
  177. {vispy-0.14.2 → vispy-0.14.3}/examples/demo/gloo/jfa/vertex.glsl +0 -0
  178. {vispy-0.14.2 → vispy-0.14.3}/examples/demo/gloo/jfa/vertex_vispy.glsl +0 -0
  179. {vispy-0.14.2 → vispy-0.14.3}/examples/demo/gloo/mandelbrot.py +0 -0
  180. {vispy-0.14.2 → vispy-0.14.3}/examples/demo/gloo/mandelbrot_double.py +0 -0
  181. {vispy-0.14.2 → vispy-0.14.3}/examples/demo/gloo/molecular_viewer.py +0 -0
  182. {vispy-0.14.2 → vispy-0.14.3}/examples/demo/gloo/ndscatter.py +0 -0
  183. {vispy-0.14.2 → vispy-0.14.3}/examples/demo/gloo/offscreen.py +0 -0
  184. {vispy-0.14.2 → vispy-0.14.3}/examples/demo/gloo/primitive_mesh_viewer_qt.py +0 -0
  185. {vispy-0.14.2 → vispy-0.14.3}/examples/demo/gloo/quiver.py +0 -0
  186. {vispy-0.14.2 → vispy-0.14.3}/examples/demo/gloo/rain.py +0 -0
  187. {vispy-0.14.2 → vispy-0.14.3}/examples/demo/gloo/raytracing.py +0 -0
  188. {vispy-0.14.2 → vispy-0.14.3}/examples/demo/gloo/realtime_signals.py +0 -0
  189. {vispy-0.14.2 → vispy-0.14.3}/examples/demo/gloo/signals.py +0 -0
  190. {vispy-0.14.2 → vispy-0.14.3}/examples/demo/gloo/skybox.py +0 -0
  191. {vispy-0.14.2 → vispy-0.14.3}/examples/demo/gloo/spacy.py +0 -0
  192. {vispy-0.14.2 → vispy-0.14.3}/examples/demo/gloo/terrain.py +0 -0
  193. {vispy-0.14.2 → vispy-0.14.3}/examples/demo/gloo/two_qt_widgets.py +0 -0
  194. {vispy-0.14.2 → vispy-0.14.3}/examples/demo/gloo/unstructured_2d.py +0 -0
  195. {vispy-0.14.2 → vispy-0.14.3}/examples/demo/gloo/voronoi.py +0 -0
  196. {vispy-0.14.2 → vispy-0.14.3}/examples/demo/plot/plot.py +0 -0
  197. {vispy-0.14.2 → vispy-0.14.3}/examples/demo/scene/flow_lines.py +0 -0
  198. {vispy-0.14.2 → vispy-0.14.3}/examples/demo/scene/force_directed_graph.py +0 -0
  199. {vispy-0.14.2 → vispy-0.14.3}/examples/demo/scene/klein.py +0 -0
  200. {vispy-0.14.2 → vispy-0.14.3}/examples/demo/scene/oscilloscope.py +0 -0
  201. {vispy-0.14.2 → vispy-0.14.3}/examples/demo/scene/picking.py +0 -0
  202. {vispy-0.14.2 → vispy-0.14.3}/examples/demo/scene/scrolling_plots.py +0 -0
  203. {vispy-0.14.2 → vispy-0.14.3}/examples/demo/visuals/wiggly_bar.py +0 -0
  204. {vispy-0.14.2 → vispy-0.14.3}/examples/gloo/README.rst +0 -0
  205. {vispy-0.14.2 → vispy-0.14.3}/examples/gloo/animate_images.py +0 -0
  206. {vispy-0.14.2 → vispy-0.14.3}/examples/gloo/animate_images_slice.py +0 -0
  207. {vispy-0.14.2 → vispy-0.14.3}/examples/gloo/animate_shape.py +0 -0
  208. {vispy-0.14.2 → vispy-0.14.3}/examples/gloo/colored_cube.py +0 -0
  209. {vispy-0.14.2 → vispy-0.14.3}/examples/gloo/colored_cube_instanced.py +0 -0
  210. {vispy-0.14.2 → vispy-0.14.3}/examples/gloo/colored_quad.py +0 -0
  211. {vispy-0.14.2 → vispy-0.14.3}/examples/gloo/display_lines.py +0 -0
  212. {vispy-0.14.2 → vispy-0.14.3}/examples/gloo/display_points.py +0 -0
  213. {vispy-0.14.2 → vispy-0.14.3}/examples/gloo/display_shape.py +0 -0
  214. {vispy-0.14.2 → vispy-0.14.3}/examples/gloo/geometry_shader.py +0 -0
  215. {vispy-0.14.2 → vispy-0.14.3}/examples/gloo/gl/README.rst +0 -0
  216. {vispy-0.14.2 → vispy-0.14.3}/examples/gloo/gl/cube.py +0 -0
  217. {vispy-0.14.2 → vispy-0.14.3}/examples/gloo/gl/fireworks.py +0 -0
  218. {vispy-0.14.2 → vispy-0.14.3}/examples/gloo/gl/quad.py +0 -0
  219. {vispy-0.14.2 → vispy-0.14.3}/examples/gloo/gl/quad_instanced.py +0 -0
  220. {vispy-0.14.2 → vispy-0.14.3}/examples/gloo/gpuimage.py +0 -0
  221. {vispy-0.14.2 → vispy-0.14.3}/examples/gloo/hello_fbo.py +0 -0
  222. {vispy-0.14.2 → vispy-0.14.3}/examples/gloo/lighted_cube.py +0 -0
  223. {vispy-0.14.2 → vispy-0.14.3}/examples/gloo/multi_texture.py +0 -0
  224. {vispy-0.14.2 → vispy-0.14.3}/examples/gloo/outlined_cube.py +0 -0
  225. {vispy-0.14.2 → vispy-0.14.3}/examples/gloo/post_processing.py +0 -0
  226. {vispy-0.14.2 → vispy-0.14.3}/examples/gloo/rotate_cube.py +0 -0
  227. {vispy-0.14.2 → vispy-0.14.3}/examples/gloo/rotating_quad.py +0 -0
  228. {vispy-0.14.2 → vispy-0.14.3}/examples/gloo/spatial_filters.py +0 -0
  229. {vispy-0.14.2 → vispy-0.14.3}/examples/gloo/start.py +0 -0
  230. {vispy-0.14.2 → vispy-0.14.3}/examples/gloo/start_shaders.py +0 -0
  231. {vispy-0.14.2 → vispy-0.14.3}/examples/gloo/texture_precision.py +0 -0
  232. {vispy-0.14.2 → vispy-0.14.3}/examples/gloo/textured_cube.py +0 -0
  233. {vispy-0.14.2 → vispy-0.14.3}/examples/gloo/textured_quad.py +0 -0
  234. {vispy-0.14.2 → vispy-0.14.3}/examples/jupyter/Rotating Cube.ipynb +0 -0
  235. {vispy-0.14.2 → vispy-0.14.3}/examples/jupyter/colormaps.ipynb +0 -0
  236. {vispy-0.14.2 → vispy-0.14.3}/examples/jupyter/gloo_display_lines.ipynb +0 -0
  237. {vispy-0.14.2 → vispy-0.14.3}/examples/jupyter/gloo_molecular_viewer.ipynb +0 -0
  238. {vispy-0.14.2 → vispy-0.14.3}/examples/offscreen/simple_egl.py +0 -0
  239. {vispy-0.14.2 → vispy-0.14.3}/examples/offscreen/simple_osmesa.py +0 -0
  240. {vispy-0.14.2 → vispy-0.14.3}/examples/plotting/README.rst +0 -0
  241. {vispy-0.14.2 → vispy-0.14.3}/examples/plotting/colorbar.py +0 -0
  242. {vispy-0.14.2 → vispy-0.14.3}/examples/plotting/export.py +0 -0
  243. {vispy-0.14.2 → vispy-0.14.3}/examples/plotting/ipython_fig_playground.py +0 -0
  244. {vispy-0.14.2 → vispy-0.14.3}/examples/plotting/plot.py +0 -0
  245. {vispy-0.14.2 → vispy-0.14.3}/examples/plotting/plot_colorbars.py +0 -0
  246. {vispy-0.14.2 → vispy-0.14.3}/examples/plotting/scatter_histogram.py +0 -0
  247. {vispy-0.14.2 → vispy-0.14.3}/examples/plotting/spectrogram.py +0 -0
  248. {vispy-0.14.2 → vispy-0.14.3}/examples/plotting/volume_plot.py +0 -0
  249. {vispy-0.14.2 → vispy-0.14.3}/examples/scene/README.rst +0 -0
  250. {vispy-0.14.2 → vispy-0.14.3}/examples/scene/axes_plot.py +0 -0
  251. {vispy-0.14.2 → vispy-0.14.3}/examples/scene/background_borders.py +0 -0
  252. {vispy-0.14.2 → vispy-0.14.3}/examples/scene/clipping_planes.py +0 -0
  253. {vispy-0.14.2 → vispy-0.14.3}/examples/scene/colorbar_widget.py +0 -0
  254. {vispy-0.14.2 → vispy-0.14.3}/examples/scene/colored_line.py +0 -0
  255. {vispy-0.14.2 → vispy-0.14.3}/examples/scene/complex_image.py +0 -0
  256. {vispy-0.14.2 → vispy-0.14.3}/examples/scene/console.py +0 -0
  257. {vispy-0.14.2 → vispy-0.14.3}/examples/scene/contour.py +0 -0
  258. {vispy-0.14.2 → vispy-0.14.3}/examples/scene/example..gif +0 -0
  259. {vispy-0.14.2 → vispy-0.14.3}/examples/scene/example.png +0 -0
  260. {vispy-0.14.2 → vispy-0.14.3}/examples/scene/face_picking.py +0 -0
  261. {vispy-0.14.2 → vispy-0.14.3}/examples/scene/flipped_axis.py +0 -0
  262. {vispy-0.14.2 → vispy-0.14.3}/examples/scene/graph.py +0 -0
  263. {vispy-0.14.2 → vispy-0.14.3}/examples/scene/grid_layout/README.rst +0 -0
  264. {vispy-0.14.2 → vispy-0.14.3}/examples/scene/grid_layout/grid.py +0 -0
  265. {vispy-0.14.2 → vispy-0.14.3}/examples/scene/grid_layout/grid_basic.py +0 -0
  266. {vispy-0.14.2 → vispy-0.14.3}/examples/scene/grid_layout/grid_holed.py +0 -0
  267. {vispy-0.14.2 → vispy-0.14.3}/examples/scene/grid_layout/grid_large.py +0 -0
  268. {vispy-0.14.2 → vispy-0.14.3}/examples/scene/grid_layout/grid_uneven_col.py +0 -0
  269. {vispy-0.14.2 → vispy-0.14.3}/examples/scene/grid_layout/grid_x_y_viewbox.py +0 -0
  270. {vispy-0.14.2 → vispy-0.14.3}/examples/scene/image.py +0 -0
  271. {vispy-0.14.2 → vispy-0.14.3}/examples/scene/image_custom_kernel.py +0 -0
  272. {vispy-0.14.2 → vispy-0.14.3}/examples/scene/infinite_line.py +0 -0
  273. {vispy-0.14.2 → vispy-0.14.3}/examples/scene/instanced_mesh.py +0 -0
  274. {vispy-0.14.2 → vispy-0.14.3}/examples/scene/instanced_mesh_visual.py +0 -0
  275. {vispy-0.14.2 → vispy-0.14.3}/examples/scene/instanced_quad_visual.py +0 -0
  276. {vispy-0.14.2 → vispy-0.14.3}/examples/scene/isocurve.py +0 -0
  277. {vispy-0.14.2 → vispy-0.14.3}/examples/scene/isocurve_for_trisurface.py +0 -0
  278. {vispy-0.14.2 → vispy-0.14.3}/examples/scene/isocurve_for_trisurface_qt.py +0 -0
  279. {vispy-0.14.2 → vispy-0.14.3}/examples/scene/isocurve_updates.py +0 -0
  280. {vispy-0.14.2 → vispy-0.14.3}/examples/scene/isosurface.py +0 -0
  281. {vispy-0.14.2 → vispy-0.14.3}/examples/scene/lasso.py +0 -0
  282. {vispy-0.14.2 → vispy-0.14.3}/examples/scene/line.py +0 -0
  283. {vispy-0.14.2 → vispy-0.14.3}/examples/scene/line_update.py +0 -0
  284. {vispy-0.14.2 → vispy-0.14.3}/examples/scene/linear_region.py +0 -0
  285. {vispy-0.14.2 → vispy-0.14.3}/examples/scene/magnify.py +0 -0
  286. {vispy-0.14.2 → vispy-0.14.3}/examples/scene/marker_picking.py +0 -0
  287. {vispy-0.14.2 → vispy-0.14.3}/examples/scene/marker_spheres.py +0 -0
  288. {vispy-0.14.2 → vispy-0.14.3}/examples/scene/mesh_normals.py +0 -0
  289. {vispy-0.14.2 → vispy-0.14.3}/examples/scene/mesh_shading.py +0 -0
  290. {vispy-0.14.2 → vispy-0.14.3}/examples/scene/mesh_texture.py +0 -0
  291. {vispy-0.14.2 → vispy-0.14.3}/examples/scene/nested_viewbox.py +0 -0
  292. {vispy-0.14.2 → vispy-0.14.3}/examples/scene/one_cam_two_scenes.py +0 -0
  293. {vispy-0.14.2 → vispy-0.14.3}/examples/scene/one_scene_four_cams.py +0 -0
  294. {vispy-0.14.2 → vispy-0.14.3}/examples/scene/point_cloud.py +0 -0
  295. {vispy-0.14.2 → vispy-0.14.3}/examples/scene/polygon.py +0 -0
  296. {vispy-0.14.2 → vispy-0.14.3}/examples/scene/realtime_data/README.rst +0 -0
  297. {vispy-0.14.2 → vispy-0.14.3}/examples/scene/realtime_data/ex01_embedded_vispy.py +0 -0
  298. {vispy-0.14.2 → vispy-0.14.3}/examples/scene/realtime_data/ex02_control_vispy_from_qt.py +0 -0
  299. {vispy-0.14.2 → vispy-0.14.3}/examples/scene/realtime_data/ex03a_data_sources_timer.py +0 -0
  300. {vispy-0.14.2 → vispy-0.14.3}/examples/scene/realtime_data/ex03b_data_sources_threaded_loop.py +0 -0
  301. {vispy-0.14.2 → vispy-0.14.3}/examples/scene/realtime_data/ex03c_data_sources_threaded_events.py +0 -0
  302. {vispy-0.14.2 → vispy-0.14.3}/examples/scene/save_animation.py +0 -0
  303. {vispy-0.14.2 → vispy-0.14.3}/examples/scene/sensitivity.py +0 -0
  304. {vispy-0.14.2 → vispy-0.14.3}/examples/scene/shape_draw.py +0 -0
  305. {vispy-0.14.2 → vispy-0.14.3}/examples/scene/sphere.py +0 -0
  306. {vispy-0.14.2 → vispy-0.14.3}/examples/scene/surface_plot.py +0 -0
  307. {vispy-0.14.2 → vispy-0.14.3}/examples/scene/text.py +0 -0
  308. {vispy-0.14.2 → vispy-0.14.3}/examples/scene/turntable_box.py +0 -0
  309. {vispy-0.14.2 → vispy-0.14.3}/examples/scene/viewbox.py +0 -0
  310. {vispy-0.14.2 → vispy-0.14.3}/examples/scene/volume.py +0 -0
  311. {vispy-0.14.2 → vispy-0.14.3}/examples/scene/volume_plane.py +0 -0
  312. {vispy-0.14.2 → vispy-0.14.3}/examples/tutorial/app/app_events.py +0 -0
  313. {vispy-0.14.2 → vispy-0.14.3}/examples/tutorial/app/fps.py +0 -0
  314. {vispy-0.14.2 → vispy-0.14.3}/examples/tutorial/app/shared_context.py +0 -0
  315. {vispy-0.14.2 → vispy-0.14.3}/examples/tutorial/app/simple.py +0 -0
  316. {vispy-0.14.2 → vispy-0.14.3}/examples/tutorial/app/simple_wx.py +0 -0
  317. {vispy-0.14.2 → vispy-0.14.3}/examples/tutorial/visuals/T01_basic_visual.py +0 -0
  318. {vispy-0.14.2 → vispy-0.14.3}/examples/tutorial/visuals/T02_measurements.py +0 -0
  319. {vispy-0.14.2 → vispy-0.14.3}/examples/tutorial/visuals/T03_antialiasing.py +0 -0
  320. {vispy-0.14.2 → vispy-0.14.3}/examples/tutorial/visuals/T04_fragment_programs.py +0 -0
  321. {vispy-0.14.2 → vispy-0.14.3}/examples/tutorial/visuals/T05_viewer_location.py +0 -0
  322. {vispy-0.14.2 → vispy-0.14.3}/pytest.ini +0 -0
  323. {vispy-0.14.2 → vispy-0.14.3}/setup.cfg +0 -0
  324. {vispy-0.14.2 → vispy-0.14.3}/vispy/__init__.py +0 -0
  325. {vispy-0.14.2 → vispy-0.14.3}/vispy/app/__init__.py +0 -0
  326. {vispy-0.14.2 → vispy-0.14.3}/vispy/app/_default_app.py +0 -0
  327. {vispy-0.14.2 → vispy-0.14.3}/vispy/app/_detect_eventloop.py +0 -0
  328. {vispy-0.14.2 → vispy-0.14.3}/vispy/app/application.py +0 -0
  329. {vispy-0.14.2 → vispy-0.14.3}/vispy/app/backends/__init__.py +0 -0
  330. {vispy-0.14.2 → vispy-0.14.3}/vispy/app/backends/_egl.py +0 -0
  331. {vispy-0.14.2 → vispy-0.14.3}/vispy/app/backends/_glfw.py +0 -0
  332. {vispy-0.14.2 → vispy-0.14.3}/vispy/app/backends/_jupyter_rfb.py +0 -0
  333. {vispy-0.14.2 → vispy-0.14.3}/vispy/app/backends/_offscreen_util.py +0 -0
  334. {vispy-0.14.2 → vispy-0.14.3}/vispy/app/backends/_osmesa.py +0 -0
  335. {vispy-0.14.2 → vispy-0.14.3}/vispy/app/backends/_pyglet.py +0 -0
  336. {vispy-0.14.2 → vispy-0.14.3}/vispy/app/backends/_pyqt4.py +0 -0
  337. {vispy-0.14.2 → vispy-0.14.3}/vispy/app/backends/_pyqt5.py +0 -0
  338. {vispy-0.14.2 → vispy-0.14.3}/vispy/app/backends/_pyqt6.py +0 -0
  339. {vispy-0.14.2 → vispy-0.14.3}/vispy/app/backends/_pyside.py +0 -0
  340. {vispy-0.14.2 → vispy-0.14.3}/vispy/app/backends/_pyside2.py +0 -0
  341. {vispy-0.14.2 → vispy-0.14.3}/vispy/app/backends/_pyside6.py +0 -0
  342. {vispy-0.14.2 → vispy-0.14.3}/vispy/app/backends/_qt.py +0 -0
  343. {vispy-0.14.2 → vispy-0.14.3}/vispy/app/backends/_sdl2.py +0 -0
  344. {vispy-0.14.2 → vispy-0.14.3}/vispy/app/backends/_template.py +0 -0
  345. {vispy-0.14.2 → vispy-0.14.3}/vispy/app/backends/_test.py +0 -0
  346. {vispy-0.14.2 → vispy-0.14.3}/vispy/app/backends/_tk.py +0 -0
  347. {vispy-0.14.2 → vispy-0.14.3}/vispy/app/backends/_wx.py +0 -0
  348. {vispy-0.14.2 → vispy-0.14.3}/vispy/app/backends/tests/__init__.py +0 -0
  349. {vispy-0.14.2 → vispy-0.14.3}/vispy/app/backends/tests/test_offscreen_util.py +0 -0
  350. {vispy-0.14.2 → vispy-0.14.3}/vispy/app/backends/tests/test_rfb.py +0 -0
  351. {vispy-0.14.2 → vispy-0.14.3}/vispy/app/base.py +0 -0
  352. {vispy-0.14.2 → vispy-0.14.3}/vispy/app/canvas.py +0 -0
  353. {vispy-0.14.2 → vispy-0.14.3}/vispy/app/qt.py +0 -0
  354. {vispy-0.14.2 → vispy-0.14.3}/vispy/app/tests/__init__.py +0 -0
  355. {vispy-0.14.2 → vispy-0.14.3}/vispy/app/tests/qt-designer.ui +0 -0
  356. {vispy-0.14.2 → vispy-0.14.3}/vispy/app/tests/test_app.py +0 -0
  357. {vispy-0.14.2 → vispy-0.14.3}/vispy/app/tests/test_backends.py +0 -0
  358. {vispy-0.14.2 → vispy-0.14.3}/vispy/app/tests/test_canvas.py +0 -0
  359. {vispy-0.14.2 → vispy-0.14.3}/vispy/app/tests/test_context.py +0 -0
  360. {vispy-0.14.2 → vispy-0.14.3}/vispy/app/tests/test_qt.py +0 -0
  361. {vispy-0.14.2 → vispy-0.14.3}/vispy/app/tests/test_simultaneous.py +0 -0
  362. {vispy-0.14.2 → vispy-0.14.3}/vispy/app/timer.py +0 -0
  363. {vispy-0.14.2 → vispy-0.14.3}/vispy/color/__init__.py +0 -0
  364. {vispy-0.14.2 → vispy-0.14.3}/vispy/color/_color_dict.py +0 -0
  365. {vispy-0.14.2 → vispy-0.14.3}/vispy/color/color_array.py +0 -0
  366. {vispy-0.14.2 → vispy-0.14.3}/vispy/color/color_space.py +0 -0
  367. {vispy-0.14.2 → vispy-0.14.3}/vispy/color/colormap.py +0 -0
  368. {vispy-0.14.2 → vispy-0.14.3}/vispy/color/tests/__init__.py +0 -0
  369. {vispy-0.14.2 → vispy-0.14.3}/vispy/color/tests/test_color.py +0 -0
  370. {vispy-0.14.2 → vispy-0.14.3}/vispy/conftest.py +0 -0
  371. {vispy-0.14.2 → vispy-0.14.3}/vispy/ext/__init__.py +0 -0
  372. {vispy-0.14.2 → vispy-0.14.3}/vispy/ext/cocoapy.py +0 -0
  373. {vispy-0.14.2 → vispy-0.14.3}/vispy/ext/cubehelix.py +0 -0
  374. {vispy-0.14.2 → vispy-0.14.3}/vispy/ext/egl.py +0 -0
  375. {vispy-0.14.2 → vispy-0.14.3}/vispy/ext/fontconfig.py +0 -0
  376. {vispy-0.14.2 → vispy-0.14.3}/vispy/ext/gdi32plus.py +0 -0
  377. {vispy-0.14.2 → vispy-0.14.3}/vispy/ext/osmesa.py +0 -0
  378. {vispy-0.14.2 → vispy-0.14.3}/vispy/geometry/_triangulation_debugger.py +0 -0
  379. {vispy-0.14.2 → vispy-0.14.3}/vispy/geometry/curves.py +0 -0
  380. {vispy-0.14.2 → vispy-0.14.3}/vispy/geometry/generation.py +0 -0
  381. {vispy-0.14.2 → vispy-0.14.3}/vispy/geometry/isocurve.py +0 -0
  382. {vispy-0.14.2 → vispy-0.14.3}/vispy/geometry/isosurface.py +0 -0
  383. {vispy-0.14.2 → vispy-0.14.3}/vispy/geometry/meshdata.py +0 -0
  384. {vispy-0.14.2 → vispy-0.14.3}/vispy/geometry/normals.py +0 -0
  385. {vispy-0.14.2 → vispy-0.14.3}/vispy/geometry/parametric.py +0 -0
  386. {vispy-0.14.2 → vispy-0.14.3}/vispy/geometry/polygon.py +0 -0
  387. {vispy-0.14.2 → vispy-0.14.3}/vispy/geometry/rect.py +0 -0
  388. {vispy-0.14.2 → vispy-0.14.3}/vispy/geometry/tests/__init__.py +0 -0
  389. {vispy-0.14.2 → vispy-0.14.3}/vispy/geometry/tests/test_calculations.py +0 -0
  390. {vispy-0.14.2 → vispy-0.14.3}/vispy/geometry/tests/test_generation.py +0 -0
  391. {vispy-0.14.2 → vispy-0.14.3}/vispy/geometry/tests/test_meshdata.py +0 -0
  392. {vispy-0.14.2 → vispy-0.14.3}/vispy/geometry/tests/test_triangulation.py +0 -0
  393. {vispy-0.14.2 → vispy-0.14.3}/vispy/geometry/torusknot.py +0 -0
  394. {vispy-0.14.2 → vispy-0.14.3}/vispy/gloo/__init__.py +0 -0
  395. {vispy-0.14.2 → vispy-0.14.3}/vispy/gloo/context.py +0 -0
  396. {vispy-0.14.2 → vispy-0.14.3}/vispy/gloo/framebuffer.py +0 -0
  397. {vispy-0.14.2 → vispy-0.14.3}/vispy/gloo/gl/__init__.py +0 -0
  398. {vispy-0.14.2 → vispy-0.14.3}/vispy/gloo/gl/_constants.py +0 -0
  399. {vispy-0.14.2 → vispy-0.14.3}/vispy/gloo/gl/_es2.py +0 -0
  400. {vispy-0.14.2 → vispy-0.14.3}/vispy/gloo/gl/_gl2.py +0 -0
  401. {vispy-0.14.2 → vispy-0.14.3}/vispy/gloo/gl/_proxy.py +0 -0
  402. {vispy-0.14.2 → vispy-0.14.3}/vispy/gloo/gl/_pyopengl2.py +0 -0
  403. {vispy-0.14.2 → vispy-0.14.3}/vispy/gloo/gl/dummy.py +0 -0
  404. {vispy-0.14.2 → vispy-0.14.3}/vispy/gloo/gl/es2.py +0 -0
  405. {vispy-0.14.2 → vispy-0.14.3}/vispy/gloo/gl/gl2.py +0 -0
  406. {vispy-0.14.2 → vispy-0.14.3}/vispy/gloo/gl/glplus.py +0 -0
  407. {vispy-0.14.2 → vispy-0.14.3}/vispy/gloo/gl/pyopengl2.py +0 -0
  408. {vispy-0.14.2 → vispy-0.14.3}/vispy/gloo/gl/tests/__init__.py +0 -0
  409. {vispy-0.14.2 → vispy-0.14.3}/vispy/gloo/gl/tests/test_basics.py +0 -0
  410. {vispy-0.14.2 → vispy-0.14.3}/vispy/gloo/gl/tests/test_names.py +0 -0
  411. {vispy-0.14.2 → vispy-0.14.3}/vispy/gloo/gl/tests/test_use.py +0 -0
  412. {vispy-0.14.2 → vispy-0.14.3}/vispy/gloo/globject.py +0 -0
  413. {vispy-0.14.2 → vispy-0.14.3}/vispy/gloo/preprocessor.py +0 -0
  414. {vispy-0.14.2 → vispy-0.14.3}/vispy/gloo/program.py +0 -0
  415. {vispy-0.14.2 → vispy-0.14.3}/vispy/gloo/tests/__init__.py +0 -0
  416. {vispy-0.14.2 → vispy-0.14.3}/vispy/gloo/tests/test_buffer.py +0 -0
  417. {vispy-0.14.2 → vispy-0.14.3}/vispy/gloo/tests/test_context.py +0 -0
  418. {vispy-0.14.2 → vispy-0.14.3}/vispy/gloo/tests/test_framebuffer.py +0 -0
  419. {vispy-0.14.2 → vispy-0.14.3}/vispy/gloo/tests/test_glir.py +0 -0
  420. {vispy-0.14.2 → vispy-0.14.3}/vispy/gloo/tests/test_globject.py +0 -0
  421. {vispy-0.14.2 → vispy-0.14.3}/vispy/gloo/tests/test_program.py +0 -0
  422. {vispy-0.14.2 → vispy-0.14.3}/vispy/gloo/tests/test_texture.py +0 -0
  423. {vispy-0.14.2 → vispy-0.14.3}/vispy/gloo/tests/test_use_gloo.py +0 -0
  424. {vispy-0.14.2 → vispy-0.14.3}/vispy/gloo/tests/test_util.py +0 -0
  425. {vispy-0.14.2 → vispy-0.14.3}/vispy/gloo/tests/test_wrappers.py +0 -0
  426. {vispy-0.14.2 → vispy-0.14.3}/vispy/gloo/util.py +0 -0
  427. {vispy-0.14.2 → vispy-0.14.3}/vispy/gloo/wrappers.py +0 -0
  428. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/__init__.py +0 -0
  429. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/antialias/antialias.glsl +0 -0
  430. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/antialias/cap-butt.glsl +0 -0
  431. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/antialias/cap-round.glsl +0 -0
  432. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/antialias/cap-square.glsl +0 -0
  433. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/antialias/cap-triangle-in.glsl +0 -0
  434. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/antialias/cap-triangle-out.glsl +0 -0
  435. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/antialias/cap.glsl +0 -0
  436. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/antialias/caps.glsl +0 -0
  437. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/antialias/filled.glsl +0 -0
  438. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/antialias/outline.glsl +0 -0
  439. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/antialias/stroke.glsl +0 -0
  440. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/arrowheads/angle.glsl +0 -0
  441. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/arrowheads/arrowheads.frag +0 -0
  442. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/arrowheads/arrowheads.glsl +0 -0
  443. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/arrowheads/arrowheads.vert +0 -0
  444. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/arrowheads/curved.glsl +0 -0
  445. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/arrowheads/inhibitor.glsl +0 -0
  446. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/arrowheads/stealth.glsl +0 -0
  447. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/arrowheads/triangle.glsl +0 -0
  448. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/arrowheads/util.glsl +0 -0
  449. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/arrows/angle-30.glsl +0 -0
  450. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/arrows/angle-60.glsl +0 -0
  451. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/arrows/angle-90.glsl +0 -0
  452. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/arrows/arrow.frag +0 -0
  453. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/arrows/arrow.vert +0 -0
  454. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/arrows/arrows.glsl +0 -0
  455. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/arrows/common.glsl +0 -0
  456. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/arrows/curved.glsl +0 -0
  457. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/arrows/stealth.glsl +0 -0
  458. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/arrows/triangle-30.glsl +0 -0
  459. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/arrows/triangle-60.glsl +0 -0
  460. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/arrows/triangle-90.glsl +0 -0
  461. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/arrows/util.glsl +0 -0
  462. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/build_spatial_filters.py +0 -0
  463. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/collections/agg-fast-path.frag +0 -0
  464. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/collections/agg-fast-path.vert +0 -0
  465. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/collections/agg-glyph.frag +0 -0
  466. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/collections/agg-glyph.vert +0 -0
  467. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/collections/agg-marker.frag +0 -0
  468. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/collections/agg-marker.vert +0 -0
  469. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/collections/agg-path.frag +0 -0
  470. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/collections/agg-path.vert +0 -0
  471. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/collections/agg-point.frag +0 -0
  472. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/collections/agg-point.vert +0 -0
  473. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/collections/agg-segment.frag +0 -0
  474. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/collections/agg-segment.vert +0 -0
  475. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/collections/marker.frag +0 -0
  476. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/collections/marker.vert +0 -0
  477. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/collections/raw-path.frag +0 -0
  478. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/collections/raw-path.vert +0 -0
  479. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/collections/raw-point.frag +0 -0
  480. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/collections/raw-point.vert +0 -0
  481. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/collections/raw-segment.frag +0 -0
  482. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/collections/raw-segment.vert +0 -0
  483. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/collections/raw-triangle.frag +0 -0
  484. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/collections/raw-triangle.vert +0 -0
  485. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/collections/sdf-glyph-ticks.vert +0 -0
  486. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/collections/sdf-glyph.frag +0 -0
  487. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/collections/sdf-glyph.vert +0 -0
  488. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/collections/tick-labels.vert +0 -0
  489. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/colormaps/autumn.glsl +0 -0
  490. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/colormaps/blues.glsl +0 -0
  491. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/colormaps/color-space.glsl +0 -0
  492. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/colormaps/colormaps.glsl +0 -0
  493. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/colormaps/cool.glsl +0 -0
  494. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/colormaps/fire.glsl +0 -0
  495. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/colormaps/gray.glsl +0 -0
  496. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/colormaps/greens.glsl +0 -0
  497. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/colormaps/hot.glsl +0 -0
  498. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/colormaps/ice.glsl +0 -0
  499. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/colormaps/icefire.glsl +0 -0
  500. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/colormaps/parse.py +0 -0
  501. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/colormaps/reds.glsl +0 -0
  502. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/colormaps/spring.glsl +0 -0
  503. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/colormaps/summer.glsl +0 -0
  504. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/colormaps/user.glsl +0 -0
  505. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/colormaps/util.glsl +0 -0
  506. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/colormaps/wheel.glsl +0 -0
  507. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/colormaps/winter.glsl +0 -0
  508. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/lines/agg.frag +0 -0
  509. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/lines/agg.vert +0 -0
  510. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/markers/arrow.glsl +0 -0
  511. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/markers/asterisk.glsl +0 -0
  512. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/markers/chevron.glsl +0 -0
  513. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/markers/clover.glsl +0 -0
  514. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/markers/club.glsl +0 -0
  515. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/markers/cross.glsl +0 -0
  516. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/markers/diamond.glsl +0 -0
  517. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/markers/disc.glsl +0 -0
  518. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/markers/ellipse.glsl +0 -0
  519. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/markers/hbar.glsl +0 -0
  520. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/markers/heart.glsl +0 -0
  521. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/markers/infinity.glsl +0 -0
  522. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/markers/marker-sdf.frag +0 -0
  523. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/markers/marker-sdf.vert +0 -0
  524. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/markers/marker.frag +0 -0
  525. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/markers/marker.vert +0 -0
  526. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/markers/markers.glsl +0 -0
  527. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/markers/pin.glsl +0 -0
  528. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/markers/ring.glsl +0 -0
  529. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/markers/spade.glsl +0 -0
  530. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/markers/square.glsl +0 -0
  531. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/markers/tag.glsl +0 -0
  532. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/markers/triangle.glsl +0 -0
  533. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/markers/vbar.glsl +0 -0
  534. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/math/circle-through-2-points.glsl +0 -0
  535. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/math/constants.glsl +0 -0
  536. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/math/double.glsl +0 -0
  537. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/math/functions.glsl +0 -0
  538. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/math/point-to-line-distance.glsl +0 -0
  539. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/math/point-to-line-projection.glsl +0 -0
  540. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/math/signed-line-distance.glsl +0 -0
  541. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/math/signed-segment-distance.glsl +0 -0
  542. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/misc/regular-grid.frag +0 -0
  543. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/misc/spatial-filters.frag +0 -0
  544. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/misc/viewport-NDC.glsl +0 -0
  545. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/transforms/azimuthal-equal-area.glsl +0 -0
  546. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/transforms/azimuthal-equidistant.glsl +0 -0
  547. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/transforms/hammer.glsl +0 -0
  548. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/transforms/identity.glsl +0 -0
  549. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/transforms/identity_forward.glsl +0 -0
  550. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/transforms/identity_inverse.glsl +0 -0
  551. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/transforms/linear-scale.glsl +0 -0
  552. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/transforms/log-scale.glsl +0 -0
  553. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/transforms/mercator-transverse-forward.glsl +0 -0
  554. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/transforms/mercator-transverse-inverse.glsl +0 -0
  555. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/transforms/panzoom.glsl +0 -0
  556. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/transforms/polar.glsl +0 -0
  557. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/transforms/position.glsl +0 -0
  558. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/transforms/power-scale.glsl +0 -0
  559. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/transforms/projection.glsl +0 -0
  560. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/transforms/pvm.glsl +0 -0
  561. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/transforms/rotate.glsl +0 -0
  562. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/transforms/trackball.glsl +0 -0
  563. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/transforms/translate.glsl +0 -0
  564. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/transforms/transverse_mercator.glsl +0 -0
  565. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/transforms/viewport-clipping.glsl +0 -0
  566. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/transforms/viewport-transform.glsl +0 -0
  567. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/transforms/viewport.glsl +0 -0
  568. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/transforms/x.glsl +0 -0
  569. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/transforms/y.glsl +0 -0
  570. {vispy-0.14.2 → vispy-0.14.3}/vispy/glsl/transforms/z.glsl +0 -0
  571. {vispy-0.14.2 → vispy-0.14.3}/vispy/io/__init__.py +0 -0
  572. {vispy-0.14.2 → vispy-0.14.3}/vispy/io/_data/spatial-filters.npy +0 -0
  573. {vispy-0.14.2 → vispy-0.14.3}/vispy/io/datasets.py +0 -0
  574. {vispy-0.14.2 → vispy-0.14.3}/vispy/io/image.py +0 -0
  575. {vispy-0.14.2 → vispy-0.14.3}/vispy/io/mesh.py +0 -0
  576. {vispy-0.14.2 → vispy-0.14.3}/vispy/io/stl.py +0 -0
  577. {vispy-0.14.2 → vispy-0.14.3}/vispy/io/tests/__init__.py +0 -0
  578. {vispy-0.14.2 → vispy-0.14.3}/vispy/io/tests/test_image.py +0 -0
  579. {vispy-0.14.2 → vispy-0.14.3}/vispy/io/tests/test_io.py +0 -0
  580. {vispy-0.14.2 → vispy-0.14.3}/vispy/io/wavefront.py +0 -0
  581. {vispy-0.14.2 → vispy-0.14.3}/vispy/plot/__init__.py +0 -0
  582. {vispy-0.14.2 → vispy-0.14.3}/vispy/plot/fig.py +0 -0
  583. {vispy-0.14.2 → vispy-0.14.3}/vispy/plot/plotwidget.py +0 -0
  584. {vispy-0.14.2 → vispy-0.14.3}/vispy/plot/tests/__init__.py +0 -0
  585. {vispy-0.14.2 → vispy-0.14.3}/vispy/plot/tests/test_plot.py +0 -0
  586. {vispy-0.14.2 → vispy-0.14.3}/vispy/scene/__init__.py +0 -0
  587. {vispy-0.14.2 → vispy-0.14.3}/vispy/scene/cameras/__init__.py +0 -0
  588. {vispy-0.14.2 → vispy-0.14.3}/vispy/scene/cameras/_base.py +0 -0
  589. {vispy-0.14.2 → vispy-0.14.3}/vispy/scene/cameras/arcball.py +0 -0
  590. {vispy-0.14.2 → vispy-0.14.3}/vispy/scene/cameras/base_camera.py +0 -0
  591. {vispy-0.14.2 → vispy-0.14.3}/vispy/scene/cameras/fly.py +0 -0
  592. {vispy-0.14.2 → vispy-0.14.3}/vispy/scene/cameras/magnify.py +0 -0
  593. {vispy-0.14.2 → vispy-0.14.3}/vispy/scene/cameras/panzoom.py +0 -0
  594. {vispy-0.14.2 → vispy-0.14.3}/vispy/scene/cameras/perspective.py +0 -0
  595. {vispy-0.14.2 → vispy-0.14.3}/vispy/scene/cameras/tests/__init__.py +0 -0
  596. {vispy-0.14.2 → vispy-0.14.3}/vispy/scene/cameras/tests/test_cameras.py +0 -0
  597. {vispy-0.14.2 → vispy-0.14.3}/vispy/scene/cameras/tests/test_link.py +0 -0
  598. {vispy-0.14.2 → vispy-0.14.3}/vispy/scene/cameras/tests/test_perspective.py +0 -0
  599. {vispy-0.14.2 → vispy-0.14.3}/vispy/scene/cameras/turntable.py +0 -0
  600. {vispy-0.14.2 → vispy-0.14.3}/vispy/scene/canvas.py +0 -0
  601. {vispy-0.14.2 → vispy-0.14.3}/vispy/scene/events.py +0 -0
  602. {vispy-0.14.2 → vispy-0.14.3}/vispy/scene/node.py +0 -0
  603. {vispy-0.14.2 → vispy-0.14.3}/vispy/scene/subscene.py +0 -0
  604. {vispy-0.14.2 → vispy-0.14.3}/vispy/scene/tests/__init__.py +0 -0
  605. {vispy-0.14.2 → vispy-0.14.3}/vispy/scene/tests/test_canvas.py +0 -0
  606. {vispy-0.14.2 → vispy-0.14.3}/vispy/scene/tests/test_node.py +0 -0
  607. {vispy-0.14.2 → vispy-0.14.3}/vispy/scene/tests/test_visuals.py +0 -0
  608. {vispy-0.14.2 → vispy-0.14.3}/vispy/scene/visuals.py +0 -0
  609. {vispy-0.14.2 → vispy-0.14.3}/vispy/scene/widgets/__init__.py +0 -0
  610. {vispy-0.14.2 → vispy-0.14.3}/vispy/scene/widgets/anchor.py +0 -0
  611. {vispy-0.14.2 → vispy-0.14.3}/vispy/scene/widgets/axis.py +0 -0
  612. {vispy-0.14.2 → vispy-0.14.3}/vispy/scene/widgets/colorbar.py +0 -0
  613. {vispy-0.14.2 → vispy-0.14.3}/vispy/scene/widgets/console.py +0 -0
  614. {vispy-0.14.2 → vispy-0.14.3}/vispy/scene/widgets/grid.py +0 -0
  615. {vispy-0.14.2 → vispy-0.14.3}/vispy/scene/widgets/label.py +0 -0
  616. {vispy-0.14.2 → vispy-0.14.3}/vispy/scene/widgets/tests/__init__.py +0 -0
  617. {vispy-0.14.2 → vispy-0.14.3}/vispy/scene/widgets/tests/test_colorbar.py +0 -0
  618. {vispy-0.14.2 → vispy-0.14.3}/vispy/scene/widgets/viewbox.py +0 -0
  619. {vispy-0.14.2 → vispy-0.14.3}/vispy/scene/widgets/widget.py +0 -0
  620. {vispy-0.14.2 → vispy-0.14.3}/vispy/testing/__init__.py +0 -0
  621. {vispy-0.14.2 → vispy-0.14.3}/vispy/testing/_testing.py +0 -0
  622. {vispy-0.14.2 → vispy-0.14.3}/vispy/testing/image_tester.py +0 -0
  623. {vispy-0.14.2 → vispy-0.14.3}/vispy/testing/rendered_array_tester.py +0 -0
  624. {vispy-0.14.2 → vispy-0.14.3}/vispy/testing/tests/__init__.py +0 -0
  625. {vispy-0.14.2 → vispy-0.14.3}/vispy/testing/tests/test_testing.py +0 -0
  626. {vispy-0.14.2 → vispy-0.14.3}/vispy/util/bunch.py +0 -0
  627. {vispy-0.14.2 → vispy-0.14.3}/vispy/util/check_environment.py +0 -0
  628. {vispy-0.14.2 → vispy-0.14.3}/vispy/util/config.py +0 -0
  629. {vispy-0.14.2 → vispy-0.14.3}/vispy/util/dpi/__init__.py +0 -0
  630. {vispy-0.14.2 → vispy-0.14.3}/vispy/util/dpi/_linux.py +0 -0
  631. {vispy-0.14.2 → vispy-0.14.3}/vispy/util/dpi/_quartz.py +0 -0
  632. {vispy-0.14.2 → vispy-0.14.3}/vispy/util/dpi/_win32.py +0 -0
  633. {vispy-0.14.2 → vispy-0.14.3}/vispy/util/dpi/tests/__init__.py +0 -0
  634. {vispy-0.14.2 → vispy-0.14.3}/vispy/util/dpi/tests/test_dpi.py +0 -0
  635. {vispy-0.14.2 → vispy-0.14.3}/vispy/util/eq.py +0 -0
  636. {vispy-0.14.2 → vispy-0.14.3}/vispy/util/event.py +0 -0
  637. {vispy-0.14.2 → vispy-0.14.3}/vispy/util/fetching.py +0 -0
  638. {vispy-0.14.2 → vispy-0.14.3}/vispy/util/filter.py +0 -0
  639. {vispy-0.14.2 → vispy-0.14.3}/vispy/util/fonts/__init__.py +0 -0
  640. {vispy-0.14.2 → vispy-0.14.3}/vispy/util/fonts/_freetype.py +0 -0
  641. {vispy-0.14.2 → vispy-0.14.3}/vispy/util/fonts/_quartz.py +0 -0
  642. {vispy-0.14.2 → vispy-0.14.3}/vispy/util/fonts/_triage.py +0 -0
  643. {vispy-0.14.2 → vispy-0.14.3}/vispy/util/fonts/_vispy_fonts.py +0 -0
  644. {vispy-0.14.2 → vispy-0.14.3}/vispy/util/fonts/_win32.py +0 -0
  645. {vispy-0.14.2 → vispy-0.14.3}/vispy/util/fonts/data/OpenSans-Bold.ttf +0 -0
  646. {vispy-0.14.2 → vispy-0.14.3}/vispy/util/fonts/data/OpenSans-BoldItalic.ttf +0 -0
  647. {vispy-0.14.2 → vispy-0.14.3}/vispy/util/fonts/data/OpenSans-Italic.ttf +0 -0
  648. {vispy-0.14.2 → vispy-0.14.3}/vispy/util/fonts/data/OpenSans-Regular.ttf +0 -0
  649. {vispy-0.14.2 → vispy-0.14.3}/vispy/util/fonts/tests/__init__.py +0 -0
  650. {vispy-0.14.2 → vispy-0.14.3}/vispy/util/fonts/tests/test_font.py +0 -0
  651. {vispy-0.14.2 → vispy-0.14.3}/vispy/util/fourier.py +0 -0
  652. {vispy-0.14.2 → vispy-0.14.3}/vispy/util/frozen.py +0 -0
  653. {vispy-0.14.2 → vispy-0.14.3}/vispy/util/gallery_scraper.py +0 -0
  654. {vispy-0.14.2 → vispy-0.14.3}/vispy/util/keys.py +0 -0
  655. {vispy-0.14.2 → vispy-0.14.3}/vispy/util/logs.py +0 -0
  656. {vispy-0.14.2 → vispy-0.14.3}/vispy/util/osmesa_gl.py +0 -0
  657. {vispy-0.14.2 → vispy-0.14.3}/vispy/util/profiler.py +0 -0
  658. {vispy-0.14.2 → vispy-0.14.3}/vispy/util/ptime.py +0 -0
  659. {vispy-0.14.2 → vispy-0.14.3}/vispy/util/quaternion.py +0 -0
  660. {vispy-0.14.2 → vispy-0.14.3}/vispy/util/svg/__init__.py +0 -0
  661. {vispy-0.14.2 → vispy-0.14.3}/vispy/util/svg/base.py +0 -0
  662. {vispy-0.14.2 → vispy-0.14.3}/vispy/util/svg/color.py +0 -0
  663. {vispy-0.14.2 → vispy-0.14.3}/vispy/util/svg/element.py +0 -0
  664. {vispy-0.14.2 → vispy-0.14.3}/vispy/util/svg/geometry.py +0 -0
  665. {vispy-0.14.2 → vispy-0.14.3}/vispy/util/svg/group.py +0 -0
  666. {vispy-0.14.2 → vispy-0.14.3}/vispy/util/svg/length.py +0 -0
  667. {vispy-0.14.2 → vispy-0.14.3}/vispy/util/svg/number.py +0 -0
  668. {vispy-0.14.2 → vispy-0.14.3}/vispy/util/svg/path.py +0 -0
  669. {vispy-0.14.2 → vispy-0.14.3}/vispy/util/svg/shapes.py +0 -0
  670. {vispy-0.14.2 → vispy-0.14.3}/vispy/util/svg/style.py +0 -0
  671. {vispy-0.14.2 → vispy-0.14.3}/vispy/util/svg/svg.py +0 -0
  672. {vispy-0.14.2 → vispy-0.14.3}/vispy/util/svg/transform.py +0 -0
  673. {vispy-0.14.2 → vispy-0.14.3}/vispy/util/svg/transformable.py +0 -0
  674. {vispy-0.14.2 → vispy-0.14.3}/vispy/util/svg/viewport.py +0 -0
  675. {vispy-0.14.2 → vispy-0.14.3}/vispy/util/tests/__init__.py +0 -0
  676. {vispy-0.14.2 → vispy-0.14.3}/vispy/util/tests/test_config.py +0 -0
  677. {vispy-0.14.2 → vispy-0.14.3}/vispy/util/tests/test_docstring_parameters.py +0 -0
  678. {vispy-0.14.2 → vispy-0.14.3}/vispy/util/tests/test_emitter_group.py +0 -0
  679. {vispy-0.14.2 → vispy-0.14.3}/vispy/util/tests/test_event_emitter.py +0 -0
  680. {vispy-0.14.2 → vispy-0.14.3}/vispy/util/tests/test_fourier.py +0 -0
  681. {vispy-0.14.2 → vispy-0.14.3}/vispy/util/tests/test_gallery_scraper.py +0 -0
  682. {vispy-0.14.2 → vispy-0.14.3}/vispy/util/tests/test_import.py +0 -0
  683. {vispy-0.14.2 → vispy-0.14.3}/vispy/util/tests/test_key.py +0 -0
  684. {vispy-0.14.2 → vispy-0.14.3}/vispy/util/tests/test_logging.py +0 -0
  685. {vispy-0.14.2 → vispy-0.14.3}/vispy/util/tests/test_run.py +0 -0
  686. {vispy-0.14.2 → vispy-0.14.3}/vispy/util/tests/test_transforms.py +0 -0
  687. {vispy-0.14.2 → vispy-0.14.3}/vispy/util/tests/test_vispy.py +0 -0
  688. {vispy-0.14.2 → vispy-0.14.3}/vispy/util/transforms.py +0 -0
  689. {vispy-0.14.2 → vispy-0.14.3}/vispy/util/wrappers.py +0 -0
  690. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/__init__.py +0 -0
  691. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/axis.py +0 -0
  692. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/border.py +0 -0
  693. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/box.py +0 -0
  694. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/collections/__init__.py +0 -0
  695. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/collections/agg_fast_path_collection.py +0 -0
  696. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/collections/agg_path_collection.py +0 -0
  697. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/collections/agg_point_collection.py +0 -0
  698. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/collections/agg_segment_collection.py +0 -0
  699. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/collections/base_collection.py +0 -0
  700. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/collections/collection.py +0 -0
  701. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/collections/path_collection.py +0 -0
  702. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/collections/point_collection.py +0 -0
  703. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/collections/polygon_collection.py +0 -0
  704. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/collections/raw_path_collection.py +0 -0
  705. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/collections/raw_point_collection.py +0 -0
  706. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/collections/raw_polygon_collection.py +0 -0
  707. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/collections/raw_segment_collection.py +0 -0
  708. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/collections/raw_triangle_collection.py +0 -0
  709. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/collections/segment_collection.py +0 -0
  710. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/collections/triangle_collection.py +0 -0
  711. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/collections/util.py +0 -0
  712. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/colorbar.py +0 -0
  713. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/cube.py +0 -0
  714. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/ellipse.py +0 -0
  715. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/filters/__init__.py +0 -0
  716. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/filters/base_filter.py +0 -0
  717. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/filters/clipper.py +0 -0
  718. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/filters/clipping_planes.py +0 -0
  719. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/filters/color.py +0 -0
  720. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/filters/markers.py +0 -0
  721. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/filters/mesh.py +0 -0
  722. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/filters/picking.py +0 -0
  723. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/filters/tests/__init__.py +0 -0
  724. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/filters/tests/test_primitive_picking_filters.py +0 -0
  725. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/filters/tests/test_wireframe_filter.py +0 -0
  726. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/glsl/__init__.py +0 -0
  727. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/glsl/antialiasing.py +0 -0
  728. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/glsl/color.py +0 -0
  729. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/graphs/__init__.py +0 -0
  730. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/graphs/graph.py +0 -0
  731. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/graphs/layouts/__init__.py +0 -0
  732. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/graphs/layouts/circular.py +0 -0
  733. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/graphs/layouts/force_directed.py +0 -0
  734. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/graphs/layouts/networkx_layout.py +0 -0
  735. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/graphs/layouts/random.py +0 -0
  736. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/graphs/tests/__init__.py +0 -0
  737. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/graphs/tests/test_layouts.py +0 -0
  738. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/graphs/tests/test_networkx_layout.py +0 -0
  739. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/graphs/util.py +0 -0
  740. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/gridlines.py +0 -0
  741. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/gridmesh.py +0 -0
  742. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/histogram.py +0 -0
  743. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/image_complex.py +0 -0
  744. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/infinite_line.py +0 -0
  745. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/instanced_mesh.py +0 -0
  746. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/isocurve.py +0 -0
  747. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/isoline.py +0 -0
  748. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/isosurface.py +0 -0
  749. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/line/__init__.py +0 -0
  750. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/line/arrow.py +0 -0
  751. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/line/dash_atlas.py +0 -0
  752. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/line/line.py +0 -0
  753. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/line_plot.py +0 -0
  754. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/linear_region.py +0 -0
  755. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/markers.py +0 -0
  756. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/mesh.py +0 -0
  757. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/mesh_normals.py +0 -0
  758. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/plane.py +0 -0
  759. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/polygon.py +0 -0
  760. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/rectangle.py +0 -0
  761. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/regular_polygon.py +0 -0
  762. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/scrolling_lines.py +0 -0
  763. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/shaders/__init__.py +0 -0
  764. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/shaders/compiler.py +0 -0
  765. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/shaders/expression.py +0 -0
  766. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/shaders/function.py +0 -0
  767. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/shaders/multiprogram.py +0 -0
  768. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/shaders/parsing.py +0 -0
  769. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/shaders/program.py +0 -0
  770. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/shaders/shader_object.py +0 -0
  771. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/shaders/tests/__init__.py +0 -0
  772. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/shaders/tests/test_function.py +0 -0
  773. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/shaders/tests/test_multiprogram.py +0 -0
  774. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/shaders/tests/test_parsing.py +0 -0
  775. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/shaders/variable.py +0 -0
  776. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/spectrogram.py +0 -0
  777. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/sphere.py +0 -0
  778. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/surface_plot.py +0 -0
  779. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/tests/__init__.py +0 -0
  780. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/tests/test_arrows.py +0 -0
  781. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/tests/test_axis.py +0 -0
  782. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/tests/test_collections.py +0 -0
  783. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/tests/test_colorbar.py +0 -0
  784. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/tests/test_colormap.py +0 -0
  785. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/tests/test_ellipse.py +0 -0
  786. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/tests/test_histogram.py +0 -0
  787. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/tests/test_image.py +0 -0
  788. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/tests/test_image_complex.py +0 -0
  789. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/tests/test_infinite_line.py +0 -0
  790. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/tests/test_instanced_mesh.py +0 -0
  791. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/tests/test_isosurface.py +0 -0
  792. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/tests/test_linear_region.py +0 -0
  793. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/tests/test_markers.py +0 -0
  794. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/tests/test_mesh.py +0 -0
  795. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/tests/test_mesh_normals.py +0 -0
  796. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/tests/test_polygon.py +0 -0
  797. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/tests/test_rectangle.py +0 -0
  798. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/tests/test_regular_polygon.py +0 -0
  799. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/tests/test_scalable_textures.py +0 -0
  800. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/tests/test_sdf.py +0 -0
  801. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/tests/test_spectrogram.py +0 -0
  802. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/tests/test_surface_plot.py +0 -0
  803. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/tests/test_text.py +0 -0
  804. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/tests/test_volume.py +0 -0
  805. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/tests/test_windbarb.py +0 -0
  806. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/text/__init__.py +0 -0
  807. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/text/_sdf_gpu.py +0 -0
  808. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/text/text.py +0 -0
  809. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/transforms/__init__.py +0 -0
  810. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/transforms/_util.py +0 -0
  811. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/transforms/base_transform.py +0 -0
  812. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/transforms/chain.py +0 -0
  813. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/transforms/interactive.py +0 -0
  814. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/transforms/linear.py +0 -0
  815. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/transforms/nonlinear.py +0 -0
  816. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/transforms/tests/__init__.py +0 -0
  817. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/transforms/tests/test_transforms.py +0 -0
  818. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/transforms/transform_system.py +0 -0
  819. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/tube.py +0 -0
  820. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/visual.py +0 -0
  821. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/windbarb.py +0 -0
  822. {vispy-0.14.2 → vispy-0.14.3}/vispy/visuals/xyz_axis.py +0 -0
  823. {vispy-0.14.2 → vispy-0.14.3}/vispy.egg-info/SOURCES.txt +0 -0
  824. {vispy-0.14.2 → vispy-0.14.3}/vispy.egg-info/dependency_links.txt +0 -0
  825. {vispy-0.14.2 → vispy-0.14.3}/vispy.egg-info/not-zip-safe +0 -0
  826. {vispy-0.14.2 → vispy-0.14.3}/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:
@@ -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:
@@ -27,9 +27,9 @@ jobs:
27
27
  if: ${{ matrix.arch == 'aarch64' }}
28
28
  uses: docker/setup-qemu-action@v3
29
29
  - name: Build wheels
30
- uses: pypa/cibuildwheel@v2.16.5
30
+ uses: pypa/cibuildwheel@v2.18.1
31
31
  env:
32
- CIBW_SKIP: "cp36-* pp* *-win32 *-manylinux_i686 *-musllinux*"
32
+ CIBW_SKIP: "pp* *-win32 *-manylinux_i686 *-musllinux*"
33
33
  CIBW_ARCHS_LINUX: ${{ matrix.arch }}
34
34
  CIBW_TEST_REQUIRES: "pytest pytest-sugar meshio pillow sphinx_gallery imageio"
35
35
  CIBW_TEST_COMMAND: "python -c \"import vispy; vispy.test('nobackend')\""
@@ -61,7 +61,7 @@ jobs:
61
61
  - uses: actions/setup-python@v5
62
62
  name: Install Python
63
63
  with:
64
- python-version: '3.7'
64
+ python-version: '3.9'
65
65
  - name: Build sdist
66
66
  run: |
67
67
  python -m pip install --upgrade pip setuptools build wheel
@@ -1,5 +1,27 @@
1
1
  # Release Notes
2
2
 
3
+
4
+ ## [v0.14.3](https://github.com/vispy/vispy/tree/v0.14.3) (2024-06-17)
5
+
6
+ **Enhancements:**
7
+
8
+ - Clip step size based on maximum detail on an 8K monitor [\#2589](https://github.com/vispy/vispy/pull/2589) ([jni](https://github.com/jni))
9
+
10
+ **Fixed bugs:**
11
+
12
+ - Fix integral computation in attenuated mip [\#2588](https://github.com/vispy/vispy/pull/2588) ([jni](https://github.com/jni))
13
+ - Reset VertexAttribDivisor even if None [\#2583](https://github.com/vispy/vispy/pull/2583) ([aganders3](https://github.com/aganders3))
14
+
15
+ **Merged pull requests:**
16
+
17
+ - Fix CI: failing tests and linting errors not failing checks [\#2597](https://github.com/vispy/vispy/pull/2597) ([aganders3](https://github.com/aganders3))
18
+ - 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))
19
+ - 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))
20
+ - Bump peaceiris/actions-gh-pages from 3 to 4 [\#2582](https://github.com/vispy/vispy/pull/2582) ([dependabot[bot]](https://github.com/apps/dependabot))
21
+ - Fix gallery link in README.rst [\#2579](https://github.com/vispy/vispy/pull/2579) ([inigoalonso](https://github.com/inigoalonso))
22
+ - 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))
23
+
24
+
3
25
  ## [v0.14.2](https://github.com/vispy/vispy/tree/v0.14.2) (2024-03-14)
4
26
 
5
27
  **Enhancements:**
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: vispy
3
- Version: 0.14.2
3
+ Version: 0.14.3
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,54 @@ 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"
43
70
 
44
71
  VisPy: interactive scientific visualization in Python
45
72
  -----------------------------------------------------
@@ -180,7 +207,7 @@ External links
180
207
  - `Chat room <https://gitter.im/vispy/vispy>`__
181
208
  - `Developer chat room <https://gitter.im/vispy/vispy-dev>`__
182
209
  - `Wiki <http://github.com/vispy/vispy/wiki>`__
183
- - `Gallery <http://vispy.org/gallery.html>`__
210
+ - `Gallery <http://vispy.org/gallery/index.html>`__
184
211
  - `Documentation <http://vispy.readthedocs.org>`__
185
212
 
186
213
  .. |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
@@ -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
@@ -1,8 +1,9 @@
1
1
  [build-system]
2
2
  requires = [
3
3
  "wheel",
4
- "oldest-supported-numpy",
5
4
  "setuptools>=42",
5
+ # see https://numpy.org/devdocs/dev/depending_on_numpy.html#numpy-2-0-specific-advice
6
+ "numpy>=2.0.0rc2",
6
7
  "setuptools_scm[toml]>=7.1",
7
8
  "Cython>=3.0.0"
8
9
  ]
@@ -96,7 +96,7 @@ setup(
96
96
  long_description_content_type='text/x-rst',
97
97
  platforms='any',
98
98
  provides=['vispy'],
99
- python_requires='>=3.8',
99
+ python_requires='>=3.9',
100
100
  install_requires=install_requires,
101
101
  extras_require={
102
102
  'ipython-static': ['ipython'],
@@ -106,6 +106,7 @@ setup(
106
106
  'pyside': ['PySide'],
107
107
  'pyside2': ['PySide2'],
108
108
  'pyside6': ['PySide6'],
109
+ 'glfw': ['glfw'],
109
110
  'sdl2': ['PySDL2'],
110
111
  'wx': ['wxPython'],
111
112
  'tk': ['pyopengltk'],
@@ -150,10 +151,10 @@ setup(
150
151
  'Operating System :: Microsoft :: Windows',
151
152
  'Operating System :: POSIX',
152
153
  'Programming Language :: Python',
153
- 'Programming Language :: Python :: 3.8',
154
154
  'Programming Language :: Python :: 3.9',
155
155
  'Programming Language :: Python :: 3.10',
156
156
  'Programming Language :: Python :: 3.11',
157
+ 'Programming Language :: Python :: 3.12',
157
158
  'Framework :: IPython'
158
159
  ],
159
160
  )
@@ -16,7 +16,7 @@ from .meshdata import MeshData # noqa
16
16
  from .rect import Rect # noqa
17
17
  from .triangulation import Triangulation, triangulate # noqa
18
18
  from .torusknot import TorusKnot # noqa
19
- from .calculations import (_calculate_normals, _fast_cross_3d, # noqa
19
+ from .calculations import (_calculate_normals, _cross_2d, _fast_cross_3d, # noqa
20
20
  resize) # noqa
21
21
  from .generation import (create_arrow, create_box, create_cone, # noqa
22
22
  create_cube, create_cylinder, create_grid_mesh, # noqa
@@ -7,8 +7,33 @@
7
7
  import numpy as np
8
8
 
9
9
 
10
- ###############################################################################
11
- # These fast normal calculation routines are adapted from mne-python
10
+ def _cross_2d(x, y):
11
+ """Compute the z-component of the cross product of (arrays of) 2D vectors.
12
+
13
+ This is meant to replicate the 2D functionality of np.cross(), which is
14
+ deprecated in numpy 2.0.
15
+
16
+ x and y must have broadcastable shapes, with the last dimension being 2.
17
+
18
+ Parameters
19
+ ----------
20
+ x : array
21
+ Input array 1, shape (..., 2).
22
+ y : array
23
+ Input array 2, shape (..., 2).
24
+
25
+ Returns
26
+ -------
27
+ z : array
28
+ z-component of cross products of x and y.
29
+
30
+ See: https://github.com/numpy/numpy/issues/26620
31
+ """
32
+ if x.shape[-1] != 2 or y.shape[-1] != 2:
33
+ raise ValueError("Input arrays must have shape (..., 2)")
34
+
35
+ return x[..., 0] * y[..., 1] - x[..., 1] * y[..., 0]
36
+
12
37
 
13
38
  def _fast_cross_3d(x, y):
14
39
  """Compute cross product between list of 3D vectors
@@ -47,6 +72,9 @@ def _fast_cross_3d(x, y):
47
72
  return np.cross(x, y)
48
73
 
49
74
 
75
+ ###############################################################################
76
+ # These fast normal calculation routines are adapted from mne-python
77
+
50
78
  def _calculate_normals(rr, tris):
51
79
  """Efficiently compute vertex normals for triangulated surface"""
52
80
  # ensure highest precision for our summation/vectorization "trick"
@@ -7,6 +7,8 @@ import numpy as np
7
7
 
8
8
  from collections import OrderedDict
9
9
 
10
+ from .calculations import _cross_2d
11
+
10
12
 
11
13
  class Triangulation(object):
12
14
  """Constrained delaunay triangulation
@@ -676,7 +678,7 @@ class Triangulation(object):
676
678
  A = self.pts[a]
677
679
  B = self.pts[b]
678
680
  C = self.pts[c]
679
- return np.cross(B-A, C-B) > 0
681
+ return _cross_2d(B - A, C - B) > 0
680
682
 
681
683
  def _edges_intersect(self, edge1, edge2):
682
684
  """Return 1 if edges intersect completely (endpoints excluded)"""
@@ -739,7 +741,7 @@ class Triangulation(object):
739
741
  """
740
742
  v1 = self.pts[point] - self.pts[edge[0]]
741
743
  v2 = self.pts[edge[1]] - self.pts[edge[0]]
742
- c = np.cross(v1, v2) # positive if v1 is CW from v2
744
+ c = _cross_2d(v1, v2) # positive if v1 is CW from v2
743
745
  return 1 if c > 0 else (-1 if c < 0 else 0)
744
746
 
745
747
  def _add_tri(self, a, b, c):
@@ -10,7 +10,7 @@ from traceback import extract_stack, format_list
10
10
  import weakref
11
11
 
12
12
  from . globject import GLObject
13
- from ..util import logger
13
+ from ..util import logger, np_copy_if_needed
14
14
 
15
15
 
16
16
  # ------------------------------------------------------------ Buffer class ---
@@ -70,7 +70,7 @@ class Buffer(GLObject):
70
70
  data is actually uploaded to GPU memory.
71
71
  Asking explicitly for a copy will prevent this behavior.
72
72
  """
73
- data = np.array(data, copy=copy)
73
+ data = np.array(data, copy=copy or np_copy_if_needed)
74
74
  nbytes = data.nbytes
75
75
 
76
76
  if offset < 0:
@@ -98,7 +98,7 @@ class Buffer(GLObject):
98
98
  data is actually uploaded to GPU memory.
99
99
  Asking explicitly for a copy will prevent this behavior.
100
100
  """
101
- data = np.array(data, copy=copy)
101
+ data = np.array(data, copy=copy or np_copy_if_needed)
102
102
  nbytes = data.nbytes
103
103
 
104
104
  if nbytes != self._nbytes:
@@ -283,7 +283,7 @@ class DataBuffer(Buffer):
283
283
 
284
284
  # Make sure data is an array
285
285
  if not isinstance(data, np.ndarray):
286
- data = np.array(data, dtype=self.dtype, copy=False)
286
+ data = np.array(data, dtype=self.dtype)
287
287
 
288
288
  # Make sure data is big enough
289
289
  if data.size < stop - start:
@@ -192,8 +192,10 @@ quad = np.array([[0, 0, 0], [-1, 0, 0], [-1, -1, 0],
192
192
  N = quad.shape[0] * 4
193
193
 
194
194
  # buf3 contains coordinates in device coordinates for four quadrants
195
- buf3 = np.row_stack([quad + (0, 0, 0), quad + (0, 1, 0),
196
- quad + (1, 1, 0), quad + (1, 0, 0)]).astype(np.float32)
195
+ buf3 = np.vstack([
196
+ quad + (0, 0, 0), quad + (0, 1, 0),
197
+ quad + (1, 1, 0), quad + (1, 0, 0),
198
+ ]).astype(np.float32)
197
199
 
198
200
  # buf2 is texture coords. Note that this is a view on buf2
199
201
  buf2 = ((buf3+1.0)*0.5)[:, :2] # not C-contiguous
@@ -1283,8 +1283,13 @@ class GlirProgram(GlirObject):
1283
1283
  gl.glBindBuffer(gl.GL_ARRAY_BUFFER, vbo_handle)
1284
1284
  gl.glEnableVertexAttribArray(attr_handle)
1285
1285
  func(attr_handle, *args)
1286
- if divisor is not None:
1287
- gl.glVertexAttribDivisor(attr_handle, divisor)
1286
+ if hasattr(gl, "glVertexAttribDivisor"):
1287
+ gl.glVertexAttribDivisor(attr_handle, divisor or 0)
1288
+ elif divisor is not None:
1289
+ logger.warning(
1290
+ 'Instanced rendering is not supported by the current'
1291
+ f'backend ("{gl.current_backend.__name__}")'
1292
+ )
1288
1293
  else:
1289
1294
  gl.glBindBuffer(gl.GL_ARRAY_BUFFER, 0)
1290
1295
  gl.glDisableVertexAttribArray(attr_handle)
@@ -11,6 +11,7 @@ import warnings
11
11
 
12
12
  from .globject import GLObject
13
13
  from .util import check_enum
14
+ from ..util import np_copy_if_needed
14
15
 
15
16
 
16
17
  def get_dtype_limits(dtype):
@@ -29,7 +30,7 @@ def convert_dtype_and_clip(data, dtype, copy=False):
29
30
  new_min, new_max = get_dtype_limits(dtype)
30
31
  if new_max >= old_max and new_min <= old_min:
31
32
  # no need to clip
32
- return np.array(data, dtype=dtype, copy=copy)
33
+ return np.array(data, dtype=dtype, copy=copy or np_copy_if_needed)
33
34
  else:
34
35
  # to reduce copying, we clip into a pre-generated array of the right dtype
35
36
  new_data = np.empty_like(data, dtype=dtype)
@@ -158,7 +159,7 @@ class BaseTexture(GLObject):
158
159
  if data is not None:
159
160
  if shape is not None:
160
161
  raise ValueError('Texture needs data or shape, not both.')
161
- data = np.array(data, copy=False)
162
+ data = np.array(data)
162
163
  # So we can test the combination
163
164
  self._resize(data.shape, format, internalformat)
164
165
  self._set_data(data)
@@ -427,7 +428,7 @@ class BaseTexture(GLObject):
427
428
 
428
429
  # Make sure data is an array
429
430
  if not isinstance(data, np.ndarray):
430
- data = np.array(data, copy=False)
431
+ data = np.array(data)
431
432
  # Make sure data is big enough
432
433
  if data.shape != shape:
433
434
  data = np.resize(data, shape)
@@ -164,7 +164,9 @@ def _flake():
164
164
  print('Running flake8... ') # if end='', first error gets ugly
165
165
  sys.stdout.flush()
166
166
  try:
167
- main()
167
+ # flake8 used to exit on failure, but instead `main` now returns an exit code
168
+ # see https://github.com/PyCQA/flake8/pull/1461
169
+ raise SystemExit(main())
168
170
  except SystemExit as ex:
169
171
  if ex.code in (None, 0):
170
172
  pass # do not exit yet, we want to print a success msg
@@ -15,3 +15,18 @@ from . import fonts # noqa
15
15
  from . import transforms # noqa
16
16
  from .wrappers import use, run_subprocess # noqa
17
17
  from .bunch import SimpleBunch # noqa
18
+
19
+ from typing import Optional
20
+
21
+ import numpy as np
22
+
23
+ # `copy` keyword semantics changed in NumPy 2.0
24
+ # this maintains compatibility with older versions
25
+ # if/when NumPy 2.0 becomes the minimum version, we can remove this
26
+ # we don't worry about early dev versions of NumPy 2.0 (that may or may not have the kwarg) here
27
+ # see:
28
+ # https://numpy.org/devdocs/numpy_2_0_migration_guide.html#adapting-to-changes-in-the-copy-keyword
29
+ # https://github.com/scipy/scipy/pull/20172
30
+ np_copy_if_needed: Optional[bool] = None
31
+ if np.lib.NumpyVersion(np.__version__) < "1.28.0":
32
+ np_copy_if_needed = False
@@ -0,0 +1,16 @@
1
+ # file generated by setuptools_scm
2
+ # don't change, don't track in version control
3
+ TYPE_CHECKING = False
4
+ if TYPE_CHECKING:
5
+ from typing import Tuple, Union
6
+ VERSION_TUPLE = Tuple[Union[int, str], ...]
7
+ else:
8
+ VERSION_TUPLE = object
9
+
10
+ version: str
11
+ __version__: str
12
+ __version_tuple__: VERSION_TUPLE
13
+ version_tuple: VERSION_TUPLE
14
+
15
+ __version__ = version = '0.14.3'
16
+ __version_tuple__ = version_tuple = (0, 14, 3)
@@ -6,6 +6,7 @@ import warnings
6
6
  import numpy as np
7
7
 
8
8
  from vispy.gloo.texture import Texture2D, Texture3D, convert_dtype_and_clip
9
+ from vispy.util import np_copy_if_needed
9
10
 
10
11
 
11
12
  def get_default_clim_from_dtype(dtype):
@@ -298,7 +299,7 @@ class CPUScaledTextureMixin(_ScaledTextureMixin):
298
299
 
299
300
  @staticmethod
300
301
  def _scale_data_on_cpu(data, clim, copy=True):
301
- data = np.array(data, dtype=np.float32, copy=copy)
302
+ data = np.array(data, dtype=np.float32, copy=copy or np_copy_if_needed)
302
303
  if clim[0] != clim[1]:
303
304
  # we always must copy the data if we change it here, otherwise it might change
304
305
  # unexpectedly the data held outside of here
@@ -73,7 +73,7 @@ class ArrayList(object):
73
73
  if isinstance(data[0], (list, tuple)):
74
74
  itemsize = [len(sublist) for sublist in data]
75
75
  data = [item for sublist in data for item in sublist]
76
- self._data = np.array(data, copy=False)
76
+ self._data = np.array(data)
77
77
  self._size = self._data.size
78
78
 
79
79
  # Default is one group with all data inside
@@ -88,7 +88,7 @@ class ArrayList(object):
88
88
  _itemsize = np.ones(
89
89
  self._count, dtype=int) * (self._size // self._count)
90
90
  else:
91
- _itemsize = np.array(itemsize, copy=False)
91
+ _itemsize = np.array(itemsize)
92
92
  self._count = len(itemsize)
93
93
  if _itemsize.sum() != self._size:
94
94
  raise ValueError("Cannot partition data as requested")
@@ -302,7 +302,7 @@ class ArrayList(object):
302
302
  itemsize = [len(sublist) for sublist in data]
303
303
  data = [item for sublist in data for item in sublist]
304
304
 
305
- data = np.array(data, copy=False).ravel()
305
+ data = np.array(data).ravel()
306
306
  size = data.size
307
307
 
308
308
  # Check item size and get item number
@@ -313,7 +313,7 @@ class ArrayList(object):
313
313
  _count = size // itemsize
314
314
  _itemsize = np.ones(_count, dtype=int) * (size // _count)
315
315
  else:
316
- _itemsize = np.array(itemsize, copy=False)
316
+ _itemsize = np.array(itemsize)
317
317
  _count = len(itemsize)
318
318
  if _itemsize.sum() != size:
319
319
  raise ValueError("Cannot partition data as requested")
@@ -16,6 +16,7 @@ from .transforms import NullTransform
16
16
  from .visual import Visual
17
17
  from ..io import load_spatial_filters
18
18
  from ._scalable_textures import CPUScaledTexture2D, GPUScaledTexture2D
19
+ from ..util import np_copy_if_needed
19
20
 
20
21
 
21
22
  _VERTEX_SHADER = """
@@ -380,7 +381,7 @@ class ImageVisual(Visual):
380
381
  texture_format : str or None
381
382
 
382
383
  """
383
- data = np.array(image, copy=copy)
384
+ data = np.array(image, copy=copy or np_copy_if_needed)
384
385
  if np.iscomplexobj(data):
385
386
  raise TypeError(
386
387
  "Complex data types not supported. Please use 'ComplexImage' instead"
@@ -7,6 +7,8 @@ cimport numpy as np
7
7
  from libc.math cimport sqrt
8
8
  cimport cython
9
9
 
10
+ np.import_array()
11
+
10
12
  __all__ = ['_get_distance_field']
11
13
 
12
14
  dtype = np.float32