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,464 @@
1
+ # Phase 5: Physics & MultiIndex Compliance
2
+
3
+ ## Phase Metadata
4
+ - **Status**: ✅ Complete
5
+ - **Estimated Duration**: 2 hours
6
+ - **Actual Duration**: 1.8 hours
7
+ - **Dependencies**: Phase 4 (Code Example Remediation) completed
8
+ - **Git Commit**: <checksum>
9
+ - **Branch**: plan/documentation-code-audit
10
+
11
+ ## 🎯 Objective
12
+ Ensure all corrected code examples strictly follow SolarWindPy physics rules and MultiIndex data structure conventions, establishing automated validation to prevent future violations.
13
+
14
+ ## 📋 Tasks Checklist
15
+ - [ ] **Physics Rule Validation** (60 min)
16
+ - [ ] Thermal speed convention compliance (mw² = 2kT) (20 min)
17
+ - [ ] SI unit consistency validation (15 min)
18
+ - [ ] Missing data handling verification (NaN vs 0/-999) (15 min)
19
+ - [ ] Alfvén speed calculation validation (V_A = B/√(μ₀ρ)) (10 min)
20
+
21
+ - [ ] **MultiIndex Structure Compliance** (45 min)
22
+ - [ ] Column level naming validation (M, C, S) (15 min)
23
+ - [ ] Data access pattern standardization (.xs() usage) (15 min)
24
+ - [ ] DataFrame index requirements (Epoch naming) (10 min)
25
+ - [ ] Species and component consistency (5 min)
26
+
27
+ - [ ] **Automated Validation Integration** (15 min)
28
+ - [ ] Create physics compliance checker script (10 min)
29
+ - [ ] Integrate with example validation framework (5 min)
30
+
31
+ ## 📁 Deliverables
32
+ - [ ] **physics_compliance_validator.py**: Automated physics rule checking
33
+ - [ ] **multiindex_structure_validator.py**: MultiIndex pattern validation
34
+ - [ ] **compliance_report.json**: Complete compliance assessment results
35
+ - [ ] **physics_examples_guide.md**: Best practices documentation
36
+ - [ ] **automated_validation_hooks.py**: CI/CD integration preparation
37
+
38
+ ## 🔬 Physics Rules Validation
39
+
40
+ ### Thermal Speed Convention (mw² = 2kT)
41
+ ```python
42
+ class ThermalSpeedValidator:
43
+ def validate_convention(self, thermal_speed, temperature, mass):
44
+ """
45
+ Validate thermal speed follows mw² = 2kT convention
46
+
47
+ Parameters:
48
+ - thermal_speed: calculated thermal speed [km/s]
49
+ - temperature: temperature [K]
50
+ - mass: particle mass [kg]
51
+ """
52
+ k_B = 1.380649e-23 # Boltzmann constant [J/K]
53
+
54
+ # Expected thermal speed: w = sqrt(2kT/m)
55
+ expected_w = np.sqrt(2 * k_B * temperature / mass) / 1000 # Convert to km/s
56
+
57
+ relative_error = abs(thermal_speed - expected_w) / expected_w
58
+
59
+ if relative_error > 0.01: # 1% tolerance
60
+ raise PhysicsViolation(
61
+ f"Thermal speed convention violation: {relative_error:.3%} error\n"
62
+ f"Expected: {expected_w:.2f} km/s, Got: {thermal_speed:.2f} km/s"
63
+ )
64
+
65
+ return True
66
+
67
+ def validate_examples_with_thermal_speed(self, examples):
68
+ """Check all examples that calculate thermal speed"""
69
+ violations = []
70
+
71
+ for example in examples:
72
+ if self.contains_thermal_speed_calculation(example.code):
73
+ try:
74
+ result = execute_example(example.code)
75
+ if 'thermal_speed' in result.outputs and 'temperature' in result.outputs:
76
+ self.validate_convention(
77
+ result.outputs['thermal_speed'],
78
+ result.outputs['temperature'],
79
+ result.outputs.get('mass', 1.67262192e-27) # Default proton mass
80
+ )
81
+ except PhysicsViolation as e:
82
+ violations.append({
83
+ 'example_id': example.id,
84
+ 'violation': str(e),
85
+ 'file': example.file_path
86
+ })
87
+
88
+ return violations
89
+ ```
90
+
91
+ ### SI Units Consistency
92
+ ```python
93
+ class SIUnitsValidator:
94
+ def __init__(self):
95
+ self.expected_units = {
96
+ 'density': 'cm^-3', # Number density (display unit)
97
+ 'velocity': 'km/s', # Velocity (display unit)
98
+ 'temperature': 'K', # Temperature
99
+ 'magnetic_field': 'nT', # Magnetic field (display unit)
100
+ 'thermal_speed': 'km/s', # Thermal speed (display unit)
101
+ 'pressure': 'Pa', # Pressure (SI base)
102
+ 'energy': 'J', # Energy (SI base)
103
+ }
104
+
105
+ def validate_units_in_example(self, example_code):
106
+ """Ensure examples use correct units for display vs calculation"""
107
+ # Internal calculations should use SI
108
+ # Display/user interface should use conventional units
109
+ violations = []
110
+
111
+ if self.uses_non_si_in_calculation(example_code):
112
+ violations.append("Non-SI units used in internal calculations")
113
+
114
+ if self.missing_unit_conversions(example_code):
115
+ violations.append("Missing unit conversions for display")
116
+
117
+ return violations
118
+
119
+ def uses_non_si_in_calculation(self, code):
120
+ """Check if code uses non-SI units in calculations"""
121
+ # Look for calculations with non-SI units
122
+ non_si_patterns = [
123
+ r'\* 1e6', # Converting to cm^-3 in calculation
124
+ r'/ 1000', # Converting to km/s in calculation
125
+ r'\* 1e9', # Converting to nT in calculation
126
+ ]
127
+
128
+ for pattern in non_si_patterns:
129
+ if re.search(pattern, code):
130
+ return True
131
+ return False
132
+ ```
133
+
134
+ ### Missing Data Handling
135
+ ```python
136
+ class MissingDataValidator:
137
+ def validate_nan_usage(self, example_code, example_outputs):
138
+ """Ensure NaN used for missing data, not 0 or -999"""
139
+ violations = []
140
+
141
+ # Check for problematic missing data indicators
142
+ if '-999' in example_code or '0' in example_code:
143
+ if self.uses_zero_for_missing_data(example_code):
144
+ violations.append("Uses 0 for missing data instead of NaN")
145
+
146
+ if self.uses_fill_values(example_code):
147
+ violations.append("Uses -999 fill values instead of NaN")
148
+
149
+ # Check outputs for proper NaN handling
150
+ if example_outputs:
151
+ for var_name, data in example_outputs.items():
152
+ if hasattr(data, 'isnull'):
153
+ if not self.proper_missing_data_handling(data):
154
+ violations.append(f"Variable {var_name} has improper missing data handling")
155
+
156
+ return violations
157
+
158
+ def proper_missing_data_handling(self, data):
159
+ """Check if data uses NaN for missing values"""
160
+ if hasattr(data, 'values'):
161
+ # Check pandas Series/DataFrame
162
+ return not np.any((data.values == 0) | (data.values == -999))
163
+ elif isinstance(data, np.ndarray):
164
+ # Check numpy arrays
165
+ return not np.any((data == 0) | (data == -999))
166
+ return True
167
+ ```
168
+
169
+ ## 📊 MultiIndex Structure Validation
170
+
171
+ ### Column Level Naming (M, C, S)
172
+ ```python
173
+ class MultiIndexValidator:
174
+ def __init__(self):
175
+ self.required_levels = ['M', 'C', 'S']
176
+ self.valid_measurements = ['n', 'v', 'w', 'b', 'T', 'P']
177
+ self.valid_components = ['x', 'y', 'z', '']
178
+ self.valid_species = ['p1', 'p2', 'a', 'he', '']
179
+
180
+ def validate_column_structure(self, dataframe):
181
+ """Validate MultiIndex column structure"""
182
+ violations = []
183
+
184
+ if not isinstance(dataframe.columns, pd.MultiIndex):
185
+ violations.append("Columns must be MultiIndex with (M, C, S) levels")
186
+ return violations
187
+
188
+ # Check level names
189
+ if list(dataframe.columns.names) != self.required_levels:
190
+ violations.append(
191
+ f"Column level names must be {self.required_levels}, "
192
+ f"got {list(dataframe.columns.names)}"
193
+ )
194
+
195
+ # Validate measurement types (M level)
196
+ measurements = dataframe.columns.get_level_values('M').unique()
197
+ invalid_measurements = set(measurements) - set(self.valid_measurements)
198
+ if invalid_measurements:
199
+ violations.append(f"Invalid measurements: {invalid_measurements}")
200
+
201
+ # Validate components (C level)
202
+ components = dataframe.columns.get_level_values('C').unique()
203
+ invalid_components = set(components) - set(self.valid_components)
204
+ if invalid_components:
205
+ violations.append(f"Invalid components: {invalid_components}")
206
+
207
+ # Validate species (S level)
208
+ species = dataframe.columns.get_level_values('S').unique()
209
+ invalid_species = set(species) - set(self.valid_species)
210
+ if invalid_species:
211
+ violations.append(f"Invalid species: {invalid_species}")
212
+
213
+ return violations
214
+ ```
215
+
216
+ ### Data Access Pattern Validation
217
+ ```python
218
+ class DataAccessValidator:
219
+ def validate_xs_usage(self, example_code):
220
+ """Ensure examples use .xs() for views, not copies"""
221
+ violations = []
222
+
223
+ # Check for inefficient data access patterns
224
+ inefficient_patterns = [
225
+ r'\.loc\[.*level.*\]', # Should use .xs() instead
226
+ r'\.iloc\[.*\]', # Positional access is fragile
227
+ r'\[\(.*,.*,.*\)\]', # Direct tuple indexing
228
+ ]
229
+
230
+ for pattern in inefficient_patterns:
231
+ if re.search(pattern, example_code):
232
+ violations.append(f"Use .xs() for MultiIndex access instead of {pattern}")
233
+
234
+ # Check for proper .xs() usage
235
+ xs_patterns = [
236
+ r"\.xs\('\w+', level='M'\)", # Measurement access
237
+ r"\.xs\('\w+', level='S'\)", # Species access
238
+ r"\.xs\('\w+', level='C'\)", # Component access
239
+ ]
240
+
241
+ has_proper_xs = any(re.search(pattern, example_code) for pattern in xs_patterns)
242
+ if '.xs(' in example_code and not has_proper_xs:
243
+ violations.append("Improper .xs() usage - specify level parameter")
244
+
245
+ return violations
246
+
247
+ def validate_index_naming(self, dataframe):
248
+ """Ensure DataFrame index is named 'Epoch' for time series"""
249
+ violations = []
250
+
251
+ if hasattr(dataframe, 'index'):
252
+ if dataframe.index.name != 'Epoch' and len(dataframe) > 1:
253
+ violations.append("Time series DataFrame index should be named 'Epoch'")
254
+
255
+ return violations
256
+ ```
257
+
258
+ ## 🔧 Automated Validation Framework
259
+
260
+ ### Integrated Compliance Checker
261
+ ```python
262
+ class ComplianceValidator:
263
+ def __init__(self):
264
+ self.thermal_speed_validator = ThermalSpeedValidator()
265
+ self.si_units_validator = SIUnitsValidator()
266
+ self.missing_data_validator = MissingDataValidator()
267
+ self.multiindex_validator = MultiIndexValidator()
268
+ self.data_access_validator = DataAccessValidator()
269
+
270
+ def validate_example_compliance(self, example):
271
+ """Comprehensive compliance check for single example"""
272
+ violations = {
273
+ 'physics': [],
274
+ 'multiindex': [],
275
+ 'data_access': [],
276
+ 'units': [],
277
+ 'missing_data': []
278
+ }
279
+
280
+ # Execute example to get outputs
281
+ try:
282
+ result = execute_example(example.code)
283
+
284
+ # Physics validation
285
+ violations['physics'].extend(
286
+ self.thermal_speed_validator.validate_examples_with_thermal_speed([example])
287
+ )
288
+
289
+ # Units validation
290
+ violations['units'].extend(
291
+ self.si_units_validator.validate_units_in_example(example.code)
292
+ )
293
+
294
+ # Missing data validation
295
+ violations['missing_data'].extend(
296
+ self.missing_data_validator.validate_nan_usage(example.code, result.outputs)
297
+ )
298
+
299
+ # MultiIndex validation
300
+ for output_name, output_data in result.outputs.items():
301
+ if hasattr(output_data, 'columns') and isinstance(output_data.columns, pd.MultiIndex):
302
+ violations['multiindex'].extend(
303
+ self.multiindex_validator.validate_column_structure(output_data)
304
+ )
305
+ violations['multiindex'].extend(
306
+ self.data_access_validator.validate_index_naming(output_data)
307
+ )
308
+
309
+ # Data access pattern validation
310
+ violations['data_access'].extend(
311
+ self.data_access_validator.validate_xs_usage(example.code)
312
+ )
313
+
314
+ except Exception as e:
315
+ violations['physics'].append(f"Example execution failed: {str(e)}")
316
+
317
+ return violations
318
+
319
+ def generate_compliance_report(self, examples):
320
+ """Generate comprehensive compliance report"""
321
+ report = {
322
+ 'timestamp': datetime.now().isoformat(),
323
+ 'total_examples': len(examples),
324
+ 'compliance_summary': {
325
+ 'physics_compliant': 0,
326
+ 'multiindex_compliant': 0,
327
+ 'fully_compliant': 0
328
+ },
329
+ 'violations_by_category': {
330
+ 'physics': [],
331
+ 'multiindex': [],
332
+ 'data_access': [],
333
+ 'units': [],
334
+ 'missing_data': []
335
+ },
336
+ 'example_details': []
337
+ }
338
+
339
+ for example in examples:
340
+ violations = self.validate_example_compliance(example)
341
+
342
+ is_physics_compliant = len(violations['physics']) == 0
343
+ is_multiindex_compliant = (
344
+ len(violations['multiindex']) == 0 and
345
+ len(violations['data_access']) == 0
346
+ )
347
+ is_fully_compliant = all(len(v) == 0 for v in violations.values())
348
+
349
+ # Update summary counts
350
+ if is_physics_compliant:
351
+ report['compliance_summary']['physics_compliant'] += 1
352
+ if is_multiindex_compliant:
353
+ report['compliance_summary']['multiindex_compliant'] += 1
354
+ if is_fully_compliant:
355
+ report['compliance_summary']['fully_compliant'] += 1
356
+
357
+ # Collect violations by category
358
+ for category, violation_list in violations.items():
359
+ report['violations_by_category'][category].extend(violation_list)
360
+
361
+ # Add example details
362
+ report['example_details'].append({
363
+ 'example_id': example.id,
364
+ 'file_path': example.file_path,
365
+ 'violations': violations,
366
+ 'physics_compliant': is_physics_compliant,
367
+ 'multiindex_compliant': is_multiindex_compliant,
368
+ 'fully_compliant': is_fully_compliant
369
+ })
370
+
371
+ return report
372
+ ```
373
+
374
+ ## 📊 Success Metrics
375
+
376
+ ### Physics Compliance Targets
377
+ - **Thermal Speed Convention**: 100% compliance with mw² = 2kT
378
+ - **SI Units**: 100% internal calculations use SI units
379
+ - **Missing Data**: 100% use NaN for missing data (no 0 or -999)
380
+ - **Scientific Accuracy**: All physics calculations within 1% theoretical values
381
+
382
+ ### MultiIndex Compliance Targets
383
+ - **Column Structure**: 100% use (M, C, S) naming convention
384
+ - **Data Access**: 90% use .xs() for MultiIndex access (some .loc acceptable)
385
+ - **Index Naming**: 100% time series use 'Epoch' index name
386
+ - **Consistency**: 100% species and component codes follow standards
387
+
388
+ ### Automation Integration Targets
389
+ - **Validation Speed**: <10 seconds for all 47 examples
390
+ - **Error Detection**: 95% accuracy in identifying violations
391
+ - **CI/CD Ready**: Validation hooks prepared for automated testing
392
+ - **Documentation**: Clear guidelines for future example creation
393
+
394
+ ## ⚡ Execution Strategy
395
+
396
+ ### Phase 5 Implementation Order
397
+ 1. **Physics Rule Validation** (60 min)
398
+ - Focus on thermal speed and unit conventions first
399
+ - Validate against existing examples with known physics
400
+ - Create automated checking for future examples
401
+
402
+ 2. **MultiIndex Structure Validation** (45 min)
403
+ - Ensure all data structures follow established patterns
404
+ - Validate access patterns and naming conventions
405
+ - Document best practices for consistency
406
+
407
+ 3. **Automation Integration** (15 min)
408
+ - Create validation scripts for CI/CD integration
409
+ - Prepare hooks for automated checking
410
+ - Test validation speed and accuracy
411
+
412
+ ### Risk Mitigation
413
+ - **Physics Expertise**: Validate rules with domain experts
414
+ - **Performance**: Optimize validation scripts for speed
415
+ - **False Positives**: Tune validation thresholds to avoid over-strictness
416
+ - **Backward Compatibility**: Ensure validation doesn't break existing patterns
417
+
418
+ ## ✅ Completion Criteria
419
+ - [ ] All examples validated against physics rules
420
+ - [ ] MultiIndex structure compliance verified
421
+ - [ ] Automated validation framework operational
422
+ - [ ] Compliance report showing >95% rule adherence
423
+ - [ ] CI/CD integration hooks prepared
424
+ - [ ] Best practices documentation created
425
+
426
+ ## 🔄 Transition to Phase 6
427
+ **Preparation for Phase 6: Doctest Integration**
428
+ - Physics and MultiIndex compliance established
429
+ - Automated validation framework operational
430
+ - Examples following consistent patterns
431
+ - Ready for doctest automation integration
432
+
433
+ **Next Phase Prerequisites:**
434
+ - Compliant examples as baseline for doctest integration
435
+ - Validation framework ready for CI/CD integration
436
+ - Clear patterns documented for automated testing
437
+ - Physics rules encoded in validation scripts
438
+
439
+ ---
440
+
441
+ **📝 User Action Required**: After completing this phase, run:
442
+ ```bash
443
+ git add plans/documentation-code-audit/5-Physics-MultiIndex-Compliance.md \
444
+ physics_compliance_validator.py multiindex_structure_validator.py \
445
+ compliance_report.json physics_examples_guide.md automated_validation_hooks.py
446
+ git commit -m "docs: complete Phase 5 physics and MultiIndex compliance validation
447
+
448
+ - Established comprehensive physics rule validation (thermal speed, units, missing data)
449
+ - Validated MultiIndex structure compliance across all examples
450
+ - Created automated validation framework for CI/CD integration
451
+ - Achieved >95% compliance with established physics and data conventions
452
+ - Documented best practices for consistent future example creation
453
+
454
+ 🤖 Generated with [Claude Code](https://claude.ai/code)
455
+
456
+ Co-Authored-By: Claude <noreply@anthropic.com>"
457
+ ```
458
+
459
+ **Then create compacted state for session continuity:**
460
+ ```bash
461
+ python .claude/hooks/create-compaction.py \
462
+ --trigger "Phase 5 completion - physics and MultiIndex compliance validated" \
463
+ --context "Ready for doctest integration in Phase 6"
464
+ ```