solarwindpy 0.0.1.dev0__py3-none-any.whl → 0.1.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of solarwindpy might be problematic. Click here for more details.

Files changed (412) hide show
  1. plans/.velocity/metrics.json +96 -0
  2. plans/0-overview-template.md +268 -0
  3. plans/N-phase-template.md +106 -0
  4. plans/PLAN_AUDIT_SUMMARY.md +173 -0
  5. plans/TEMPLATE-USAGE-GUIDE.md +198 -0
  6. plans/__init__.py +1 -0
  7. plans/abandoned/compaction-agent-system/0-Overview.md +123 -0
  8. plans/abandoned/compaction-agent-system/agents-index-update-plan.md +109 -0
  9. plans/abandoned/compaction-agent-system/compacted_state.md +85 -0
  10. plans/abandoned/compaction-agent-system/implementation-plan.md +107 -0
  11. plans/abandoned/compaction-agent-system/system-validation-report.md +159 -0
  12. plans/abandoned/compaction-agent-system/usage-guide.md +210 -0
  13. plans/abandoned/hook-system-enhancement/0-Overview.md +214 -0
  14. plans/abandoned/hook-system-enhancement/1-Phase1-Core-Infrastructure.md +313 -0
  15. plans/abandoned/hook-system-enhancement/2-Phase2-Intelligent-Testing.md +385 -0
  16. plans/abandoned/hook-system-enhancement/3-Phase3-Physics-Validation.md +444 -0
  17. plans/abandoned/hook-system-enhancement/4-Phase4-Performance-Monitoring.md +458 -0
  18. plans/abandoned/hook-system-enhancement/5-Phase5-Developer-Experience.md +532 -0
  19. plans/abandoned/hook-system-enhancement/6-Implementation-Timeline.md +274 -0
  20. plans/abandoned/hook-system-enhancement/7-Risk-Management.md +376 -0
  21. plans/abandoned/hook-system-enhancement/8-Testing-Strategy.md +579 -0
  22. plans/abandoned/readthedocs-automation/0-Overview.md +247 -0
  23. plans/abandoned/readthedocs-automation/1-Emergency-Documentation-Fixes.md +270 -0
  24. plans/abandoned/readthedocs-automation/2-Template-System-Enhancement.md +811 -0
  25. plans/abandoned/readthedocs-automation/3-Quality-Audit-ReadTheDocs-Integration.md +844 -0
  26. plans/abandoned/readthedocs-automation/4-Plan-Consolidation-Cleanup.md +632 -0
  27. plans/abandoned/readthedocs-automation/9-Closeout.md +207 -0
  28. plans/abandoned/readthedocs-automation/ABANDONMENT_REASON.md +72 -0
  29. plans/cicd-architecture-redesign/0-Overview.md +193 -0
  30. plans/cicd-architecture-redesign/1-Workflow-Creation.md +103 -0
  31. plans/cicd-architecture-redesign/2-Version-Detection.md +123 -0
  32. plans/cicd-architecture-redesign/3-Deployment-Gates.md +169 -0
  33. plans/cicd-architecture-redesign/4-RC-Testing.md +194 -0
  34. plans/cicd-architecture-redesign/5-TestPyPI-Validation.md +264 -0
  35. plans/cicd-architecture-redesign/6-Production-Release.md +263 -0
  36. plans/cicd-architecture-redesign/7-Cleanup.md +243 -0
  37. plans/cicd-architecture-redesign/8-Documentation.md +285 -0
  38. plans/cicd-architecture-redesign/Closeout.md +225 -0
  39. plans/closeout-template.md +259 -0
  40. plans/completed/circular-import-audit/0-Overview.md +152 -0
  41. plans/completed/circular-import-audit/1-Static-Dependency-Analysis.md +62 -0
  42. plans/completed/circular-import-audit/2-Dynamic-Import-Testing.md +56 -0
  43. plans/completed/circular-import-audit/3-Performance-Impact-Assessment.md +56 -0
  44. plans/completed/circular-import-audit/4-Issue-Remediation.md +78 -0
  45. plans/completed/circular-import-audit/5-Preventive-Infrastructure.md +89 -0
  46. plans/completed/claude-settings-ecosystem-alignment/0-Overview.md +162 -0
  47. plans/completed/claude-settings-ecosystem-alignment/1-Security-Foundation.md +148 -0
  48. plans/completed/claude-settings-ecosystem-alignment/2-Hook-Integration.md +158 -0
  49. plans/completed/claude-settings-ecosystem-alignment/3-Agent-System-Integration.md +177 -0
  50. plans/completed/claude-settings-ecosystem-alignment/4-Enhanced-Workflow-Automation.md +159 -0
  51. plans/completed/claude-settings-ecosystem-alignment/5-Validation-Monitoring.md +181 -0
  52. plans/completed/claude-settings-ecosystem-alignment/compacted_session_state.md +290 -0
  53. plans/completed/combined_plan_with_checklist_documentation/1-Overview-and-Goals.md +51 -0
  54. plans/completed/combined_plan_with_checklist_documentation/2-Toolchain-and-Hosting.md +69 -0
  55. plans/completed/combined_plan_with_checklist_documentation/3-Repository-Structure.md +61 -0
  56. plans/completed/combined_plan_with_checklist_documentation/4-Configuration-and-Standards.md +70 -0
  57. plans/completed/combined_plan_with_checklist_documentation/5-Documentation-Content.md +62 -0
  58. plans/completed/combined_plan_with_checklist_documentation/6-CI-CD-and-Validation.md +58 -0
  59. plans/completed/combined_plan_with_checklist_documentation/7-Maintenance.md +55 -0
  60. plans/completed/combined_test_plan_with_checklist_fitfunctions/0-Overview.md +135 -0
  61. plans/completed/combined_test_plan_with_checklist_fitfunctions/1-Common-fixtures.md +59 -0
  62. plans/completed/combined_test_plan_with_checklist_fitfunctions/10-power_laws.md +56 -0
  63. plans/completed/combined_test_plan_with_checklist_fitfunctions/2-core.py-FitFunction.md +118 -0
  64. plans/completed/combined_test_plan_with_checklist_fitfunctions/3-gaussians.py-Gaussian-GaussianNormalized-GaussianLn.md +69 -0
  65. plans/completed/combined_test_plan_with_checklist_fitfunctions/4-trend_fits.py-TrendFit.md +99 -0
  66. plans/completed/combined_test_plan_with_checklist_fitfunctions/5-plots.py-FFPlot.md +98 -0
  67. plans/completed/combined_test_plan_with_checklist_fitfunctions/6-tex_info.py-TeXinfo.md +79 -0
  68. plans/completed/combined_test_plan_with_checklist_fitfunctions/7-Justification.md +49 -0
  69. plans/completed/combined_test_plan_with_checklist_fitfunctions/8-exponentials.md +64 -0
  70. plans/completed/combined_test_plan_with_checklist_fitfunctions/9-lines.md +58 -0
  71. plans/completed/combined_test_plan_with_checklist_plotting/0-Overview.md +142 -0
  72. plans/completed/combined_test_plan_with_checklist_plotting/1-base.py.md +90 -0
  73. plans/completed/combined_test_plan_with_checklist_plotting/10-labels-special.py.md +102 -0
  74. plans/completed/combined_test_plan_with_checklist_plotting/11-labels-chemistry.py.md +212 -0
  75. plans/completed/combined_test_plan_with_checklist_plotting/12-labels-composition.py.md +242 -0
  76. plans/completed/combined_test_plan_with_checklist_plotting/13-labels-datetime.py.md +247 -0
  77. plans/completed/combined_test_plan_with_checklist_plotting/14-labels-elemental_abundance.py.md +274 -0
  78. plans/completed/combined_test_plan_with_checklist_plotting/15-visual-validation.md +256 -0
  79. plans/completed/combined_test_plan_with_checklist_plotting/16-integration-testing.md +266 -0
  80. plans/completed/combined_test_plan_with_checklist_plotting/17-performance-benchmarks.md +267 -0
  81. plans/completed/combined_test_plan_with_checklist_plotting/18-Fixtures-and-Utilities.md +86 -0
  82. plans/completed/combined_test_plan_with_checklist_plotting/2-agg_plot.py.md +90 -0
  83. plans/completed/combined_test_plan_with_checklist_plotting/3-histograms.py.md +201 -0
  84. plans/completed/combined_test_plan_with_checklist_plotting/4-scatter.py.md +167 -0
  85. plans/completed/combined_test_plan_with_checklist_plotting/5-spiral.py.md +216 -0
  86. plans/completed/combined_test_plan_with_checklist_plotting/6-orbits.py.md +108 -0
  87. plans/completed/combined_test_plan_with_checklist_plotting/7-tools.py.md +86 -0
  88. plans/completed/combined_test_plan_with_checklist_plotting/8-select_data_from_figure.py.md +97 -0
  89. plans/completed/combined_test_plan_with_checklist_plotting/9-labels-base.py.md +88 -0
  90. plans/completed/combined_test_plan_with_checklist_solar_activity/.gitkeep +0 -0
  91. plans/completed/combined_test_plan_with_checklist_solar_activity/0-Overview.md +170 -0
  92. plans/completed/combined_test_plan_with_checklist_solar_activity/1-Package-Entry-Point-__init__.py.md +121 -0
  93. plans/completed/combined_test_plan_with_checklist_solar_activity/2-Core-Base-Classes-base.py.md +142 -0
  94. plans/completed/combined_test_plan_with_checklist_solar_activity/3-Plotting-Helpers-plots.py.md +123 -0
  95. plans/completed/combined_test_plan_with_checklist_solar_activity/4-LISIRD-Sub-package.md +119 -0
  96. plans/completed/combined_test_plan_with_checklist_solar_activity/5-Extrema-Calculator.md +103 -0
  97. plans/completed/combined_test_plan_with_checklist_solar_activity/6-Sunspot-Number-Sub-package.md +163 -0
  98. plans/completed/combined_test_plan_with_checklist_solar_activity/7-Sunspot-Number-Init.py.md +217 -0
  99. plans/completed/combined_test_plan_with_checklist_solar_activity/compacted_state.md +52 -0
  100. plans/completed/compaction-agent-modernization/0-Overview.md +156 -0
  101. plans/completed/compaction-agent-modernization/1-Architecture-Audit-Gap-Analysis.md +132 -0
  102. plans/completed/compaction-agent-modernization/2-Token-Baseline-Recalibration.md +153 -0
  103. plans/completed/compaction-agent-modernization/3-Agent-Reference-Updates.md +184 -0
  104. plans/completed/compaction-agent-modernization/4-Compression-Algorithm-Modernization.md +238 -0
  105. plans/completed/compaction-agent-modernization/5-Workflow-Integration-Streamlining.md +252 -0
  106. plans/completed/compaction-agent-modernization/6-Template-Structure-Optimization.md +240 -0
  107. plans/completed/compaction-agent-modernization/7-Integration-Testing-Validation.md +292 -0
  108. plans/completed/compaction-hook-enhancement/0-Overview.md +150 -0
  109. plans/completed/compaction-hook-enhancement/1-Token-Estimation-Enhancement.md +179 -0
  110. plans/completed/compaction-hook-enhancement/2-Compression-Intelligence.md +294 -0
  111. plans/completed/compaction-hook-enhancement/3-Git-Integration-Metadata.md +310 -0
  112. plans/completed/compaction-hook-enhancement/4-Session-Continuity-Features.md +358 -0
  113. plans/completed/compaction-hook-enhancement/5-Testing-Strategy.md +404 -0
  114. plans/completed/compaction-hook-enhancement/6-Integration-Roadmap.md +319 -0
  115. plans/completed/compaction-hook-enhancement/compacted_state.md +142 -0
  116. plans/completed/docstring-audit-enhancement/0-Overview.md +274 -0
  117. plans/completed/docstring-audit-enhancement/1-Infrastructure-Setup-and-Validation-Tools.md +206 -0
  118. plans/completed/docstring-audit-enhancement/2-Core-Physics-Modules-Enhancement.md +237 -0
  119. plans/completed/docstring-audit-enhancement/3-Fitfunctions-Mathematical-Modules-Enhancement.md +188 -0
  120. plans/completed/docstring-audit-enhancement/4-Plotting-Visualization-Modules-Enhancement.md +243 -0
  121. plans/completed/docstring-audit-enhancement/5-Specialized-Modules-Enhancement.md +216 -0
  122. plans/completed/docstring-audit-enhancement/6-Validation-and-Integration.md +216 -0
  123. plans/completed/fitfunctions-testing-implementation/0-Overview.md +130 -0
  124. plans/completed/fitfunctions-testing-implementation/1-Test-Infrastructure-Setup.md +79 -0
  125. plans/completed/fitfunctions-testing-implementation/2-Common-Fixtures-Test-Utilities.md +104 -0
  126. plans/completed/fitfunctions-testing-implementation/3-Core-FitFunction-Testing.md +168 -0
  127. plans/completed/fitfunctions-testing-implementation/4-Specialized-Function-Classes.md +210 -0
  128. plans/completed/fitfunctions-testing-implementation/5-Advanced-Classes-Testing.md +214 -0
  129. plans/completed/fitfunctions-testing-implementation/6-Plotting-Integration-Testing.md +231 -0
  130. plans/completed/fitfunctions-testing-implementation/7-Extended-Coverage-BONUS.md +184 -0
  131. plans/completed/numpy-docstring-conversion-plan/numpy-docstring-conversion-plan.md +118 -0
  132. plans/completed/pr-review-remediation/0-Overview.md +138 -0
  133. plans/completed/pr-review-remediation/1-Critical-Safety-Improvements.md +179 -0
  134. plans/completed/pr-review-remediation/2-Smart-Timeouts-Validation.md +399 -0
  135. plans/completed/pr-review-remediation/3-Enhanced-GitHub-Integration.md +258 -0
  136. plans/completed/pr-review-remediation/compacted_state.md +66 -0
  137. plans/completed/python-310-migration/0-Overview.md +390 -0
  138. plans/completed/python-310-migration/1-Planning-Setup.md +164 -0
  139. plans/completed/python-310-migration/2-Implementation.md +256 -0
  140. plans/completed/python-310-migration/3-Testing-Validation.md +335 -0
  141. plans/completed/python-310-migration/4-Documentation-Release.md +274 -0
  142. plans/completed/python-310-migration/5-Closeout.md +252 -0
  143. plans/completed/requirements-management-consolidation/0-Overview.md +118 -0
  144. plans/completed/requirements-management-consolidation/1-Documentation-Validation-Environment-Setup.md +116 -0
  145. plans/completed/requirements-management-consolidation/2-Requirements-Consolidation.md +161 -0
  146. plans/completed/requirements-management-consolidation/3-Workflow-Automation-Final-Integration.md +196 -0
  147. plans/completed/single-ecosystem-plan-implementation/0-Overview.md +83 -0
  148. plans/completed/single-ecosystem-plan-implementation/1-Plan-Preservation-Session-Management.md +38 -0
  149. plans/completed/single-ecosystem-plan-implementation/2-File-Structure-Optimization.md +43 -0
  150. plans/completed/single-ecosystem-plan-implementation/3-Plan-Migration-Archive-Setup.md +82 -0
  151. plans/completed/single-ecosystem-plan-implementation/4-Agent-System-Transformation.md +108 -0
  152. plans/completed/single-ecosystem-plan-implementation/5-Template-System-Enhancement.md +131 -0
  153. plans/completed/single-ecosystem-plan-implementation/6-Final-Validation-Testing.md +120 -0
  154. plans/completed/test-directory-consolidation/0-Overview.md +51 -0
  155. plans/completed/test-directory-consolidation/1-Structure-Preparation.md +82 -0
  156. plans/completed/test-directory-consolidation/2-File-Migration.md +100 -0
  157. plans/completed/test-directory-consolidation/3-Import-Transformation.md +117 -0
  158. plans/completed/test-directory-consolidation/4-Configuration-Consolidation.md +140 -0
  159. plans/completed/test-directory-consolidation/5-Validation.md +152 -0
  160. plans/completed/test-directory-consolidation/6-Cleanup.md +156 -0
  161. plans/completed/test-planning-agents-architecture/0-Overview.md +79 -0
  162. plans/completed/test-planning-agents-architecture/1-Branch-Isolation-Testing.md +49 -0
  163. plans/completed/test-planning-agents-architecture/2-Cross-Branch-Coordination.md +51 -0
  164. plans/completed/test-planning-agents-architecture/3-Merge-Workflow-Testing.md +48 -0
  165. plans/deployment-semver-pypi-rtd/0-Overview.md +463 -0
  166. plans/deployment-semver-pypi-rtd/1-Semantic-Versioning-Foundation.md +136 -0
  167. plans/deployment-semver-pypi-rtd/2-PyPI-Deployment-Infrastructure.md +168 -0
  168. plans/deployment-semver-pypi-rtd/3-Release-Automation.md +214 -0
  169. plans/deployment-semver-pypi-rtd/4-Plan-Closeout.md +543 -0
  170. plans/deployment-semver-pypi-rtd/compacted_session_state.md +172 -0
  171. plans/deployment-semver-pypi-rtd/compacted_state.md +131 -0
  172. plans/documentation-code-audit/0-Overview.md +393 -0
  173. plans/documentation-code-audit/1-Discovery-Inventory.md +183 -0
  174. plans/documentation-code-audit/2-Execution-Environment-Setup.md +263 -0
  175. plans/documentation-code-audit/3-Systematic-Validation.md +322 -0
  176. plans/documentation-code-audit/4-Code-Example-Remediation.md +358 -0
  177. plans/documentation-code-audit/5-Physics-MultiIndex-Compliance.md +464 -0
  178. plans/documentation-code-audit/6-Doctest-Integration.md +523 -0
  179. plans/documentation-code-audit/7-Reporting-Documentation.md +498 -0
  180. plans/documentation-code-audit/8-Closeout.md +456 -0
  181. plans/documentation-rebuild-session/compacted_state.md +109 -0
  182. plans/documentation-rendering-fixes/0-Overview.md +104 -0
  183. plans/documentation-rendering-fixes/1-Sphinx-Build-Diagnostics-Warning-Audit.md +101 -0
  184. plans/documentation-rendering-fixes/2-Configuration-Infrastructure-Fixes.md +113 -0
  185. plans/documentation-rendering-fixes/3-Docstring-Syntax-Audit-Repair.md +131 -0
  186. plans/documentation-rendering-fixes/4-HTML-Page-Rendering-Verification.md +113 -0
  187. plans/documentation-rendering-fixes/5-Advanced-Documentation-Quality-Assurance.md +119 -0
  188. plans/documentation-rendering-fixes/6-Documentation-Build-Optimization-Testing.md +129 -0
  189. plans/documentation-rendering-fixes/compacted_state.md +132 -0
  190. plans/documentation-template-fix/0-Overview.md +197 -0
  191. plans/documentation-template-fix/1-Template-System-Analysis.md +269 -0
  192. plans/documentation-template-fix/2-Template-Modification.md +609 -0
  193. plans/documentation-template-fix/3-Build-System-Integration.md +766 -0
  194. plans/documentation-template-fix/4-Testing-Validation.md +1399 -0
  195. plans/documentation-template-fix/5-Documentation-Training.md +602 -0
  196. plans/documentation-workflow-fix/0-Overview.md +222 -0
  197. plans/documentation-workflow-fix/1-Immediate-Fixes.md +238 -0
  198. plans/documentation-workflow-fix/2-Configuration-Setup.md +298 -0
  199. plans/documentation-workflow-fix/3-Pre-commit-Integration.md +382 -0
  200. plans/documentation-workflow-fix/4-Workflow-Improvements.md +446 -0
  201. plans/documentation-workflow-fix/5-Documentation-and-Training.md +527 -0
  202. plans/duplicate-object-warnings-fix-plan.md +130 -0
  203. plans/github-issues-migration/0-Overview.md +510 -0
  204. plans/github-issues-migration/1-Foundation-Label-System.md +180 -0
  205. plans/github-issues-migration/2-Migration-Tool-Rewrite.md +235 -0
  206. plans/github-issues-migration/3-CLI-Integration-Automation.md +169 -0
  207. plans/github-issues-migration/4-Validated-Migration.md +252 -0
  208. plans/github-issues-migration/5-Documentation-Training.md +171 -0
  209. plans/github-issues-migration/6-Closeout.md +179 -0
  210. plans/github-workflows-repair/repair-plan.md +299 -0
  211. plans/issues_from_plans.py +342 -0
  212. plans/pr-270-doc-validation-fixes/0-Overview.md +354 -0
  213. plans/pr-270-doc-validation-fixes/1-Critical-PR-Fixes.md +117 -0
  214. plans/pr-270-doc-validation-fixes/2-Framework-Right-Sizing.md +129 -0
  215. plans/pr-270-doc-validation-fixes/3-Sustainable-Documentation.md +126 -0
  216. plans/pr-270-doc-validation-fixes/4-Closeout-Migration.md +143 -0
  217. plans/pr-270-doc-validation-fixes/PLAN_COMPLETED.md +149 -0
  218. plans/python-310-migration/0-Overview.md +390 -0
  219. plans/python-310-migration/1-Planning-Setup.md +164 -0
  220. plans/python-310-migration/2-Implementation.md +256 -0
  221. plans/python-310-migration/3-Testing-Validation.md +335 -0
  222. plans/python-310-migration/4-Documentation-Release.md +274 -0
  223. plans/python-310-migration/5-Closeout.md +252 -0
  224. plans/readthedocs-simplified/0-Overview.md +243 -0
  225. plans/readthedocs-simplified/1-Immediate-Fixes.md +216 -0
  226. plans/readthedocs-simplified/2-Template-Simplification.md +278 -0
  227. plans/readthedocs-simplified/3-ReadTheDocs-Setup.md +298 -0
  228. plans/readthedocs-simplified/4-Testing-Validation.md +328 -0
  229. plans/readthedocs-simplified/5-Closeout.md +231 -0
  230. plans/readthedocs-simplified/compacted_state.md +127 -0
  231. plans/session-compaction-2025-08-12/compacted_state.md +114 -0
  232. plans/session-compaction-2025-08-13/compacted_state.md +145 -0
  233. plans/session-continuity-protocol/0-Overview.md +35 -0
  234. plans/session-continuity-protocol/1-Core-Principles-Framework.md +40 -0
  235. plans/session-continuity-protocol/2-Pre-Session-Validation-System.md +79 -0
  236. plans/session-continuity-protocol/3-Context-Switching-Prevention.md +87 -0
  237. plans/session-continuity-protocol/4-Progress-Tracking-Recovery.md +100 -0
  238. plans/sphinx-warnings-analysis.md +222 -0
  239. plans/systemprompt-optimization/0-Overview.md +447 -0
  240. plans/systemprompt-optimization/1-Deploy-SystemPrompt.md +114 -0
  241. plans/systemprompt-optimization/2-Documentation-Alignment.md +198 -0
  242. plans/systemprompt-optimization/3-Monitoring-Infrastructure.md +396 -0
  243. plans/systemprompt-optimization/4-Implementation-Script.md +450 -0
  244. plans/systemprompt-optimization/9-Closeout.md +165 -0
  245. plans/systemprompt-optimization/compacted_state.md +143 -0
  246. plans/template-value-propositions/0-Overview.md +357 -0
  247. plans/template-value-propositions/1-Value-Proposition-Framework-Design.md +144 -0
  248. plans/template-value-propositions/2-Plan-Template-Enhancement.md +178 -0
  249. plans/template-value-propositions/3-Value-Generator-Hook-Implementation.md +291 -0
  250. plans/template-value-propositions/4-Value-Validator-Hook-Implementation.md +274 -0
  251. plans/template-value-propositions/5-Documentation-Agent-Updates.md +219 -0
  252. plans/template-value-propositions/6-Integration-Testing-Validation.md +247 -0
  253. plans/tests-audit/0-Overview.md +410 -0
  254. plans/tests-audit/1-Discovery-Inventory.md +170 -0
  255. plans/tests-audit/2-Physics-Validation-Audit.md +195 -0
  256. plans/tests-audit/3-Architecture-Compliance.md +195 -0
  257. plans/tests-audit/4-Numerical-Stability-Analysis.md +203 -0
  258. plans/tests-audit/5-Documentation-Enhancement.md +220 -0
  259. plans/tests-audit/6-Audit-Deliverables.md +220 -0
  260. plans/tests-audit/7-Closeout.md +252 -0
  261. plans/tests-audit/artifacts/ARCHITECTURE_COMPLIANCE_REPORT.md +315 -0
  262. plans/tests-audit/artifacts/ARCHITECTURE_RECOMMENDATIONS.md +943 -0
  263. plans/tests-audit/artifacts/COMPREHENSIVE_AUDIT_REPORT.md +356 -0
  264. plans/tests-audit/artifacts/CONTRIBUTING_ENHANCED_TEMPLATE.md +419 -0
  265. plans/tests-audit/artifacts/COVERAGE_GAP_ANALYSIS.md +152 -0
  266. plans/tests-audit/artifacts/DOCUMENTATION_ENHANCEMENT_REPORT.md +502 -0
  267. plans/tests-audit/artifacts/EXECUTIVE_AUDIT_SUMMARY.md +129 -0
  268. plans/tests-audit/artifacts/IMPLEMENTATION_ROADMAP.md +647 -0
  269. plans/tests-audit/artifacts/NUMERICAL_RECOMMENDATIONS.md +739 -0
  270. plans/tests-audit/artifacts/NUMERICAL_STABILITY_GUIDE_TEMPLATE.rst +451 -0
  271. plans/tests-audit/artifacts/NUMERICAL_STABILITY_REPORT.md +301 -0
  272. plans/tests-audit/artifacts/PHASE_3_SUMMARY.md +280 -0
  273. plans/tests-audit/artifacts/PHASE_4_SUMMARY.md +229 -0
  274. plans/tests-audit/artifacts/PHASE_5_SUMMARY.md +292 -0
  275. plans/tests-audit/artifacts/PHASE_6_CLOSEOUT.md +278 -0
  276. plans/tests-audit/artifacts/PHYSICS_GUIDE_TEMPLATE.rst +268 -0
  277. plans/tests-audit/artifacts/PHYSICS_VALIDATION_REPORT.md +235 -0
  278. plans/tests-audit/artifacts/TECHNICAL_DELIVERABLES_PACKAGE.md +2502 -0
  279. plans/tests-audit/artifacts/TEST_INVENTORY.csv +1204 -0
  280. plans/tests-audit/artifacts/TEST_INVENTORY.md +135 -0
  281. plans/tests-audit/artifacts/test_discovery_analysis.py +231 -0
  282. plans/tests-audit/artifacts/test_parser.py +395 -0
  283. solarwindpy/README.md +3 -0
  284. solarwindpy/Untitled.ipynb +54 -0
  285. solarwindpy/__init__.py +74 -0
  286. solarwindpy/core/__init__.py +23 -0
  287. solarwindpy/core/alfvenic_turbulence.py +804 -0
  288. solarwindpy/core/base.py +267 -0
  289. solarwindpy/core/ions.py +309 -0
  290. solarwindpy/core/plasma.py +2133 -0
  291. solarwindpy/core/spacecraft.py +256 -0
  292. solarwindpy/core/tensor.py +90 -0
  293. solarwindpy/core/units_constants.py +199 -0
  294. solarwindpy/core/vector.py +328 -0
  295. solarwindpy/fitfunctions/__init__.py +20 -0
  296. solarwindpy/fitfunctions/core.py +734 -0
  297. solarwindpy/fitfunctions/exponentials.py +188 -0
  298. solarwindpy/fitfunctions/gaussians.py +264 -0
  299. solarwindpy/fitfunctions/lines.py +116 -0
  300. solarwindpy/fitfunctions/moyal.py +71 -0
  301. solarwindpy/fitfunctions/plots.py +751 -0
  302. solarwindpy/fitfunctions/power_laws.py +209 -0
  303. solarwindpy/fitfunctions/tex_info.py +568 -0
  304. solarwindpy/fitfunctions/trend_fits.py +482 -0
  305. solarwindpy/instabilities/__init__.py +16 -0
  306. solarwindpy/instabilities/beta_ani.py +82 -0
  307. solarwindpy/instabilities/verscharen2016.py +631 -0
  308. solarwindpy/plotting/__init__.py +33 -0
  309. solarwindpy/plotting/agg_plot.py +489 -0
  310. solarwindpy/plotting/base.py +465 -0
  311. solarwindpy/plotting/hist1d.py +405 -0
  312. solarwindpy/plotting/hist2d.py +1035 -0
  313. solarwindpy/plotting/histograms.py +1845 -0
  314. solarwindpy/plotting/labels/__init__.py +104 -0
  315. solarwindpy/plotting/labels/base.py +686 -0
  316. solarwindpy/plotting/labels/chemistry.py +19 -0
  317. solarwindpy/plotting/labels/composition.py +100 -0
  318. solarwindpy/plotting/labels/datetime.py +235 -0
  319. solarwindpy/plotting/labels/elemental_abundance.py +73 -0
  320. solarwindpy/plotting/labels/special.py +794 -0
  321. solarwindpy/plotting/orbits.py +515 -0
  322. solarwindpy/plotting/scatter.py +99 -0
  323. solarwindpy/plotting/select_data_from_figure.py +329 -0
  324. solarwindpy/plotting/spiral.py +980 -0
  325. solarwindpy/plotting/tools.py +434 -0
  326. solarwindpy/scripts/__init__.py +1 -0
  327. solarwindpy/scripts/logs/.gitignore +1 -0
  328. solarwindpy/solar_activity/__init__.py +53 -0
  329. solarwindpy/solar_activity/base.py +605 -0
  330. solarwindpy/solar_activity/lisird/__init__.py +3 -0
  331. solarwindpy/solar_activity/lisird/extrema_calculator.py +394 -0
  332. solarwindpy/solar_activity/lisird/lisird.py +319 -0
  333. solarwindpy/solar_activity/plots.py +116 -0
  334. solarwindpy/solar_activity/sunspot_number/.DS_Store +0 -0
  335. solarwindpy/solar_activity/sunspot_number/__init__.py +3 -0
  336. solarwindpy/solar_activity/sunspot_number/sidc.py +556 -0
  337. solarwindpy/solar_activity/sunspot_number/ssn_extrema.csv +72 -0
  338. solarwindpy/solar_activity/sunspot_number/ssn_extrema.csv.silso +72 -0
  339. solarwindpy/tools/__init__.py +162 -0
  340. solarwindpy-0.1.0.dist-info/METADATA +181 -0
  341. solarwindpy-0.1.0.dist-info/RECORD +409 -0
  342. {solarwindpy-0.0.1.dev0.dist-info → solarwindpy-0.1.0.dist-info}/WHEEL +1 -1
  343. solarwindpy-0.1.0.dist-info/licenses/LICENSE.rst +32 -0
  344. solarwindpy-0.1.0.dist-info/top_level.txt +3 -0
  345. tests/__init__.py +1 -0
  346. tests/conftest.py +10 -0
  347. tests/core/__init__.py +1 -0
  348. tests/core/test_alfvenic_turbulence.py +544 -0
  349. tests/core/test_base.py +112 -0
  350. tests/core/test_base_head_tail.py +29 -0
  351. tests/core/test_base_mi_tuples.py +11 -0
  352. tests/core/test_core_verify_datetimeindex.py +32 -0
  353. tests/core/test_ions.py +325 -0
  354. tests/core/test_plasma.py +2581 -0
  355. tests/core/test_plasma_io.py +12 -0
  356. tests/core/test_quantities.py +507 -0
  357. tests/core/test_spacecraft.py +210 -0
  358. tests/core/test_units_constants.py +22 -0
  359. tests/data/epoch.csv +4 -0
  360. tests/data/plasma.csv +4 -0
  361. tests/data/spacecraft.csv +4 -0
  362. tests/fitfunctions/conftest.py +60 -0
  363. tests/fitfunctions/test_core.py +193 -0
  364. tests/fitfunctions/test_exponentials.py +342 -0
  365. tests/fitfunctions/test_gaussians.py +142 -0
  366. tests/fitfunctions/test_lines.py +349 -0
  367. tests/fitfunctions/test_moyal.py +258 -0
  368. tests/fitfunctions/test_plots.py +258 -0
  369. tests/fitfunctions/test_power_laws.py +365 -0
  370. tests/fitfunctions/test_tex_info.py +183 -0
  371. tests/fitfunctions/test_trend_fit_properties.py +31 -0
  372. tests/fitfunctions/test_trend_fits.py +244 -0
  373. tests/plotting/__init__.py +1 -0
  374. tests/plotting/labels/__init__.py +1 -0
  375. tests/plotting/labels/test_chemistry.py +243 -0
  376. tests/plotting/labels/test_composition.py +345 -0
  377. tests/plotting/labels/test_datetime.py +445 -0
  378. tests/plotting/labels/test_elemental_abundance.py +366 -0
  379. tests/plotting/labels/test_init.py +66 -0
  380. tests/plotting/labels/test_labels_base.py +347 -0
  381. tests/plotting/labels/test_special.py +550 -0
  382. tests/plotting/test_agg_plot.py +602 -0
  383. tests/plotting/test_base.py +752 -0
  384. tests/plotting/test_fixtures_utilities.py +775 -0
  385. tests/plotting/test_histograms.py +546 -0
  386. tests/plotting/test_integration.py +675 -0
  387. tests/plotting/test_orbits.py +435 -0
  388. tests/plotting/test_performance.py +708 -0
  389. tests/plotting/test_scatter.py +752 -0
  390. tests/plotting/test_select_data_from_figure.py +1209 -0
  391. tests/plotting/test_spiral.py +573 -0
  392. tests/plotting/test_tools.py +607 -0
  393. tests/plotting/test_visual_validation.py +465 -0
  394. tests/solar_activity/__init__.py +1 -0
  395. tests/solar_activity/lisird/__init__.py +1 -0
  396. tests/solar_activity/lisird/test_extrema_calculator.py +593 -0
  397. tests/solar_activity/lisird/test_lisird_id.py +187 -0
  398. tests/solar_activity/sunspot_number/__init__.py +1 -0
  399. tests/solar_activity/sunspot_number/test_init.py +399 -0
  400. tests/solar_activity/sunspot_number/test_sidc.py +465 -0
  401. tests/solar_activity/sunspot_number/test_sidc_id.py +223 -0
  402. tests/solar_activity/sunspot_number/test_sidc_loader.py +275 -0
  403. tests/solar_activity/sunspot_number/test_ssn_extrema.py +406 -0
  404. tests/solar_activity/test_base.py +656 -0
  405. tests/solar_activity/test_init.py +396 -0
  406. tests/solar_activity/test_plots.py +371 -0
  407. tests/test_circular_imports.py +408 -0
  408. tests/test_issue_titles.py +25 -0
  409. tests/test_statusline.py +298 -0
  410. solarwindpy-0.0.1.dev0.dist-info/METADATA +0 -14
  411. solarwindpy-0.0.1.dev0.dist-info/RECORD +0 -4
  412. solarwindpy-0.0.1.dev0.dist-info/top_level.txt +0 -1
@@ -0,0 +1,167 @@
1
+ ---
2
+ name: 'Combined Plan and Checklist: Scatter Plotting'
3
+ about: Unified documentation and checklist for validating scatter plotting functionality.
4
+ labels: [sweep, plotting, Scatter, scatter plots]
5
+ ---
6
+
7
+ > Phase 4 of Enhanced Plotting Test Plan
8
+
9
+ ## 🧠 Context
10
+
11
+ The `solarwindpy.plotting.scatter` module provides scatter plot functionality with optional color mapping capabilities. The `Scatter` class inherits from both `base.PlotWithZdata` and `base.CbarMaker` to enable 2D scatter plots with optional color-coded third dimension visualization.
12
+
13
+ ### Key Components
14
+ - **Scatter Class**: Main scatter plotting implementation
15
+ - **Color Mapping**: Optional z-data for color-coded scatter points
16
+ - **Data Clipping**: Configurable extreme value removal
17
+ - **Axes Integration**: Full matplotlib axes formatting support
18
+
19
+ ### Dependencies
20
+ - Inherits from `base.PlotWithZdata` and `base.CbarMaker`
21
+ - Uses `base.AxesLabels` and `base.LogAxes` for axis management
22
+ - Integrates with matplotlib for plot rendering
23
+
24
+ ## 📋 Comprehensive Test Checklist
25
+
26
+ ### 4.1 Module Structure and Exports
27
+
28
+ - [ ] **Import verification**: Verify `from . import base` import works correctly
29
+ - [ ] **Class availability**: Test that `Scatter` class is accessible from module
30
+ - [ ] **Inheritance validation**: Confirm `Scatter` inherits from `PlotWithZdata` and `CbarMaker`
31
+
32
+ ### 4.2 `Scatter` Class Initialization
33
+
34
+ - [ ] **Basic initialization**: `Scatter(x, y)` with pandas Series inputs
35
+ - [ ] **With z-data**: `Scatter(x, y, z)` including color mapping data
36
+ - [ ] **Data clipping**: `Scatter(x, y, clip_data=True)` removes extreme values
37
+ - [ ] **Data clipping disabled**: `Scatter(x, y, clip_data=False)` preserves all data
38
+ - [ ] **Parameter validation**: Test invalid input types raise appropriate errors
39
+ - [ ] **Empty data handling**: Test behavior with empty pandas Series
40
+ - [ ] **Mismatched data lengths**: Test error handling for different length x, y, z
41
+
42
+ ### 4.3 Data Management Methods
43
+
44
+ #### `set_data()` method
45
+ - [ ] **Data assignment**: Correctly stores x, y coordinate data
46
+ - [ ] **Z-data handling**: Properly manages optional color mapping data
47
+ - [ ] **Clip parameter**: Respects clip_data flag for extreme value removal
48
+ - [ ] **Data validation**: Ensures input data are compatible pandas Series
49
+ - [ ] **Index alignment**: Handles misaligned pandas Series indices
50
+
51
+ #### Data properties and access
52
+ - [ ] **Data retrieval**: Access to stored x, y, z data
53
+ - [ ] **Data integrity**: Verify data remains unchanged after storage
54
+ - [ ] **Clipping effects**: Confirm extreme values removed when clip_data=True
55
+
56
+ ### 4.4 Label and Axis Configuration
57
+
58
+ #### Labels management
59
+ - [ ] **Default labels**: `_labels` initialized with "x", "y", "z" defaults
60
+ - [ ] **Label customization**: Update axis labels via `_labels` property
61
+ - [ ] **Z-label handling**: Z-label set to None when no z-data provided
62
+ - [ ] **Label persistence**: Labels maintain values across operations
63
+
64
+ #### Axis scaling
65
+ - [ ] **Log scale defaults**: `_log` initialized with x=False, y=False
66
+ - [ ] **Log scale configuration**: Test setting logarithmic scales for x, y axes
67
+ - [ ] **Scale validation**: Ensure log scales work with positive data only
68
+
69
+ ### 4.5 Path and Display Configuration
70
+
71
+ - [ ] **Path initialization**: `set_path(None)` sets default path behavior
72
+ - [ ] **Path customization**: Test setting custom file output paths
73
+ - [ ] **Path validation**: Verify valid path formats are accepted
74
+
75
+ ### 4.6 Plot Generation and Formatting
76
+
77
+ #### `_format_axis()` method
78
+ - [ ] **Axis formatting**: Calls parent class `_format_axis(ax)` method
79
+ - [ ] **Collection handling**: Properly formats matplotlib collection objects
80
+ - [ ] **Inheritance behavior**: Ensures base class formatting is applied
81
+
82
+ #### Plot creation
83
+ - [ ] **Basic scatter plot**: Generate scatter plot with x, y data only
84
+ - [ ] **Color-mapped plot**: Create scatter plot with z-data color mapping
85
+ - [ ] **Matplotlib integration**: Verify plot renders correctly in matplotlib
86
+ - [ ] **Collection objects**: Confirm scatter plot returns valid matplotlib collections
87
+
88
+ ### 4.7 Color Bar Integration
89
+
90
+ #### Color bar creation (inherited from `CbarMaker`)
91
+ - [ ] **Color bar presence**: Color bar created when z-data provided
92
+ - [ ] **Color bar absence**: No color bar when only x, y data provided
93
+ - [ ] **Color mapping**: Verify z-data values correctly map to colors
94
+ - [ ] **Color bar labeling**: Proper labeling of color bar axis
95
+
96
+ ### 4.8 Integration with Base Classes
97
+
98
+ #### `PlotWithZdata` integration
99
+ - [ ] **Z-data handling**: Inherits proper z-data management
100
+ - [ ] **Data validation**: Uses base class data validation methods
101
+ - [ ] **Property access**: Base class properties accessible
102
+
103
+ #### `CbarMaker` integration
104
+ - [ ] **Color bar methods**: Access to color bar creation methods
105
+ - [ ] **Color mapping**: Proper color mapping functionality
106
+ - [ ] **Axis integration**: Color bar integrates with main plot axes
107
+
108
+ ### 4.9 Error Handling and Edge Cases
109
+
110
+ - [ ] **Invalid data types**: Non-pandas Series inputs raise appropriate errors
111
+ - [ ] **NaN/inf handling**: Graceful handling of NaN and infinite values
112
+ - [ ] **Missing data**: Behavior with incomplete or missing data points
113
+ - [ ] **Single point data**: Handle scatter plots with only one data point
114
+ - [ ] **Negative values with log**: Appropriate handling when log scales meet negative data
115
+
116
+ ### 4.10 Performance and Memory
117
+
118
+ - [ ] **Large datasets**: Performance with large numbers of scatter points
119
+ - [ ] **Memory usage**: Efficient memory usage for data storage and plotting
120
+ - [ ] **Data copying**: Minimal unnecessary data duplication
121
+
122
+ ### 4.11 Documentation and Examples
123
+
124
+ - [ ] **Docstring completeness**: Class and method docstrings present and accurate
125
+ - [ ] **Parameter documentation**: All parameters properly documented
126
+ - [ ] **Example usage**: Working code examples in docstrings
127
+ - [ ] **Return value docs**: Clear documentation of return values
128
+
129
+ ### 4.12 Test Infrastructure
130
+
131
+ - [ ] **Test fixtures**: Reusable test data for scatter plot testing
132
+ - [ ] **Mock matplotlib**: Mock matplotlib operations to avoid GUI display
133
+ - [ ] **Parameterized tests**: Test multiple data configurations efficiently
134
+ - [ ] **Performance benchmarks**: Time scatter plot operations for regression detection
135
+
136
+ ## 🎯 Testing Strategy
137
+
138
+ ### Unit Testing Approach
139
+ - Test each method in isolation with controlled inputs
140
+ - Verify inheritance chain works correctly
141
+ - Mock matplotlib operations to focus on data handling logic
142
+
143
+ ### Integration Testing
144
+ - Test full scatter plot creation workflow
145
+ - Verify interaction between data management and plot rendering
146
+ - Test color mapping end-to-end functionality
147
+
148
+ ### Edge Case Coverage
149
+ - Empty datasets, single points, extreme values
150
+ - Invalid inputs and error conditions
151
+ - Large dataset performance characteristics
152
+
153
+ ### Visual Validation (Future)
154
+ - Compare generated plots against reference images
155
+ - Verify color mapping accuracy
156
+ - Test plot appearance across different matplotlib backends
157
+
158
+ ---
159
+
160
+ **Estimated Time**: 2 hours
161
+ **Dependencies**: Base plotting classes, matplotlib integration
162
+ **Priority**: HIGH (Core plotting functionality)
163
+ **Status**: ✅ COMPLETED
164
+ **Commit**: 61823b7
165
+ **Tests Added**: 51 comprehensive test cases
166
+ **Time Invested**: 1.5 hours
167
+ **Test Results**: 51/51 passing (100% success rate)
@@ -0,0 +1,216 @@
1
+ ---
2
+ name: 'Combined Plan and Checklist: Spiral Mesh Plotting'
3
+ about: Unified documentation and checklist for validating spiral mesh plotting and binning utilities.
4
+ labels: [sweep, plotting, SpiralMesh, spiral plots, numba]
5
+ ---
6
+
7
+ > Phase 5 of Enhanced Plotting Test Plan
8
+
9
+ ## 🧠 Context
10
+
11
+ The `solarwindpy.plotting.spiral` module provides sophisticated spiral mesh plotting capabilities with specialized binning utilities. This module includes high-performance numba-accelerated functions for spatial binning and data aggregation within spiral-shaped mesh geometries, commonly used for plasma physics data visualization.
12
+
13
+ ### Key Components
14
+ - **Spiral Mesh Classes**: Complex spiral geometry plotting
15
+ - **Numba Functions**: High-performance spatial binning utilities
16
+ - **Named Tuples**: Structured data containers for spiral parameters
17
+ - **Filtering Utilities**: Data density and size-based filtering
18
+
19
+ ### Performance Features
20
+ - **Numba JIT Compilation**: `@njit(parallel=True)` for performance-critical operations
21
+ - **Parallel Processing**: Multi-threaded binning calculations
22
+ - **Memory Optimization**: Efficient data structures for large datasets
23
+
24
+ ### Dependencies
25
+ - Uses `base` plotting infrastructure
26
+ - Integrates with `labels` module
27
+ - Requires numba, numpy, pandas, matplotlib
28
+
29
+ ## 📋 Comprehensive Test Checklist
30
+
31
+ ### 5.1 Module Structure and Imports
32
+
33
+ - [ ] **Import verification**: All required imports load correctly
34
+ - [ ] **Numba availability**: Verify numba decorators work in test environment
35
+ - [ ] **Base integration**: Confirm `from . import base` import functions
36
+ - [ ] **Labels integration**: Verify `from . import labels as labels_module` works
37
+
38
+ ### 5.2 Named Tuple Definitions
39
+
40
+ #### `InitialSpiralEdges`
41
+ - [ ] **Structure validation**: Contains `x,y` fields as expected
42
+ - [ ] **Data type handling**: Accepts appropriate numeric data types
43
+ - [ ] **Immutability**: Tuple immutability preserved
44
+
45
+ #### `SpiralMeshBinID`
46
+ - [ ] **Structure validation**: Contains `id,fill,visited` fields
47
+ - [ ] **Field access**: All fields accessible and correctly typed
48
+ - [ ] **Default handling**: Proper handling of field defaults
49
+
50
+ #### `SpiralFilterThresholds`
51
+ - [ ] **Structure validation**: Contains `density,size` fields with defaults
52
+ - [ ] **Default values**: `defaults=(False,)` applied correctly
53
+ - [ ] **Parameter validation**: Accepts valid threshold parameters
54
+
55
+ ### 5.3 Numba-Accelerated Functions
56
+
57
+ #### `get_counts_per_bin()` function
58
+ - [ ] **JIT compilation**: `@njit(parallel=True)` decorator works correctly
59
+ - [ ] **Parallel execution**: Multi-threaded processing functions properly
60
+ - [ ] **Input validation**: Handles bins, x, y arrays of correct shapes
61
+ - [ ] **Bin counting**: Accurately counts points within bin boundaries
62
+ - [ ] **Output format**: Returns numpy array with correct dtype (int64)
63
+ - [ ] **Edge case handling**: Proper behavior at bin boundaries
64
+ - [ ] **Empty bins**: Correctly handles bins with zero counts
65
+ - [ ] **Performance**: Executes efficiently for large datasets
66
+
67
+ #### `calculate_bin_number_with_numba()` function
68
+ - [ ] **JIT compilation**: `@njit(parallel=True)` decorator functions
69
+ - [ ] **Fill value**: Uses correct fill value (-9999) for unassigned points
70
+ - [ ] **Mesh integration**: Properly utilizes mesh parameter for binning
71
+ - [ ] **Output array**: Returns correctly sized and typed array
72
+ - [ ] **Point assignment**: Accurately assigns points to bin numbers
73
+ - [ ] **Boundary handling**: Proper behavior at mesh boundaries
74
+ - [ ] **Invalid points**: Correctly handles points outside mesh
75
+
76
+ ### 5.4 Spiral Mesh Classes (if present)
77
+
78
+ #### Main spiral mesh class
79
+ - [ ] **Initialization**: Proper class initialization with spiral parameters
80
+ - [ ] **Mesh generation**: Generates valid spiral mesh geometries
81
+ - [ ] **Data integration**: Integrates with pandas DataFrames
82
+ - [ ] **Plotting methods**: Creates appropriate matplotlib visualizations
83
+ - [ ] **Parameter validation**: Validates spiral geometry parameters
84
+
85
+ ### 5.5 Data Binning and Aggregation
86
+
87
+ #### Spatial binning functionality
88
+ - [ ] **Point-in-bin detection**: Accurate spatial containment testing
89
+ - [ ] **Bin boundary handling**: Consistent treatment of boundary points
90
+ - [ ] **Multi-dimensional data**: Handles x, y coordinate pairs correctly
91
+ - [ ] **Large dataset performance**: Efficient processing of large point sets
92
+ - [ ] **Memory management**: Optimal memory usage during binning
93
+
94
+ #### Data aggregation
95
+ - [ ] **Count aggregation**: Accurate counting of points per bin
96
+ - [ ] **Statistical aggregation**: Support for mean, median, etc. if implemented
97
+ - [ ] **Custom aggregation**: Extensible aggregation function support
98
+ - [ ] **Missing data**: Proper handling of NaN and missing values
99
+
100
+ ### 5.6 Filtering and Thresholding
101
+
102
+ #### Density filtering
103
+ - [ ] **Threshold application**: Density thresholds applied correctly
104
+ - [ ] **Filter logic**: Proper boolean logic for include/exclude decisions
105
+ - [ ] **Performance impact**: Filtering doesn't significantly slow processing
106
+
107
+ #### Size filtering
108
+ - [ ] **Size threshold**: Bin size thresholds work as expected
109
+ - [ ] **Combined filters**: Multiple filter criteria work together
110
+ - [ ] **Filter validation**: Invalid filter parameters rejected
111
+
112
+ ### 5.7 Integration with Base Classes
113
+
114
+ #### Base plotting integration
115
+ - [ ] **Inheritance structure**: Proper inheritance from base plotting classes
116
+ - [ ] **Method compatibility**: Base class methods work with spiral data
117
+ - [ ] **Axis formatting**: Spiral plots format axes correctly
118
+ - [ ] **Label integration**: Labels work with spiral geometries
119
+
120
+ ### 5.8 Performance and Scalability
121
+
122
+ #### Numba performance
123
+ - [ ] **Compilation overhead**: JIT compilation time reasonable
124
+ - [ ] **Runtime performance**: Significant speedup over pure Python
125
+ - [ ] **Memory efficiency**: Optimal memory usage in compiled functions
126
+ - [ ] **Parallel scaling**: Performance improves with multiple cores
127
+
128
+ #### Large dataset handling
129
+ - [ ] **Memory usage**: Efficient memory usage for large datasets
130
+ - [ ] **Processing time**: Reasonable processing times for large data
131
+ - [ ] **Stability**: No memory leaks or crashes with large datasets
132
+
133
+ ### 5.9 Error Handling and Validation
134
+
135
+ #### Input validation
136
+ - [ ] **Array shape validation**: Correct handling of mismatched array shapes
137
+ - [ ] **Data type validation**: Proper handling of invalid data types
138
+ - [ ] **Missing data**: Graceful handling of NaN and infinite values
139
+ - [ ] **Empty data**: Appropriate behavior with empty input arrays
140
+
141
+ #### Error conditions
142
+ - [ ] **Numba error handling**: Proper error propagation from numba functions
143
+ - [ ] **Memory errors**: Graceful handling of memory allocation failures
144
+ - [ ] **Invalid parameters**: Clear error messages for invalid parameters
145
+
146
+ ### 5.10 Matplotlib Integration
147
+
148
+ #### Plot generation
149
+ - [ ] **Spiral visualization**: Generates visually correct spiral plots
150
+ - [ ] **Color mapping**: Color maps data correctly across spiral bins
151
+ - [ ] **Axis integration**: Integrates properly with matplotlib axes
152
+ - [ ] **Collection objects**: Returns valid matplotlib collection objects
153
+
154
+ #### Visual quality
155
+ - [ ] **Mesh rendering**: Spiral mesh renders clearly and accurately
156
+ - [ ] **Data representation**: Data values represented correctly in visualization
157
+ - [ ] **Scale handling**: Handles different data scales appropriately
158
+
159
+ ### 5.11 Documentation and Examples
160
+
161
+ - [ ] **Module docstring**: Complete and accurate module documentation
162
+ - [ ] **Function docstrings**: All functions properly documented
163
+ - [ ] **Parameter documentation**: All parameters clearly described
164
+ - [ ] **Performance notes**: Documentation includes performance considerations
165
+ - [ ] **Usage examples**: Working code examples provided
166
+
167
+ ### 5.12 Test Infrastructure
168
+
169
+ #### Test setup
170
+ - [ ] **Numba test compatibility**: Tests work with numba compilation
171
+ - [ ] **Mock matplotlib**: Mock plotting to avoid GUI interactions
172
+ - [ ] **Performance benchmarks**: Benchmarks for numba function performance
173
+ - [ ] **Memory profiling**: Memory usage testing for large datasets
174
+
175
+ #### Test data
176
+ - [ ] **Spiral test data**: Representative test datasets for spiral geometries
177
+ - [ ] **Edge case data**: Test data covering boundary conditions
178
+ - [ ] **Performance test data**: Large datasets for performance testing
179
+
180
+ ## 🎯 Testing Strategy
181
+
182
+ ### Unit Testing Approach
183
+ - Test numba functions independently with controlled inputs
184
+ - Verify named tuple structures and field access
185
+ - Test spiral mesh generation and parameter validation
186
+
187
+ ### Performance Testing
188
+ - Benchmark numba-accelerated functions vs pure Python
189
+ - Profile memory usage with large datasets
190
+ - Test parallel execution scaling
191
+
192
+ ### Integration Testing
193
+ - Test complete spiral plot generation workflow
194
+ - Verify integration with base plotting infrastructure
195
+ - Test data flow from raw coordinates to finished plots
196
+
197
+ ### Numerical Accuracy
198
+ - Verify bin assignment accuracy with known test cases
199
+ - Test boundary condition handling
200
+ - Validate counting and aggregation algorithms
201
+
202
+ ### Edge Case Coverage
203
+ - Empty datasets, single points, extreme coordinates
204
+ - Invalid spiral parameters
205
+ - Large dataset stress testing
206
+
207
+ ---
208
+
209
+ **Estimated Time**: 2.5 hours
210
+ **Dependencies**: Numba, base plotting classes, numpy/pandas
211
+ **Priority**: HIGH (Performance-critical plotting component)
212
+ **Status**: ✅ COMPLETED
213
+ **Commit**: b609a20
214
+ **Tests Added**: 36 comprehensive test cases
215
+ **Time Invested**: 2 hours
216
+ **Test Results**: 36/36 passing (100% success rate)
@@ -0,0 +1,108 @@
1
+ ---
2
+ name: 'Combined Plan and Checklist: Orbit Plotting'
3
+ about: Unified documentation and checklist for orbit plotting features.
4
+ labels: [sweep, plotting, OrbitPlot]
5
+ ---
6
+
7
+ > Extracted from solarwindpy/plans/combined_test_plan_with_checklist_plotting.md
8
+
9
+ ## 🧠 Context
10
+
11
+ The `solarwindpy.plotting` subpackage offers high-level plotting utilities built on pandas
12
+ and Matplotlib. This unified plan combines the narrative test rationale and the
13
+ actionable checklist for validating every class, method, property (including non-public
14
+ interfaces), and helper function across:
15
+
16
+ - `base.py`
17
+ - `agg_plot.py`
18
+ - `histograms.py` (`hist1d.py`, `hist2d.py`)
19
+ - `scatter.py`
20
+ - `spiral.py`
21
+ - `orbits.py`
22
+ - `tools.py`
23
+ - `select_data_from_figure.py`
24
+ - `labels/base.py`
25
+ - `labels/special.py`
26
+
27
+ Tests are grouped by module. Each module section includes context from the original
28
+ narrative plan followed by a deduplicated checklist of actionable items.
29
+
30
+ ### Class `OrbitPlot(ABC)`
31
+
32
+ - `__init__(orbit, *args)` validates `orbit` type; invalid types raise
33
+ `TypeError`.
34
+ - Properties: `_disable_both`, `orbit`, `_orbit_key`, `grouped`.
35
+ - `set_path(*args, orbit=…)` appends orbit path.
36
+ - `set_orbit(new)` sorts orbits and validates type.
37
+ - `make_cut()` adds “Inbound”/“Outbound” (and “Both”) categories.
38
+
39
+ ### Class `OrbitHist1D(OrbitPlot, Hist1D)`
40
+
41
+ - `_format_axis(ax)` adds legend.
42
+ - `agg(**kwargs)` merges “Both” leg; disabled via `_disable_both`.
43
+ - `make_plot(ax, fcn, **kwargs)` calls `tools.subplots` and plots each leg.
44
+
45
+ ### Class `OrbitHist2D(OrbitPlot, Hist2D)`
46
+
47
+ - `_format_in_out_axes(inbound, outbound)`, `_prune_lower_yaxis_ticks`, and
48
+ `_format_in_out_both_axes` manage axis formatting.
49
+ - `agg(**kwargs)` wraps and normalizes per-orbit.
50
+ - `project_1d(axis, project_counts, **kwargs)` returns an `OrbitHist1D`
51
+ instance.
52
+
53
+ ## 🎯 Overview of the Task
54
+
55
+ Implement comprehensive tests for `orbits.py` within the `solarwindpy.plotting` package.
56
+
57
+ ## 🔧 Framework & Dependencies
58
+
59
+ - pandas
60
+ - matplotlib
61
+ - pytest
62
+
63
+ ## 📂 Affected Files and Paths
64
+
65
+ - solarwindpy/plotting/orbits.py
66
+
67
+ ## 📊 Figures, Diagrams, or Artifacts (Optional)
68
+
69
+ None
70
+
71
+ ## ✅ Acceptance Criteria
72
+
73
+ - [ ] Verify invalid `orbit` type in `__init__` raises `TypeError`
74
+ - [ ] Verify `_disable_both` property is `True` by default
75
+ - [ ] Verify `.orbit` property returns the `IntervalIndex`
76
+ - [ ] Verify `_orbit_key` returns `"Orbit"`
77
+ - [ ] Verify `.grouped` groups by `_gb_axes` + `_orbit_key`
78
+ - [ ] Test `set_path(…, orbit=idx)` appends `orbit.path`
79
+ - [ ] Test `set_orbit(idx)` sorts and validates type
80
+ - [ ] Test `make_cut()` adds “Inbound”/“Outbound” (and “Both”) categories
81
+ - [ ] Verify `_format_axis(ax)` adds a legend
82
+ - [ ] Test `agg()` merges “Both” leg when `_disable_both=False`
83
+ - [ ] Test `make_plot(ax)` plots each orbit leg via `tools.subplots()`
84
+ - [ ] Test `_format_in_out_axes()` swaps x-limits and colors spines
85
+ - [ ] Test `_prune_lower_yaxis_ticks()` prunes ticks correctly
86
+ - [ ] Test `_format_in_out_both_axes()` aligns y-limits across
87
+ inbound/outbound/both
88
+ - [ ] Test `agg()` normalizes per-orbit legs
89
+ - [ ] Test `project_1d('x')` returns a valid `OrbitHist1D`
90
+
91
+ ## 🧩 Decomposition Instructions (Optional)
92
+
93
+ None
94
+
95
+ ## 🤖 Sweep Agent Instructions (Optional)
96
+
97
+ None
98
+
99
+ ## 💬 Additional Notes
100
+
101
+ - Ensures correct functionality, edge-case handling, API stability, and protects
102
+ non-public internals.
103
+
104
+ **Status**: ✅ COMPLETED
105
+ **Commit**: e6285c6
106
+ **Tests Added**: 34 comprehensive test cases
107
+ **Time Invested**: 1 hour
108
+ **Test Results**: 34/34 passing (100% success rate)
@@ -0,0 +1,86 @@
1
+ ---
2
+ name: 'Combined Plan and Checklist: Plotting Tools'
3
+ about: Unified documentation and checklist for helper tools used in plotting.
4
+ labels: [sweep, plotting, utils]
5
+ ---
6
+
7
+ > Extracted from solarwindpy/plans/combined_test_plan_with_checklist_plotting.md
8
+
9
+ ## 🧠 Context
10
+
11
+ The `solarwindpy.plotting` subpackage offers high-level plotting utilities built on pandas
12
+ and Matplotlib. This unified plan combines the narrative test rationale and the
13
+ actionable checklist for validating every class, method, property (including non-public
14
+ interfaces), and helper function across:
15
+
16
+ - `base.py`
17
+ - `agg_plot.py`
18
+ - `histograms.py` (`hist1d.py`, `hist2d.py`)
19
+ - `scatter.py`
20
+ - `spiral.py`
21
+ - `orbits.py`
22
+ - `tools.py`
23
+ - `select_data_from_figure.py`
24
+ - `labels/base.py`
25
+ - `labels/special.py`
26
+
27
+ Tests are grouped by module. Each module section includes context from the original
28
+ narrative plan followed by a deduplicated checklist of actionable items.
29
+
30
+ - `subplots(nrows, ncols, scale_width, scale_height, **kwargs)` scales figure
31
+ size with grid shape.
32
+ - `save(fig, spath, add_info, log, pdf, png, **kwargs)` writes `.pdf` and `.png`
33
+ files, adds timestamp text, and supports optional logging.
34
+ - `joint_legend(*axes, idx_for_legend, **kwargs)` merges legend entries without
35
+ duplicates and sorts them.
36
+ - `multipanel_figure_shared_cbar(...)` (if present) creates grid with shared
37
+ colorbar.
38
+
39
+ ## 🎯 Overview of the Task
40
+
41
+ Implement comprehensive tests for `tools.py` within the `solarwindpy.plotting` package.
42
+
43
+ ## 🔧 Framework & Dependencies
44
+
45
+ - pandas
46
+ - matplotlib
47
+ - pytest
48
+
49
+ ## 📂 Affected Files and Paths
50
+
51
+ - solarwindpy/plotting/tools.py
52
+
53
+ ## 📊 Figures, Diagrams, or Artifacts (Optional)
54
+
55
+ None
56
+
57
+ ## ✅ Acceptance Criteria
58
+
59
+ - [ ] Test `subplots(2,2,scale_width=1.5,scale_height=0.5)` returns 2×2 axes with
60
+ correct figsize
61
+ - [ ] Test `save(fig, path, pdf=True,png=True)` writes both `.pdf` and `.png`
62
+ files
63
+ - [ ] Test PNG version includes timestamp text
64
+ - [ ] Test `save(..., log=False)` skips logging calls
65
+ - [ ] Test `joint_legend(ax1,ax2)` merges legend entries, no duplicates, sorted
66
+ - [ ] (If present) Test `multipanel_figure_shared_cbar(...)` arranges shared
67
+ colorbar correctly
68
+
69
+ ## 🧩 Decomposition Instructions (Optional)
70
+
71
+ None
72
+
73
+ ## 🤖 Sweep Agent Instructions (Optional)
74
+
75
+ None
76
+
77
+ ## 💬 Additional Notes
78
+
79
+ - Ensures correct functionality, edge-case handling, API stability, and protects
80
+ non-public internals.
81
+
82
+ **Status**: ✅ COMPLETED
83
+ **Commit**: fe1e348
84
+ **Tests Added**: 42 comprehensive test cases (41 passing, 1 skipped)
85
+ **Time Invested**: 1 hour
86
+ **Test Results**: 41/42 passing (97.6% success rate)
@@ -0,0 +1,97 @@
1
+ ---
2
+ name: 'Combined Plan and Checklist: Select Data From Figure'
3
+ about: Unified documentation and checklist for selecting data from interactive figures.
4
+ labels: [sweep, plotting]
5
+ ---
6
+
7
+ > Extracted from solarwindpy/plans/combined_test_plan_with_checklist_plotting.md
8
+
9
+ ## 🧠 Context
10
+
11
+ The `solarwindpy.plotting` subpackage offers high-level plotting utilities built on pandas
12
+ and Matplotlib. This unified plan combines the narrative test rationale and the
13
+ actionable checklist for validating every class, method, property (including non-public
14
+ interfaces), and helper function across:
15
+
16
+ - `base.py`
17
+ - `agg_plot.py`
18
+ - `histograms.py` (`hist1d.py`, `hist2d.py`)
19
+ - `scatter.py`
20
+ - `spiral.py`
21
+ - `orbits.py`
22
+ - `tools.py`
23
+ - `select_data_from_figure.py`
24
+ - `labels/base.py`
25
+ - `labels/special.py`
26
+
27
+ Tests are grouped by module. Each module section includes context from the original
28
+ narrative plan followed by a deduplicated checklist of actionable items.
29
+
30
+ ### Class `SelectFromPlot2D`
31
+
32
+ - `__init__(plotter, ax, has_colorbar, xdate, ydate, text_kwargs)`.
33
+ - Properties: `ax`, `corners`, `date_axes`, `is_multipanel`, `selector`, `text`,
34
+ and more.
35
+ - `_init_corners`, `_add_corners`, `_finalize_text`, `_update_text` manage
36
+ corner selection and text updates.
37
+ - `disconnect(other, scatter_kwargs, **kwargs)` calls `sample_data`,
38
+ `scatter_sample`, and `plot_failed_samples`.
39
+ - `onselect(press, release)` adds patch, updates corners and text.
40
+ - `set_ax(ax, has_colorbar)`, `start_text`, `start_selector`, `sample_data(n, random_state)`; `sample_data(frac=…)` raises `NotImplementedError`.
41
+
42
+ ## 🎯 Overview of the Task
43
+
44
+ Implement comprehensive tests for `select_data_from_figure.py` within the `solarwindpy.plotting` package.
45
+
46
+ ## 🔧 Framework & Dependencies
47
+
48
+ - pandas
49
+ - matplotlib
50
+ - pytest
51
+
52
+ ## 📂 Affected Files and Paths
53
+
54
+ - solarwindpy/plotting/select_data_from_figure.py
55
+
56
+ ## 📊 Figures, Diagrams, or Artifacts (Optional)
57
+
58
+ None
59
+
60
+ ## ✅ Acceptance Criteria
61
+
62
+ - [x] Test `__init__(plotter,ax)` initializes selector and text objects
63
+ - [x] Verify `.ax`, `.corners`, `.date_axes`, `.is_multipanel` props
64
+ - [x] Verify `.selector` property exposes selector object
65
+ - [x] Verify `.text` property exposes text annotation
66
+ - [x] Test `_init_corners()` initializes corner coordinates
67
+ - [x] Test `_add_corners()` appends new corner tuples
68
+ - [x] Test `_finalize_text()` formats final selection text
69
+ - [x] Test `_update_text()` formats bounding-box extents
70
+ - [x] Test `onselect(press,release)` adds rectangle patch and updates
71
+ corners/text
72
+ - [x] Test `disconnect()` calls `sample_data()`, `scatter_sample()`,
73
+ `plot_failed_samples()`, disconnects events
74
+ - [x] Test `set_ax(ax, has_colorbar)` updates axis and colorbar state
75
+ - [x] Test `start_text()` initializes the annotation text object
76
+ - [x] Test `start_selector()` starts selection widget
77
+ - [x] Test `sample_data(n=3,random_state=…)` returns correct sampled indices
78
+ - [x] Verify `sample_data(frac=0.1)` raises `NotImplementedError`
79
+
80
+ ## 🧩 Decomposition Instructions (Optional)
81
+
82
+ None
83
+
84
+ ## 🤖 Sweep Agent Instructions (Optional)
85
+
86
+ None
87
+
88
+ ## 💬 Additional Notes
89
+
90
+ - Ensures correct functionality, edge-case handling, API stability, and protects
91
+ non-public internals.
92
+
93
+ **Status**: ✅ COMPLETED
94
+ **Commit**: 5b47880
95
+ **Tests Added**: 51 comprehensive test cases
96
+ **Time Invested**: 1 hour
97
+ **Test Results**: 51/51 passing (100% success rate)