glplot 0.1.2__tar.gz → 0.1.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.
Files changed (241) hide show
  1. glplot-0.1.3/.claude/MANIFEST.md +107 -0
  2. glplot-0.1.3/.claude/agents/glplot-api-analyzer.md +67 -0
  3. glplot-0.1.3/.claude/agents/glplot-bug-reporter.md +83 -0
  4. glplot-0.1.3/.claude/agents/glplot-documentation-auditor.md +80 -0
  5. glplot-0.1.3/.claude/agents/glplot-performance-profiler.md +76 -0
  6. glplot-0.1.3/.claude/agents/glplot-release-manager.md +80 -0
  7. glplot-0.1.3/.claude/agents/glplot-test-runner.md +57 -0
  8. glplot-0.1.3/.claude/settings.local.json +36 -0
  9. glplot-0.1.3/.github/workflows/build.yml +37 -0
  10. glplot-0.1.3/.github/workflows/lint.yml +33 -0
  11. glplot-0.1.3/.github/workflows/tests.yml +42 -0
  12. glplot-0.1.3/.gitignore +64 -0
  13. glplot-0.1.3/.gitlab-ci.yml +120 -0
  14. glplot-0.1.3/CITATION.cff +46 -0
  15. glplot-0.1.3/CODE_OF_CONDUCT.md +47 -0
  16. glplot-0.1.3/CONTRIBUTING.md +98 -0
  17. glplot-0.1.3/GLPlot_Architecture_and_Mathematical_Formulation.md +260 -0
  18. glplot-0.1.3/PKG-INFO +419 -0
  19. glplot-0.1.3/PUBLICATION_CHECKLIST.md +103 -0
  20. glplot-0.1.3/README.md +376 -0
  21. glplot-0.1.3/examples/benchmark/01_line_density.py +261 -0
  22. glplot-0.1.3/examples/benchmark/02_gpu_comparison.py +633 -0
  23. glplot-0.1.3/examples/benchmark/03_density_quality_comparison.py +219 -0
  24. glplot-0.1.3/examples/benchmark/04_hvplot_datashader_interactive.py +83 -0
  25. glplot-0.1.3/examples/benchmark/05_pipeline_diagram.py +499 -0
  26. glplot-0.1.3/examples/benchmark/results/datashader_density_1000.png +0 -0
  27. glplot-0.1.3/examples/benchmark/results/datashader_density_10000.png +0 -0
  28. glplot-0.1.3/examples/benchmark/results/datashader_density_100000.png +0 -0
  29. glplot-0.1.3/examples/benchmark/results/datashader_density_1000000.png +0 -0
  30. glplot-0.1.3/examples/benchmark/results/datashader_density_10000000.png +0 -0
  31. glplot-0.1.3/examples/benchmark/results/density_quality_comparison.png +0 -0
  32. glplot-0.1.3/examples/benchmark/results/density_quality_fastplotlib.png +0 -0
  33. glplot-0.1.3/examples/benchmark/results/density_quality_glplot.png +0 -0
  34. glplot-0.1.3/examples/benchmark/results/density_quality_vispy.png +0 -0
  35. glplot-0.1.3/examples/benchmark/results/fastplotlib_gpu_lines_10.png +0 -0
  36. glplot-0.1.3/examples/benchmark/results/fastplotlib_gpu_lines_100.png +0 -0
  37. glplot-0.1.3/examples/benchmark/results/fastplotlib_gpu_lines_1000.png +0 -0
  38. glplot-0.1.3/examples/benchmark/results/fastplotlib_gpu_lines_10000.png +0 -0
  39. glplot-0.1.3/examples/benchmark/results/fastplotlib_gpu_lines_100000.png +0 -0
  40. glplot-0.1.3/examples/benchmark/results/fastplotlib_gpu_lines_1000000.png +0 -0
  41. glplot-0.1.3/examples/benchmark/results/fastplotlib_gpu_lines_10000000.png +0 -0
  42. glplot-0.1.3/examples/benchmark/results/glplot_density_10.png +0 -0
  43. glplot-0.1.3/examples/benchmark/results/glplot_density_100.png +0 -0
  44. glplot-0.1.3/examples/benchmark/results/glplot_density_1000.png +0 -0
  45. glplot-0.1.3/examples/benchmark/results/glplot_density_10000.png +0 -0
  46. glplot-0.1.3/examples/benchmark/results/glplot_density_100000.png +0 -0
  47. glplot-0.1.3/examples/benchmark/results/glplot_density_1000000.png +0 -0
  48. glplot-0.1.3/examples/benchmark/results/glplot_gpu_density_10.png +0 -0
  49. glplot-0.1.3/examples/benchmark/results/glplot_gpu_density_100.png +0 -0
  50. glplot-0.1.3/examples/benchmark/results/glplot_gpu_density_1000.png +0 -0
  51. glplot-0.1.3/examples/benchmark/results/glplot_gpu_density_10000.png +0 -0
  52. glplot-0.1.3/examples/benchmark/results/glplot_gpu_density_100000.png +0 -0
  53. glplot-0.1.3/examples/benchmark/results/glplot_gpu_density_1000000.png +0 -0
  54. glplot-0.1.3/examples/benchmark/results/glplot_gpu_density_10000000.png +0 -0
  55. glplot-0.1.3/examples/benchmark/results/glplot_gpu_density_100000000.png +0 -0
  56. glplot-0.1.3/examples/benchmark/results/glplot_gpu_exact_10.png +0 -0
  57. glplot-0.1.3/examples/benchmark/results/glplot_gpu_exact_100.png +0 -0
  58. glplot-0.1.3/examples/benchmark/results/glplot_gpu_exact_1000.png +0 -0
  59. glplot-0.1.3/examples/benchmark/results/glplot_gpu_exact_10000.png +0 -0
  60. glplot-0.1.3/examples/benchmark/results/glplot_gpu_exact_100000.png +0 -0
  61. glplot-0.1.3/examples/benchmark/results/glplot_gpu_exact_1000000.png +0 -0
  62. glplot-0.1.3/examples/benchmark/results/glplot_gpu_exact_10000000.png +0 -0
  63. glplot-0.1.3/examples/benchmark/results/glplot_gpu_exact_100000000.png +0 -0
  64. glplot-0.1.3/examples/benchmark/results/glplot_pipeline_diagram.png +0 -0
  65. glplot-0.1.3/examples/benchmark/results/gpu_comparison_benchmark_results.png +0 -0
  66. glplot-0.1.3/examples/benchmark/results/hvplot_density_1000.png +0 -0
  67. glplot-0.1.3/examples/benchmark/results/hvplot_density_10000.png +0 -0
  68. glplot-0.1.3/examples/benchmark/results/hvplot_density_100000.png +0 -0
  69. glplot-0.1.3/examples/benchmark/results/hvplot_density_1000000.png +0 -0
  70. glplot-0.1.3/examples/benchmark/results/hvplot_density_10000000.png +0 -0
  71. glplot-0.1.3/examples/benchmark/results/hvplot_lines_1000.png +0 -0
  72. glplot-0.1.3/examples/benchmark/results/hvplot_lines_10000.png +0 -0
  73. glplot-0.1.3/examples/benchmark/results/hvplot_lines_100000.png +0 -0
  74. glplot-0.1.3/examples/benchmark/results/line_density_benchmark_results.png +0 -0
  75. glplot-0.1.3/examples/benchmark/results/matplotlib_density_10.png +0 -0
  76. glplot-0.1.3/examples/benchmark/results/matplotlib_density_100.png +0 -0
  77. glplot-0.1.3/examples/benchmark/results/matplotlib_density_1000.png +0 -0
  78. glplot-0.1.3/examples/benchmark/results/matplotlib_density_10000.png +0 -0
  79. glplot-0.1.3/examples/benchmark/results/matplotlib_density_100000.png +0 -0
  80. glplot-0.1.3/examples/benchmark/results/matplotlib_density_1000000.png +0 -0
  81. glplot-0.1.3/examples/benchmark/results/matplotlib_lines_10.png +0 -0
  82. glplot-0.1.3/examples/benchmark/results/matplotlib_lines_100.png +0 -0
  83. glplot-0.1.3/examples/benchmark/results/matplotlib_lines_1000.png +0 -0
  84. glplot-0.1.3/examples/benchmark/results/matplotlib_lines_10000.png +0 -0
  85. glplot-0.1.3/examples/benchmark/results/matplotlib_lines_100000.png +0 -0
  86. glplot-0.1.3/examples/benchmark/results/vispy_gpu_lines_10.png +0 -0
  87. glplot-0.1.3/examples/benchmark/results/vispy_gpu_lines_100.png +0 -0
  88. glplot-0.1.3/examples/benchmark/results/vispy_gpu_lines_1000.png +0 -0
  89. glplot-0.1.3/examples/benchmark/results/vispy_gpu_lines_10000.png +0 -0
  90. glplot-0.1.3/examples/benchmark/results/vispy_gpu_lines_100000.png +0 -0
  91. glplot-0.1.3/examples/benchmark/results/vispy_gpu_lines_1000000.png +0 -0
  92. glplot-0.1.3/examples/benchmark/results/vispy_gpu_lines_10000000.png +0 -0
  93. glplot-0.1.3/examples/benchmark/vispy_interactive.py +58 -0
  94. glplot-0.1.3/examples/dataflow.png +0 -0
  95. {glplot-0.1.2 → glplot-0.1.3}/examples/ex_aspect_ratio_fix.py +17 -14
  96. {glplot-0.1.2 → glplot-0.1.3}/examples/ex_density.py +16 -10
  97. {glplot-0.1.2 → glplot-0.1.3}/examples/ex_density_gain.py +6 -4
  98. {glplot-0.1.2 → glplot-0.1.3}/examples/ex_expert_performance.py +8 -10
  99. {glplot-0.1.2 → glplot-0.1.3}/examples/ex_full_showcase.py +31 -26
  100. {glplot-0.1.2 → glplot-0.1.3}/examples/ex_mpl_bridge.py +17 -12
  101. {glplot-0.1.2 → glplot-0.1.3}/examples/ex_read_density.py +9 -7
  102. {glplot-0.1.2 → glplot-0.1.3}/examples/ex_scatter.py +24 -17
  103. {glplot-0.1.2 → glplot-0.1.3}/examples/ex_simple.py +4 -2
  104. {glplot-0.1.2 → glplot-0.1.3}/examples/ex_v2_layers.py +14 -12
  105. {glplot-0.1.2 → glplot-0.1.3}/examples/ex_viewports.py +11 -7
  106. glplot-0.1.3/examples/gallery/.gitignore +1 -0
  107. glplot-0.1.3/examples/gallery/01_line_plot.py +24 -0
  108. glplot-0.1.3/examples/gallery/02_scatter_fill.py +26 -0
  109. glplot-0.1.3/examples/gallery/03_bar_hist.py +54 -0
  110. glplot-0.1.3/examples/gallery/04_line_family_density.py +31 -0
  111. glplot-0.1.3/examples/gallery/05_guides_and_colormap.py +32 -0
  112. glplot-0.1.3/examples/gallery/06_signal_tools.py +45 -0
  113. glplot-0.1.3/examples/gallery/07_projected_3d_cloud.py +32 -0
  114. glplot-0.1.3/examples/gallery/08_vector_field_quiver.py +38 -0
  115. glplot-0.1.3/examples/gallery/09_large_matrix_heatmap.py +20 -0
  116. glplot-0.1.3/examples/gallery/10_massive_hist2d_density.py +20 -0
  117. glplot-0.1.3/examples/gallery/11_contour_pcolormesh_field.py +31 -0
  118. glplot-0.1.3/examples/gallery/12_surface_wireframe_bar3d.py +59 -0
  119. glplot-0.1.3/examples/gallery/13_volumetric_nebula.py +47 -0
  120. glplot-0.1.3/examples/gallery/14_bar3d_hex_box_city.py +71 -0
  121. glplot-0.1.3/examples/gallery/15_vector_field_3d.py +62 -0
  122. glplot-0.1.3/examples/gallery/16_ssao_comparison.py +45 -0
  123. glplot-0.1.3/examples/gallery/17_square_bars3d.py +39 -0
  124. glplot-0.1.3/examples/gallery/18_hex_bars3d.py +39 -0
  125. glplot-0.1.3/examples/gallery/19_turbulent_vector_field_3d.py +104 -0
  126. glplot-0.1.3/examples/gallery/README.md +29 -0
  127. glplot-0.1.3/examples/gallery/_preview.py +1 -0
  128. glplot-0.1.3/examples/gallery/results/.cache/matplotlib/fontlist-v330.json +4714 -0
  129. glplot-0.1.3/examples/gallery/results/.cache/xdg/fontconfig/00d5189c1d5ced4af9bb23cbaa9b1e94-le64.cache-9 +0 -0
  130. glplot-0.1.3/examples/gallery/results/.cache/xdg/fontconfig/617a9c25f653a4b32dbf39ee041b0318-le64.cache-9 +0 -0
  131. glplot-0.1.3/examples/gallery/results/.cache/xdg/fontconfig/84c0f976e30e948e99073af70f4ae876-le64.cache-9 +0 -0
  132. glplot-0.1.3/examples/gallery/results/.cache/xdg/fontconfig/CACHEDIR.TAG +4 -0
  133. glplot-0.1.3/examples/gallery/results/.cache/xdg/fontconfig/b0a71e6bf6a8a1a908413a823d76e21f-le64.cache-9 +0 -0
  134. glplot-0.1.3/examples/gallery/results/.cache/xdg/fontconfig/c6cafe6b1a56ed8b739253d6df90ca6a-le64.cache-9 +0 -0
  135. glplot-0.1.3/examples/gallery/results/.gitignore +1 -0
  136. glplot-0.1.3/examples/gallery/results/01_line_plot.png +0 -0
  137. glplot-0.1.3/examples/gallery/results/02_scatter_fill.png +0 -0
  138. glplot-0.1.3/examples/gallery/results/03_bar_hist.png +0 -0
  139. glplot-0.1.3/examples/gallery/results/04_line_family_density.png +0 -0
  140. glplot-0.1.3/examples/gallery/results/05_guides_and_colormap.png +0 -0
  141. glplot-0.1.3/examples/gallery/results/06_signal_tools.png +0 -0
  142. glplot-0.1.3/examples/gallery/results/07_projected_3d_cloud.png +0 -0
  143. glplot-0.1.3/examples/gallery/results/08_vector_field_quiver.png +0 -0
  144. glplot-0.1.3/examples/gallery/results/09_large_matrix_heatmap.png +0 -0
  145. glplot-0.1.3/examples/gallery/results/10_massive_hist2d_density.png +0 -0
  146. glplot-0.1.3/examples/gallery/results/11_contour_pcolormesh_field.png +0 -0
  147. glplot-0.1.3/examples/gallery/results/12_surface_wireframe_bar3d.png +0 -0
  148. glplot-0.1.3/examples/gallery/results/13_volumetric_nebula.png +0 -0
  149. glplot-0.1.3/examples/gallery/results/14_bar3d_hex_box_city.png +0 -0
  150. glplot-0.1.3/examples/gallery/results/15_vector_field_3d.png +0 -0
  151. glplot-0.1.3/examples/gallery/results/16_ssao_comparison.png +0 -0
  152. glplot-0.1.3/examples/gallery/results/17_square_bars3d.png +0 -0
  153. glplot-0.1.3/examples/gallery/results/18_hex_bars3d.png +0 -0
  154. glplot-0.1.3/examples/gallery/results/19_turbulent_vector_field_3d.png +0 -0
  155. glplot-0.1.3/examples/gallery/run_gallery.py +39 -0
  156. glplot-0.1.3/examples/showcase/01_colorful_particles_2d.py +32 -0
  157. glplot-0.1.3/examples/showcase/02_mandelbrot_zoom_2d.py +49 -0
  158. glplot-0.1.3/examples/showcase/03_spinning_torus_3d.py +35 -0
  159. glplot-0.1.3/examples/showcase/04_cosmic_sphere_3d.py +44 -0
  160. glplot-0.1.3/examples/showcase/README.md +207 -0
  161. {glplot-0.1.2 → glplot-0.1.3}/examples/verify_polyline_cmap.py +7 -5
  162. glplot-0.1.3/glplot/__init__.py +33 -0
  163. {glplot-0.1.2 → glplot-0.1.3}/glplot/backend.py +4 -3
  164. {glplot-0.1.2 → glplot-0.1.3}/glplot/controllers.py +59 -38
  165. {glplot-0.1.2 → glplot-0.1.3}/glplot/core/context.py +16 -14
  166. {glplot-0.1.2 → glplot-0.1.3}/glplot/core/layers.py +141 -29
  167. {glplot-0.1.2 → glplot-0.1.3}/glplot/core/legacy.py +15 -6
  168. {glplot-0.1.2 → glplot-0.1.3}/glplot/engine.py +697 -199
  169. {glplot-0.1.2 → glplot-0.1.3}/glplot/managers/axis.py +25 -16
  170. {glplot-0.1.2 → glplot-0.1.3}/glplot/managers/effects.py +28 -10
  171. {glplot-0.1.2 → glplot-0.1.3}/glplot/managers/hud.py +391 -136
  172. {glplot-0.1.2 → glplot-0.1.3}/glplot/managers/hud_state.py +26 -13
  173. {glplot-0.1.2 → glplot-0.1.3}/glplot/managers/picking.py +67 -35
  174. {glplot-0.1.2 → glplot-0.1.3}/glplot/managers/renderer_manager.py +82 -40
  175. {glplot-0.1.2 → glplot-0.1.3}/glplot/options.py +42 -19
  176. {glplot-0.1.2 → glplot-0.1.3}/glplot/policy.py +24 -9
  177. glplot-0.1.3/glplot/pyplot.py +2349 -0
  178. {glplot-0.1.2 → glplot-0.1.3}/glplot/renderers/axis.py +32 -17
  179. {glplot-0.1.2 → glplot-0.1.3}/glplot/renderers/base.py +6 -0
  180. {glplot-0.1.2 → glplot-0.1.3}/glplot/renderers/density.py +27 -15
  181. {glplot-0.1.2 → glplot-0.1.3}/glplot/renderers/exact.py +14 -4
  182. glplot-0.1.3/glplot/renderers/geometry3d.py +223 -0
  183. {glplot-0.1.2 → glplot-0.1.3}/glplot/renderers/interaction.py +7 -3
  184. {glplot-0.1.2 → glplot-0.1.3}/glplot/renderers/line_family.py +23 -23
  185. {glplot-0.1.2 → glplot-0.1.3}/glplot/renderers/patch.py +35 -21
  186. {glplot-0.1.2 → glplot-0.1.3}/glplot/renderers/polyline.py +32 -32
  187. {glplot-0.1.2 → glplot-0.1.3}/glplot/renderers/scatter.py +152 -29
  188. {glplot-0.1.2 → glplot-0.1.3}/glplot/renderers/text.py +11 -7
  189. {glplot-0.1.2 → glplot-0.1.3}/glplot/utils/export.py +37 -16
  190. {glplot-0.1.2 → glplot-0.1.3}/glplot/utils/gl_utils.py +12 -6
  191. {glplot-0.1.2 → glplot-0.1.3}/glplot/utils/mpl_bridge.py +11 -8
  192. glplot-0.1.3/glplot/utils/preview.py +346 -0
  193. {glplot-0.1.2 → glplot-0.1.3}/glplot/utils/shaders.py +224 -64
  194. glplot-0.1.3/paper.md +112 -0
  195. {glplot-0.1.2 → glplot-0.1.3}/pyproject.toml +1 -1
  196. {glplot-0.1.2 → glplot-0.1.3}/scratch/check_gl_limits.py +8 -6
  197. {glplot-0.1.2 → glplot-0.1.3}/scratch/diag_view.py +16 -10
  198. {glplot-0.1.2 → glplot-0.1.3}/scratch/smoke_test.py +5 -3
  199. {glplot-0.1.2 → glplot-0.1.3}/scratch/test_asymmetric_projection.py +22 -16
  200. {glplot-0.1.2 → glplot-0.1.3}/scratch/test_autoscale_all.py +13 -11
  201. {glplot-0.1.2 → glplot-0.1.3}/scratch/test_modular_export.py +9 -7
  202. glplot-0.1.3/tests/test_api_consistency.py +294 -0
  203. {glplot-0.1.2 → glplot-0.1.3}/tests/test_camera_anisotropy.py +44 -33
  204. glplot-0.1.3/tests/test_camera_projections.py +181 -0
  205. glplot-0.1.3/tests/test_edge_cases.py +281 -0
  206. glplot-0.1.3/tests/test_engine.py +78 -0
  207. glplot-0.1.3/tests/test_export.py +187 -0
  208. glplot-0.1.3/tests/test_gallery_integration.py +50 -0
  209. glplot-0.1.3/tests/test_geometry3d.py +114 -0
  210. glplot-0.1.3/tests/test_performance_benchmarks.py +299 -0
  211. glplot-0.1.3/tests/test_pyplot.py +231 -0
  212. glplot-0.1.3/tests/test_regression.py +334 -0
  213. glplot-0.1.3/tests/test_robustness.py +411 -0
  214. {glplot-0.1.2 → glplot-0.1.3}/tests/verify_blending_extension.py +13 -9
  215. {glplot-0.1.2 → glplot-0.1.3}/tests/verify_phase4.py +7 -5
  216. {glplot-0.1.2 → glplot-0.1.3}/tests/verify_phase5_density.py +8 -6
  217. glplot-0.1.3/tools/README.md +176 -0
  218. glplot-0.1.3/tools/check_gl_capabilities.py +106 -0
  219. glplot-0.1.3/tools/diagnose_camera_state.py +125 -0
  220. glplot-0.1.3/tools/validate_runtime_math.py +125 -0
  221. glplot-0.1.2/.coverage +0 -0
  222. glplot-0.1.2/.gitignore +0 -1
  223. glplot-0.1.2/.vscode/settings.json +0 -11
  224. glplot-0.1.2/PKG-INFO +0 -98
  225. glplot-0.1.2/README.md +0 -55
  226. glplot-0.1.2/glplot/__init__.py +0 -6
  227. glplot-0.1.2/glplot/pyplot.py +0 -750
  228. glplot-0.1.2/imgui.ini +0 -60
  229. glplot-0.1.2/scratch/check_imgui.py +0 -6
  230. glplot-0.1.2/scratch/check_import.py +0 -8
  231. glplot-0.1.2/tests/test_backend.py +0 -153
  232. glplot-0.1.2/tests/test_pyplot.py +0 -84
  233. {glplot-0.1.2 → glplot-0.1.3}/LICENSE +0 -0
  234. {glplot-0.1.2 → glplot-0.1.3}/glplot/core/__init__.py +0 -0
  235. {glplot-0.1.2 → glplot-0.1.3}/glplot/managers/__init__.py +0 -0
  236. {glplot-0.1.2 → glplot-0.1.3}/glplot/renderers/__init__.py +0 -0
  237. {glplot-0.1.2 → glplot-0.1.3}/glplot/scratch/__init__.py +0 -0
  238. {glplot-0.1.2 → glplot-0.1.3}/glplot/utils/__init__.py +0 -0
  239. {glplot-0.1.2 → glplot-0.1.3}/scratch/check_runtime_math.py +0 -0
  240. {glplot-0.1.2 → glplot-0.1.3}/tests/verify_density.py +0 -0
  241. {glplot-0.1.2 → glplot-0.1.3}/tests/verify_headless.py +0 -0
@@ -0,0 +1,107 @@
1
+ # GLPlot Claude Skills and Agents Manifest
2
+
3
+ This directory contains Claude AI skills and custom agents for GLPlot development, testing, and documentation.
4
+
5
+ ## Available Agents
6
+
7
+ ### Test and Quality Assurance
8
+
9
+ - **glplot-test-runner** - Run and analyze the comprehensive test suite
10
+ - Execute all 65+ tests with coverage reporting
11
+ - Run specific test categories (unit, API, edge cases, performance, regression)
12
+ - Generate performance benchmarks and test analysis
13
+ - Identify flaky or slow tests
14
+
15
+ - **glplot-api-analyzer** - Verify API completeness and consistency
16
+ - Audit Matplotlib API compatibility
17
+ - Check function signature consistency
18
+ - Verify docstring completeness
19
+ - Identify missing features and gaps
20
+
21
+ ### Performance and Optimization
22
+
23
+ - **glplot-performance-profiler** - Profile and optimize performance
24
+ - Run comprehensive benchmarks (1k to 1M data points)
25
+ - Identify performance bottlenecks
26
+ - Analyze scaling behavior
27
+ - Compare performance vs. Matplotlib, Plotly, VisPy
28
+
29
+ ### Documentation and Publishing
30
+
31
+ - **glplot-documentation-auditor** - Audit and improve documentation
32
+ - Check documentation completeness
33
+ - Verify docstring coverage
34
+ - Analyze example distribution
35
+ - Validate scientific accuracy
36
+ - Prepare publication materials
37
+
38
+ - **glplot-release-manager** - Manage releases and versioning
39
+ - Pre-release checklist automation
40
+ - Version management and semver
41
+ - Changelog and release notes generation
42
+ - Publication workflow (Zenodo, PyPI, journals)
43
+
44
+ ### Support and Bug Tracking
45
+
46
+ - **glplot-bug-reporter** - Help report and track issues
47
+ - Analyze error messages
48
+ - Generate minimal reproducible examples
49
+ - Classify and prioritize issues
50
+ - Detect regressions
51
+ - Suggest workarounds
52
+
53
+ ## Usage
54
+
55
+ ### Invoke a skill from Claude Code:
56
+
57
+ ```bash
58
+ /glplot-test-runner
59
+ ```
60
+
61
+ ### Example tasks:
62
+
63
+ - "Run all tests and generate coverage report" → `/glplot-test-runner`
64
+ - "Audit API for Matplotlib compatibility" → `/glplot-api-analyzer`
65
+ - "Profile performance bottlenecks" → `/glplot-performance-profiler`
66
+ - "Prepare version 0.2.0 release" → `/glplot-release-manager`
67
+ - "Help me report this bug" → `/glplot-bug-reporter`
68
+
69
+ ## Integration with Testing
70
+
71
+ The test suite includes:
72
+ - **test_api_consistency.py** - 40+ tests for API compliance
73
+ - **test_edge_cases.py** - 30+ tests for boundary conditions
74
+ - **test_performance_benchmarks.py** - 20+ performance tests
75
+ - **test_regression.py** - 50+ regression tests
76
+
77
+ Total: 130+ tests covering unit, integration, performance, and regression scenarios.
78
+
79
+ ## File Structure
80
+
81
+ ```
82
+ .claude/
83
+ ├── MANIFEST.md (this file)
84
+ └── agents/
85
+ ├── glplot-test-runner.md
86
+ ├── glplot-api-analyzer.md
87
+ ├── glplot-performance-profiler.md
88
+ ├── glplot-documentation-auditor.md
89
+ ├── glplot-release-manager.md
90
+ └── glplot-bug-reporter.md
91
+ ```
92
+
93
+ ## Contributing
94
+
95
+ When adding new skills:
96
+ 1. Create a new `.md` file in `.claude/agents/`
97
+ 2. Follow the skill template format
98
+ 3. Document capabilities and functions
99
+ 4. Include usage examples
100
+ 5. List integration points
101
+ 6. Update this MANIFEST.md
102
+
103
+ ## See Also
104
+
105
+ - [CONTRIBUTING.md](../../CONTRIBUTING.md) - Contribution guidelines
106
+ - [PUBLICATION_CHECKLIST.md](../../PUBLICATION_CHECKLIST.md) - Publication requirements
107
+ - [tests/](../../tests/) - Complete test suite documentation
@@ -0,0 +1,67 @@
1
+ ---
2
+ name: glplot-api-analyzer
3
+ type: agent
4
+ description: Analyze and verify GLPlot API for consistency and completeness
5
+ ---
6
+
7
+ # GLPlot API Analyzer Agent
8
+
9
+ ## Capabilities
10
+
11
+ Specializes in analyzing GLPlot's public API for consistency, completeness, and Matplotlib compatibility.
12
+
13
+ ## Functions
14
+
15
+ ### API Completeness Check
16
+ - Identifies missing public functions compared to Matplotlib
17
+ - Lists implemented vs. planned features
18
+ - Reports API gaps and coverage
19
+ - Suggests priority improvements
20
+
21
+ ### Consistency Analysis
22
+ - Verifies parameter naming conventions
23
+ - Checks function signatures match Matplotlib
24
+ - Identifies inconsistent behavior
25
+ - Reports deviation from conventions
26
+
27
+ ### Documentation Review
28
+ - Audits docstring coverage
29
+ - Validates parameter documentation
30
+ - Checks return value documentation
31
+ - Reports missing examples
32
+
33
+ ### Matplotlib Compatibility Report
34
+ - Lists implemented Matplotlib functions
35
+ - Identifies unsupported features
36
+ - Reports workarounds and alternatives
37
+ - Suggests compatibility improvements
38
+
39
+ ## Usage
40
+
41
+ ```bash
42
+ /glplot-api-analyzer
43
+ ```
44
+
45
+ ## Example Tasks
46
+
47
+ - "Audit API for Matplotlib compatibility"
48
+ - "Check which pyplot functions are missing"
49
+ - "Verify all public functions have docstrings"
50
+ - "Analyze parameter consistency"
51
+ - "Generate API completeness report"
52
+
53
+ ## Output
54
+
55
+ Produces detailed API analysis including:
56
+ - Completeness percentage
57
+ - Compatibility assessment
58
+ - Documentation coverage
59
+ - Specific gaps and recommendations
60
+ - Priority action items
61
+
62
+ ## Integration
63
+
64
+ Works with:
65
+ - Test suite for behavioral verification
66
+ - Documentation generator
67
+ - Release preparation checklist
@@ -0,0 +1,83 @@
1
+ ---
2
+ name: glplot-bug-reporter
3
+ type: agent
4
+ description: Help users report bugs and issues with detailed reproduction steps
5
+ ---
6
+
7
+ # GLPlot Bug Reporter Agent
8
+
9
+ ## Capabilities
10
+
11
+ Specializes in bug reporting, issue triage, and reproduction verification.
12
+
13
+ ## Functions
14
+
15
+ ### Issue Analysis
16
+ - Analyzes error messages and stack traces
17
+ - Identifies bug patterns
18
+ - Classifies issue severity
19
+ - Suggests potential causes
20
+ - Recommends workarounds
21
+
22
+ ### Reproduction Steps Creation
23
+ - Generates minimal reproducible examples
24
+ - Creates test cases
25
+ - Documents environment details
26
+ - Captures error conditions
27
+ - Verifies reproducibility
28
+
29
+ ### Issue Triage
30
+ - Categorizes bugs (rendering, performance, API, etc.)
31
+ - Assesses severity and impact
32
+ - Prioritizes based on frequency
33
+ - Identifies duplicates
34
+ - Suggests related issues
35
+
36
+ ### Regression Detection
37
+ - Checks if bug in previous versions
38
+ - Identifies when bug was introduced
39
+ - Links to related commits
40
+ - Suggests potential fixes
41
+ - Recommends test coverage
42
+
43
+ ## Usage
44
+
45
+ ```bash
46
+ /glplot-bug-reporter
47
+ ```
48
+
49
+ ## Example Tasks
50
+
51
+ - "Help me report this bug with details"
52
+ - "Generate a minimal reproducible example"
53
+ - "Analyze this error message"
54
+ - "Check if this is a regression"
55
+ - "Create issue report template"
56
+
57
+ ## Output
58
+
59
+ Produces issue materials including:
60
+ - Detailed bug description
61
+ - Minimal reproducible code
62
+ - Expected vs. actual behavior
63
+ - Environment information
64
+ - Potential causes
65
+ - Suggested workarounds
66
+
67
+ ## Issue Template
68
+
69
+ Reports include:
70
+ - Bug title and description
71
+ - Python/OS version info
72
+ - GLPlot version
73
+ - Minimal reproducible code
74
+ - Error traceback
75
+ - Environment details
76
+ - Screenshots (if applicable)
77
+
78
+ ## Integration
79
+
80
+ Works with:
81
+ - GitHub issues
82
+ - Test suite for verification
83
+ - Release notes for fixes
@@ -0,0 +1,80 @@
1
+ ---
2
+ name: glplot-documentation-auditor
3
+ type: agent
4
+ description: Audit and improve GLPlot documentation completeness and quality
5
+ ---
6
+
7
+ # GLPlot Documentation Auditor Agent
8
+
9
+ ## Capabilities
10
+
11
+ Specializes in auditing, analyzing, and improving documentation quality.
12
+
13
+ ## Functions
14
+
15
+ ### Documentation Completeness Audit
16
+ - Checks all public modules have overview
17
+ - Verifies all functions have docstrings
18
+ - Validates parameter documentation
19
+ - Reports return value documentation
20
+ - Identifies undocumented features
21
+
22
+ ### Example Coverage Analysis
23
+ - Audits example count by feature
24
+ - Verifies gallery examples work
25
+ - Checks README examples are current
26
+ - Reports missing use case examples
27
+ - Suggests example improvements
28
+
29
+ ### Scientific Documentation Review
30
+ - Validates mathematical formulations
31
+ - Checks algorithmic descriptions
32
+ - Reviews technical specifications
33
+ - Verifies scientific accuracy
34
+ - Reports documentation gaps
35
+
36
+ ### Publication Readiness Check
37
+ - Verifies paper.md completeness
38
+ - Checks CITATION.cff validity
39
+ - Validates README structure
40
+ - Verifies API documentation
41
+ - Reports publication gaps
42
+
43
+ ## Usage
44
+
45
+ ```bash
46
+ /glplot-documentation-auditor
47
+ ```
48
+
49
+ ## Example Tasks
50
+
51
+ - "Audit documentation completeness"
52
+ - "Check which functions lack docstrings"
53
+ - "Verify all parameters are documented"
54
+ - "Analyze example coverage"
55
+ - "Generate documentation improvement plan"
56
+
57
+ ## Output
58
+
59
+ Produces documentation audit including:
60
+ - Completeness percentage by category
61
+ - Specific gaps and missing items
62
+ - Priority improvements list
63
+ - Coverage by module
64
+ - Example distribution analysis
65
+
66
+ ## Standards Checked
67
+
68
+ - PEP 257 docstring conventions
69
+ - Matplotlib API alignment
70
+ - Parameter completeness
71
+ - Return value documentation
72
+ - Usage examples per function
73
+ - Type hint coverage
74
+
75
+ ## Integration
76
+
77
+ Works with:
78
+ - Test suite for example verification
79
+ - Publication checklist
80
+ - Release notes generation
@@ -0,0 +1,76 @@
1
+ ---
2
+ name: glplot-performance-profiler
3
+ type: agent
4
+ description: Profile and optimize GLPlot performance, identify bottlenecks
5
+ ---
6
+
7
+ # GLPlot Performance Profiler Agent
8
+
9
+ ## Capabilities
10
+
11
+ Specializes in profiling, benchmarking, and optimizing GLPlot performance.
12
+
13
+ ## Functions
14
+
15
+ ### Benchmark Suite Execution
16
+ - Runs standardized performance benchmarks
17
+ - Tests with various data sizes (1k to 1M points)
18
+ - Measures rendering time and GPU usage
19
+ - Reports throughput and efficiency metrics
20
+
21
+ ### Bottleneck Identification
22
+ - Profiles CPU usage during operations
23
+ - Identifies slow code paths
24
+ - Reports memory allocation patterns
25
+ - Suggests optimization opportunities
26
+
27
+ ### Scaling Analysis
28
+ - Tests linear vs. superlinear scaling
29
+ - Analyzes performance with dataset size
30
+ - Reports performance degradation points
31
+ - Recommends scaling improvements
32
+
33
+ ### Comparative Benchmarking
34
+ - Compares GLPlot performance vs. alternatives
35
+ - Benchmarks against Matplotlib, Plotly, VisPy
36
+ - Reports relative strengths and weaknesses
37
+ - Generates performance comparison reports
38
+
39
+ ## Usage
40
+
41
+ ```bash
42
+ /glplot-performance-profiler
43
+ ```
44
+
45
+ ## Example Tasks
46
+
47
+ - "Run performance benchmarks on all operations"
48
+ - "Find performance bottlenecks in rendering"
49
+ - "Analyze scaling behavior with increasing data"
50
+ - "Compare performance vs. Matplotlib"
51
+ - "Generate performance optimization report"
52
+
53
+ ## Output
54
+
55
+ Produces performance analysis including:
56
+ - Benchmark results with timing
57
+ - Throughput metrics (points/second)
58
+ - Memory usage patterns
59
+ - GPU efficiency metrics
60
+ - Specific optimization recommendations
61
+
62
+ ## Metrics Tracked
63
+
64
+ - Plotting latency
65
+ - Rendering FPS
66
+ - Memory peak usage
67
+ - GPU utilization
68
+ - Scaling efficiency
69
+ - Dataset throughput
70
+
71
+ ## Integration
72
+
73
+ Works with:
74
+ - Test suite for regression detection
75
+ - Documentation for performance claims
76
+ - Release notes for performance metrics
@@ -0,0 +1,80 @@
1
+ ---
2
+ name: glplot-release-manager
3
+ type: agent
4
+ description: Manage GLPlot releases, versioning, and publication workflow
5
+ ---
6
+
7
+ # GLPlot Release Manager Agent
8
+
9
+ ## Capabilities
10
+
11
+ Specializes in managing releases, versioning, and publication preparation.
12
+
13
+ ## Functions
14
+
15
+ ### Pre-Release Checklist
16
+ - Verifies all tests pass
17
+ - Checks documentation completeness
18
+ - Validates CHANGELOG entries
19
+ - Confirms version consistency
20
+ - Reviews publication requirements
21
+
22
+ ### Version Management
23
+ - Suggests appropriate version bumps (semver)
24
+ - Updates version strings
25
+ - Generates CHANGELOG entries
26
+ - Creates release notes
27
+ - Tags releases in git
28
+
29
+ ### Publication Preparation
30
+ - Prepares journal submission materials
31
+ - Generates DOI metadata
32
+ - Creates Zenodo-ready archives
33
+ - Verifies PyPI requirements
34
+ - Checks license compliance
35
+
36
+ ### Release Workflow
37
+ - Automates commit generation
38
+ - Creates GitHub releases
39
+ - Uploads to PyPI
40
+ - Archives to Zenodo
41
+ - Updates documentation
42
+
43
+ ## Usage
44
+
45
+ ```bash
46
+ /glplot-release-manager
47
+ ```
48
+
49
+ ## Example Tasks
50
+
51
+ - "Prepare version 0.2.0 release"
52
+ - "Generate release notes for current changes"
53
+ - "Check pre-release requirements"
54
+ - "Create changelog entry"
55
+ - "Prepare paper submission package"
56
+
57
+ ## Output
58
+
59
+ Produces release materials including:
60
+ - Release notes and CHANGELOG
61
+ - Version-updated files
62
+ - Git tags and commits
63
+ - Publication checklist
64
+ - Zenodo/DOI metadata
65
+
66
+ ## Standards Applied
67
+
68
+ - Semantic Versioning (semver)
69
+ - Conventional Commits
70
+ - SoftwareX publication standards
71
+ - Zenodo archival requirements
72
+ - PyPI packaging standards
73
+
74
+ ## Integration
75
+
76
+ Works with:
77
+ - Publication checklist
78
+ - GitHub releases
79
+ - Zenodo archival
80
+ - PyPI package registry
@@ -0,0 +1,57 @@
1
+ ---
2
+ name: glplot-test-runner
3
+ type: agent
4
+ description: Run and analyze GLPlot test suite with comprehensive reporting
5
+ ---
6
+
7
+ # GLPlot Test Runner Agent
8
+
9
+ ## Capabilities
10
+
11
+ This agent specializes in running, analyzing, and reporting on the GLPlot test suite.
12
+
13
+ ## Functions
14
+
15
+ ### Run All Tests
16
+ Executes the complete test suite with coverage reporting:
17
+ - Runs all 65+ tests across all modules
18
+ - Generates HTML coverage reports
19
+ - Identifies flaky or slow tests
20
+ - Reports test performance metrics
21
+
22
+ ### Run Specific Test Categories
23
+ - **Unit Tests**: Core functionality tests
24
+ - **API Tests**: Matplotlib API compatibility
25
+ - **Edge Case Tests**: Boundary condition handling
26
+ - **Performance Tests**: Scaling and benchmarks
27
+ - **Regression Tests**: Previously fixed bug verification
28
+
29
+ ### Generate Test Reports
30
+ Creates detailed test analysis including:
31
+ - Test coverage by module
32
+ - Performance benchmarks
33
+ - Failed test diagnosis
34
+ - Coverage gaps and recommendations
35
+
36
+ ## Usage
37
+
38
+ ```bash
39
+ /glplot-test-runner
40
+ ```
41
+
42
+ ## Example Tasks
43
+
44
+ - "Run all tests and generate coverage report"
45
+ - "Find slow tests in the test suite"
46
+ - "Check test coverage for pyplot module"
47
+ - "Run regression tests to verify bug fixes"
48
+ - "Benchmark performance on large datasets"
49
+
50
+ ## Output
51
+
52
+ Produces structured test reports with:
53
+ - Test pass/fail status
54
+ - Execution times
55
+ - Coverage percentages
56
+ - Performance metrics
57
+ - Recommended improvements
@@ -0,0 +1,36 @@
1
+ {
2
+ "permissions": {
3
+ "allow": [
4
+ "Bash(python -m pytest --collect-only)",
5
+ "Bash(git add *)",
6
+ "Bash(git commit -m ' *)",
7
+ "Bash(git rm *)",
8
+ "Bash(mkdir -p /Users/dimitry/Documents/Code/GLPlot/.claude/agents)",
9
+ "Bash(python -m pytest tests/ --collect-only -q)",
10
+ "Bash(python -m pytest tests/test_api_consistency.py -v --tb=short)",
11
+ "Bash(git push *)",
12
+ "Bash(git commit -m 'docs: remove phase diagrams references from README *)",
13
+ "Bash(cat)",
14
+ "Read(//tmp/**)",
15
+ "Bash(git commit -m 'docs: enhance README with stunning visuals and CI/CD showcase *)",
16
+ "Bash(git commit -m 'feat\\(examples\\): add 4 beautiful showcase examples with simple code *)",
17
+ "Bash(python -c \"import glplot.pyplot as gplt; fig = gplt.figure\\(\\); print\\(dir\\(fig\\)\\)\")",
18
+ "Bash(python -m pytest tests/test_api_consistency.py -v --tb=no)",
19
+ "Bash(python -m pytest tests/ -q --tb=no)",
20
+ "Bash(python -m pytest tests/ --co -q)",
21
+ "Bash(git commit -m 'fix: align tests with actual GLPlot API *)",
22
+ "Bash(python -m pytest tests/test_camera_projections.py::TestAsymmetricProjection::test_screen_to_world_center -v)",
23
+ "Bash(python -m pytest tests/test_regression.py::TestAxisMathRegression -v)",
24
+ "Bash(python -m pytest tests/ -v --tb=short)",
25
+ "Bash(git checkout *)",
26
+ "Bash(python -m pytest tests/test_camera_projections.py tests/test_regression.py -v)",
27
+ "Bash(python -m black . --line-length 100)",
28
+ "Bash(pip install *)",
29
+ "Bash(git remote *)",
30
+ "Bash(git pull *)"
31
+ ],
32
+ "additionalDirectories": [
33
+ "/Users/dimitry/Documents/Code/GLPlot/.claude"
34
+ ]
35
+ }
36
+ }
@@ -0,0 +1,37 @@
1
+ name: Build
2
+
3
+ on:
4
+ push:
5
+ branches: [main]
6
+ tags: ['v*']
7
+ pull_request:
8
+ branches: [main]
9
+
10
+ jobs:
11
+ build:
12
+ runs-on: ubuntu-latest
13
+
14
+ steps:
15
+ - uses: actions/checkout@v4
16
+
17
+ - name: Set up Python
18
+ uses: actions/setup-python@v4
19
+ with:
20
+ python-version: '3.12'
21
+
22
+ - name: Install build dependencies
23
+ run: |
24
+ python -m pip install --upgrade pip
25
+ pip install build twine
26
+
27
+ - name: Build distribution
28
+ run: python -m build
29
+
30
+ - name: Check distribution
31
+ run: twine check dist/*
32
+
33
+ - name: Upload artifacts
34
+ uses: actions/upload-artifact@v4
35
+ with:
36
+ name: dist
37
+ path: dist/
@@ -0,0 +1,33 @@
1
+ name: Lint
2
+
3
+ on:
4
+ push:
5
+ branches: [main, develop]
6
+ pull_request:
7
+ branches: [main, develop]
8
+
9
+ jobs:
10
+ lint:
11
+ runs-on: ubuntu-latest
12
+
13
+ steps:
14
+ - uses: actions/checkout@v4
15
+
16
+ - name: Set up Python
17
+ uses: actions/setup-python@v4
18
+ with:
19
+ python-version: '3.12'
20
+
21
+ - name: Install dependencies
22
+ run: |
23
+ python -m pip install --upgrade pip
24
+ pip install flake8 black isort
25
+
26
+ - name: Check code formatting with black
27
+ run: black --check glplot tests examples
28
+
29
+ - name: Check import sorting with isort
30
+ run: isort --check-only glplot tests examples
31
+
32
+ - name: Lint with flake8
33
+ run: flake8 glplot tests --max-line-length=100 --extend-ignore=E203,W503
@@ -0,0 +1,42 @@
1
+ name: Tests
2
+
3
+ on:
4
+ push:
5
+ branches: [main, develop]
6
+ pull_request:
7
+ branches: [main, develop]
8
+
9
+ jobs:
10
+ test:
11
+ runs-on: ${{ matrix.os }}
12
+ strategy:
13
+ fail-fast: false
14
+ matrix:
15
+ os: [ubuntu-latest, macos-latest, windows-latest]
16
+ python-version: ['3.9', '3.10', '3.11', '3.12']
17
+
18
+ steps:
19
+ - uses: actions/checkout@v4
20
+
21
+ - name: Set up Python ${{ matrix.python-version }}
22
+ uses: actions/setup-python@v4
23
+ with:
24
+ python-version: ${{ matrix.python-version }}
25
+
26
+ - name: Install dependencies
27
+ run: |
28
+ python -m pip install --upgrade pip
29
+ pip install -e ".[test]"
30
+
31
+ - name: Run tests with coverage
32
+ run: |
33
+ pytest --cov=glplot --cov-report=term-missing --cov-report=xml
34
+
35
+ - name: Upload coverage to Codecov
36
+ if: matrix.os == 'ubuntu-latest' && matrix.python-version == '3.12'
37
+ uses: codecov/codecov-action@v3
38
+ with:
39
+ files: ./coverage.xml
40
+ flags: unittests
41
+ name: codecov-umbrella
42
+ fail_ci_if_error: false