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.
- glplot-0.1.3/.claude/MANIFEST.md +107 -0
- glplot-0.1.3/.claude/agents/glplot-api-analyzer.md +67 -0
- glplot-0.1.3/.claude/agents/glplot-bug-reporter.md +83 -0
- glplot-0.1.3/.claude/agents/glplot-documentation-auditor.md +80 -0
- glplot-0.1.3/.claude/agents/glplot-performance-profiler.md +76 -0
- glplot-0.1.3/.claude/agents/glplot-release-manager.md +80 -0
- glplot-0.1.3/.claude/agents/glplot-test-runner.md +57 -0
- glplot-0.1.3/.claude/settings.local.json +36 -0
- glplot-0.1.3/.github/workflows/build.yml +37 -0
- glplot-0.1.3/.github/workflows/lint.yml +33 -0
- glplot-0.1.3/.github/workflows/tests.yml +42 -0
- glplot-0.1.3/.gitignore +64 -0
- glplot-0.1.3/.gitlab-ci.yml +120 -0
- glplot-0.1.3/CITATION.cff +46 -0
- glplot-0.1.3/CODE_OF_CONDUCT.md +47 -0
- glplot-0.1.3/CONTRIBUTING.md +98 -0
- glplot-0.1.3/GLPlot_Architecture_and_Mathematical_Formulation.md +260 -0
- glplot-0.1.3/PKG-INFO +419 -0
- glplot-0.1.3/PUBLICATION_CHECKLIST.md +103 -0
- glplot-0.1.3/README.md +376 -0
- glplot-0.1.3/examples/benchmark/01_line_density.py +261 -0
- glplot-0.1.3/examples/benchmark/02_gpu_comparison.py +633 -0
- glplot-0.1.3/examples/benchmark/03_density_quality_comparison.py +219 -0
- glplot-0.1.3/examples/benchmark/04_hvplot_datashader_interactive.py +83 -0
- glplot-0.1.3/examples/benchmark/05_pipeline_diagram.py +499 -0
- glplot-0.1.3/examples/benchmark/results/datashader_density_1000.png +0 -0
- glplot-0.1.3/examples/benchmark/results/datashader_density_10000.png +0 -0
- glplot-0.1.3/examples/benchmark/results/datashader_density_100000.png +0 -0
- glplot-0.1.3/examples/benchmark/results/datashader_density_1000000.png +0 -0
- glplot-0.1.3/examples/benchmark/results/datashader_density_10000000.png +0 -0
- glplot-0.1.3/examples/benchmark/results/density_quality_comparison.png +0 -0
- glplot-0.1.3/examples/benchmark/results/density_quality_fastplotlib.png +0 -0
- glplot-0.1.3/examples/benchmark/results/density_quality_glplot.png +0 -0
- glplot-0.1.3/examples/benchmark/results/density_quality_vispy.png +0 -0
- glplot-0.1.3/examples/benchmark/results/fastplotlib_gpu_lines_10.png +0 -0
- glplot-0.1.3/examples/benchmark/results/fastplotlib_gpu_lines_100.png +0 -0
- glplot-0.1.3/examples/benchmark/results/fastplotlib_gpu_lines_1000.png +0 -0
- glplot-0.1.3/examples/benchmark/results/fastplotlib_gpu_lines_10000.png +0 -0
- glplot-0.1.3/examples/benchmark/results/fastplotlib_gpu_lines_100000.png +0 -0
- glplot-0.1.3/examples/benchmark/results/fastplotlib_gpu_lines_1000000.png +0 -0
- glplot-0.1.3/examples/benchmark/results/fastplotlib_gpu_lines_10000000.png +0 -0
- glplot-0.1.3/examples/benchmark/results/glplot_density_10.png +0 -0
- glplot-0.1.3/examples/benchmark/results/glplot_density_100.png +0 -0
- glplot-0.1.3/examples/benchmark/results/glplot_density_1000.png +0 -0
- glplot-0.1.3/examples/benchmark/results/glplot_density_10000.png +0 -0
- glplot-0.1.3/examples/benchmark/results/glplot_density_100000.png +0 -0
- glplot-0.1.3/examples/benchmark/results/glplot_density_1000000.png +0 -0
- glplot-0.1.3/examples/benchmark/results/glplot_gpu_density_10.png +0 -0
- glplot-0.1.3/examples/benchmark/results/glplot_gpu_density_100.png +0 -0
- glplot-0.1.3/examples/benchmark/results/glplot_gpu_density_1000.png +0 -0
- glplot-0.1.3/examples/benchmark/results/glplot_gpu_density_10000.png +0 -0
- glplot-0.1.3/examples/benchmark/results/glplot_gpu_density_100000.png +0 -0
- glplot-0.1.3/examples/benchmark/results/glplot_gpu_density_1000000.png +0 -0
- glplot-0.1.3/examples/benchmark/results/glplot_gpu_density_10000000.png +0 -0
- glplot-0.1.3/examples/benchmark/results/glplot_gpu_density_100000000.png +0 -0
- glplot-0.1.3/examples/benchmark/results/glplot_gpu_exact_10.png +0 -0
- glplot-0.1.3/examples/benchmark/results/glplot_gpu_exact_100.png +0 -0
- glplot-0.1.3/examples/benchmark/results/glplot_gpu_exact_1000.png +0 -0
- glplot-0.1.3/examples/benchmark/results/glplot_gpu_exact_10000.png +0 -0
- glplot-0.1.3/examples/benchmark/results/glplot_gpu_exact_100000.png +0 -0
- glplot-0.1.3/examples/benchmark/results/glplot_gpu_exact_1000000.png +0 -0
- glplot-0.1.3/examples/benchmark/results/glplot_gpu_exact_10000000.png +0 -0
- glplot-0.1.3/examples/benchmark/results/glplot_gpu_exact_100000000.png +0 -0
- glplot-0.1.3/examples/benchmark/results/glplot_pipeline_diagram.png +0 -0
- glplot-0.1.3/examples/benchmark/results/gpu_comparison_benchmark_results.png +0 -0
- glplot-0.1.3/examples/benchmark/results/hvplot_density_1000.png +0 -0
- glplot-0.1.3/examples/benchmark/results/hvplot_density_10000.png +0 -0
- glplot-0.1.3/examples/benchmark/results/hvplot_density_100000.png +0 -0
- glplot-0.1.3/examples/benchmark/results/hvplot_density_1000000.png +0 -0
- glplot-0.1.3/examples/benchmark/results/hvplot_density_10000000.png +0 -0
- glplot-0.1.3/examples/benchmark/results/hvplot_lines_1000.png +0 -0
- glplot-0.1.3/examples/benchmark/results/hvplot_lines_10000.png +0 -0
- glplot-0.1.3/examples/benchmark/results/hvplot_lines_100000.png +0 -0
- glplot-0.1.3/examples/benchmark/results/line_density_benchmark_results.png +0 -0
- glplot-0.1.3/examples/benchmark/results/matplotlib_density_10.png +0 -0
- glplot-0.1.3/examples/benchmark/results/matplotlib_density_100.png +0 -0
- glplot-0.1.3/examples/benchmark/results/matplotlib_density_1000.png +0 -0
- glplot-0.1.3/examples/benchmark/results/matplotlib_density_10000.png +0 -0
- glplot-0.1.3/examples/benchmark/results/matplotlib_density_100000.png +0 -0
- glplot-0.1.3/examples/benchmark/results/matplotlib_density_1000000.png +0 -0
- glplot-0.1.3/examples/benchmark/results/matplotlib_lines_10.png +0 -0
- glplot-0.1.3/examples/benchmark/results/matplotlib_lines_100.png +0 -0
- glplot-0.1.3/examples/benchmark/results/matplotlib_lines_1000.png +0 -0
- glplot-0.1.3/examples/benchmark/results/matplotlib_lines_10000.png +0 -0
- glplot-0.1.3/examples/benchmark/results/matplotlib_lines_100000.png +0 -0
- glplot-0.1.3/examples/benchmark/results/vispy_gpu_lines_10.png +0 -0
- glplot-0.1.3/examples/benchmark/results/vispy_gpu_lines_100.png +0 -0
- glplot-0.1.3/examples/benchmark/results/vispy_gpu_lines_1000.png +0 -0
- glplot-0.1.3/examples/benchmark/results/vispy_gpu_lines_10000.png +0 -0
- glplot-0.1.3/examples/benchmark/results/vispy_gpu_lines_100000.png +0 -0
- glplot-0.1.3/examples/benchmark/results/vispy_gpu_lines_1000000.png +0 -0
- glplot-0.1.3/examples/benchmark/results/vispy_gpu_lines_10000000.png +0 -0
- glplot-0.1.3/examples/benchmark/vispy_interactive.py +58 -0
- glplot-0.1.3/examples/dataflow.png +0 -0
- {glplot-0.1.2 → glplot-0.1.3}/examples/ex_aspect_ratio_fix.py +17 -14
- {glplot-0.1.2 → glplot-0.1.3}/examples/ex_density.py +16 -10
- {glplot-0.1.2 → glplot-0.1.3}/examples/ex_density_gain.py +6 -4
- {glplot-0.1.2 → glplot-0.1.3}/examples/ex_expert_performance.py +8 -10
- {glplot-0.1.2 → glplot-0.1.3}/examples/ex_full_showcase.py +31 -26
- {glplot-0.1.2 → glplot-0.1.3}/examples/ex_mpl_bridge.py +17 -12
- {glplot-0.1.2 → glplot-0.1.3}/examples/ex_read_density.py +9 -7
- {glplot-0.1.2 → glplot-0.1.3}/examples/ex_scatter.py +24 -17
- {glplot-0.1.2 → glplot-0.1.3}/examples/ex_simple.py +4 -2
- {glplot-0.1.2 → glplot-0.1.3}/examples/ex_v2_layers.py +14 -12
- {glplot-0.1.2 → glplot-0.1.3}/examples/ex_viewports.py +11 -7
- glplot-0.1.3/examples/gallery/.gitignore +1 -0
- glplot-0.1.3/examples/gallery/01_line_plot.py +24 -0
- glplot-0.1.3/examples/gallery/02_scatter_fill.py +26 -0
- glplot-0.1.3/examples/gallery/03_bar_hist.py +54 -0
- glplot-0.1.3/examples/gallery/04_line_family_density.py +31 -0
- glplot-0.1.3/examples/gallery/05_guides_and_colormap.py +32 -0
- glplot-0.1.3/examples/gallery/06_signal_tools.py +45 -0
- glplot-0.1.3/examples/gallery/07_projected_3d_cloud.py +32 -0
- glplot-0.1.3/examples/gallery/08_vector_field_quiver.py +38 -0
- glplot-0.1.3/examples/gallery/09_large_matrix_heatmap.py +20 -0
- glplot-0.1.3/examples/gallery/10_massive_hist2d_density.py +20 -0
- glplot-0.1.3/examples/gallery/11_contour_pcolormesh_field.py +31 -0
- glplot-0.1.3/examples/gallery/12_surface_wireframe_bar3d.py +59 -0
- glplot-0.1.3/examples/gallery/13_volumetric_nebula.py +47 -0
- glplot-0.1.3/examples/gallery/14_bar3d_hex_box_city.py +71 -0
- glplot-0.1.3/examples/gallery/15_vector_field_3d.py +62 -0
- glplot-0.1.3/examples/gallery/16_ssao_comparison.py +45 -0
- glplot-0.1.3/examples/gallery/17_square_bars3d.py +39 -0
- glplot-0.1.3/examples/gallery/18_hex_bars3d.py +39 -0
- glplot-0.1.3/examples/gallery/19_turbulent_vector_field_3d.py +104 -0
- glplot-0.1.3/examples/gallery/README.md +29 -0
- glplot-0.1.3/examples/gallery/_preview.py +1 -0
- glplot-0.1.3/examples/gallery/results/.cache/matplotlib/fontlist-v330.json +4714 -0
- glplot-0.1.3/examples/gallery/results/.cache/xdg/fontconfig/00d5189c1d5ced4af9bb23cbaa9b1e94-le64.cache-9 +0 -0
- glplot-0.1.3/examples/gallery/results/.cache/xdg/fontconfig/617a9c25f653a4b32dbf39ee041b0318-le64.cache-9 +0 -0
- glplot-0.1.3/examples/gallery/results/.cache/xdg/fontconfig/84c0f976e30e948e99073af70f4ae876-le64.cache-9 +0 -0
- glplot-0.1.3/examples/gallery/results/.cache/xdg/fontconfig/CACHEDIR.TAG +4 -0
- glplot-0.1.3/examples/gallery/results/.cache/xdg/fontconfig/b0a71e6bf6a8a1a908413a823d76e21f-le64.cache-9 +0 -0
- glplot-0.1.3/examples/gallery/results/.cache/xdg/fontconfig/c6cafe6b1a56ed8b739253d6df90ca6a-le64.cache-9 +0 -0
- glplot-0.1.3/examples/gallery/results/.gitignore +1 -0
- glplot-0.1.3/examples/gallery/results/01_line_plot.png +0 -0
- glplot-0.1.3/examples/gallery/results/02_scatter_fill.png +0 -0
- glplot-0.1.3/examples/gallery/results/03_bar_hist.png +0 -0
- glplot-0.1.3/examples/gallery/results/04_line_family_density.png +0 -0
- glplot-0.1.3/examples/gallery/results/05_guides_and_colormap.png +0 -0
- glplot-0.1.3/examples/gallery/results/06_signal_tools.png +0 -0
- glplot-0.1.3/examples/gallery/results/07_projected_3d_cloud.png +0 -0
- glplot-0.1.3/examples/gallery/results/08_vector_field_quiver.png +0 -0
- glplot-0.1.3/examples/gallery/results/09_large_matrix_heatmap.png +0 -0
- glplot-0.1.3/examples/gallery/results/10_massive_hist2d_density.png +0 -0
- glplot-0.1.3/examples/gallery/results/11_contour_pcolormesh_field.png +0 -0
- glplot-0.1.3/examples/gallery/results/12_surface_wireframe_bar3d.png +0 -0
- glplot-0.1.3/examples/gallery/results/13_volumetric_nebula.png +0 -0
- glplot-0.1.3/examples/gallery/results/14_bar3d_hex_box_city.png +0 -0
- glplot-0.1.3/examples/gallery/results/15_vector_field_3d.png +0 -0
- glplot-0.1.3/examples/gallery/results/16_ssao_comparison.png +0 -0
- glplot-0.1.3/examples/gallery/results/17_square_bars3d.png +0 -0
- glplot-0.1.3/examples/gallery/results/18_hex_bars3d.png +0 -0
- glplot-0.1.3/examples/gallery/results/19_turbulent_vector_field_3d.png +0 -0
- glplot-0.1.3/examples/gallery/run_gallery.py +39 -0
- glplot-0.1.3/examples/showcase/01_colorful_particles_2d.py +32 -0
- glplot-0.1.3/examples/showcase/02_mandelbrot_zoom_2d.py +49 -0
- glplot-0.1.3/examples/showcase/03_spinning_torus_3d.py +35 -0
- glplot-0.1.3/examples/showcase/04_cosmic_sphere_3d.py +44 -0
- glplot-0.1.3/examples/showcase/README.md +207 -0
- {glplot-0.1.2 → glplot-0.1.3}/examples/verify_polyline_cmap.py +7 -5
- glplot-0.1.3/glplot/__init__.py +33 -0
- {glplot-0.1.2 → glplot-0.1.3}/glplot/backend.py +4 -3
- {glplot-0.1.2 → glplot-0.1.3}/glplot/controllers.py +59 -38
- {glplot-0.1.2 → glplot-0.1.3}/glplot/core/context.py +16 -14
- {glplot-0.1.2 → glplot-0.1.3}/glplot/core/layers.py +141 -29
- {glplot-0.1.2 → glplot-0.1.3}/glplot/core/legacy.py +15 -6
- {glplot-0.1.2 → glplot-0.1.3}/glplot/engine.py +697 -199
- {glplot-0.1.2 → glplot-0.1.3}/glplot/managers/axis.py +25 -16
- {glplot-0.1.2 → glplot-0.1.3}/glplot/managers/effects.py +28 -10
- {glplot-0.1.2 → glplot-0.1.3}/glplot/managers/hud.py +391 -136
- {glplot-0.1.2 → glplot-0.1.3}/glplot/managers/hud_state.py +26 -13
- {glplot-0.1.2 → glplot-0.1.3}/glplot/managers/picking.py +67 -35
- {glplot-0.1.2 → glplot-0.1.3}/glplot/managers/renderer_manager.py +82 -40
- {glplot-0.1.2 → glplot-0.1.3}/glplot/options.py +42 -19
- {glplot-0.1.2 → glplot-0.1.3}/glplot/policy.py +24 -9
- glplot-0.1.3/glplot/pyplot.py +2349 -0
- {glplot-0.1.2 → glplot-0.1.3}/glplot/renderers/axis.py +32 -17
- {glplot-0.1.2 → glplot-0.1.3}/glplot/renderers/base.py +6 -0
- {glplot-0.1.2 → glplot-0.1.3}/glplot/renderers/density.py +27 -15
- {glplot-0.1.2 → glplot-0.1.3}/glplot/renderers/exact.py +14 -4
- glplot-0.1.3/glplot/renderers/geometry3d.py +223 -0
- {glplot-0.1.2 → glplot-0.1.3}/glplot/renderers/interaction.py +7 -3
- {glplot-0.1.2 → glplot-0.1.3}/glplot/renderers/line_family.py +23 -23
- {glplot-0.1.2 → glplot-0.1.3}/glplot/renderers/patch.py +35 -21
- {glplot-0.1.2 → glplot-0.1.3}/glplot/renderers/polyline.py +32 -32
- {glplot-0.1.2 → glplot-0.1.3}/glplot/renderers/scatter.py +152 -29
- {glplot-0.1.2 → glplot-0.1.3}/glplot/renderers/text.py +11 -7
- {glplot-0.1.2 → glplot-0.1.3}/glplot/utils/export.py +37 -16
- {glplot-0.1.2 → glplot-0.1.3}/glplot/utils/gl_utils.py +12 -6
- {glplot-0.1.2 → glplot-0.1.3}/glplot/utils/mpl_bridge.py +11 -8
- glplot-0.1.3/glplot/utils/preview.py +346 -0
- {glplot-0.1.2 → glplot-0.1.3}/glplot/utils/shaders.py +224 -64
- glplot-0.1.3/paper.md +112 -0
- {glplot-0.1.2 → glplot-0.1.3}/pyproject.toml +1 -1
- {glplot-0.1.2 → glplot-0.1.3}/scratch/check_gl_limits.py +8 -6
- {glplot-0.1.2 → glplot-0.1.3}/scratch/diag_view.py +16 -10
- {glplot-0.1.2 → glplot-0.1.3}/scratch/smoke_test.py +5 -3
- {glplot-0.1.2 → glplot-0.1.3}/scratch/test_asymmetric_projection.py +22 -16
- {glplot-0.1.2 → glplot-0.1.3}/scratch/test_autoscale_all.py +13 -11
- {glplot-0.1.2 → glplot-0.1.3}/scratch/test_modular_export.py +9 -7
- glplot-0.1.3/tests/test_api_consistency.py +294 -0
- {glplot-0.1.2 → glplot-0.1.3}/tests/test_camera_anisotropy.py +44 -33
- glplot-0.1.3/tests/test_camera_projections.py +181 -0
- glplot-0.1.3/tests/test_edge_cases.py +281 -0
- glplot-0.1.3/tests/test_engine.py +78 -0
- glplot-0.1.3/tests/test_export.py +187 -0
- glplot-0.1.3/tests/test_gallery_integration.py +50 -0
- glplot-0.1.3/tests/test_geometry3d.py +114 -0
- glplot-0.1.3/tests/test_performance_benchmarks.py +299 -0
- glplot-0.1.3/tests/test_pyplot.py +231 -0
- glplot-0.1.3/tests/test_regression.py +334 -0
- glplot-0.1.3/tests/test_robustness.py +411 -0
- {glplot-0.1.2 → glplot-0.1.3}/tests/verify_blending_extension.py +13 -9
- {glplot-0.1.2 → glplot-0.1.3}/tests/verify_phase4.py +7 -5
- {glplot-0.1.2 → glplot-0.1.3}/tests/verify_phase5_density.py +8 -6
- glplot-0.1.3/tools/README.md +176 -0
- glplot-0.1.3/tools/check_gl_capabilities.py +106 -0
- glplot-0.1.3/tools/diagnose_camera_state.py +125 -0
- glplot-0.1.3/tools/validate_runtime_math.py +125 -0
- glplot-0.1.2/.coverage +0 -0
- glplot-0.1.2/.gitignore +0 -1
- glplot-0.1.2/.vscode/settings.json +0 -11
- glplot-0.1.2/PKG-INFO +0 -98
- glplot-0.1.2/README.md +0 -55
- glplot-0.1.2/glplot/__init__.py +0 -6
- glplot-0.1.2/glplot/pyplot.py +0 -750
- glplot-0.1.2/imgui.ini +0 -60
- glplot-0.1.2/scratch/check_imgui.py +0 -6
- glplot-0.1.2/scratch/check_import.py +0 -8
- glplot-0.1.2/tests/test_backend.py +0 -153
- glplot-0.1.2/tests/test_pyplot.py +0 -84
- {glplot-0.1.2 → glplot-0.1.3}/LICENSE +0 -0
- {glplot-0.1.2 → glplot-0.1.3}/glplot/core/__init__.py +0 -0
- {glplot-0.1.2 → glplot-0.1.3}/glplot/managers/__init__.py +0 -0
- {glplot-0.1.2 → glplot-0.1.3}/glplot/renderers/__init__.py +0 -0
- {glplot-0.1.2 → glplot-0.1.3}/glplot/scratch/__init__.py +0 -0
- {glplot-0.1.2 → glplot-0.1.3}/glplot/utils/__init__.py +0 -0
- {glplot-0.1.2 → glplot-0.1.3}/scratch/check_runtime_math.py +0 -0
- {glplot-0.1.2 → glplot-0.1.3}/tests/verify_density.py +0 -0
- {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
|