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,419 @@
1
+ # Contributing to SolarWindPy
2
+
3
+ Thank you for considering contributing to SolarWindPy. This guide ensures that contributions maintain the high standards of scientific accuracy and numerical stability required for plasma physics research.
4
+
5
+ ## Development Workflow
6
+
7
+ ### 1. Environment Setup
8
+
9
+ Create a virtual environment and install dependencies:
10
+
11
+ ```bash
12
+ # Create conda environment
13
+ conda env create -f solarwindpy-20250403.yml
14
+ conda activate solarwindpy-20250403
15
+ pip install -e .
16
+
17
+ # Or generate environment from requirements
18
+ python scripts/requirements_to_conda_env.py --name solarwindpy-dev
19
+ conda env create -f solarwindpy-dev.yml
20
+ conda activate solarwindpy-dev
21
+ pip install -e .
22
+ ```
23
+
24
+ ### 2. Physics Validation Requirements (MANDATORY)
25
+
26
+ All contributions involving physics calculations must meet rigorous validation standards:
27
+
28
+ #### 2.1 Parameter Validation Standards
29
+ Every physics function MUST validate inputs for:
30
+
31
+ ```python
32
+ # REQUIRED: Input validation pattern
33
+ def your_physics_function(temperature, density, magnetic_field):
34
+ """Your physics calculation with required validation."""
35
+
36
+ # 1. Check for positive physical quantities
37
+ if np.any(temperature <= 0):
38
+ raise ValueError("Temperature must be positive")
39
+
40
+ if np.any(density <= 0):
41
+ raise ValueError("Density must be positive")
42
+
43
+ # 2. Check for reasonable physical ranges
44
+ if np.any(temperature > 1e8): # K
45
+ warnings.warn("Temperature exceeds typical solar wind range")
46
+
47
+ if np.any(density < 1e-25): # kg/m³
48
+ warnings.warn("Density below numerical precision threshold")
49
+
50
+ # 3. Perform calculation with error handling
51
+ try:
52
+ result = your_calculation(temperature, density, magnetic_field)
53
+ except (OverflowError, ZeroDivisionError) as e:
54
+ raise RuntimeError(f"Numerical error in calculation: {e}")
55
+
56
+ # 4. Validate results are physical
57
+ if np.any(~np.isfinite(result)):
58
+ raise RuntimeError("Calculation produced non-finite results")
59
+
60
+ return result
61
+ ```
62
+
63
+ #### 2.2 Critical Physics Error Prevention
64
+
65
+ Based on comprehensive numerical stability analysis, the following patterns are **PROHIBITED**:
66
+
67
+ ```python
68
+ # ❌ PROHIBITED: Zero density vulnerability (causes infinite Alfvén speeds)
69
+ alfven_speed = rho.pow(-0.5) * magnetic_field_coefficient
70
+
71
+ # ✅ REQUIRED: Protected calculation
72
+ def safe_alfven_speed(density, magnetic_field):
73
+ min_density = 1e-23 # kg/m³
74
+ if np.any(density <= min_density):
75
+ raise ValueError(f"Density must be > {min_density} kg/m³ for reliable Alfvén speed")
76
+
77
+ return magnetic_field / np.sqrt(mu0 * density)
78
+
79
+ # ❌ PROHIBITED: Negative energy vulnerability (causes NaN thermal speeds)
80
+ thermal_speed = thermal_energy.pow(0.5)
81
+
82
+ # ✅ REQUIRED: Protected calculation
83
+ def safe_thermal_speed(thermal_energy):
84
+ if np.any(thermal_energy <= 0):
85
+ raise ValueError("Thermal energy must be positive")
86
+
87
+ return np.sqrt(thermal_energy)
88
+ ```
89
+
90
+ #### 2.3 Numerical Stability Testing (MANDATORY)
91
+
92
+ Every physics function requires numerical stability tests:
93
+
94
+ ```python
95
+ # tests/test_your_module.py
96
+ import pytest
97
+ import numpy as np
98
+ from solarwindpy.your_module import your_physics_function
99
+
100
+ class TestNumericalStability:
101
+ """Mandatory numerical stability tests for physics calculations."""
102
+
103
+ def test_zero_density_protection(self):
104
+ """Test protection against zero density singularities."""
105
+ with pytest.raises(ValueError, match="Density must be positive"):
106
+ your_physics_function(temperature=1e5, density=0.0, magnetic_field=5e-9)
107
+
108
+ def test_negative_temperature_protection(self):
109
+ """Test protection against negative temperatures."""
110
+ with pytest.raises(ValueError, match="Temperature must be positive"):
111
+ your_physics_function(temperature=-1000, density=1e-21, magnetic_field=5e-9)
112
+
113
+ def test_extreme_parameter_handling(self):
114
+ """Test behavior at parameter boundaries."""
115
+ # Test very small values
116
+ result_small = your_physics_function(
117
+ temperature=1e3, density=1e-24, magnetic_field=0.1e-9
118
+ )
119
+ assert np.all(np.isfinite(result_small))
120
+
121
+ # Test very large values
122
+ result_large = your_physics_function(
123
+ temperature=1e8, density=1e-15, magnetic_field=100e-9
124
+ )
125
+ assert np.all(np.isfinite(result_large))
126
+
127
+ def test_precision_preservation(self):
128
+ """Test numerical precision is maintained."""
129
+ # Use high-precision reference values
130
+ temp, density, b_field = 1e6, 1e-20, 5e-9
131
+ result = your_physics_function(temp, density, b_field)
132
+
133
+ # Verify precision (adapt expected_value to your calculation)
134
+ expected_value = calculate_reference_value(temp, density, b_field)
135
+ relative_error = np.abs((result - expected_value) / expected_value)
136
+ assert np.all(relative_error < 1e-12), "Precision loss detected"
137
+
138
+ def test_vector_operations_stability(self):
139
+ """Test vector operations don't lose precision."""
140
+ # Test with nearly parallel vectors (catastrophic cancellation risk)
141
+ large_component = 1e6
142
+ small_components = [1e-3, 1e-3]
143
+
144
+ # Your vector calculation should handle this robustly
145
+ result = your_vector_function(large_component, small_components)
146
+ assert np.all(np.isfinite(result))
147
+ ```
148
+
149
+ ### 3. Code Quality Standards
150
+
151
+ #### 3.1 Formatting and Linting
152
+ Format code with `black` and lint with `flake8`:
153
+
154
+ ```bash
155
+ black solarwindpy/ tests/
156
+ flake8 solarwindpy/ tests/
157
+ ```
158
+
159
+ #### 3.2 Documentation Requirements
160
+ Ensure all docstrings follow NumPy style with physics-specific additions:
161
+
162
+ ```python
163
+ def physics_function(parameter1, parameter2):
164
+ """
165
+ Brief description of the physics calculation.
166
+
167
+ Parameters
168
+ ----------
169
+ parameter1 : float or array-like
170
+ Description including physical units and valid range
171
+ parameter2 : float or array-like
172
+ Description including physical units and valid range
173
+
174
+ Returns
175
+ -------
176
+ result : float or array-like
177
+ Description with units and expected range
178
+
179
+ Raises
180
+ ------
181
+ ValueError
182
+ When input parameters are non-physical or outside valid ranges
183
+ RuntimeError
184
+ When calculation encounters numerical instabilities
185
+
186
+ Notes
187
+ -----
188
+ Physics theory explanation and assumptions.
189
+
190
+ .. warning::
191
+ Description of numerical limitations and edge cases.
192
+
193
+ Examples
194
+ --------
195
+ >>> # Example with parameter validation
196
+ >>> import numpy as np
197
+ >>> temp = np.array([1e5, 2e5, 1e6]) # K
198
+ >>> result = physics_function(temp, other_params)
199
+ """
200
+ ```
201
+
202
+ ### 4. Testing Requirements
203
+
204
+ #### 4.1 Comprehensive Test Coverage
205
+ Run the complete test suite:
206
+
207
+ ```bash
208
+ pytest -q --cov=solarwindpy --cov-report=html
209
+ ```
210
+
211
+ **Minimum coverage requirements:**
212
+ - Overall coverage: ≥95%
213
+ - Physics modules: ≥98%
214
+ - Numerical stability tests: 100% for critical functions
215
+
216
+ #### 4.2 Physics Validation Tests
217
+ Every physics function requires:
218
+
219
+ 1. **Domain validation tests** - verify input parameter ranges
220
+ 2. **Edge case tests** - test behavior at calculation boundaries
221
+ 3. **Precision tests** - verify numerical accuracy preservation
222
+ 4. **Cross-validation tests** - compare with analytical solutions where possible
223
+
224
+ #### 4.3 Integration Tests
225
+ Test interaction between modules:
226
+
227
+ ```python
228
+ def test_multi_module_consistency():
229
+ """Test consistency across physics modules."""
230
+ plasma = create_test_plasma()
231
+
232
+ # Calculate same quantity using different approaches
233
+ thermal_speed_1 = plasma.thermal_speed()
234
+ thermal_speed_2 = alternative_thermal_speed_calculation(plasma)
235
+
236
+ # Verify consistency within numerical precision
237
+ np.testing.assert_allclose(thermal_speed_1, thermal_speed_2, rtol=1e-12)
238
+ ```
239
+
240
+ ### 5. Documentation Standards
241
+
242
+ #### 5.1 Sphinx Documentation
243
+ Build documentation and ensure no warnings:
244
+
245
+ ```bash
246
+ cd docs
247
+ make clean
248
+ make html SPHINXOPTS=-W
249
+ ```
250
+
251
+ #### 5.2 Physics Documentation Requirements
252
+ New physics functions must include:
253
+
254
+ 1. **Theoretical foundation** - mathematical derivation
255
+ 2. **Valid parameter ranges** - explicit bounds for reliable calculation
256
+ 3. **Numerical considerations** - precision limitations and edge cases
257
+ 4. **Example usage** - with proper parameter validation
258
+ 5. **Literature references** - scientific validation sources
259
+
260
+ #### 5.3 User Safety Documentation
261
+ Critical functions must include user warnings:
262
+
263
+ ```rst
264
+ .. danger::
265
+ This calculation has known numerical instabilities.
266
+ Always validate input parameters are within specified ranges.
267
+ ```
268
+
269
+ ### 6. Scientific Validation Checklist
270
+
271
+ Before submitting physics-related contributions:
272
+
273
+ - [ ] **Input validation implemented** for all parameters
274
+ - [ ] **Edge case protection** against singularities and mathematical errors
275
+ - [ ] **Numerical stability tests** covering boundary conditions
276
+ - [ ] **Results validation** against expected physical ranges
277
+ - [ ] **Cross-validation** with literature values or alternative methods
278
+ - [ ] **Documentation includes** physics theory and limitations
279
+ - [ ] **User warnings** documented for numerical limitations
280
+ - [ ] **Performance tested** with large-scale realistic datasets
281
+
282
+ ### 7. Git Workflow Standards
283
+
284
+ #### 7.1 Branch Organization
285
+ - **Feature branches**: `feature/description-of-change`
286
+ - **Bug fixes**: `fix/issue-description`
287
+ - **Physics enhancements**: `physics/calculation-improvement`
288
+
289
+ #### 7.2 Commit Standards
290
+ Use conventional commit format with physics context:
291
+
292
+ ```
293
+ feat(plasma): add robust Alfvén speed calculation with zero-density protection
294
+
295
+ - Implement minimum density threshold validation
296
+ - Add comprehensive numerical stability tests
297
+ - Include physics theory documentation
298
+ - Prevent infinite speed calculation errors
299
+
300
+ Fixes critical numerical vulnerability in plasma.alfven_speed()
301
+ ```
302
+
303
+ #### 7.3 Pre-commit Validation
304
+ Install pre-commit hooks for automatic validation:
305
+
306
+ ```bash
307
+ pre-commit install
308
+ ```
309
+
310
+ This runs automatic checks for:
311
+ - Code formatting (black)
312
+ - Linting (flake8)
313
+ - Basic test execution
314
+ - Documentation link validation
315
+
316
+ ### 8. Physics-Specific Contribution Guidelines
317
+
318
+ #### 8.1 New Physics Calculations
319
+ When adding new plasma physics calculations:
320
+
321
+ 1. **Literature review** - verify calculation method against established sources
322
+ 2. **Mathematical validation** - confirm derivation and assumptions
323
+ 3. **Parameter space analysis** - identify valid input ranges
324
+ 4. **Edge case identification** - determine potential numerical issues
325
+ 5. **Reference implementation** - compare with established codes when possible
326
+
327
+ #### 8.2 Existing Function Modifications
328
+ When modifying physics functions:
329
+
330
+ 1. **Backward compatibility** - ensure existing valid usage continues to work
331
+ 2. **Performance regression testing** - verify modifications don't degrade performance
332
+ 3. **Scientific accuracy validation** - confirm modifications preserve physics correctness
333
+ 4. **Cross-module impact assessment** - check effects on dependent calculations
334
+
335
+ #### 8.3 Numerical Algorithm Updates
336
+ When changing numerical approaches:
337
+
338
+ 1. **Precision comparison** - benchmark new vs old algorithm accuracy
339
+ 2. **Stability analysis** - test robustness across full parameter space
340
+ 3. **Performance analysis** - measure computational efficiency changes
341
+ 4. **Scientific validation** - confirm physics results remain consistent
342
+
343
+ ### 9. Review Process
344
+
345
+ #### 9.1 Physics Review Requirements
346
+ All physics-related contributions require:
347
+
348
+ - **Code review** by maintainer with plasma physics expertise
349
+ - **Numerical validation** of test coverage and stability
350
+ - **Documentation review** for scientific accuracy
351
+ - **Integration testing** with existing physics modules
352
+
353
+ #### 9.2 Quality Gates
354
+ Contributions must pass:
355
+
356
+ 1. **Automated testing** - all tests passing with required coverage
357
+ 2. **Physics validation** - numerical stability and accuracy verified
358
+ 3. **Documentation build** - complete documentation without warnings
359
+ 4. **Performance benchmarks** - no significant regression in calculation speed
360
+
361
+ ### 10. Common Issues and Solutions
362
+
363
+ #### 10.1 Numerical Instability Debugging
364
+ If you encounter numerical issues:
365
+
366
+ ```python
367
+ # Debug numerical problems systematically
368
+ import numpy as np
369
+
370
+ def debug_calculation(function, *args):
371
+ """Debug helper for numerical issues."""
372
+
373
+ # Check inputs
374
+ for i, arg in enumerate(args):
375
+ print(f"Arg {i}: min={np.min(arg)}, max={np.max(arg)}, "
376
+ f"has_nan={np.any(np.isnan(arg))}, has_inf={np.any(np.isinf(arg))}")
377
+
378
+ # Perform calculation
379
+ try:
380
+ result = function(*args)
381
+ print(f"Result: min={np.min(result)}, max={np.max(result)}, "
382
+ f"has_nan={np.any(np.isnan(result))}, has_inf={np.any(np.isinf(result))}")
383
+ return result
384
+ except Exception as e:
385
+ print(f"Calculation failed: {e}")
386
+ return None
387
+ ```
388
+
389
+ #### 10.2 Performance vs. Precision Trade-offs
390
+ When optimizing calculations:
391
+
392
+ 1. **Profile before optimizing** - identify actual bottlenecks
393
+ 2. **Preserve numerical accuracy** - don't sacrifice precision for minor speed gains
394
+ 3. **Test edge cases thoroughly** - optimization often affects stability
395
+ 4. **Document trade-offs** - explain any precision limitations introduced
396
+
397
+ ### 11. Getting Help
398
+
399
+ #### 11.1 Development Questions
400
+ - **Physics questions**: Consult plasma physics literature or domain experts
401
+ - **Numerical issues**: Review numerical stability guide and common patterns
402
+ - **Testing questions**: Examine existing test patterns in similar modules
403
+
404
+ #### 11.2 Community Resources
405
+ - **GitHub Issues**: Report bugs or request features
406
+ - **Discussions**: Ask questions about contribution process
407
+ - **Documentation**: Comprehensive guides for common tasks
408
+
409
+ ## Summary
410
+
411
+ Contributing to SolarWindPy requires attention to both software engineering best practices and scientific rigor. The physics validation requirements ensure that the library maintains its reliability for scientific research while the testing standards guarantee long-term maintainability.
412
+
413
+ **Key Principles:**
414
+ 1. **Scientific accuracy first** - physics correctness takes priority over performance
415
+ 2. **Systematic validation** - comprehensive testing prevents numerical errors
416
+ 3. **Clear documentation** - users must understand limitations and proper usage
417
+ 4. **Defensive programming** - validate inputs and handle edge cases gracefully
418
+
419
+ Thank you for helping maintain SolarWindPy as a reliable tool for solar wind plasma physics research!
@@ -0,0 +1,152 @@
1
+ # Coverage Gap Analysis - Physics-Focused Test Suite Audit
2
+
3
+ ## Current Coverage Status
4
+
5
+ **Total Coverage**: 77.1% (5,372/6,966 lines covered, 1,594 lines missing)
6
+ **Target Coverage**: ≥95% (requires reducing missing lines from 1,594 to ≤349)
7
+ **Gap to Close**: 1,245 additional lines of coverage needed
8
+
9
+ ## Module-Level Coverage Analysis
10
+
11
+ ### High-Priority Coverage Gaps
12
+
13
+ #### 1. Core Physics Modules (Significant Gaps)
14
+ - **`solarwindpy/core/plasma.py`**: 86% (71/82 lines) - **Priority: CRITICAL**
15
+ - Missing: 11 lines in plasma physics calculations
16
+ - Need: Boundary condition tests, complex plasma parameter validation
17
+
18
+ - **`solarwindpy/core/ions.py`**: 62% (107/173 lines) - **Priority: CRITICAL**
19
+ - Missing: 66 lines in ion physics calculations
20
+ - Need: Ion species interaction tests, mass/charge ratio edge cases
21
+
22
+ #### 2. Instabilities Module (Major Gap)
23
+ - **`solarwindpy/instabilities/`**: 0% coverage - **Priority: CRITICAL**
24
+ - Estimated: ~500-800 lines missing (no test files found)
25
+ - Need: Complete test suite for plasma instability calculations
26
+
27
+ #### 3. Tools Module (Major Gap)
28
+ - **`solarwindpy/tools/__init__.py`**: 15% (6/40 lines) - **Priority: HIGH**
29
+ - Missing: 34 lines of utility functions
30
+ - Need: Comprehensive utility function validation
31
+
32
+ #### 4. Numerical/Scientific Computing Gaps
33
+ - **`solarwindpy/core/quantities.py`**: 93% (55/59 lines) - **Priority: MEDIUM**
34
+ - Missing: 4 lines in unit conversion edge cases
35
+ - Need: SI unit consistency validation
36
+
37
+ - **`solarwindpy/fitfunctions/core.py`**: 82% (55/67 lines) - **Priority: MEDIUM**
38
+ - Missing: 12 lines in statistical fitting algorithms
39
+ - Need: Numerical stability tests for curve fitting
40
+
41
+ ### Physics-Specific Coverage Gaps
42
+
43
+ #### Plasma Physics Calculations
44
+ **Current Physics Test Coverage**: 316/1,128 functions (28%)
45
+ **Physics Code Coverage**: Estimated ~70% (below overall 77.1%)
46
+
47
+ Critical missing validations:
48
+ 1. **Thermal Speed Convention**: mw² = 2kT
49
+ - Only 3 explicit tests found
50
+ - Need: Systematic validation across all species and temperature ranges
51
+
52
+ 2. **Alfvén Speed Formula**: V_A = B/√(μ₀ρ)
53
+ - Only 8 validation tests found
54
+ - Need: Ion composition dependency testing, magnetic field edge cases
55
+
56
+ 3. **Conservation Laws**:
57
+ - Energy conservation: 2 tests
58
+ - Momentum conservation: 2 tests
59
+ - Mass conservation: 1 test
60
+ - Need: Comprehensive conservation validation across all physics calculations
61
+
62
+ 4. **Boundary Conditions**:
63
+ - B≈0 (near-zero magnetic field): 5 tests
64
+ - n→0 (low density): 3 tests
65
+ - Extreme temperatures: 8 tests
66
+ - Need: Systematic edge case coverage for all physical parameters
67
+
68
+ ## Specific Test Requirements for ≥95% Coverage
69
+
70
+ ### Estimated Additional Tests Needed: ~200 functions
71
+
72
+ #### By Priority Category:
73
+
74
+ **CRITICAL (Est. 80 tests)**
75
+ - Instabilities module: 50 tests (complete new test suite)
76
+ - Ion physics edge cases: 15 tests
77
+ - Plasma parameter boundaries: 15 tests
78
+
79
+ **HIGH (Est. 70 tests)**
80
+ - Tools module utilities: 25 tests
81
+ - MultiIndex DataFrame edge cases: 20 tests
82
+ - Numerical stability enhancements: 15 tests
83
+ - Unit conversion validation: 10 tests
84
+
85
+ **MEDIUM (Est. 50 tests)**
86
+ - Plotting edge cases: 20 tests
87
+ - Solar activity boundary conditions: 15 tests
88
+ - Fitting function stability: 10 tests
89
+ - Documentation and integration: 5 tests
90
+
91
+ ### Physics Constraint Validation Tests
92
+
93
+ #### SI Unit Consistency (15 additional tests needed)
94
+ - Plasma pressure calculations: 5 tests
95
+ - Velocity moment calculations: 5 tests
96
+ - Energy density calculations: 5 tests
97
+
98
+ #### Thermal Speed Convention (12 additional tests needed)
99
+ - Proton thermal speeds: 4 tests
100
+ - Alpha particle thermal speeds: 4 tests
101
+ - Multi-species thermal calculations: 4 tests
102
+
103
+ #### Conservation Law Validation (18 additional tests needed)
104
+ - Energy conservation in transformations: 6 tests
105
+ - Momentum conservation in coordinate systems: 6 tests
106
+ - Mass conservation in species calculations: 6 tests
107
+
108
+ ## Implementation Strategy for Phase 2-4
109
+
110
+ ### Phase 2: Physics Validation Focus
111
+ **Target**: Add 60 physics-focused tests
112
+ **Coverage Impact**: +8-10% total coverage
113
+ **Focus**: Critical physics calculations and constraint validation
114
+
115
+ ### Phase 3: Architecture Compliance
116
+ **Target**: Add 40 MultiIndex and architecture tests
117
+ **Coverage Impact**: +5-6% total coverage
118
+ **Focus**: DataFrame operations, memory efficiency, edge cases
119
+
120
+ ### Phase 4: Numerical Stability
121
+ **Target**: Add 45 numerical stability tests
122
+ **Coverage Impact**: +6-7% total coverage
123
+ **Focus**: Boundary conditions, floating-point edge cases, overflow protection
124
+
125
+ ### Phases 5-6: Integration and Documentation
126
+ **Target**: Add 55 integration, documentation, and delivery tests
127
+ **Coverage Impact**: +4-5% total coverage
128
+ **Focus**: Cross-module integration, comprehensive test documentation
129
+
130
+ ## Risk Assessment
131
+
132
+ ### High Risk Coverage Gaps
133
+ 1. **Instabilities Module**: Complete absence of tests for critical plasma physics
134
+ 2. **Ion Edge Cases**: Insufficient validation for multi-species calculations
135
+ 3. **Numerical Boundaries**: Limited testing of B≈0, n→0 conditions
136
+
137
+ ### Medium Risk Areas
138
+ 1. **Tools Utilities**: Core utility functions lack comprehensive testing
139
+ 2. **Unit Conversions**: SI consistency not systematically validated
140
+ 3. **MultiIndex Operations**: Complex DataFrame patterns need more coverage
141
+
142
+ ### Success Metrics for ≥95% Target
143
+ - **Total Coverage**: 95.0% (6,617/6,966 lines covered)
144
+ - **Physics Coverage**: 90%+ for core physics modules
145
+ - **Edge Case Coverage**: 95%+ for boundary conditions
146
+ - **Integration Coverage**: 85%+ for cross-module interactions
147
+
148
+ ---
149
+
150
+ **Next Actions**: Phase 2 will use PhysicsValidator agent to systematically address the critical physics validation gaps identified in this analysis.
151
+
152
+ *Generated during Phase 1: Discovery & Inventory - Physics-Focused Test Suite Audit*