pyrite-mc 0.13.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1922) hide show
  1. pyrite_mc-0.13.2/.agents/hooks/sync_local_backend.sh +58 -0
  2. pyrite_mc-0.13.2/.agents/skills/caveman/SKILL.md +36 -0
  3. pyrite_mc-0.13.2/.agents/skills/caveman-commit/SKILL.md +23 -0
  4. pyrite_mc-0.13.2/.agents/skills/caveman-compress/SKILL.md +45 -0
  5. pyrite_mc-0.13.2/.agents/skills/caveman-compress/scripts/__init__.py +9 -0
  6. pyrite_mc-0.13.2/.agents/skills/caveman-compress/scripts/__main__.py +3 -0
  7. pyrite_mc-0.13.2/.agents/skills/caveman-compress/scripts/benchmark.py +81 -0
  8. pyrite_mc-0.13.2/.agents/skills/caveman-compress/scripts/cli.py +85 -0
  9. pyrite_mc-0.13.2/.agents/skills/caveman-compress/scripts/compress.py +347 -0
  10. pyrite_mc-0.13.2/.agents/skills/caveman-compress/scripts/detect.py +182 -0
  11. pyrite_mc-0.13.2/.agents/skills/caveman-compress/scripts/validate.py +213 -0
  12. pyrite_mc-0.13.2/.agents/skills/caveman-help/SKILL.md +22 -0
  13. pyrite_mc-0.13.2/.agents/skills/caveman-review/SKILL.md +17 -0
  14. pyrite_mc-0.13.2/.agents/skills/cli-ui-ux/SKILL.md +54 -0
  15. pyrite_mc-0.13.2/.agents/skills/cli-ui-ux/agents/openai.yaml +4 -0
  16. pyrite_mc-0.13.2/.agents/skills/dispatch-task/SKILL.md +89 -0
  17. pyrite_mc-0.13.2/.agents/skills/dispatch-task/agents/openai.yaml +4 -0
  18. pyrite_mc-0.13.2/.agents/skills/documentation-maintenance/SKILL.md +42 -0
  19. pyrite_mc-0.13.2/.agents/skills/documentation-maintenance/agents/openai.yaml +4 -0
  20. pyrite_mc-0.13.2/.agents/skills/implement-task/SKILL.md +52 -0
  21. pyrite_mc-0.13.2/.agents/skills/implement-task/agents/openai.yaml +4 -0
  22. pyrite_mc-0.13.2/.agents/skills/implement-task-lite/SKILL.md +37 -0
  23. pyrite_mc-0.13.2/.agents/skills/implement-task-lite/agents/openai.yaml +4 -0
  24. pyrite_mc-0.13.2/.agents/skills/issue-audit/SKILL.md +22 -0
  25. pyrite_mc-0.13.2/.agents/skills/lead-task/SKILL.md +64 -0
  26. pyrite_mc-0.13.2/.agents/skills/lead-task/agents/openai.yaml +4 -0
  27. pyrite_mc-0.13.2/.agents/skills/marimo-pair/SKILL.md +292 -0
  28. pyrite_mc-0.13.2/.agents/skills/marimo-pair/reference/execution-context.md +70 -0
  29. pyrite_mc-0.13.2/.agents/skills/marimo-pair/reference/finding-marimo.md +117 -0
  30. pyrite_mc-0.13.2/.agents/skills/marimo-pair/reference/gotchas.md +92 -0
  31. pyrite_mc-0.13.2/.agents/skills/marimo-pair/reference/notebook-improvements.md +124 -0
  32. pyrite_mc-0.13.2/.agents/skills/marimo-pair/reference/rich-representations.md +307 -0
  33. pyrite_mc-0.13.2/.agents/skills/marimo-pair/scripts/discover-servers.sh +320 -0
  34. pyrite_mc-0.13.2/.agents/skills/marimo-pair/scripts/execute-code.sh +247 -0
  35. pyrite_mc-0.13.2/.agents/skills/monte-carlo/SKILL.md +17 -0
  36. pyrite_mc-0.13.2/.agents/skills/notebook-workflow/SKILL.md +21 -0
  37. pyrite_mc-0.13.2/.agents/skills/performance/SKILL.md +19 -0
  38. pyrite_mc-0.13.2/.agents/skills/physics-review/SKILL.md +18 -0
  39. pyrite_mc-0.13.2/.agents/skills/physics-validation/SKILL.md +39 -0
  40. pyrite_mc-0.13.2/.agents/skills/regen-golden/SKILL.md +21 -0
  41. pyrite_mc-0.13.2/.agents/skills/regression-testing/SKILL.md +35 -0
  42. pyrite_mc-0.13.2/.agents/skills/release/SKILL.md +30 -0
  43. pyrite_mc-0.13.2/.agents/skills/remote-gpu-jobs/SKILL.md +19 -0
  44. pyrite_mc-0.13.2/.agents/skills/repo-cleanup/SKILL.md +44 -0
  45. pyrite_mc-0.13.2/.agents/skills/repo-orientation/SKILL.md +24 -0
  46. pyrite_mc-0.13.2/.agents/skills/run-pyrite/SKILL.md +31 -0
  47. pyrite_mc-0.13.2/.agents/skills/scientific-library/SKILL.md +18 -0
  48. pyrite_mc-0.13.2/.agents/skills/triage/SKILL.md +58 -0
  49. pyrite_mc-0.13.2/.agents/skills/triage/agents/openai.yaml +4 -0
  50. pyrite_mc-0.13.2/.claude/.gitignore +2 -0
  51. pyrite_mc-0.13.2/.claude/agents/physics-ledger-auditor.md +54 -0
  52. pyrite_mc-0.13.2/.claude/agents/physics-validator.md +19 -0
  53. pyrite_mc-0.13.2/.claude/commands/dev/benchmark.md +3 -0
  54. pyrite_mc-0.13.2/.claude/commands/dev/profile.md +3 -0
  55. pyrite_mc-0.13.2/.claude/commands/dev/regression-test.md +3 -0
  56. pyrite_mc-0.13.2/.claude/commands/docs/update-repo-map.md +6 -0
  57. pyrite_mc-0.13.2/.claude/commands/notebooks/cleanup.md +3 -0
  58. pyrite_mc-0.13.2/.claude/commands/notebooks/convert.md +4 -0
  59. pyrite_mc-0.13.2/.claude/commands/paper/reproduce.md +4 -0
  60. pyrite_mc-0.13.2/.claude/commands/physics/implement.md +4 -0
  61. pyrite_mc-0.13.2/.claude/commands/physics/review.md +4 -0
  62. pyrite_mc-0.13.2/.claude/commands/physics/validate.md +4 -0
  63. pyrite_mc-0.13.2/.claude/settings.json +63 -0
  64. pyrite_mc-0.13.2/.claude/skills/caveman/SKILL.md +36 -0
  65. pyrite_mc-0.13.2/.claude/skills/caveman-commit/SKILL.md +23 -0
  66. pyrite_mc-0.13.2/.claude/skills/caveman-compress/SKILL.md +45 -0
  67. pyrite_mc-0.13.2/.claude/skills/caveman-compress/scripts/__init__.py +9 -0
  68. pyrite_mc-0.13.2/.claude/skills/caveman-compress/scripts/__main__.py +3 -0
  69. pyrite_mc-0.13.2/.claude/skills/caveman-compress/scripts/benchmark.py +81 -0
  70. pyrite_mc-0.13.2/.claude/skills/caveman-compress/scripts/cli.py +85 -0
  71. pyrite_mc-0.13.2/.claude/skills/caveman-compress/scripts/compress.py +347 -0
  72. pyrite_mc-0.13.2/.claude/skills/caveman-compress/scripts/detect.py +182 -0
  73. pyrite_mc-0.13.2/.claude/skills/caveman-compress/scripts/validate.py +213 -0
  74. pyrite_mc-0.13.2/.claude/skills/caveman-help/SKILL.md +22 -0
  75. pyrite_mc-0.13.2/.claude/skills/caveman-review/SKILL.md +17 -0
  76. pyrite_mc-0.13.2/.claude/skills/cli-ui-ux/SKILL.md +54 -0
  77. pyrite_mc-0.13.2/.claude/skills/cli-ui-ux/agents/openai.yaml +4 -0
  78. pyrite_mc-0.13.2/.claude/skills/dispatch-task/SKILL.md +89 -0
  79. pyrite_mc-0.13.2/.claude/skills/dispatch-task/agents/openai.yaml +4 -0
  80. pyrite_mc-0.13.2/.claude/skills/documentation-maintenance/SKILL.md +42 -0
  81. pyrite_mc-0.13.2/.claude/skills/documentation-maintenance/agents/openai.yaml +4 -0
  82. pyrite_mc-0.13.2/.claude/skills/implement-task/SKILL.md +52 -0
  83. pyrite_mc-0.13.2/.claude/skills/implement-task/agents/openai.yaml +4 -0
  84. pyrite_mc-0.13.2/.claude/skills/implement-task-lite/SKILL.md +37 -0
  85. pyrite_mc-0.13.2/.claude/skills/implement-task-lite/agents/openai.yaml +4 -0
  86. pyrite_mc-0.13.2/.claude/skills/issue-audit/SKILL.md +22 -0
  87. pyrite_mc-0.13.2/.claude/skills/lead-task/SKILL.md +64 -0
  88. pyrite_mc-0.13.2/.claude/skills/lead-task/agents/openai.yaml +4 -0
  89. pyrite_mc-0.13.2/.claude/skills/marimo-pair/SKILL.md +292 -0
  90. pyrite_mc-0.13.2/.claude/skills/marimo-pair/reference/execution-context.md +70 -0
  91. pyrite_mc-0.13.2/.claude/skills/marimo-pair/reference/finding-marimo.md +117 -0
  92. pyrite_mc-0.13.2/.claude/skills/marimo-pair/reference/gotchas.md +92 -0
  93. pyrite_mc-0.13.2/.claude/skills/marimo-pair/reference/notebook-improvements.md +124 -0
  94. pyrite_mc-0.13.2/.claude/skills/marimo-pair/reference/rich-representations.md +307 -0
  95. pyrite_mc-0.13.2/.claude/skills/marimo-pair/scripts/discover-servers.sh +320 -0
  96. pyrite_mc-0.13.2/.claude/skills/marimo-pair/scripts/execute-code.sh +247 -0
  97. pyrite_mc-0.13.2/.claude/skills/monte-carlo/SKILL.md +17 -0
  98. pyrite_mc-0.13.2/.claude/skills/notebook-workflow/SKILL.md +21 -0
  99. pyrite_mc-0.13.2/.claude/skills/performance/SKILL.md +19 -0
  100. pyrite_mc-0.13.2/.claude/skills/physics-review/SKILL.md +18 -0
  101. pyrite_mc-0.13.2/.claude/skills/physics-validation/SKILL.md +39 -0
  102. pyrite_mc-0.13.2/.claude/skills/regen-golden/SKILL.md +21 -0
  103. pyrite_mc-0.13.2/.claude/skills/regression-testing/SKILL.md +35 -0
  104. pyrite_mc-0.13.2/.claude/skills/release/SKILL.md +30 -0
  105. pyrite_mc-0.13.2/.claude/skills/remote-gpu-jobs/SKILL.md +19 -0
  106. pyrite_mc-0.13.2/.claude/skills/repo-cleanup/SKILL.md +44 -0
  107. pyrite_mc-0.13.2/.claude/skills/repo-orientation/SKILL.md +24 -0
  108. pyrite_mc-0.13.2/.claude/skills/run-pyrite/SKILL.md +31 -0
  109. pyrite_mc-0.13.2/.claude/skills/scientific-library/SKILL.md +18 -0
  110. pyrite_mc-0.13.2/.claude/skills/triage/SKILL.md +58 -0
  111. pyrite_mc-0.13.2/.claude/skills/triage/agents/openai.yaml +4 -0
  112. pyrite_mc-0.13.2/.codex/config.toml +8 -0
  113. pyrite_mc-0.13.2/.codex/hooks.json +53 -0
  114. pyrite_mc-0.13.2/.editorconfig +12 -0
  115. pyrite_mc-0.13.2/.env.example +6 -0
  116. pyrite_mc-0.13.2/.gitattributes +9 -0
  117. pyrite_mc-0.13.2/.github/workflows/ci.yml +70 -0
  118. pyrite_mc-0.13.2/.github/workflows/docs.yml +42 -0
  119. pyrite_mc-0.13.2/.github/workflows/publish-pypi.yml +53 -0
  120. pyrite_mc-0.13.2/.github/workflows/release.yml +44 -0
  121. pyrite_mc-0.13.2/.gitignore +291 -0
  122. pyrite_mc-0.13.2/.pre-commit-config.yaml +33 -0
  123. pyrite_mc-0.13.2/.python-version +1 -0
  124. pyrite_mc-0.13.2/.readthedocs.yaml +18 -0
  125. pyrite_mc-0.13.2/.serena/.gitignore +2 -0
  126. pyrite_mc-0.13.2/.serena/memories/conventions.md +8 -0
  127. pyrite_mc-0.13.2/.serena/memories/core.md +9 -0
  128. pyrite_mc-0.13.2/.serena/memories/memory_maintenance.md +21 -0
  129. pyrite_mc-0.13.2/.serena/memories/remote_cluster_memory.md +5 -0
  130. pyrite_mc-0.13.2/.serena/memories/suggested_commands.md +8 -0
  131. pyrite_mc-0.13.2/.serena/memories/task_completion.md +7 -0
  132. pyrite_mc-0.13.2/.serena/memories/tech_stack.md +7 -0
  133. pyrite_mc-0.13.2/.serena/modes/pyrite-tools.yml +7 -0
  134. pyrite_mc-0.13.2/.serena/project.yml +188 -0
  135. pyrite_mc-0.13.2/.vscode/launch.json +110 -0
  136. pyrite_mc-0.13.2/.vscode/settings.json +16 -0
  137. pyrite_mc-0.13.2/.vscode/tasks.json +18 -0
  138. pyrite_mc-0.13.2/.worktreeinclude +3 -0
  139. pyrite_mc-0.13.2/AGENTS.md +113 -0
  140. pyrite_mc-0.13.2/CLAUDE.md +7 -0
  141. pyrite_mc-0.13.2/LICENSE.txt +29 -0
  142. pyrite_mc-0.13.2/PKG-INFO +399 -0
  143. pyrite_mc-0.13.2/README.md +330 -0
  144. pyrite_mc-0.13.2/THIRD-PARTY-NOTICES.md +208 -0
  145. pyrite_mc-0.13.2/agentdocs/README.md +40 -0
  146. pyrite_mc-0.13.2/agentdocs/archive/case-compare-tab-plan.md +194 -0
  147. pyrite_mc-0.13.2/agentdocs/archive/cli-deprecation-substrate-handoff.md +146 -0
  148. pyrite_mc-0.13.2/agentdocs/archive/gpu-perf-fixes-handoff.md +52 -0
  149. pyrite_mc-0.13.2/agentdocs/archive/issue-161-xsgen-subsystem.md +470 -0
  150. pyrite_mc-0.13.2/agentdocs/archive/scan-config-cli-plan.md +137 -0
  151. pyrite_mc-0.13.2/agentdocs/archive/superradiant-pxr.md +387 -0
  152. pyrite_mc-0.13.2/agentdocs/archive/viewer-camera-animation-plan.md +168 -0
  153. pyrite_mc-0.13.2/agentdocs/plans/README.md +14 -0
  154. pyrite_mc-0.13.2/agentdocs/plans/analysis-surface-review.md +421 -0
  155. pyrite_mc-0.13.2/agentdocs/plans/cli-redesign-implementation-plan.md +113 -0
  156. pyrite_mc-0.13.2/agentdocs/specs/2026-09-21-external-fortran-code-integration.md +615 -0
  157. pyrite_mc-0.13.2/agentdocs/tasks/33-clearer-user-control-of-calculation-numerics/README.md +163 -0
  158. pyrite_mc-0.13.2/agentdocs/tasks/49-custom-detector-tooling/README.md +145 -0
  159. pyrite_mc-0.13.2/agentdocs/tasks/53-cliprofile-support-for-filterplate-filters/README.md +144 -0
  160. pyrite_mc-0.13.2/agentdocs/tasks/57-settable-coherent-bunch-length/README.md +241 -0
  161. pyrite_mc-0.13.2/agentdocs/tasks/62-remove-inline-detector-geometry-flags-from-profile/README.md +66 -0
  162. pyrite_mc-0.13.2/agentdocs/tasks/65-decompose-mc-spectrum-into-testable-phases/README.md +155 -0
  163. pyrite_mc-0.13.2/agentdocs/tasks/66-collapse-the-four-cpu-transport-kernels-into-one-t/README.md +197 -0
  164. pyrite_mc-0.13.2/agentdocs/tasks/chore/physics-boundary-typing/README.md +133 -0
  165. pyrite_mc-0.13.2/agentdocs/tasks/chore/shim-lifecycle-enforcement/README.md +79 -0
  166. pyrite_mc-0.13.2/agentdocs/tasks/chore/transport-module-split/README.md +236 -0
  167. pyrite_mc-0.13.2/agentdocs/tasks/chore/verify-documented-code-blocks/README.md +205 -0
  168. pyrite_mc-0.13.2/agentdocs/tasks/docs/geometry-engine-evaluation/README.md +462 -0
  169. pyrite_mc-0.13.2/agentdocs/tasks/docs/readable-physics-validation-ledger/README.md +95 -0
  170. pyrite_mc-0.13.2/agentdocs/tasks/feature/cli-artifact-model/HANDOFF.md +233 -0
  171. pyrite_mc-0.13.2/agentdocs/tasks/feature/cli-artifact-model/README.md +93 -0
  172. pyrite_mc-0.13.2/agentdocs/tasks/feature/coherent-line-batching/README.md +81 -0
  173. pyrite_mc-0.13.2/agentdocs/tasks/feature/coherent-line-batching/VALIDATION-HANDOFF.md +18 -0
  174. pyrite_mc-0.13.2/agentdocs/tasks/feature/compute-performance-optimization/README.md +1154 -0
  175. pyrite_mc-0.13.2/agentdocs/tasks/feature/compute-performance-optimization/REMAINING.md +357 -0
  176. pyrite_mc-0.13.2/agentdocs/tasks/feature/energy-grid-semantics/README.md +54 -0
  177. pyrite_mc-0.13.2/agentdocs/tasks/feature/energy-grid-semantics/audit.md +113 -0
  178. pyrite_mc-0.13.2/agentdocs/tasks/feature/energy-loss-straggling/README.md +1368 -0
  179. pyrite_mc-0.13.2/agentdocs/tasks/feature/energy-loss-straggling/slice_a_regime_audit.py +814 -0
  180. pyrite_mc-0.13.2/agentdocs/tasks/feature/log-transport-lut/README.md +112 -0
  181. pyrite_mc-0.13.2/agentdocs/tasks/feature/positioned-photon-filters/README.md +435 -0
  182. pyrite_mc-0.13.2/agentdocs/tasks/feature/profile-observation-angle/README.md +20 -0
  183. pyrite_mc-0.13.2/agentdocs/tasks/feature/reference-elastic-scattering-data/AC_GATE_REPORT.md +156 -0
  184. pyrite_mc-0.13.2/agentdocs/tasks/feature/reference-elastic-scattering-data/ALTERNATIVE_SOURCE_REPORT.md +96 -0
  185. pyrite_mc-0.13.2/agentdocs/tasks/feature/reference-elastic-scattering-data/README.md +131 -0
  186. pyrite_mc-0.13.2/agentdocs/tasks/feature/reference-electron-stopping-data/README.md +230 -0
  187. pyrite_mc-0.13.2/agentdocs/tasks/feature/relativistic-bethe-stopping/README.md +636 -0
  188. pyrite_mc-0.13.2/agentdocs/tasks/feature/timepix-pixel-spectra/README.md +975 -0
  189. pyrite_mc-0.13.2/agentdocs/tasks/feature/timepix-pixel-spectra/evidence/oracle-report.broken-symmetry.json +818 -0
  190. pyrite_mc-0.13.2/agentdocs/tasks/feature/timepix-pixel-spectra/evidence/oracle-report.high-stat.json +818 -0
  191. pyrite_mc-0.13.2/agentdocs/tasks/feature/timepix-pixel-spectra/evidence/oracle-report.json +818 -0
  192. pyrite_mc-0.13.2/agentdocs/tasks/feature/timepix-pixel-spectra/evidence/oracle-report.near-normal.json +818 -0
  193. pyrite_mc-0.13.2/agentdocs/tasks/feature/timepix-pixel-spectra/evidence/oracle-report.repaired-summary.md +106 -0
  194. pyrite_mc-0.13.2/agentdocs/tasks/feature/timepix-pixel-spectra/evidence/oracle-report.repaired.baseline.json +10125 -0
  195. pyrite_mc-0.13.2/agentdocs/tasks/feature/timepix-pixel-spectra/evidence/oracle-report.repaired.broken-symmetry.json +9376 -0
  196. pyrite_mc-0.13.2/agentdocs/tasks/feature/timepix-pixel-spectra/evidence/oracle-report.repaired.detector-on-g.json +10914 -0
  197. pyrite_mc-0.13.2/agentdocs/tasks/feature/timepix-pixel-spectra/evidence/oracle-report.repaired.near-pole-not-g-aligned.json +10172 -0
  198. pyrite_mc-0.13.2/agentdocs/tasks/feature/timepix-pixel-spectra/evidence/physics-review-slice1-followup.md +379 -0
  199. pyrite_mc-0.13.2/agentdocs/tasks/feature/timepix-pixel-spectra/evidence/physics-review-slice1.md +566 -0
  200. pyrite_mc-0.13.2/agentdocs/tasks/fix/checkpoint-h5-suffix/README.md +57 -0
  201. pyrite_mc-0.13.2/agentdocs/tasks/fix/chunked-checkpoint-lifecycle/README.md +265 -0
  202. pyrite_mc-0.13.2/agentdocs/tasks/fix/groove-jit-test-coverage/README.md +108 -0
  203. pyrite_mc-0.13.2/agentdocs/tasks/fix/result-encoding-overhead/README.md +323 -0
  204. pyrite_mc-0.13.2/agentdocs/tasks/fix/run-cache-flags-auto-pull/README.md +164 -0
  205. pyrite_mc-0.13.2/agentdocs/tasks/issue-100-nonuniform-photon-continua/README.md +437 -0
  206. pyrite_mc-0.13.2/agentdocs/tasks/issue-101-line-windows/README.md +129 -0
  207. pyrite_mc-0.13.2/agentdocs/tasks/issue-117-coherent-line-grid-aliasing/README.md +104 -0
  208. pyrite_mc-0.13.2/agentdocs/tasks/issue-123-derive-line-coverage-channel/README.md +94 -0
  209. pyrite_mc-0.13.2/agentdocs/tasks/issue-124-per-material-line-grids/README.md +90 -0
  210. pyrite_mc-0.13.2/agentdocs/tasks/issue-153-nonuniform-grid-spelling/README.md +202 -0
  211. pyrite_mc-0.13.2/agentdocs/tasks/issue-181-pxr-segment-absorption/README.md +90 -0
  212. pyrite_mc-0.13.2/agentdocs/tasks/issue-182-full-track-validation/README.md +61 -0
  213. pyrite_mc-0.13.2/agentdocs/tasks/issue-192-high-energy-line-grid/README.md +657 -0
  214. pyrite_mc-0.13.2/agentdocs/tasks/issue-91-relaxation-cascade/README.md +249 -0
  215. pyrite_mc-0.13.2/agentdocs/tasks/issue-93-soft-hard-inelastic-transport/README.md +659 -0
  216. pyrite_mc-0.13.2/checks/README.md +87 -0
  217. pyrite_mc-0.13.2/checks/brem_angular_comparison.py +113 -0
  218. pyrite_mc-0.13.2/checks/brem_source_comparison.py +171 -0
  219. pyrite_mc-0.13.2/checks/coherent_flat_omission.py +305 -0
  220. pyrite_mc-0.13.2/checks/coherent_physical_population_remote.py +475 -0
  221. pyrite_mc-0.13.2/checks/coherent_transverse_coherence.py +227 -0
  222. pyrite_mc-0.13.2/checks/coherent_window_excluded_dispersion.py +139 -0
  223. pyrite_mc-0.13.2/checks/collision_statistics_refinement.py +233 -0
  224. pyrite_mc-0.13.2/checks/cross_reflection_coherence.py +214 -0
  225. pyrite_mc-0.13.2/checks/dans_diffraction_oracle.py +153 -0
  226. pyrite_mc-0.13.2/checks/detector_solid_angle_check.py +134 -0
  227. pyrite_mc-0.13.2/checks/elsepa_line_sensitivity.py +186 -0
  228. pyrite_mc-0.13.2/checks/energy_loss_straggling_observables.py +337 -0
  229. pyrite_mc-0.13.2/checks/energy_step_convergence_matrix.py +857 -0
  230. pyrite_mc-0.13.2/checks/feranchuk_analysis.ipynb +1198 -0
  231. pyrite_mc-0.13.2/checks/feranchuk_analysis.md +1066 -0
  232. pyrite_mc-0.13.2/checks/feranchuk_check_script.py +156 -0
  233. pyrite_mc-0.13.2/checks/feranchuk_vs_zhai_check.py +133 -0
  234. pyrite_mc-0.13.2/checks/full_track_bremslib/GEANT4_BUILD.md +47 -0
  235. pyrite_mc-0.13.2/checks/full_track_bremslib/README.md +344 -0
  236. pyrite_mc-0.13.2/checks/full_track_bremslib/compare_issue317.py +123 -0
  237. pyrite_mc-0.13.2/checks/full_track_bremslib/geant4-conda-explicit.txt +151 -0
  238. pyrite_mc-0.13.2/checks/full_track_bremslib/geant4-testem5-emission.patch +97 -0
  239. pyrite_mc-0.13.2/checks/full_track_bremslib/geant4-testem5.patch +22 -0
  240. pyrite_mc-0.13.2/checks/full_track_bremslib/issue317_tasks.txt +63 -0
  241. pyrite_mc-0.13.2/checks/full_track_bremslib/prod_bench.py +146 -0
  242. pyrite_mc-0.13.2/checks/full_track_bremslib/reference/si_300kev.log.gz +0 -0
  243. pyrite_mc-0.13.2/checks/full_track_bremslib/reference/si_300kev_emission.log.gz +0 -0
  244. pyrite_mc-0.13.2/checks/full_track_bremslib/reference/si_300kev_emission_h1_h63.csv +309 -0
  245. pyrite_mc-0.13.2/checks/full_track_bremslib/reference/si_300kev_h1_h3.csv +39 -0
  246. pyrite_mc-0.13.2/checks/full_track_bremslib/reference/si_300kev_h1_h62.csv +39 -0
  247. pyrite_mc-0.13.2/checks/full_track_bremslib/reference/si_300kev_ssdpwa.log.gz +0 -0
  248. pyrite_mc-0.13.2/checks/full_track_bremslib/reference/si_800kev.log.gz +0 -0
  249. pyrite_mc-0.13.2/checks/full_track_bremslib/reference/si_800kev_emission.log.gz +0 -0
  250. pyrite_mc-0.13.2/checks/full_track_bremslib/reference/si_800kev_emission_h1_h63.csv +809 -0
  251. pyrite_mc-0.13.2/checks/full_track_bremslib/reference/si_800kev_h1_h3.csv +89 -0
  252. pyrite_mc-0.13.2/checks/full_track_bremslib/reference/si_800kev_h1_h62.csv +89 -0
  253. pyrite_mc-0.13.2/checks/full_track_bremslib/reference/si_800kev_ssdpwa.log.gz +0 -0
  254. pyrite_mc-0.13.2/checks/full_track_bremslib/reference/w_300kev.log.gz +0 -0
  255. pyrite_mc-0.13.2/checks/full_track_bremslib/reference/w_300kev_emission.log.gz +0 -0
  256. pyrite_mc-0.13.2/checks/full_track_bremslib/reference/w_300kev_emission_h1_h63.csv +309 -0
  257. pyrite_mc-0.13.2/checks/full_track_bremslib/reference/w_300kev_h1_h3.csv +39 -0
  258. pyrite_mc-0.13.2/checks/full_track_bremslib/reference/w_300kev_h1_h62.csv +39 -0
  259. pyrite_mc-0.13.2/checks/full_track_bremslib/reference/w_300kev_ssdpwa.log.gz +0 -0
  260. pyrite_mc-0.13.2/checks/full_track_bremslib/reference/w_800kev.log.gz +0 -0
  261. pyrite_mc-0.13.2/checks/full_track_bremslib/reference/w_800kev_emission.log.gz +0 -0
  262. pyrite_mc-0.13.2/checks/full_track_bremslib/reference/w_800kev_emission_h1_h63.csv +809 -0
  263. pyrite_mc-0.13.2/checks/full_track_bremslib/reference/w_800kev_h1_h3.csv +89 -0
  264. pyrite_mc-0.13.2/checks/full_track_bremslib/reference/w_800kev_h1_h62.csv +89 -0
  265. pyrite_mc-0.13.2/checks/full_track_bremslib/reference/w_800kev_ssdpwa.log.gz +0 -0
  266. pyrite_mc-0.13.2/checks/full_track_bremslib/results/benchmark_800kev_117.log.gz +0 -0
  267. pyrite_mc-0.13.2/checks/full_track_bremslib/results/issue317_records.json.gz +0 -0
  268. pyrite_mc-0.13.2/checks/full_track_bremslib/results/issue317_summary.json +134 -0
  269. pyrite_mc-0.13.2/checks/full_track_bremslib/results/remote_cpu.log.gz +0 -0
  270. pyrite_mc-0.13.2/checks/full_track_bremslib/results/si_300kev_10000ev.json +1 -0
  271. pyrite_mc-0.13.2/checks/full_track_bremslib/results/si_300kev_10000ev_emission.json.gz +0 -0
  272. pyrite_mc-0.13.2/checks/full_track_bremslib/results/si_300kev_1000ev.json +1 -0
  273. pyrite_mc-0.13.2/checks/full_track_bremslib/results/si_300kev_1000ev_emission.json.gz +0 -0
  274. pyrite_mc-0.13.2/checks/full_track_bremslib/results/si_300kev_5000ev.json +1 -0
  275. pyrite_mc-0.13.2/checks/full_track_bremslib/results/si_300kev_5000ev_emission.json.gz +0 -0
  276. pyrite_mc-0.13.2/checks/full_track_bremslib/results/si_800kev_10000ev_emission.json.gz +0 -0
  277. pyrite_mc-0.13.2/checks/full_track_bremslib/results/si_800kev_1000ev.json +1 -0
  278. pyrite_mc-0.13.2/checks/full_track_bremslib/results/si_800kev_1000ev_emission.json.gz +0 -0
  279. pyrite_mc-0.13.2/checks/full_track_bremslib/results/si_800kev_5000ev_emission.json.gz +0 -0
  280. pyrite_mc-0.13.2/checks/full_track_bremslib/results/si_800kev_sr_1000ev.json +1 -0
  281. pyrite_mc-0.13.2/checks/full_track_bremslib/results/sr_control_88.log.gz +0 -0
  282. pyrite_mc-0.13.2/checks/full_track_bremslib/results/w_300kev_10000ev.json +1 -0
  283. pyrite_mc-0.13.2/checks/full_track_bremslib/results/w_300kev_10000ev_emission.json.gz +0 -0
  284. pyrite_mc-0.13.2/checks/full_track_bremslib/results/w_300kev_1000ev.json +1 -0
  285. pyrite_mc-0.13.2/checks/full_track_bremslib/results/w_300kev_1000ev_emission.json.gz +0 -0
  286. pyrite_mc-0.13.2/checks/full_track_bremslib/results/w_300kev_5000ev.json +1 -0
  287. pyrite_mc-0.13.2/checks/full_track_bremslib/results/w_300kev_5000ev_emission.json.gz +0 -0
  288. pyrite_mc-0.13.2/checks/full_track_bremslib/results/w_300kev_sr_1000ev.json +1 -0
  289. pyrite_mc-0.13.2/checks/full_track_bremslib/results/w_800kev_10000ev_emission.json.gz +0 -0
  290. pyrite_mc-0.13.2/checks/full_track_bremslib/results/w_800kev_1000ev.json +1 -0
  291. pyrite_mc-0.13.2/checks/full_track_bremslib/results/w_800kev_1000ev_emission.json.gz +0 -0
  292. pyrite_mc-0.13.2/checks/full_track_bremslib/results/w_800kev_5000ev_emission.json.gz +0 -0
  293. pyrite_mc-0.13.2/checks/full_track_bremslib/results/w_800kev_sr_1000ev.json +1 -0
  294. pyrite_mc-0.13.2/checks/full_track_bremslib/run_800kev.sbatch +28 -0
  295. pyrite_mc-0.13.2/checks/full_track_bremslib/run_cpu.sbatch +33 -0
  296. pyrite_mc-0.13.2/checks/full_track_bremslib/run_emission.sbatch +26 -0
  297. pyrite_mc-0.13.2/checks/full_track_bremslib/run_issue317.sbatch +21 -0
  298. pyrite_mc-0.13.2/checks/full_track_bremslib/run_sr_control.sbatch +20 -0
  299. pyrite_mc-0.13.2/checks/full_track_bremslib/run_ssdpwa.sbatch +23 -0
  300. pyrite_mc-0.13.2/checks/full_track_bremslib/si_300kev.mac +25 -0
  301. pyrite_mc-0.13.2/checks/full_track_bremslib/si_300kev_emission.mac +29 -0
  302. pyrite_mc-0.13.2/checks/full_track_bremslib/si_300kev_ssdpwa.mac +26 -0
  303. pyrite_mc-0.13.2/checks/full_track_bremslib/si_800kev.mac +25 -0
  304. pyrite_mc-0.13.2/checks/full_track_bremslib/si_800kev_emission.mac +29 -0
  305. pyrite_mc-0.13.2/checks/full_track_bremslib/si_800kev_ssdpwa.mac +26 -0
  306. pyrite_mc-0.13.2/checks/full_track_bremslib/test_benchmark.py +203 -0
  307. pyrite_mc-0.13.2/checks/full_track_bremslib/test_compare.py +143 -0
  308. pyrite_mc-0.13.2/checks/full_track_bremslib/test_compare_emission.py +281 -0
  309. pyrite_mc-0.13.2/checks/full_track_bremslib/w_300kev.mac +25 -0
  310. pyrite_mc-0.13.2/checks/full_track_bremslib/w_300kev_emission.mac +29 -0
  311. pyrite_mc-0.13.2/checks/full_track_bremslib/w_300kev_ssdpwa.mac +26 -0
  312. pyrite_mc-0.13.2/checks/full_track_bremslib/w_800kev.mac +25 -0
  313. pyrite_mc-0.13.2/checks/full_track_bremslib/w_800kev_emission.mac +29 -0
  314. pyrite_mc-0.13.2/checks/full_track_bremslib/w_800kev_ssdpwa.mac +26 -0
  315. pyrite_mc-0.13.2/checks/kinematic_validity_check.py +177 -0
  316. pyrite_mc-0.13.2/checks/line_window_backend_agreement.py +251 -0
  317. pyrite_mc-0.13.2/checks/mosaic_mc_check.py +209 -0
  318. pyrite_mc-0.13.2/checks/multilayer_check.py +158 -0
  319. pyrite_mc-0.13.2/checks/multilayer_slice3_check.py +208 -0
  320. pyrite_mc-0.13.2/checks/multilayer_validation_check.py +221 -0
  321. pyrite_mc-0.13.2/checks/pair_conversion_yield.py +146 -0
  322. pyrite_mc-0.13.2/checks/pair_production_geant4/README.md +84 -0
  323. pyrite_mc-0.13.2/checks/pair_production_geant4/compare.py +224 -0
  324. pyrite_mc-0.13.2/checks/pair_production_geant4/make_macros.py +31 -0
  325. pyrite_mc-0.13.2/checks/pair_production_geant4/patch_stepping.py +64 -0
  326. pyrite_mc-0.13.2/checks/pair_production_geant4/reference/c_2mev_empenelope.json +345 -0
  327. pyrite_mc-0.13.2/checks/pair_production_geant4/reference/c_2mev_emstandard_opt0.json +345 -0
  328. pyrite_mc-0.13.2/checks/pair_production_geant4/reference/c_2mev_emstandard_opt4.json +345 -0
  329. pyrite_mc-0.13.2/checks/pair_production_geant4/reference/c_5mev_empenelope.json +345 -0
  330. pyrite_mc-0.13.2/checks/pair_production_geant4/reference/c_5mev_emstandard_opt0.json +345 -0
  331. pyrite_mc-0.13.2/checks/pair_production_geant4/reference/c_5mev_emstandard_opt4.json +345 -0
  332. pyrite_mc-0.13.2/checks/pair_production_geant4/reference/pb_2mev_empenelope.json +345 -0
  333. pyrite_mc-0.13.2/checks/pair_production_geant4/reference/pb_2mev_emstandard_opt0.json +345 -0
  334. pyrite_mc-0.13.2/checks/pair_production_geant4/reference/pb_2mev_emstandard_opt4.json +345 -0
  335. pyrite_mc-0.13.2/checks/pair_production_geant4/reference/pb_5mev_empenelope.json +345 -0
  336. pyrite_mc-0.13.2/checks/pair_production_geant4/reference/pb_5mev_emstandard_opt0.json +345 -0
  337. pyrite_mc-0.13.2/checks/pair_production_geant4/reference/pb_5mev_emstandard_opt4.json +345 -0
  338. pyrite_mc-0.13.2/checks/pair_production_geant4/run_pairs.sbatch +17 -0
  339. pyrite_mc-0.13.2/checks/pixel_reconstruction_oracle.py +561 -0
  340. pyrite_mc-0.13.2/checks/positron_table_inventory.py +133 -0
  341. pyrite_mc-0.13.2/checks/radiation_error_estimator_calibration.py +134 -0
  342. pyrite_mc-0.13.2/checks/segment_escape_split_ladder.py +327 -0
  343. pyrite_mc-0.13.2/checks/shell_ionization_comparison.py +185 -0
  344. pyrite_mc-0.13.2/checks/shell_secondary_transport_observables.py +370 -0
  345. pyrite_mc-0.13.2/checks/shell_soft_hard_transport_observables.py +280 -0
  346. pyrite_mc-0.13.2/checks/sinc_bin_integration.py +321 -0
  347. pyrite_mc-0.13.2/checks/soft_deflection_line_sensitivity.py +273 -0
  348. pyrite_mc-0.13.2/checks/soft_inelastic_deflection.py +277 -0
  349. pyrite_mc-0.13.2/checks/substep_invariance.py +216 -0
  350. pyrite_mc-0.13.2/checks/trajectory_paraview_probe.py +65 -0
  351. pyrite_mc-0.13.2/checks/trajectory_trame_probe.py +98 -0
  352. pyrite_mc-0.13.2/checks/trajectory_viewer_benchmark.py +282 -0
  353. pyrite_mc-0.13.2/checks/trajectory_viewer_results.json +2349 -0
  354. pyrite_mc-0.13.2/checks/transport_core_goldens.py +177 -0
  355. pyrite_mc-0.13.2/checks/xraylib_cascade_oracle.py +207 -0
  356. pyrite_mc-0.13.2/checks/zhai_hbn_energy_trend.py +173 -0
  357. pyrite_mc-0.13.2/docs/_static/pyrite_200px.jpg +0 -0
  358. pyrite_mc-0.13.2/docs/_static/pyrite_full.jpg +0 -0
  359. pyrite_mc-0.13.2/docs/_templates/sidebar-sections.html +16 -0
  360. pyrite_mc-0.13.2/docs/_warning_baseline.py +103 -0
  361. pyrite_mc-0.13.2/docs/adr/0001-adopt-architecture-decision-records.md +19 -0
  362. pyrite_mc-0.13.2/docs/adr/0002-cli-surface-redesign.md +18 -0
  363. pyrite_mc-0.13.2/docs/adr/0003-content-addressed-artifact-model.md +19 -0
  364. pyrite_mc-0.13.2/docs/adr/0004-package-and-repository-structure.md +24 -0
  365. pyrite_mc-0.13.2/docs/adr/0005-energy-grid-schema-decisions.md +18 -0
  366. pyrite_mc-0.13.2/docs/adr/0006-consolidate-agent-work-records.md +21 -0
  367. pyrite_mc-0.13.2/docs/adr/0007-project-identity.md +26 -0
  368. pyrite_mc-0.13.2/docs/adr/0008-no-arbitrary-target-geometry.md +50 -0
  369. pyrite_mc-0.13.2/docs/adr/0009-result-persistence-format.md +66 -0
  370. pyrite_mc-0.13.2/docs/adr/0010-reduce-cli-noun-surface.md +33 -0
  371. pyrite_mc-0.13.2/docs/adr/0012-backlog-in-github-issues.md +32 -0
  372. pyrite_mc-0.13.2/docs/adr/0013-automatic-line-grids-by-default.md +24 -0
  373. pyrite_mc-0.13.2/docs/adr/0014-packaged-data-layout.md +261 -0
  374. pyrite_mc-0.13.2/docs/adr/0015-xraydb-atomic-scattering-data.md +42 -0
  375. pyrite_mc-0.13.2/docs/adr/index.md +68 -0
  376. pyrite_mc-0.13.2/docs/api.md +436 -0
  377. pyrite_mc-0.13.2/docs/computation/execution-and-acceleration.md +221 -0
  378. pyrite_mc-0.13.2/docs/computation/index.md +32 -0
  379. pyrite_mc-0.13.2/docs/computation/memory-and-scheduling.md +133 -0
  380. pyrite_mc-0.13.2/docs/computation/precision-and-tolerances.md +109 -0
  381. pyrite_mc-0.13.2/docs/computation/random-streams.md +186 -0
  382. pyrite_mc-0.13.2/docs/computation/statistical-methods.md +235 -0
  383. pyrite_mc-0.13.2/docs/conf.py +155 -0
  384. pyrite_mc-0.13.2/docs/guides/analysis-tutorial.md +37 -0
  385. pyrite_mc-0.13.2/docs/guides/configuration-cookbook.md +100 -0
  386. pyrite_mc-0.13.2/docs/guides/external-catalog.md +73 -0
  387. pyrite_mc-0.13.2/docs/guides/getting-started.md +48 -0
  388. pyrite_mc-0.13.2/docs/guides/gpt-gdf-beams.md +326 -0
  389. pyrite_mc-0.13.2/docs/guides/index.md +24 -0
  390. pyrite_mc-0.13.2/docs/guides/performance-profile-analysis.md +306 -0
  391. pyrite_mc-0.13.2/docs/guides/python-api-workflow.md +338 -0
  392. pyrite_mc-0.13.2/docs/guides/running-on-a-cluster.md +236 -0
  393. pyrite_mc-0.13.2/docs/guides/shell-completion.md +85 -0
  394. pyrite_mc-0.13.2/docs/guides/sweep-profiles.md +322 -0
  395. pyrite_mc-0.13.2/docs/guides/troubleshooting.md +58 -0
  396. pyrite_mc-0.13.2/docs/guides/working-with-results.md +229 -0
  397. pyrite_mc-0.13.2/docs/index.md +18 -0
  398. pyrite_mc-0.13.2/docs/physics/atomic-physics/atomic-data-sources.md +36 -0
  399. pyrite_mc-0.13.2/docs/physics/atomic-physics/atomic-form-factors.md +131 -0
  400. pyrite_mc-0.13.2/docs/physics/atomic-physics/elemental-transport-data.md +91 -0
  401. pyrite_mc-0.13.2/docs/physics/beam-transport/atomic-electron-deflection.md +102 -0
  402. pyrite_mc-0.13.2/docs/physics/beam-transport/beam-phase-space.md +142 -0
  403. pyrite_mc-0.13.2/docs/physics/beam-transport/elastic-scattering.md +205 -0
  404. pyrite_mc-0.13.2/docs/physics/beam-transport/electron-transport.md +164 -0
  405. pyrite_mc-0.13.2/docs/physics/beam-transport/inelastic-scattering-events.md +27 -0
  406. pyrite_mc-0.13.2/docs/physics/beam-transport/longitudinal-structure.md +141 -0
  407. pyrite_mc-0.13.2/docs/physics/beam-transport/positron-transport.md +124 -0
  408. pyrite_mc-0.13.2/docs/physics/beam-transport/shell-soft-hard-transport.md +101 -0
  409. pyrite_mc-0.13.2/docs/physics/beam-transport/stopping-power.md +86 -0
  410. pyrite_mc-0.13.2/docs/physics/beam-transport/transport-outputs.md +204 -0
  411. pyrite_mc-0.13.2/docs/physics/detectors/detector-response.md +98 -0
  412. pyrite_mc-0.13.2/docs/physics/detectors/detector-solid-angle.md +57 -0
  413. pyrite_mc-0.13.2/docs/physics/geometry/tilt-convention.md +48 -0
  414. pyrite_mc-0.13.2/docs/physics/geometry/transport-geometry.md +125 -0
  415. pyrite_mc-0.13.2/docs/physics/index.md +98 -0
  416. pyrite_mc-0.13.2/docs/physics/materials/crystal-mosaicity.md +92 -0
  417. pyrite_mc-0.13.2/docs/physics/materials/crystal-structure.md +140 -0
  418. pyrite_mc-0.13.2/docs/physics/materials/material-composition.md +69 -0
  419. pyrite_mc-0.13.2/docs/physics/materials/multilayer-materials.md +111 -0
  420. pyrite_mc-0.13.2/docs/physics/materials/reflection-selection.md +66 -0
  421. pyrite_mc-0.13.2/docs/physics/materials/structure-factor.md +81 -0
  422. pyrite_mc-0.13.2/docs/physics/radiation-physics/bremsstrahlung.md +158 -0
  423. pyrite_mc-0.13.2/docs/physics/radiation-physics/characteristic-radiation.md +133 -0
  424. pyrite_mc-0.13.2/docs/physics/radiation-physics/coherent-emission.md +90 -0
  425. pyrite_mc-0.13.2/docs/physics/radiation-physics/coherent-radiation.md +204 -0
  426. pyrite_mc-0.13.2/docs/physics/radiation-physics/energy-grid-semantics.md +229 -0
  427. pyrite_mc-0.13.2/docs/physics/radiation-physics/hard-bremsstrahlung-events.md +77 -0
  428. pyrite_mc-0.13.2/docs/physics/radiation-physics/photon-escape-and-dispersion.md +129 -0
  429. pyrite_mc-0.13.2/docs/physics/radiation-physics/spectral-observables.md +70 -0
  430. pyrite_mc-0.13.2/docs/physics/radiation-physics/temporal-intensity-profile.md +72 -0
  431. pyrite_mc-0.13.2/docs/project-readme.md +8 -0
  432. pyrite_mc-0.13.2/docs/references.bib +534 -0
  433. pyrite_mc-0.13.2/docs/references.md +15 -0
  434. pyrite_mc-0.13.2/docs/repo-design/cli/cli-deprecations.md +19 -0
  435. pyrite_mc-0.13.2/docs/repo-design/cli/cli-reference.md +3327 -0
  436. pyrite_mc-0.13.2/docs/repo-design/compute/coherent-streaming-rawkernel.md +94 -0
  437. pyrite_mc-0.13.2/docs/repo-design/compute/compute-performance-optimization.md +349 -0
  438. pyrite_mc-0.13.2/docs/repo-design/compute/data/phase-retention-2026-10-09.json +2900 -0
  439. pyrite_mc-0.13.2/docs/repo-design/compute/gpu-transport-rawkernel.md +235 -0
  440. pyrite_mc-0.13.2/docs/repo-design/compute/jit-spectrum-kernel-walkthrough.md +239 -0
  441. pyrite_mc-0.13.2/docs/repo-design/compute/phase-retention-benchmarks.md +178 -0
  442. pyrite_mc-0.13.2/docs/repo-design/compute/phase-retention.md +136 -0
  443. pyrite_mc-0.13.2/docs/repo-design/compute/startup-latency.md +119 -0
  444. pyrite_mc-0.13.2/docs/repo-design/compute/straggled-transport-integration.md +148 -0
  445. pyrite_mc-0.13.2/docs/repo-design/compute/transport-jit-kernel-walkthrough.md +347 -0
  446. pyrite_mc-0.13.2/docs/repo-design/configuration-resolution.md +175 -0
  447. pyrite_mc-0.13.2/docs/repo-design/core-architecture-rfc.md +555 -0
  448. pyrite_mc-0.13.2/docs/repo-design/data-distribution-and-repository-size.md +410 -0
  449. pyrite_mc-0.13.2/docs/repo-design/development-workspace.md +94 -0
  450. pyrite_mc-0.13.2/docs/repo-design/documentation.md +174 -0
  451. pyrite_mc-0.13.2/docs/repo-design/index.md +78 -0
  452. pyrite_mc-0.13.2/docs/repo-design/materials-catalog-schema.md +116 -0
  453. pyrite_mc-0.13.2/docs/repo-design/profile-settings.md +109 -0
  454. pyrite_mc-0.13.2/docs/repo-design/releasing.md +97 -0
  455. pyrite_mc-0.13.2/docs/repo-design/storage/checkpoint-case-store.md +53 -0
  456. pyrite_mc-0.13.2/docs/repo-design/storage/dataset-identity-and-storage.md +51 -0
  457. pyrite_mc-0.13.2/docs/repo-design/storage/result-schema.md +145 -0
  458. pyrite_mc-0.13.2/docs/repo-design/storage/trajectory-artifacts.md +67 -0
  459. pyrite_mc-0.13.2/docs/repo-design/storage/trajectory-scenes.md +94 -0
  460. pyrite_mc-0.13.2/docs/repo_map.md +669 -0
  461. pyrite_mc-0.13.2/docs/requirements.txt +4 -0
  462. pyrite_mc-0.13.2/docs/research/beam-transport/electron-transport-physics-recommendations.md +1012 -0
  463. pyrite_mc-0.13.2/docs/research/beam-transport/energy-grid-recommendations.md +86 -0
  464. pyrite_mc-0.13.2/docs/research/beam-transport/stochastic-sampling-recommendations.md +127 -0
  465. pyrite_mc-0.13.2/docs/research/index.md +40 -0
  466. pyrite_mc-0.13.2/docs/research/instrumentation/grazing-grating.md +85 -0
  467. pyrite_mc-0.13.2/docs/research/physics/channeling-radiation-physics.md +324 -0
  468. pyrite_mc-0.13.2/docs/research/physics/phase-retention.md +119 -0
  469. pyrite_mc-0.13.2/docs/research/physics/relativistic-electron-transport.md +187 -0
  470. pyrite_mc-0.13.2/docs/research/physics/relativistic-pxr-cbs.md +98 -0
  471. pyrite_mc-0.13.2/docs/research/physics/superradiant-pxr.md +79 -0
  472. pyrite_mc-0.13.2/docs/research/physics/transition-radiation-recommendations.md +79 -0
  473. pyrite_mc-0.13.2/docs/research/workflows/parameter-space-sampling.md +316 -0
  474. pyrite_mc-0.13.2/docs/validation/atomic-physics/atomic-form-factor.md +45 -0
  475. pyrite_mc-0.13.2/docs/validation/atomic-physics/crystals-cif-adapter.md +150 -0
  476. pyrite_mc-0.13.2/docs/validation/atomic-physics/structure-factor.md +241 -0
  477. pyrite_mc-0.13.2/docs/validation/beam-transport/adaptive-sample-size-stopping.md +189 -0
  478. pyrite_mc-0.13.2/docs/validation/beam-transport/beam-energy-spread-injection.md +126 -0
  479. pyrite_mc-0.13.2/docs/validation/beam-transport/beam-phase-space-injection.md +192 -0
  480. pyrite_mc-0.13.2/docs/validation/beam-transport/beam-phase-space-metrics.md +49 -0
  481. pyrite_mc-0.13.2/docs/validation/beam-transport/bhabha-close.md +181 -0
  482. pyrite_mc-0.13.2/docs/validation/beam-transport/coherent-flat-term-omission.md +328 -0
  483. pyrite_mc-0.13.2/docs/validation/beam-transport/coherent-line-grid-fringe-spacing.md +105 -0
  484. pyrite_mc-0.13.2/docs/validation/beam-transport/coherent-line-grid-windowed-resolution.md +4207 -0
  485. pyrite_mc-0.13.2/docs/validation/beam-transport/coherent-transverse-flat-omission.md +332 -0
  486. pyrite_mc-0.13.2/docs/validation/beam-transport/dielectric-bulk-loss.md +156 -0
  487. pyrite_mc-0.13.2/docs/validation/beam-transport/eedl-material-shell-rates.md +46 -0
  488. pyrite_mc-0.13.2/docs/validation/beam-transport/electron-transport.md +192 -0
  489. pyrite_mc-0.13.2/docs/validation/beam-transport/elsepa-elastic-sampling.md +168 -0
  490. pyrite_mc-0.13.2/docs/validation/beam-transport/elsepa-muffin-tin-inputs.md +102 -0
  491. pyrite_mc-0.13.2/docs/validation/beam-transport/elsepa-positron-elastic-sampling.md +54 -0
  492. pyrite_mc-0.13.2/docs/validation/beam-transport/energy-controlled-propagation.md +162 -0
  493. pyrite_mc-0.13.2/docs/validation/beam-transport/energy-loss-straggling.md +343 -0
  494. pyrite_mc-0.13.2/docs/validation/beam-transport/energy-step-convergence.md +298 -0
  495. pyrite_mc-0.13.2/docs/validation/beam-transport/gos-core-edge.md +55 -0
  496. pyrite_mc-0.13.2/docs/validation/beam-transport/gos-distant-response.md +65 -0
  497. pyrite_mc-0.13.2/docs/validation/beam-transport/gos-hard-recoil.md +71 -0
  498. pyrite_mc-0.13.2/docs/validation/beam-transport/gos-moller-close.md +49 -0
  499. pyrite_mc-0.13.2/docs/validation/beam-transport/gos-optical-quadrature.md +49 -0
  500. pyrite_mc-0.13.2/docs/validation/beam-transport/gos-soft-hard-partition.md +162 -0
  501. pyrite_mc-0.13.2/docs/validation/beam-transport/gpt-gdf-injection.md +318 -0
  502. pyrite_mc-0.13.2/docs/validation/beam-transport/heitler-annihilation.md +299 -0
  503. pyrite_mc-0.13.2/docs/validation/beam-transport/inelastic-angular-deflection.md +153 -0
  504. pyrite_mc-0.13.2/docs/validation/beam-transport/legacy-stopping-comparison.md +459 -0
  505. pyrite_mc-0.13.2/docs/validation/beam-transport/line-grid-resonance-bandwidth.md +96 -0
  506. pyrite_mc-0.13.2/docs/validation/beam-transport/line-grid-resonance-local-spacing.md +312 -0
  507. pyrite_mc-0.13.2/docs/validation/beam-transport/line-grid-sinc-convergence.md +657 -0
  508. pyrite_mc-0.13.2/docs/validation/beam-transport/line-spectrum-error-budget.md +324 -0
  509. pyrite_mc-0.13.2/docs/validation/beam-transport/line-window-seeding.md +246 -0
  510. pyrite_mc-0.13.2/docs/validation/beam-transport/linear-bunch-front-tilt.md +473 -0
  511. pyrite_mc-0.13.2/docs/validation/beam-transport/longitudinal-bunch-sampling.md +121 -0
  512. pyrite_mc-0.13.2/docs/validation/beam-transport/longitudinal-target-timing.md +114 -0
  513. pyrite_mc-0.13.2/docs/validation/beam-transport/penelope-shell-gos-moments-verification.md +496 -0
  514. pyrite_mc-0.13.2/docs/validation/beam-transport/penelope-shell-gos-moments.md +285 -0
  515. pyrite_mc-0.13.2/docs/validation/beam-transport/penelope-shell-hard-loss-sampling.md +64 -0
  516. pyrite_mc-0.13.2/docs/validation/beam-transport/penelope-shell-hard-recoil.md +59 -0
  517. pyrite_mc-0.13.2/docs/validation/beam-transport/penelope-shell-oscillators-verification.md +624 -0
  518. pyrite_mc-0.13.2/docs/validation/beam-transport/penelope-shell-oscillators.md +188 -0
  519. pyrite_mc-0.13.2/docs/validation/beam-transport/penelope-shell-rate-closure-verification.md +312 -0
  520. pyrite_mc-0.13.2/docs/validation/beam-transport/penelope-shell-rate-closure.md +388 -0
  521. pyrite_mc-0.13.2/docs/validation/beam-transport/penelope-shell-secondary-direction.md +76 -0
  522. pyrite_mc-0.13.2/docs/validation/beam-transport/penelope-shell-soft-hard-partition.md +300 -0
  523. pyrite_mc-0.13.2/docs/validation/beam-transport/positron-annihilation-at-rest.md +128 -0
  524. pyrite_mc-0.13.2/docs/validation/beam-transport/positron-brems-scaling.md +71 -0
  525. pyrite_mc-0.13.2/docs/validation/beam-transport/radiation-error-estimators.md +70 -0
  526. pyrite_mc-0.13.2/docs/validation/beam-transport/relativistic-bethe-stopping.md +149 -0
  527. pyrite_mc-0.13.2/docs/validation/beam-transport/sbethe-atomic-shell-inputs-verification.md +192 -0
  528. pyrite_mc-0.13.2/docs/validation/beam-transport/sbethe-atomic-shell-inputs.md +76 -0
  529. pyrite_mc-0.13.2/docs/validation/beam-transport/sbethe-corrected-stopping.md +61 -0
  530. pyrite_mc-0.13.2/docs/validation/beam-transport/sbethe-material-inputs.md +35 -0
  531. pyrite_mc-0.13.2/docs/validation/beam-transport/sbethe-positron-stopping.md +95 -0
  532. pyrite_mc-0.13.2/docs/validation/beam-transport/shell-secondary-transport-454d1d46.json +4812 -0
  533. pyrite_mc-0.13.2/docs/validation/beam-transport/shell-secondary-transport.md +181 -0
  534. pyrite_mc-0.13.2/docs/validation/beam-transport/shell-soft-hard-transport.md +355 -0
  535. pyrite_mc-0.13.2/docs/validation/beam-transport/substep-radiation-invariance.md +171 -0
  536. pyrite_mc-0.13.2/docs/validation/beam-transport/transport-midpoint-stopping.md +129 -0
  537. pyrite_mc-0.13.2/docs/validation/check-records/coherent-physical-population/charge30-reference32.json +300 -0
  538. pyrite_mc-0.13.2/docs/validation/check-records/coherent-physical-population/charge30.json +291 -0
  539. pyrite_mc-0.13.2/docs/validation/check-records/coherent-physical-population/charge60.json +291 -0
  540. pyrite_mc-0.13.2/docs/validation/check-records/coherent-physical-population/replay-preflight.json +22 -0
  541. pyrite_mc-0.13.2/docs/validation/check-records/coherent-physical-population/short-bunch-370.json +281 -0
  542. pyrite_mc-0.13.2/docs/validation/check-records/coherent-physical-population/short-bunch-diagnostics.json +289 -0
  543. pyrite_mc-0.13.2/docs/validation/check-records/coherent-physical-population/short-bunch.json +278 -0
  544. pyrite_mc-0.13.2/docs/validation/check-records/coherent_transverse_coherence.jsonl +1 -0
  545. pyrite_mc-0.13.2/docs/validation/check-records/collision_statistics_refinement.jsonl +1 -0
  546. pyrite_mc-0.13.2/docs/validation/check-records/cross_reflection_coherence.jsonl +1 -0
  547. pyrite_mc-0.13.2/docs/validation/check-records/dans_diffraction_oracle.jsonl +1 -0
  548. pyrite_mc-0.13.2/docs/validation/check-records/detector_solid_angle_check.jsonl +2 -0
  549. pyrite_mc-0.13.2/docs/validation/check-records/energy_loss_straggling_observables.jsonl +1 -0
  550. pyrite_mc-0.13.2/docs/validation/check-records/energy_step_convergence_matrix.jsonl +1 -0
  551. pyrite_mc-0.13.2/docs/validation/check-records/feranchuk_check_script.jsonl +3 -0
  552. pyrite_mc-0.13.2/docs/validation/check-records/feranchuk_vs_zhai_check.jsonl +2 -0
  553. pyrite_mc-0.13.2/docs/validation/check-records/kinematic_validity_check.jsonl +2 -0
  554. pyrite_mc-0.13.2/docs/validation/check-records/mosaic_mc_check.jsonl +2 -0
  555. pyrite_mc-0.13.2/docs/validation/check-records/multilayer_check.jsonl +2 -0
  556. pyrite_mc-0.13.2/docs/validation/check-records/multilayer_slice3_check.jsonl +2 -0
  557. pyrite_mc-0.13.2/docs/validation/check-records/multilayer_validation_check.jsonl +2 -0
  558. pyrite_mc-0.13.2/docs/validation/check-records/radiation_error_estimator_calibration.jsonl +1 -0
  559. pyrite_mc-0.13.2/docs/validation/check-records/shell_secondary_transport_observables.jsonl +1 -0
  560. pyrite_mc-0.13.2/docs/validation/check-records/substep_invariance.jsonl +1 -0
  561. pyrite_mc-0.13.2/docs/validation/check-records/xraylib_cascade_oracle.jsonl +1 -0
  562. pyrite_mc-0.13.2/docs/validation/check-records/zhai_hbn_energy_trend.json +1432 -0
  563. pyrite_mc-0.13.2/docs/validation/detectors/alexs-charge-diffusion.md +69 -0
  564. pyrite_mc-0.13.2/docs/validation/detectors/alexs-qe-absorption.md +87 -0
  565. pyrite_mc-0.13.2/docs/validation/detectors/detector-eaglexo.md +45 -0
  566. pyrite_mc-0.13.2/docs/validation/detectors/detector-line-broadening.md +25 -0
  567. pyrite_mc-0.13.2/docs/validation/detectors/detector-timepix.md +162 -0
  568. pyrite_mc-0.13.2/docs/validation/detectors/grazing-reflectivity.md +35 -0
  569. pyrite_mc-0.13.2/docs/validation/detectors/pixel-angular-interpolation.md +179 -0
  570. pyrite_mc-0.13.2/docs/validation/detectors/positioned-filter-attenuation.md +590 -0
  571. pyrite_mc-0.13.2/docs/validation/domain-inventories.md +227 -0
  572. pyrite_mc-0.13.2/docs/validation/formatting-style.md +84 -0
  573. pyrite_mc-0.13.2/docs/validation/geometry/blazed-groove-geometry.md +218 -0
  574. pyrite_mc-0.13.2/docs/validation/geometry/finite-beam-size.md +139 -0
  575. pyrite_mc-0.13.2/docs/validation/geometry/finite-transverse-crystal.md +80 -0
  576. pyrite_mc-0.13.2/docs/validation/geometry/grazing-beam-projection.md +119 -0
  577. pyrite_mc-0.13.2/docs/validation/geometry/surface-hkl-orientation.md +395 -0
  578. pyrite_mc-0.13.2/docs/validation/index.md +204 -0
  579. pyrite_mc-0.13.2/docs/validation/ledger-core-coherent-physics.md +468 -0
  580. pyrite_mc-0.13.2/docs/validation/ledger-crystal-structure-provenance.md +523 -0
  581. pyrite_mc-0.13.2/docs/validation/ledger-crystallography-atomic-data.md +173 -0
  582. pyrite_mc-0.13.2/docs/validation/ledger-detector-forward-models.md +63 -0
  583. pyrite_mc-0.13.2/docs/validation/ledger-grazing-grating-spectrometer.md +33 -0
  584. pyrite_mc-0.13.2/docs/validation/ledger-mosaicity-multilayer.md +33 -0
  585. pyrite_mc-0.13.2/docs/validation/ledger-transport-background.md +766 -0
  586. pyrite_mc-0.13.2/docs/validation/literature-ref/external-bremsstrahlung-comparison.md +32 -0
  587. pyrite_mc-0.13.2/docs/validation/literature-ref/zhai-supplementary.md +57 -0
  588. pyrite_mc-0.13.2/docs/validation/materials/2h-tas2-debye-waller-002.md +70 -0
  589. pyrite_mc-0.13.2/docs/validation/materials/2ha-niobium-dichalcogenides.md +21 -0
  590. pyrite_mc-0.13.2/docs/validation/materials/crystal-db-comparison.md +69 -0
  591. pyrite_mc-0.13.2/docs/validation/materials/debye-waller-audit.md +136 -0
  592. pyrite_mc-0.13.2/docs/validation/materials/hbn-structure.md +62 -0
  593. pyrite_mc-0.13.2/docs/validation/materials/hfs2-structure.md +88 -0
  594. pyrite_mc-0.13.2/docs/validation/materials/hopg-debye-waller-00l.md +75 -0
  595. pyrite_mc-0.13.2/docs/validation/materials/mos2-debye-waller-00l.md +77 -0
  596. pyrite_mc-0.13.2/docs/validation/materials/mosaic-analytic.md +52 -0
  597. pyrite_mc-0.13.2/docs/validation/materials/mosaic-mc.md +46 -0
  598. pyrite_mc-0.13.2/docs/validation/materials/multilayer-stack.md +111 -0
  599. pyrite_mc-0.13.2/docs/validation/materials/oriented-v2o5-tis2.md +19 -0
  600. pyrite_mc-0.13.2/docs/validation/materials/pdte2-debye-waller-001.md +70 -0
  601. pyrite_mc-0.13.2/docs/validation/materials/surface-hkl-orientation.md +136 -0
  602. pyrite_mc-0.13.2/docs/validation/methodology.md +119 -0
  603. pyrite_mc-0.13.2/docs/validation/physics-validation-ledger.md +37 -0
  604. pyrite_mc-0.13.2/docs/validation/radiation-physics/absorption-length.md +97 -0
  605. pyrite_mc-0.13.2/docs/validation/radiation-physics/brem-source-comparison.md +126 -0
  606. pyrite_mc-0.13.2/docs/validation/radiation-physics/brem-spectrum.md +309 -0
  607. pyrite_mc-0.13.2/docs/validation/radiation-physics/bremslib-angular-model.md +89 -0
  608. pyrite_mc-0.13.2/docs/validation/radiation-physics/bremslib-angular-schiff.md +45 -0
  609. pyrite_mc-0.13.2/docs/validation/radiation-physics/bremslib-coupled-expected-spectrum.md +159 -0
  610. pyrite_mc-0.13.2/docs/validation/radiation-physics/bremslib-radiative-event-spectrum.md +155 -0
  611. pyrite_mc-0.13.2/docs/validation/radiation-physics/bremslib-radiative-partition.md +112 -0
  612. pyrite_mc-0.13.2/docs/validation/radiation-physics/cbs-amplitude.md +429 -0
  613. pyrite_mc-0.13.2/docs/validation/radiation-physics/characteristic-radiation.md +434 -0
  614. pyrite_mc-0.13.2/docs/validation/radiation-physics/closed-form-flux.md +287 -0
  615. pyrite_mc-0.13.2/docs/validation/radiation-physics/coherent-emission.md +185 -0
  616. pyrite_mc-0.13.2/docs/validation/radiation-physics/coherent-formation-absorption.md +177 -0
  617. pyrite_mc-0.13.2/docs/validation/radiation-physics/coherent-inter-electron-decoherence.md +158 -0
  618. pyrite_mc-0.13.2/docs/validation/radiation-physics/coherent-line-spectrum.md +263 -0
  619. pyrite_mc-0.13.2/docs/validation/radiation-physics/coherent-physical-bunch-population.md +398 -0
  620. pyrite_mc-0.13.2/docs/validation/radiation-physics/coherent-segment-midpoint-time.md +64 -0
  621. pyrite_mc-0.13.2/docs/validation/radiation-physics/cross-reflection-coherence.md +61 -0
  622. pyrite_mc-0.13.2/docs/validation/radiation-physics/eedl-shell-ionization-comparison.md +87 -0
  623. pyrite_mc-0.13.2/docs/validation/radiation-physics/external-brem-subtraction.md +111 -0
  624. pyrite_mc-0.13.2/docs/validation/radiation-physics/finite-footprint-longitudinal-decoherence.md +153 -0
  625. pyrite_mc-0.13.2/docs/validation/radiation-physics/finite-time-lineshape.md +180 -0
  626. pyrite_mc-0.13.2/docs/validation/radiation-physics/kinematic-validity-envelope.md +235 -0
  627. pyrite_mc-0.13.2/docs/validation/radiation-physics/line-absorption-tabulation.md +206 -0
  628. pyrite_mc-0.13.2/docs/validation/radiation-physics/line-energy-dispersion.md +317 -0
  629. pyrite_mc-0.13.2/docs/validation/radiation-physics/narrow-beam-total-attenuation.md +190 -0
  630. pyrite_mc-0.13.2/docs/validation/radiation-physics/pair-production-sampling.md +260 -0
  631. pyrite_mc-0.13.2/docs/validation/radiation-physics/photon-pair-first-interaction.md +319 -0
  632. pyrite_mc-0.13.2/docs/validation/radiation-physics/pxr-amplitude.md +65 -0
  633. pyrite_mc-0.13.2/docs/validation/radiation-physics/segment-escape-average.md +205 -0
  634. pyrite_mc-0.13.2/docs/validation/radiation-physics/self-absorption.md +45 -0
  635. pyrite_mc-0.13.2/docs/validation/radiation-physics/sinc-bin-far-envelope.md +292 -0
  636. pyrite_mc-0.13.2/docs/validation/radiation-physics/sinc-bin-integration.md +214 -0
  637. pyrite_mc-0.13.2/docs/validation/radiation-physics/sinc-bin-near-far.md +95 -0
  638. pyrite_mc-0.13.2/docs/validation/radiation-physics/temporal-intensity-profile.md +129 -0
  639. pyrite_mc-0.13.2/docs/validation/radiation-physics/transverse-bunch-form-factor.md +241 -0
  640. pyrite_mc-0.13.2/docs/validation/radiation-physics/xray-chi-zero.md +122 -0
  641. pyrite_mc-0.13.2/docs/validation/radiation-physics/xray-in-medium-propagation-phase.md +160 -0
  642. pyrite_mc-0.13.2/docs/validation/radiation-physics/xray-in-medium-resonance.md +493 -0
  643. pyrite_mc-0.13.2/docs/validation/radiation-physics/xray-refractive-index.md +186 -0
  644. pyrite_mc-0.13.2/docs/validation/radiation-physics/zhai-hbn-921-detected.md +309 -0
  645. pyrite_mc-0.13.2/docs/validation/status-summary.md +30 -0
  646. pyrite_mc-0.13.2/pyproject.toml +519 -0
  647. pyrite_mc-0.13.2/scripts/README.md +21 -0
  648. pyrite_mc-0.13.2/scripts/__init__.py +1 -0
  649. pyrite_mc-0.13.2/scripts/cuda_test_profiler.py +50 -0
  650. pyrite_mc-0.13.2/scripts/freeze_cli_contract.py +194 -0
  651. pyrite_mc-0.13.2/scripts/generate_cli_deprecations.py +10 -0
  652. pyrite_mc-0.13.2/scripts/generate_cli_reference.py +10 -0
  653. pyrite_mc-0.13.2/scripts/hooks/sync-skills.sh +11 -0
  654. pyrite_mc-0.13.2/scripts/package_smoke.py +7 -0
  655. pyrite_mc-0.13.2/scripts/refresh_external_cif.py +80 -0
  656. pyrite_mc-0.13.2/scripts/release_bremslib_tables.py +75 -0
  657. pyrite_mc-0.13.2/scripts/release_elsepa_tables.py +73 -0
  658. pyrite_mc-0.13.2/scripts/release_epdl_table.py +222 -0
  659. pyrite_mc-0.13.2/scripts/release_sbethe_tables.py +80 -0
  660. pyrite_mc-0.13.2/scripts/smoke.py +7 -0
  661. pyrite_mc-0.13.2/scripts/testing.py +37 -0
  662. pyrite_mc-0.13.2/scripts/user_scripts/perf_runner_1_worker.sh +10 -0
  663. pyrite_mc-0.13.2/scripts/user_scripts/perf_runner_4_workers.sh +10 -0
  664. pyrite_mc-0.13.2/skills-lock.json +11 -0
  665. pyrite_mc-0.13.2/src/pyrite/__init__.py +230 -0
  666. pyrite_mc-0.13.2/src/pyrite/_acp.py +104 -0
  667. pyrite_mc-0.13.2/src/pyrite/_api_deprecations.py +138 -0
  668. pyrite_mc-0.13.2/src/pyrite/_app_defaults.py +53 -0
  669. pyrite_mc-0.13.2/src/pyrite/_backend.py +395 -0
  670. pyrite_mc-0.13.2/src/pyrite/_bremslib_table.py +222 -0
  671. pyrite_mc-0.13.2/src/pyrite/_catalog_keys.py +60 -0
  672. pyrite_mc-0.13.2/src/pyrite/_catalog_layout.py +451 -0
  673. pyrite_mc-0.13.2/src/pyrite/_cxr_grid_policy.py +990 -0
  674. pyrite_mc-0.13.2/src/pyrite/_cxr_vocabulary.py +100 -0
  675. pyrite_mc-0.13.2/src/pyrite/_cxr_windows.py +303 -0
  676. pyrite_mc-0.13.2/src/pyrite/_dev.py +9 -0
  677. pyrite_mc-0.13.2/src/pyrite/_energy_bins.py +62 -0
  678. pyrite_mc-0.13.2/src/pyrite/_energy_grid_artifacts.py +321 -0
  679. pyrite_mc-0.13.2/src/pyrite/_energy_grid_encoding.py +44 -0
  680. pyrite_mc-0.13.2/src/pyrite/_entry/__init__.py +7 -0
  681. pyrite_mc-0.13.2/src/pyrite/_entry/profile_module.py +32 -0
  682. pyrite_mc-0.13.2/src/pyrite/_entry/reproduce_zhai.py +67 -0
  683. pyrite_mc-0.13.2/src/pyrite/_entry/scan.py +43 -0
  684. pyrite_mc-0.13.2/src/pyrite/_env.py +28 -0
  685. pyrite_mc-0.13.2/src/pyrite/_formatting.py +9 -0
  686. pyrite_mc-0.13.2/src/pyrite/_grid_semantics.py +369 -0
  687. pyrite_mc-0.13.2/src/pyrite/_module_deprecations.py +113 -0
  688. pyrite_mc-0.13.2/src/pyrite/_numerics.py +585 -0
  689. pyrite_mc-0.13.2/src/pyrite/_photon_continuum_floor.py +152 -0
  690. pyrite_mc-0.13.2/src/pyrite/_planar_geometry.py +344 -0
  691. pyrite_mc-0.13.2/src/pyrite/_precision.py +228 -0
  692. pyrite_mc-0.13.2/src/pyrite/_progress.py +130 -0
  693. pyrite_mc-0.13.2/src/pyrite/_scene_geometry.py +235 -0
  694. pyrite_mc-0.13.2/src/pyrite/_spectral_components.py +96 -0
  695. pyrite_mc-0.13.2/src/pyrite/api.py +513 -0
  696. pyrite_mc-0.13.2/src/pyrite/apps/README.md +70 -0
  697. pyrite_mc-0.13.2/src/pyrite/apps/__init__.py +1 -0
  698. pyrite_mc-0.13.2/src/pyrite/apps/_compile_nb.py +42 -0
  699. pyrite_mc-0.13.2/src/pyrite/apps/_design.css +261 -0
  700. pyrite_mc-0.13.2/src/pyrite/apps/_design.py +502 -0
  701. pyrite_mc-0.13.2/src/pyrite/apps/_widgets.py +256 -0
  702. pyrite_mc-0.13.2/src/pyrite/apps/analysis_app.py +367 -0
  703. pyrite_mc-0.13.2/src/pyrite/apps/analysis_ui/__init__.py +18 -0
  704. pyrite_mc-0.13.2/src/pyrite/apps/analysis_ui/axes.py +18 -0
  705. pyrite_mc-0.13.2/src/pyrite/apps/analysis_ui/controls.py +192 -0
  706. pyrite_mc-0.13.2/src/pyrite/apps/analysis_ui/data.py +89 -0
  707. pyrite_mc-0.13.2/src/pyrite/apps/analysis_ui/interactive.py +39 -0
  708. pyrite_mc-0.13.2/src/pyrite/apps/analysis_ui/models.py +82 -0
  709. pyrite_mc-0.13.2/src/pyrite/apps/analysis_ui/navigation.py +18 -0
  710. pyrite_mc-0.13.2/src/pyrite/apps/analysis_ui/pickers.py +104 -0
  711. pyrite_mc-0.13.2/src/pyrite/apps/analysis_ui/pixels.py +184 -0
  712. pyrite_mc-0.13.2/src/pyrite/apps/analysis_ui/views/__init__.py +22 -0
  713. pyrite_mc-0.13.2/src/pyrite/apps/analysis_ui/views/cases.py +94 -0
  714. pyrite_mc-0.13.2/src/pyrite/apps/analysis_ui/views/common.py +22 -0
  715. pyrite_mc-0.13.2/src/pyrite/apps/analysis_ui/views/detectors.py +68 -0
  716. pyrite_mc-0.13.2/src/pyrite/apps/analysis_ui/views/map.py +142 -0
  717. pyrite_mc-0.13.2/src/pyrite/apps/analysis_ui/views/materials.py +103 -0
  718. pyrite_mc-0.13.2/src/pyrite/apps/analysis_ui/views/pixels.py +186 -0
  719. pyrite_mc-0.13.2/src/pyrite/apps/analysis_ui/views/sidebar.py +29 -0
  720. pyrite_mc-0.13.2/src/pyrite/apps/analysis_ui/views/spectra.py +152 -0
  721. pyrite_mc-0.13.2/src/pyrite/apps/analyze.py +378 -0
  722. pyrite_mc-0.13.2/src/pyrite/apps/check.py +173 -0
  723. pyrite_mc-0.13.2/src/pyrite/apps/compare_app.py +354 -0
  724. pyrite_mc-0.13.2/src/pyrite/apps/layouts/analysis_app.grid.json +134 -0
  725. pyrite_mc-0.13.2/src/pyrite/apps/layouts/analysis_app.slides.json +49 -0
  726. pyrite_mc-0.13.2/src/pyrite/apps/pixel_app.py +185 -0
  727. pyrite_mc-0.13.2/src/pyrite/apps/scan_app.py +353 -0
  728. pyrite_mc-0.13.2/src/pyrite/apps/trace_app.py +1248 -0
  729. pyrite_mc-0.13.2/src/pyrite/apps/validation_app.py +953 -0
  730. pyrite_mc-0.13.2/src/pyrite/apps/validation_defaults.json +3 -0
  731. pyrite_mc-0.13.2/src/pyrite/apps/viewer.py +47 -0
  732. pyrite_mc-0.13.2/src/pyrite/campaign/__init__.py +1 -0
  733. pyrite_mc-0.13.2/src/pyrite/campaign/beam.py +472 -0
  734. pyrite_mc-0.13.2/src/pyrite/campaign/beam_metrics.py +215 -0
  735. pyrite_mc-0.13.2/src/pyrite/campaign/bremsstrahlung_cases.py +89 -0
  736. pyrite_mc-0.13.2/src/pyrite/campaign/config.py +569 -0
  737. pyrite_mc-0.13.2/src/pyrite/campaign/cost.py +183 -0
  738. pyrite_mc-0.13.2/src/pyrite/campaign/front_matching.py +99 -0
  739. pyrite_mc-0.13.2/src/pyrite/campaign/geometry.py +897 -0
  740. pyrite_mc-0.13.2/src/pyrite/campaign/grid.py +20 -0
  741. pyrite_mc-0.13.2/src/pyrite/campaign/inelastic_cases.py +133 -0
  742. pyrite_mc-0.13.2/src/pyrite/campaign/kinematic_validity.py +227 -0
  743. pyrite_mc-0.13.2/src/pyrite/campaign/legacy.py +158 -0
  744. pyrite_mc-0.13.2/src/pyrite/campaign/longitudinal.py +227 -0
  745. pyrite_mc-0.13.2/src/pyrite/campaign/lowering.py +112 -0
  746. pyrite_mc-0.13.2/src/pyrite/campaign/model.py +480 -0
  747. pyrite_mc-0.13.2/src/pyrite/campaign/observation.py +151 -0
  748. pyrite_mc-0.13.2/src/pyrite/campaign/profile_edit.py +1140 -0
  749. pyrite_mc-0.13.2/src/pyrite/campaign/profiles.py +1247 -0
  750. pyrite_mc-0.13.2/src/pyrite/campaign/single_scene.py +173 -0
  751. pyrite_mc-0.13.2/src/pyrite/campaign/sweep.py +1131 -0
  752. pyrite_mc-0.13.2/src/pyrite/checkpoints/__init__.py +1 -0
  753. pyrite_mc-0.13.2/src/pyrite/checkpoints/_checkpoint_io.py +194 -0
  754. pyrite_mc-0.13.2/src/pyrite/checkpoints/_checkpoint_store.py +379 -0
  755. pyrite_mc-0.13.2/src/pyrite/checkpoints/_result_v2.py +779 -0
  756. pyrite_mc-0.13.2/src/pyrite/checkpoints/archive.py +354 -0
  757. pyrite_mc-0.13.2/src/pyrite/checkpoints/campaign_lock.py +127 -0
  758. pyrite_mc-0.13.2/src/pyrite/checkpoints/checkpoint_cleanup.py +412 -0
  759. pyrite_mc-0.13.2/src/pyrite/checkpoints/persistence.py +532 -0
  760. pyrite_mc-0.13.2/src/pyrite/checkpoints/recompute.py +855 -0
  761. pyrite_mc-0.13.2/src/pyrite/checkpoints/recompute_defaults.py +210 -0
  762. pyrite_mc-0.13.2/src/pyrite/checkpoints/slim.py +221 -0
  763. pyrite_mc-0.13.2/src/pyrite/checkpoints/trajectory_scoring.py +206 -0
  764. pyrite_mc-0.13.2/src/pyrite/cli/__init__.py +120 -0
  765. pyrite_mc-0.13.2/src/pyrite/cli/__main__.py +5 -0
  766. pyrite_mc-0.13.2/src/pyrite/cli/_catalog_io.py +202 -0
  767. pyrite_mc-0.13.2/src/pyrite/cli/_completion.py +415 -0
  768. pyrite_mc-0.13.2/src/pyrite/cli/_deprecations.py +396 -0
  769. pyrite_mc-0.13.2/src/pyrite/cli/_groups.py +79 -0
  770. pyrite_mc-0.13.2/src/pyrite/cli/_implicit_defaults.py +97 -0
  771. pyrite_mc-0.13.2/src/pyrite/cli/_options.py +35 -0
  772. pyrite_mc-0.13.2/src/pyrite/cli/commands/__init__.py +1 -0
  773. pyrite_mc-0.13.2/src/pyrite/cli/commands/_beam_shared.py +276 -0
  774. pyrite_mc-0.13.2/src/pyrite/cli/commands/_detector_shared.py +47 -0
  775. pyrite_mc-0.13.2/src/pyrite/cli/commands/_filter_shared.py +113 -0
  776. pyrite_mc-0.13.2/src/pyrite/cli/commands/_physical_detector.py +406 -0
  777. pyrite_mc-0.13.2/src/pyrite/cli/commands/_profile_cxr_grid.py +213 -0
  778. pyrite_mc-0.13.2/src/pyrite/cli/commands/_profile_filters.py +199 -0
  779. pyrite_mc-0.13.2/src/pyrite/cli/commands/_profile_members.py +27 -0
  780. pyrite_mc-0.13.2/src/pyrite/cli/commands/_profile_precision.py +420 -0
  781. pyrite_mc-0.13.2/src/pyrite/cli/commands/_profile_shared.py +47 -0
  782. pyrite_mc-0.13.2/src/pyrite/cli/commands/_profile_show.py +251 -0
  783. pyrite_mc-0.13.2/src/pyrite/cli/commands/_remote_actions.py +604 -0
  784. pyrite_mc-0.13.2/src/pyrite/cli/commands/_simulation.py +193 -0
  785. pyrite_mc-0.13.2/src/pyrite/cli/commands/app.py +174 -0
  786. pyrite_mc-0.13.2/src/pyrite/cli/commands/app_analysis.py +175 -0
  787. pyrite_mc-0.13.2/src/pyrite/cli/commands/app_validation.py +160 -0
  788. pyrite_mc-0.13.2/src/pyrite/cli/commands/app_viewer.py +199 -0
  789. pyrite_mc-0.13.2/src/pyrite/cli/commands/app_views.py +198 -0
  790. pyrite_mc-0.13.2/src/pyrite/cli/commands/archive.py +184 -0
  791. pyrite_mc-0.13.2/src/pyrite/cli/commands/backend_setup.py +252 -0
  792. pyrite_mc-0.13.2/src/pyrite/cli/commands/beam.py +494 -0
  793. pyrite_mc-0.13.2/src/pyrite/cli/commands/blaze.py +158 -0
  794. pyrite_mc-0.13.2/src/pyrite/cli/commands/check_config.py +51 -0
  795. pyrite_mc-0.13.2/src/pyrite/cli/commands/checkpoint.py +73 -0
  796. pyrite_mc-0.13.2/src/pyrite/cli/commands/cleanup.py +86 -0
  797. pyrite_mc-0.13.2/src/pyrite/cli/commands/completion.py +342 -0
  798. pyrite_mc-0.13.2/src/pyrite/cli/commands/config.py +176 -0
  799. pyrite_mc-0.13.2/src/pyrite/cli/commands/detector.py +349 -0
  800. pyrite_mc-0.13.2/src/pyrite/cli/commands/energy_grid.py +910 -0
  801. pyrite_mc-0.13.2/src/pyrite/cli/commands/energy_grid_surface.py +65 -0
  802. pyrite_mc-0.13.2/src/pyrite/cli/commands/export.py +74 -0
  803. pyrite_mc-0.13.2/src/pyrite/cli/commands/job.py +148 -0
  804. pyrite_mc-0.13.2/src/pyrite/cli/commands/material.py +171 -0
  805. pyrite_mc-0.13.2/src/pyrite/cli/commands/performance.py +164 -0
  806. pyrite_mc-0.13.2/src/pyrite/cli/commands/profile.py +1140 -0
  807. pyrite_mc-0.13.2/src/pyrite/cli/commands/recompute.py +556 -0
  808. pyrite_mc-0.13.2/src/pyrite/cli/commands/remote.py +1097 -0
  809. pyrite_mc-0.13.2/src/pyrite/cli/commands/remote_trajectories.py +210 -0
  810. pyrite_mc-0.13.2/src/pyrite/cli/commands/scan.py +861 -0
  811. pyrite_mc-0.13.2/src/pyrite/cli/commands/slim.py +79 -0
  812. pyrite_mc-0.13.2/src/pyrite/cli/commands/tables.py +911 -0
  813. pyrite_mc-0.13.2/src/pyrite/cli/commands/trajectories.py +578 -0
  814. pyrite_mc-0.13.2/src/pyrite/console/__init__.py +10 -0
  815. pyrite_mc-0.13.2/src/pyrite/console/config.py +260 -0
  816. pyrite_mc-0.13.2/src/pyrite/console/dashboard/__init__.py +51 -0
  817. pyrite_mc-0.13.2/src/pyrite/console/dashboard/poll.py +73 -0
  818. pyrite_mc-0.13.2/src/pyrite/console/dashboard/render.py +851 -0
  819. pyrite_mc-0.13.2/src/pyrite/console/dashboard/state.py +265 -0
  820. pyrite_mc-0.13.2/src/pyrite/console/json.py +576 -0
  821. pyrite_mc-0.13.2/src/pyrite/console/output.py +476 -0
  822. pyrite_mc-0.13.2/src/pyrite/console/outputs.py +212 -0
  823. pyrite_mc-0.13.2/src/pyrite/data/catalog/beams/1_atto.toml +6 -0
  824. pyrite_mc-0.13.2/src/pyrite/data/catalog/beams/coherent_demo.toml +11 -0
  825. pyrite_mc-0.13.2/src/pyrite/data/catalog/beams/default.toml +7 -0
  826. pyrite_mc-0.13.2/src/pyrite/data/catalog/beams/emittance_demo.toml +15 -0
  827. pyrite_mc-0.13.2/src/pyrite/data/catalog/beams/example.toml +7 -0
  828. pyrite_mc-0.13.2/src/pyrite/data/catalog/beams/gaussian_200fs.toml +8 -0
  829. pyrite_mc-0.13.2/src/pyrite/data/catalog/beams/trajectory_demo.toml +2 -0
  830. pyrite_mc-0.13.2/src/pyrite/data/catalog/catalog.toml +1 -0
  831. pyrite_mc-0.13.2/src/pyrite/data/catalog/crystals/2h_tas2.toml +13 -0
  832. pyrite_mc-0.13.2/src/pyrite/data/catalog/crystals/2h_tase2.toml +11 -0
  833. pyrite_mc-0.13.2/src/pyrite/data/catalog/crystals/4h_sic.toml +10 -0
  834. pyrite_mc-0.13.2/src/pyrite/data/catalog/crystals/6h_sic.toml +11 -0
  835. pyrite_mc-0.13.2/src/pyrite/data/catalog/crystals/black_phosphorus.toml +10 -0
  836. pyrite_mc-0.13.2/src/pyrite/data/catalog/crystals/diamond.toml +8 -0
  837. pyrite_mc-0.13.2/src/pyrite/data/catalog/crystals/fes2.toml +8 -0
  838. pyrite_mc-0.13.2/src/pyrite/data/catalog/crystals/fete.toml +11 -0
  839. pyrite_mc-0.13.2/src/pyrite/data/catalog/crystals/gep.toml +10 -0
  840. pyrite_mc-0.13.2/src/pyrite/data/catalog/crystals/ges.toml +10 -0
  841. pyrite_mc-0.13.2/src/pyrite/data/catalog/crystals/gese.toml +10 -0
  842. pyrite_mc-0.13.2/src/pyrite/data/catalog/crystals/gese2.toml +11 -0
  843. pyrite_mc-0.13.2/src/pyrite/data/catalog/crystals/hbn.toml +11 -0
  844. pyrite_mc-0.13.2/src/pyrite/data/catalog/crystals/hfs2.toml +8 -0
  845. pyrite_mc-0.13.2/src/pyrite/data/catalog/crystals/hfse2.toml +8 -0
  846. pyrite_mc-0.13.2/src/pyrite/data/catalog/crystals/hfte2.toml +11 -0
  847. pyrite_mc-0.13.2/src/pyrite/data/catalog/crystals/hopg.toml +16 -0
  848. pyrite_mc-0.13.2/src/pyrite/data/catalog/crystals/lif.toml +7 -0
  849. pyrite_mc-0.13.2/src/pyrite/data/catalog/crystals/mos2.toml +16 -0
  850. pyrite_mc-0.13.2/src/pyrite/data/catalog/crystals/mose2.toml +9 -0
  851. pyrite_mc-0.13.2/src/pyrite/data/catalog/crystals/mote2.toml +9 -0
  852. pyrite_mc-0.13.2/src/pyrite/data/catalog/crystals/mote2_product.toml +9 -0
  853. pyrite_mc-0.13.2/src/pyrite/data/catalog/crystals/nbs2.toml +8 -0
  854. pyrite_mc-0.13.2/src/pyrite/data/catalog/crystals/nbse2.toml +8 -0
  855. pyrite_mc-0.13.2/src/pyrite/data/catalog/crystals/nbte2.toml +11 -0
  856. pyrite_mc-0.13.2/src/pyrite/data/catalog/crystals/pds2.toml +10 -0
  857. pyrite_mc-0.13.2/src/pyrite/data/catalog/crystals/pdse2.toml +9 -0
  858. pyrite_mc-0.13.2/src/pyrite/data/catalog/crystals/pdte2.toml +13 -0
  859. pyrite_mc-0.13.2/src/pyrite/data/catalog/crystals/ptbi2.toml +10 -0
  860. pyrite_mc-0.13.2/src/pyrite/data/catalog/crystals/pts2.toml +12 -0
  861. pyrite_mc-0.13.2/src/pyrite/data/catalog/crystals/ptse2.toml +9 -0
  862. pyrite_mc-0.13.2/src/pyrite/data/catalog/crystals/ptte2.toml +11 -0
  863. pyrite_mc-0.13.2/src/pyrite/data/catalog/crystals/res2.toml +11 -0
  864. pyrite_mc-0.13.2/src/pyrite/data/catalog/crystals/rese2.toml +11 -0
  865. pyrite_mc-0.13.2/src/pyrite/data/catalog/crystals/sapphire.toml +8 -0
  866. pyrite_mc-0.13.2/src/pyrite/data/catalog/crystals/silicon.toml +8 -0
  867. pyrite_mc-0.13.2/src/pyrite/data/catalog/crystals/tate2.toml +11 -0
  868. pyrite_mc-0.13.2/src/pyrite/data/catalog/crystals/tis2.toml +11 -0
  869. pyrite_mc-0.13.2/src/pyrite/data/catalog/crystals/tise2.toml +11 -0
  870. pyrite_mc-0.13.2/src/pyrite/data/catalog/crystals/tite2.toml +11 -0
  871. pyrite_mc-0.13.2/src/pyrite/data/catalog/crystals/v2o5.toml +10 -0
  872. pyrite_mc-0.13.2/src/pyrite/data/catalog/crystals/vse2.toml +11 -0
  873. pyrite_mc-0.13.2/src/pyrite/data/catalog/crystals/vte2.toml +11 -0
  874. pyrite_mc-0.13.2/src/pyrite/data/catalog/crystals/ws2.toml +9 -0
  875. pyrite_mc-0.13.2/src/pyrite/data/catalog/crystals/wse2.toml +10 -0
  876. pyrite_mc-0.13.2/src/pyrite/data/catalog/crystals/wte2.toml +11 -0
  877. pyrite_mc-0.13.2/src/pyrite/data/catalog/crystals/zrse2.toml +8 -0
  878. pyrite_mc-0.13.2/src/pyrite/data/catalog/crystals/zrte3.toml +10 -0
  879. pyrite_mc-0.13.2/src/pyrite/data/catalog/crystals/zrte5.toml +9 -0
  880. pyrite_mc-0.13.2/src/pyrite/data/catalog/detectors/pixelated_reference.toml +24 -0
  881. pyrite_mc-0.13.2/src/pyrite/data/catalog/detectors/reference.toml +6 -0
  882. pyrite_mc-0.13.2/src/pyrite/data/catalog/detectors/reference_135.toml +6 -0
  883. pyrite_mc-0.13.2/src/pyrite/data/catalog/materials/2h_tas2.toml +1 -0
  884. pyrite_mc-0.13.2/src/pyrite/data/catalog/materials/2h_tase2.toml +1 -0
  885. pyrite_mc-0.13.2/src/pyrite/data/catalog/materials/4h_sic.toml +1 -0
  886. pyrite_mc-0.13.2/src/pyrite/data/catalog/materials/6h_sic.toml +1 -0
  887. pyrite_mc-0.13.2/src/pyrite/data/catalog/materials/black_phosphorus.toml +1 -0
  888. pyrite_mc-0.13.2/src/pyrite/data/catalog/materials/diamond.toml +1 -0
  889. pyrite_mc-0.13.2/src/pyrite/data/catalog/materials/fes2.toml +2 -0
  890. pyrite_mc-0.13.2/src/pyrite/data/catalog/materials/fete.toml +1 -0
  891. pyrite_mc-0.13.2/src/pyrite/data/catalog/materials/gep.toml +1 -0
  892. pyrite_mc-0.13.2/src/pyrite/data/catalog/materials/ges.toml +1 -0
  893. pyrite_mc-0.13.2/src/pyrite/data/catalog/materials/gese.toml +1 -0
  894. pyrite_mc-0.13.2/src/pyrite/data/catalog/materials/gese2.toml +1 -0
  895. pyrite_mc-0.13.2/src/pyrite/data/catalog/materials/hbn.toml +1 -0
  896. pyrite_mc-0.13.2/src/pyrite/data/catalog/materials/hfs2.toml +2 -0
  897. pyrite_mc-0.13.2/src/pyrite/data/catalog/materials/hfse2.toml +2 -0
  898. pyrite_mc-0.13.2/src/pyrite/data/catalog/materials/hfte2.toml +1 -0
  899. pyrite_mc-0.13.2/src/pyrite/data/catalog/materials/hopg.toml +1 -0
  900. pyrite_mc-0.13.2/src/pyrite/data/catalog/materials/mos2-on-sapphire.toml +3 -0
  901. pyrite_mc-0.13.2/src/pyrite/data/catalog/materials/mos2-on-sio2-si.toml +6 -0
  902. pyrite_mc-0.13.2/src/pyrite/data/catalog/materials/mos2.toml +1 -0
  903. pyrite_mc-0.13.2/src/pyrite/data/catalog/materials/mose2.toml +2 -0
  904. pyrite_mc-0.13.2/src/pyrite/data/catalog/materials/mote2.toml +1 -0
  905. pyrite_mc-0.13.2/src/pyrite/data/catalog/materials/mote2_product.toml +1 -0
  906. pyrite_mc-0.13.2/src/pyrite/data/catalog/materials/nbs2.toml +2 -0
  907. pyrite_mc-0.13.2/src/pyrite/data/catalog/materials/nbse2.toml +2 -0
  908. pyrite_mc-0.13.2/src/pyrite/data/catalog/materials/nbte2.toml +1 -0
  909. pyrite_mc-0.13.2/src/pyrite/data/catalog/materials/pds2.toml +1 -0
  910. pyrite_mc-0.13.2/src/pyrite/data/catalog/materials/pdse2.toml +1 -0
  911. pyrite_mc-0.13.2/src/pyrite/data/catalog/materials/pdte2.toml +1 -0
  912. pyrite_mc-0.13.2/src/pyrite/data/catalog/materials/ptbi2.toml +2 -0
  913. pyrite_mc-0.13.2/src/pyrite/data/catalog/materials/pts2.toml +1 -0
  914. pyrite_mc-0.13.2/src/pyrite/data/catalog/materials/ptse2.toml +1 -0
  915. pyrite_mc-0.13.2/src/pyrite/data/catalog/materials/ptte2.toml +1 -0
  916. pyrite_mc-0.13.2/src/pyrite/data/catalog/materials/res2.toml +2 -0
  917. pyrite_mc-0.13.2/src/pyrite/data/catalog/materials/rese2.toml +1 -0
  918. pyrite_mc-0.13.2/src/pyrite/data/catalog/materials/sapphire.toml +1 -0
  919. pyrite_mc-0.13.2/src/pyrite/data/catalog/materials/silicon.toml +1 -0
  920. pyrite_mc-0.13.2/src/pyrite/data/catalog/materials/tate2.toml +1 -0
  921. pyrite_mc-0.13.2/src/pyrite/data/catalog/materials/tis2.toml +1 -0
  922. pyrite_mc-0.13.2/src/pyrite/data/catalog/materials/tise2.toml +1 -0
  923. pyrite_mc-0.13.2/src/pyrite/data/catalog/materials/tite2.toml +1 -0
  924. pyrite_mc-0.13.2/src/pyrite/data/catalog/materials/v2o5.toml +1 -0
  925. pyrite_mc-0.13.2/src/pyrite/data/catalog/materials/vse2.toml +1 -0
  926. pyrite_mc-0.13.2/src/pyrite/data/catalog/materials/vte2.toml +1 -0
  927. pyrite_mc-0.13.2/src/pyrite/data/catalog/materials/ws2.toml +1 -0
  928. pyrite_mc-0.13.2/src/pyrite/data/catalog/materials/wse2.toml +1 -0
  929. pyrite_mc-0.13.2/src/pyrite/data/catalog/materials/wte2.toml +1 -0
  930. pyrite_mc-0.13.2/src/pyrite/data/catalog/materials/zrse2.toml +2 -0
  931. pyrite_mc-0.13.2/src/pyrite/data/catalog/materials/zrte3.toml +1 -0
  932. pyrite_mc-0.13.2/src/pyrite/data/catalog/materials/zrte5.toml +2 -0
  933. pyrite_mc-0.13.2/src/pyrite/data/catalog/media/sio2.toml +1 -0
  934. pyrite_mc-0.13.2/src/pyrite/data/catalog/profiles/coherent_demo.toml +21 -0
  935. pyrite_mc-0.13.2/src/pyrite/data/catalog/profiles/detector_demo.toml +46 -0
  936. pyrite_mc-0.13.2/src/pyrite/data/catalog/profiles/high_energy_demo.toml +19 -0
  937. pyrite_mc-0.13.2/src/pyrite/data/catalog/profiles/hopg_emittance_demo.toml +11 -0
  938. pyrite_mc-0.13.2/src/pyrite/data/catalog/profiles/pixelated_detector_demo.toml +14 -0
  939. pyrite_mc-0.13.2/src/pyrite/data/catalog/profiles/quickstart.toml +11 -0
  940. pyrite_mc-0.13.2/src/pyrite/data/catalog/profiles/standard.toml +19 -0
  941. pyrite_mc-0.13.2/src/pyrite/data/catalog/profiles/sweep_demo.toml +12 -0
  942. pyrite_mc-0.13.2/src/pyrite/data/catalog/profiles/trajectory_demo.toml +11 -0
  943. pyrite_mc-0.13.2/src/pyrite/data/catalog/profiles/two_detector_demo.toml +15 -0
  944. pyrite_mc-0.13.2/src/pyrite/data/characteristic_cross_sections/README.md +53 -0
  945. pyrite_mc-0.13.2/src/pyrite/data/cifs/2h_tas2.cif +32 -0
  946. pyrite_mc-0.13.2/src/pyrite/data/cifs/2h_tase2.cif +33 -0
  947. pyrite_mc-0.13.2/src/pyrite/data/cifs/4h_sic.cif +34 -0
  948. pyrite_mc-0.13.2/src/pyrite/data/cifs/6h_sic.cif +38 -0
  949. pyrite_mc-0.13.2/src/pyrite/data/cifs/black_phosphorus.cif +35 -0
  950. pyrite_mc-0.13.2/src/pyrite/data/cifs/diamond.cif +37 -0
  951. pyrite_mc-0.13.2/src/pyrite/data/cifs/fes2.cif +37 -0
  952. pyrite_mc-0.13.2/src/pyrite/data/cifs/fete.cif +31 -0
  953. pyrite_mc-0.13.2/src/pyrite/data/cifs/gep.cif +31 -0
  954. pyrite_mc-0.13.2/src/pyrite/data/cifs/ges.cif +26 -0
  955. pyrite_mc-0.13.2/src/pyrite/data/cifs/gese.cif +26 -0
  956. pyrite_mc-0.13.2/src/pyrite/data/cifs/gese2.cif +45 -0
  957. pyrite_mc-0.13.2/src/pyrite/data/cifs/hbn.cif +29 -0
  958. pyrite_mc-0.13.2/src/pyrite/data/cifs/hfs2.cif +30 -0
  959. pyrite_mc-0.13.2/src/pyrite/data/cifs/hfse2.cif +22 -0
  960. pyrite_mc-0.13.2/src/pyrite/data/cifs/hfte2.cif +29 -0
  961. pyrite_mc-0.13.2/src/pyrite/data/cifs/hopg.cif +29 -0
  962. pyrite_mc-0.13.2/src/pyrite/data/cifs/lif.cif +28 -0
  963. pyrite_mc-0.13.2/src/pyrite/data/cifs/mos2.cif +28 -0
  964. pyrite_mc-0.13.2/src/pyrite/data/cifs/mose2.cif +33 -0
  965. pyrite_mc-0.13.2/src/pyrite/data/cifs/mote2.cif +30 -0
  966. pyrite_mc-0.13.2/src/pyrite/data/cifs/mote2_product.cif +29 -0
  967. pyrite_mc-0.13.2/src/pyrite/data/cifs/nbs2.cif +32 -0
  968. pyrite_mc-0.13.2/src/pyrite/data/cifs/nbse2.cif +35 -0
  969. pyrite_mc-0.13.2/src/pyrite/data/cifs/nbte2.cif +41 -0
  970. pyrite_mc-0.13.2/src/pyrite/data/cifs/pds2.cif +37 -0
  971. pyrite_mc-0.13.2/src/pyrite/data/cifs/pdse2.cif +38 -0
  972. pyrite_mc-0.13.2/src/pyrite/data/cifs/pdte2.cif +29 -0
  973. pyrite_mc-0.13.2/src/pyrite/data/cifs/ptbi2.cif +38 -0
  974. pyrite_mc-0.13.2/src/pyrite/data/cifs/pts2.cif +27 -0
  975. pyrite_mc-0.13.2/src/pyrite/data/cifs/ptse2.cif +22 -0
  976. pyrite_mc-0.13.2/src/pyrite/data/cifs/ptte2.cif +28 -0
  977. pyrite_mc-0.13.2/src/pyrite/data/cifs/res2.cif +51 -0
  978. pyrite_mc-0.13.2/src/pyrite/data/cifs/rese2.cif +39 -0
  979. pyrite_mc-0.13.2/src/pyrite/data/cifs/sapphire.cif +55 -0
  980. pyrite_mc-0.13.2/src/pyrite/data/cifs/silicon.cif +27 -0
  981. pyrite_mc-0.13.2/src/pyrite/data/cifs/tate2.cif +43 -0
  982. pyrite_mc-0.13.2/src/pyrite/data/cifs/tis2.cif +33 -0
  983. pyrite_mc-0.13.2/src/pyrite/data/cifs/tise2.cif +28 -0
  984. pyrite_mc-0.13.2/src/pyrite/data/cifs/tite2.cif +26 -0
  985. pyrite_mc-0.13.2/src/pyrite/data/cifs/v2o5.cif +42 -0
  986. pyrite_mc-0.13.2/src/pyrite/data/cifs/vse2.cif +26 -0
  987. pyrite_mc-0.13.2/src/pyrite/data/cifs/vte2.cif +43 -0
  988. pyrite_mc-0.13.2/src/pyrite/data/cifs/ws2.cif +29 -0
  989. pyrite_mc-0.13.2/src/pyrite/data/cifs/wse2.cif +32 -0
  990. pyrite_mc-0.13.2/src/pyrite/data/cifs/wte2.cif +37 -0
  991. pyrite_mc-0.13.2/src/pyrite/data/cifs/zrse2.cif +22 -0
  992. pyrite_mc-0.13.2/src/pyrite/data/cifs/zrte3.cif +33 -0
  993. pyrite_mc-0.13.2/src/pyrite/data/cifs/zrte5.cif +50 -0
  994. pyrite_mc-0.13.2/src/pyrite/data/conduction_band.toml +118 -0
  995. pyrite_mc-0.13.2/src/pyrite/data/eaglexo_qe.csv +141 -0
  996. pyrite_mc-0.13.2/src/pyrite/data/line_grid_defaults.toml +8 -0
  997. pyrite_mc-0.13.2/src/pyrite/data/line_grid_provenance.toml +901 -0
  998. pyrite_mc-0.13.2/src/pyrite/data/paraview/pyrite_trajectories.py +204 -0
  999. pyrite_mc-0.13.2/src/pyrite/data/photon_cross_sections/README.md +55 -0
  1000. pyrite_mc-0.13.2/src/pyrite/data/xsgen/bremslib-tables.json +135 -0
  1001. pyrite_mc-0.13.2/src/pyrite/data/xsgen/elsepa-positron-tables.json +153 -0
  1002. pyrite_mc-0.13.2/src/pyrite/data/xsgen/elsepa-tables.json +153 -0
  1003. pyrite_mc-0.13.2/src/pyrite/data/xsgen/sbethe-positron-tables.json +258 -0
  1004. pyrite_mc-0.13.2/src/pyrite/data/xsgen/sbethe-tables.json +258 -0
  1005. pyrite_mc-0.13.2/src/pyrite/data/xsgen/source-digests.json +4 -0
  1006. pyrite_mc-0.13.2/src/pyrite/datasets.py +359 -0
  1007. pyrite_mc-0.13.2/src/pyrite/detectors/__init__.py +53 -0
  1008. pyrite_mc-0.13.2/src/pyrite/detectors/_si_sensor.py +75 -0
  1009. pyrite_mc-0.13.2/src/pyrite/detectors/eaglexo_response.py +420 -0
  1010. pyrite_mc-0.13.2/src/pyrite/detectors/grating.py +638 -0
  1011. pyrite_mc-0.13.2/src/pyrite/detectors/response.py +133 -0
  1012. pyrite_mc-0.13.2/src/pyrite/detectors/spec.py +362 -0
  1013. pyrite_mc-0.13.2/src/pyrite/detectors/timepix_response.py +611 -0
  1014. pyrite_mc-0.13.2/src/pyrite/devtools/__init__.py +23 -0
  1015. pyrite_mc-0.13.2/src/pyrite/devtools/cli_commands.py +73 -0
  1016. pyrite_mc-0.13.2/src/pyrite/devtools/cli_deprecations.py +142 -0
  1017. pyrite_mc-0.13.2/src/pyrite/devtools/cli_reference.py +184 -0
  1018. pyrite_mc-0.13.2/src/pyrite/devtools/dev_cli.py +989 -0
  1019. pyrite_mc-0.13.2/src/pyrite/devtools/doc_blocks.py +84 -0
  1020. pyrite_mc-0.13.2/src/pyrite/devtools/doc_cli_check.py +247 -0
  1021. pyrite_mc-0.13.2/src/pyrite/devtools/doc_toml_check.py +48 -0
  1022. pyrite_mc-0.13.2/src/pyrite/devtools/docs_paths.py +63 -0
  1023. pyrite_mc-0.13.2/src/pyrite/devtools/package_smoke.py +157 -0
  1024. pyrite_mc-0.13.2/src/pyrite/devtools/release.py +251 -0
  1025. pyrite_mc-0.13.2/src/pyrite/devtools/repo_map.py +149 -0
  1026. pyrite_mc-0.13.2/src/pyrite/devtools/smoke.py +67 -0
  1027. pyrite_mc-0.13.2/src/pyrite/devtools/startup.py +154 -0
  1028. pyrite_mc-0.13.2/src/pyrite/devtools/validation_ledger.py +360 -0
  1029. pyrite_mc-0.13.2/src/pyrite/energy_grid/__init__.py +12 -0
  1030. pyrite_mc-0.13.2/src/pyrite/energy_grid/apply.py +1038 -0
  1031. pyrite_mc-0.13.2/src/pyrite/energy_grid/bandwidth_check.py +824 -0
  1032. pyrite_mc-0.13.2/src/pyrite/energy_grid/bounds.py +131 -0
  1033. pyrite_mc-0.13.2/src/pyrite/energy_grid/convergence.py +627 -0
  1034. pyrite_mc-0.13.2/src/pyrite/energy_grid/convergence_case.py +886 -0
  1035. pyrite_mc-0.13.2/src/pyrite/energy_grid/convergence_job.py +674 -0
  1036. pyrite_mc-0.13.2/src/pyrite/energy_grid/defaults.py +134 -0
  1037. pyrite_mc-0.13.2/src/pyrite/energy_grid/derive.py +916 -0
  1038. pyrite_mc-0.13.2/src/pyrite/energy_grid/encoding.py +5 -0
  1039. pyrite_mc-0.13.2/src/pyrite/energy_grid/floor.py +84 -0
  1040. pyrite_mc-0.13.2/src/pyrite/energy_grid/gc.py +467 -0
  1041. pyrite_mc-0.13.2/src/pyrite/energy_grid/golden.py +248 -0
  1042. pyrite_mc-0.13.2/src/pyrite/energy_grid/job.py +325 -0
  1043. pyrite_mc-0.13.2/src/pyrite/energy_grid/precision_ladder.py +358 -0
  1044. pyrite_mc-0.13.2/src/pyrite/energy_grid/provenance.py +157 -0
  1045. pyrite_mc-0.13.2/src/pyrite/energy_grid/refine.py +406 -0
  1046. pyrite_mc-0.13.2/src/pyrite/energy_grid/semantics.py +27 -0
  1047. pyrite_mc-0.13.2/src/pyrite/instrument/__init__.py +54 -0
  1048. pyrite_mc-0.13.2/src/pyrite/instrument/acquisition.py +368 -0
  1049. pyrite_mc-0.13.2/src/pyrite/instrument/attenuation.py +86 -0
  1050. pyrite_mc-0.13.2/src/pyrite/instrument/geometry.py +221 -0
  1051. pyrite_mc-0.13.2/src/pyrite/instrument/model.py +355 -0
  1052. pyrite_mc-0.13.2/src/pyrite/instrument/observation.py +396 -0
  1053. pyrite_mc-0.13.2/src/pyrite/instrument/scene.py +67 -0
  1054. pyrite_mc-0.13.2/src/pyrite/materials/__init__.py +62 -0
  1055. pyrite_mc-0.13.2/src/pyrite/materials/_beam_detector_parse.py +792 -0
  1056. pyrite_mc-0.13.2/src/pyrite/materials/_catalog_decode.py +236 -0
  1057. pyrite_mc-0.13.2/src/pyrite/materials/_cif.py +158 -0
  1058. pyrite_mc-0.13.2/src/pyrite/materials/_identity.py +180 -0
  1059. pyrite_mc-0.13.2/src/pyrite/materials/_parse.py +1004 -0
  1060. pyrite_mc-0.13.2/src/pyrite/materials/_schema.py +690 -0
  1061. pyrite_mc-0.13.2/src/pyrite/materials/_transport_data.py +249 -0
  1062. pyrite_mc-0.13.2/src/pyrite/materials/atomic.py +236 -0
  1063. pyrite_mc-0.13.2/src/pyrite/materials/attenuation.py +338 -0
  1064. pyrite_mc-0.13.2/src/pyrite/materials/catalog.py +314 -0
  1065. pyrite_mc-0.13.2/src/pyrite/materials/crystal.py +896 -0
  1066. pyrite_mc-0.13.2/src/pyrite/materials/emission.py +233 -0
  1067. pyrite_mc-0.13.2/src/pyrite/materials/photon_cross_sections.py +214 -0
  1068. pyrite_mc-0.13.2/src/pyrite/montecarlo/__init__.py +241 -0
  1069. pyrite_mc-0.13.2/src/pyrite/montecarlo/_cupy_jit.py +29 -0
  1070. pyrite_mc-0.13.2/src/pyrite/montecarlo/_resources.py +129 -0
  1071. pyrite_mc-0.13.2/src/pyrite/montecarlo/bunch_front.py +97 -0
  1072. pyrite_mc-0.13.2/src/pyrite/montecarlo/case.py +521 -0
  1073. pyrite_mc-0.13.2/src/pyrite/montecarlo/detector.py +117 -0
  1074. pyrite_mc-0.13.2/src/pyrite/montecarlo/eadl_relaxation.py +489 -0
  1075. pyrite_mc-0.13.2/src/pyrite/montecarlo/eedl_ionization.py +289 -0
  1076. pyrite_mc-0.13.2/src/pyrite/montecarlo/gdf.py +333 -0
  1077. pyrite_mc-0.13.2/src/pyrite/montecarlo/geometry.py +628 -0
  1078. pyrite_mc-0.13.2/src/pyrite/montecarlo/groove.py +367 -0
  1079. pyrite_mc-0.13.2/src/pyrite/montecarlo/runner/__init__.py +1197 -0
  1080. pyrite_mc-0.13.2/src/pyrite/montecarlo/runner/adaptive.py +617 -0
  1081. pyrite_mc-0.13.2/src/pyrite/montecarlo/runner/artifacts.py +250 -0
  1082. pyrite_mc-0.13.2/src/pyrite/montecarlo/runner/block_transport.py +282 -0
  1083. pyrite_mc-0.13.2/src/pyrite/montecarlo/runner/case_tables.py +235 -0
  1084. pyrite_mc-0.13.2/src/pyrite/montecarlo/runner/chunking.py +183 -0
  1085. pyrite_mc-0.13.2/src/pyrite/montecarlo/runner/coherent_audit.py +162 -0
  1086. pyrite_mc-0.13.2/src/pyrite/montecarlo/runner/cxr_grid.py +897 -0
  1087. pyrite_mc-0.13.2/src/pyrite/montecarlo/runner/directions.py +98 -0
  1088. pyrite_mc-0.13.2/src/pyrite/montecarlo/runner/electron_blocks.py +118 -0
  1089. pyrite_mc-0.13.2/src/pyrite/montecarlo/runner/emission.py +294 -0
  1090. pyrite_mc-0.13.2/src/pyrite/montecarlo/runner/host_cpus.py +60 -0
  1091. pyrite_mc-0.13.2/src/pyrite/montecarlo/runner/oom.py +69 -0
  1092. pyrite_mc-0.13.2/src/pyrite/montecarlo/runner/pool.py +153 -0
  1093. pyrite_mc-0.13.2/src/pyrite/montecarlo/runner/scheduling.py +794 -0
  1094. pyrite_mc-0.13.2/src/pyrite/montecarlo/runner/stage_chunks.py +94 -0
  1095. pyrite_mc-0.13.2/src/pyrite/montecarlo/runner/step_budget.py +27 -0
  1096. pyrite_mc-0.13.2/src/pyrite/montecarlo/runner/timing.py +177 -0
  1097. pyrite_mc-0.13.2/src/pyrite/montecarlo/shell_configuration.py +187 -0
  1098. pyrite_mc-0.13.2/src/pyrite/montecarlo/shell_ionization.py +101 -0
  1099. pyrite_mc-0.13.2/src/pyrite/montecarlo/spectrum/__init__.py +93 -0
  1100. pyrite_mc-0.13.2/src/pyrite/montecarlo/spectrum/brem.py +1244 -0
  1101. pyrite_mc-0.13.2/src/pyrite/montecarlo/spectrum/brem_bremslib.py +252 -0
  1102. pyrite_mc-0.13.2/src/pyrite/montecarlo/spectrum/brem_events.py +260 -0
  1103. pyrite_mc-0.13.2/src/pyrite/montecarlo/spectrum/brem_jit_kernel.py +892 -0
  1104. pyrite_mc-0.13.2/src/pyrite/montecarlo/spectrum/brem_unit_base.py +107 -0
  1105. pyrite_mc-0.13.2/src/pyrite/montecarlo/spectrum/characteristic.py +899 -0
  1106. pyrite_mc-0.13.2/src/pyrite/montecarlo/spectrum/coherent.py +31 -0
  1107. pyrite_mc-0.13.2/src/pyrite/montecarlo/spectrum/coherent_band_audit.py +369 -0
  1108. pyrite_mc-0.13.2/src/pyrite/montecarlo/spectrum/coherent_dispersion.py +370 -0
  1109. pyrite_mc-0.13.2/src/pyrite/montecarlo/spectrum/coherent_form_factor.py +72 -0
  1110. pyrite_mc-0.13.2/src/pyrite/montecarlo/spectrum/coherent_grouped_jit_kernel.py +322 -0
  1111. pyrite_mc-0.13.2/src/pyrite/montecarlo/spectrum/coherent_jit_kernel.py +766 -0
  1112. pyrite_mc-0.13.2/src/pyrite/montecarlo/spectrum/coherent_normalization.py +724 -0
  1113. pyrite_mc-0.13.2/src/pyrite/montecarlo/spectrum/coherent_population.py +189 -0
  1114. pyrite_mc-0.13.2/src/pyrite/montecarlo/spectrum/coherent_sample_certificates.py +624 -0
  1115. pyrite_mc-0.13.2/src/pyrite/montecarlo/spectrum/coherent_spectrum_audit.py +510 -0
  1116. pyrite_mc-0.13.2/src/pyrite/montecarlo/spectrum/coherent_stream_jit_kernel.py +1186 -0
  1117. pyrite_mc-0.13.2/src/pyrite/montecarlo/spectrum/coherent_transverse.py +262 -0
  1118. pyrite_mc-0.13.2/src/pyrite/montecarlo/spectrum/coherent_windows.py +1223 -0
  1119. pyrite_mc-0.13.2/src/pyrite/montecarlo/spectrum/cxr/__init__.py +103 -0
  1120. pyrite_mc-0.13.2/src/pyrite/montecarlo/spectrum/cxr/_attribution.py +112 -0
  1121. pyrite_mc-0.13.2/src/pyrite/montecarlo/spectrum/cxr/_batched.py +1059 -0
  1122. pyrite_mc-0.13.2/src/pyrite/montecarlo/spectrum/cxr/_batched_finalize.py +246 -0
  1123. pyrite_mc-0.13.2/src/pyrite/montecarlo/spectrum/cxr/_bin_quadrature.py +684 -0
  1124. pyrite_mc-0.13.2/src/pyrite/montecarlo/spectrum/cxr/_bin_tree.py +288 -0
  1125. pyrite_mc-0.13.2/src/pyrite/montecarlo/spectrum/cxr/_formation.py +204 -0
  1126. pyrite_mc-0.13.2/src/pyrite/montecarlo/spectrum/cxr/_kernels.py +1018 -0
  1127. pyrite_mc-0.13.2/src/pyrite/montecarlo/spectrum/cxr/_per_hkl.py +1220 -0
  1128. pyrite_mc-0.13.2/src/pyrite/montecarlo/spectrum/cxr/_policy.py +17 -0
  1129. pyrite_mc-0.13.2/src/pyrite/montecarlo/spectrum/cxr/_setup.py +760 -0
  1130. pyrite_mc-0.13.2/src/pyrite/montecarlo/spectrum/cxr/_spectrum.py +413 -0
  1131. pyrite_mc-0.13.2/src/pyrite/montecarlo/spectrum/cxr/_temporal.py +459 -0
  1132. pyrite_mc-0.13.2/src/pyrite/montecarlo/spectrum/cxr_jit_kernel.py +515 -0
  1133. pyrite_mc-0.13.2/src/pyrite/montecarlo/spectrum/cxr_seeds.py +1182 -0
  1134. pyrite_mc-0.13.2/src/pyrite/montecarlo/spectrum/diagnostics.py +645 -0
  1135. pyrite_mc-0.13.2/src/pyrite/montecarlo/spectrum/phase_retention.py +130 -0
  1136. pyrite_mc-0.13.2/src/pyrite/montecarlo/spectrum/reflection_rows.py +163 -0
  1137. pyrite_mc-0.13.2/src/pyrite/montecarlo/spectrum/segment_escape.py +347 -0
  1138. pyrite_mc-0.13.2/src/pyrite/montecarlo/trajectories.py +1134 -0
  1139. pyrite_mc-0.13.2/src/pyrite/montecarlo/trajectory_export.py +343 -0
  1140. pyrite_mc-0.13.2/src/pyrite/montecarlo/trajectory_inventory.py +245 -0
  1141. pyrite_mc-0.13.2/src/pyrite/montecarlo/trajectory_scene.py +305 -0
  1142. pyrite_mc-0.13.2/src/pyrite/montecarlo/trajectory_selection.py +330 -0
  1143. pyrite_mc-0.13.2/src/pyrite/montecarlo/transport/__init__.py +192 -0
  1144. pyrite_mc-0.13.2/src/pyrite/montecarlo/transport/_jit_annihilation.py +217 -0
  1145. pyrite_mc-0.13.2/src/pyrite/montecarlo/transport/_jit_device.py +516 -0
  1146. pyrite_mc-0.13.2/src/pyrite/montecarlo/transport/_jit_kernel.py +1106 -0
  1147. pyrite_mc-0.13.2/src/pyrite/montecarlo/transport/_jit_launch.py +479 -0
  1148. pyrite_mc-0.13.2/src/pyrite/montecarlo/transport/_jit_lut_kernel.py +542 -0
  1149. pyrite_mc-0.13.2/src/pyrite/montecarlo/transport/_jit_radiative.py +208 -0
  1150. pyrite_mc-0.13.2/src/pyrite/montecarlo/transport/_jit_radiative_device.py +289 -0
  1151. pyrite_mc-0.13.2/src/pyrite/montecarlo/transport/_jit_shell_device.py +358 -0
  1152. pyrite_mc-0.13.2/src/pyrite/montecarlo/transport/annihilation.py +439 -0
  1153. pyrite_mc-0.13.2/src/pyrite/montecarlo/transport/api.py +1250 -0
  1154. pyrite_mc-0.13.2/src/pyrite/montecarlo/transport/arguments.py +62 -0
  1155. pyrite_mc-0.13.2/src/pyrite/montecarlo/transport/atomic_electrons.py +124 -0
  1156. pyrite_mc-0.13.2/src/pyrite/montecarlo/transport/batching.py +858 -0
  1157. pyrite_mc-0.13.2/src/pyrite/montecarlo/transport/beam_entry.py +284 -0
  1158. pyrite_mc-0.13.2/src/pyrite/montecarlo/transport/core_geometry.py +86 -0
  1159. pyrite_mc-0.13.2/src/pyrite/montecarlo/transport/cores.py +1237 -0
  1160. pyrite_mc-0.13.2/src/pyrite/montecarlo/transport/dielectric.py +242 -0
  1161. pyrite_mc-0.13.2/src/pyrite/montecarlo/transport/events.py +305 -0
  1162. pyrite_mc-0.13.2/src/pyrite/montecarlo/transport/hard_inelastic.py +413 -0
  1163. pyrite_mc-0.13.2/src/pyrite/montecarlo/transport/hard_radiative.py +510 -0
  1164. pyrite_mc-0.13.2/src/pyrite/montecarlo/transport/inelastic.py +407 -0
  1165. pyrite_mc-0.13.2/src/pyrite/montecarlo/transport/kinematics.py +270 -0
  1166. pyrite_mc-0.13.2/src/pyrite/montecarlo/transport/layer_tables.py +154 -0
  1167. pyrite_mc-0.13.2/src/pyrite/montecarlo/transport/lut.py +437 -0
  1168. pyrite_mc-0.13.2/src/pyrite/montecarlo/transport/pair_production.py +504 -0
  1169. pyrite_mc-0.13.2/src/pyrite/montecarlo/transport/scattering.py +558 -0
  1170. pyrite_mc-0.13.2/src/pyrite/montecarlo/transport/secondaries.py +1051 -0
  1171. pyrite_mc-0.13.2/src/pyrite/montecarlo/transport/shell_gos.py +363 -0
  1172. pyrite_mc-0.13.2/src/pyrite/montecarlo/transport/shell_oscillators.py +211 -0
  1173. pyrite_mc-0.13.2/src/pyrite/montecarlo/transport/shell_partition.py +155 -0
  1174. pyrite_mc-0.13.2/src/pyrite/montecarlo/transport/shell_rates.py +321 -0
  1175. pyrite_mc-0.13.2/src/pyrite/montecarlo/transport/shell_sampling.py +304 -0
  1176. pyrite_mc-0.13.2/src/pyrite/montecarlo/transport/shell_transport.py +379 -0
  1177. pyrite_mc-0.13.2/src/pyrite/montecarlo/transport/stopping.py +516 -0
  1178. pyrite_mc-0.13.2/src/pyrite/montecarlo/transport/straggling.py +414 -0
  1179. pyrite_mc-0.13.2/src/pyrite/montecarlo/transverse.py +225 -0
  1180. pyrite_mc-0.13.2/src/pyrite/observations/__init__.py +34 -0
  1181. pyrite_mc-0.13.2/src/pyrite/observations/inventory.py +180 -0
  1182. pyrite_mc-0.13.2/src/pyrite/observations/plan.py +309 -0
  1183. pyrite_mc-0.13.2/src/pyrite/observations/store.py +633 -0
  1184. pyrite_mc-0.13.2/src/pyrite/paths.py +72 -0
  1185. pyrite_mc-0.13.2/src/pyrite/perf/__init__.py +1 -0
  1186. pyrite_mc-0.13.2/src/pyrite/perf/performance_analysis.py +665 -0
  1187. pyrite_mc-0.13.2/src/pyrite/perf/performance_profile.py +285 -0
  1188. pyrite_mc-0.13.2/src/pyrite/perf/py_spy.py +90 -0
  1189. pyrite_mc-0.13.2/src/pyrite/plots/__init__.py +205 -0
  1190. pyrite_mc-0.13.2/src/pyrite/plots/_common.py +228 -0
  1191. pyrite_mc-0.13.2/src/pyrite/plots/_frames.py +522 -0
  1192. pyrite_mc-0.13.2/src/pyrite/plots/_pixel_frames.py +241 -0
  1193. pyrite_mc-0.13.2/src/pyrite/plots/_style.py +34 -0
  1194. pyrite_mc-0.13.2/src/pyrite/plots/altair/__init__.py +1 -0
  1195. pyrite_mc-0.13.2/src/pyrite/plots/altair/_typing.py +10 -0
  1196. pyrite_mc-0.13.2/src/pyrite/plots/altair/detectors.py +575 -0
  1197. pyrite_mc-0.13.2/src/pyrite/plots/altair/pixels.py +151 -0
  1198. pyrite_mc-0.13.2/src/pyrite/plots/altair/spectra.py +976 -0
  1199. pyrite_mc-0.13.2/src/pyrite/plots/altair/sweeps.py +381 -0
  1200. pyrite_mc-0.13.2/src/pyrite/plots/altair/temporal.py +83 -0
  1201. pyrite_mc-0.13.2/src/pyrite/plots/altair/trajectories.py +443 -0
  1202. pyrite_mc-0.13.2/src/pyrite/plots/mpl/__init__.py +1 -0
  1203. pyrite_mc-0.13.2/src/pyrite/plots/mpl/_common.py +28 -0
  1204. pyrite_mc-0.13.2/src/pyrite/plots/mpl/detectors.py +575 -0
  1205. pyrite_mc-0.13.2/src/pyrite/plots/mpl/interactive.py +377 -0
  1206. pyrite_mc-0.13.2/src/pyrite/plots/mpl/spectra.py +634 -0
  1207. pyrite_mc-0.13.2/src/pyrite/plots/mpl/sweeps.py +546 -0
  1208. pyrite_mc-0.13.2/src/pyrite/plots/mpl/trajectories.py +490 -0
  1209. pyrite_mc-0.13.2/src/pyrite/plots/plotly/__init__.py +1 -0
  1210. pyrite_mc-0.13.2/src/pyrite/plots/plotly/camera.py +224 -0
  1211. pyrite_mc-0.13.2/src/pyrite/plots/plotly/crystal_lattice.py +426 -0
  1212. pyrite_mc-0.13.2/src/pyrite/plots/plotly/render.py +173 -0
  1213. pyrite_mc-0.13.2/src/pyrite/plots/plotly/trajectories.py +865 -0
  1214. pyrite_mc-0.13.2/src/pyrite/remote/__init__.py +187 -0
  1215. pyrite_mc-0.13.2/src/pyrite/remote/_queue_scripts.py +1206 -0
  1216. pyrite_mc-0.13.2/src/pyrite/remote/cleanup.py +369 -0
  1217. pyrite_mc-0.13.2/src/pyrite/remote/config.py +484 -0
  1218. pyrite_mc-0.13.2/src/pyrite/remote/jobs.py +212 -0
  1219. pyrite_mc-0.13.2/src/pyrite/remote/lifecycle.py +50 -0
  1220. pyrite_mc-0.13.2/src/pyrite/remote/performance.py +183 -0
  1221. pyrite_mc-0.13.2/src/pyrite/remote/pull.py +435 -0
  1222. pyrite_mc-0.13.2/src/pyrite/remote/queue.py +429 -0
  1223. pyrite_mc-0.13.2/src/pyrite/remote/recompute.py +255 -0
  1224. pyrite_mc-0.13.2/src/pyrite/remote/scripts.py +529 -0
  1225. pyrite_mc-0.13.2/src/pyrite/remote/state.py +308 -0
  1226. pyrite_mc-0.13.2/src/pyrite/remote/trajectories.py +293 -0
  1227. pyrite_mc-0.13.2/src/pyrite/remote/transport.py +1161 -0
  1228. pyrite_mc-0.13.2/src/pyrite/remote/viewer.py +588 -0
  1229. pyrite_mc-0.13.2/src/pyrite/results/__init__.py +126 -0
  1230. pyrite_mc-0.13.2/src/pyrite/results/metrics.py +295 -0
  1231. pyrite_mc-0.13.2/src/pyrite/results/model.py +488 -0
  1232. pyrite_mc-0.13.2/src/pyrite/results/provenance.py +146 -0
  1233. pyrite_mc-0.13.2/src/pyrite/results/scoring.py +121 -0
  1234. pyrite_mc-0.13.2/src/pyrite/results/selection.py +500 -0
  1235. pyrite_mc-0.13.2/src/pyrite/results/spatial.py +679 -0
  1236. pyrite_mc-0.13.2/src/pyrite/results/store.py +337 -0
  1237. pyrite_mc-0.13.2/src/pyrite/results/tables.py +177 -0
  1238. pyrite_mc-0.13.2/src/pyrite/runs/__init__.py +1 -0
  1239. pyrite_mc-0.13.2/src/pyrite/runs/_trajectory_capture.py +75 -0
  1240. pyrite_mc-0.13.2/src/pyrite/runs/blaze.py +261 -0
  1241. pyrite_mc-0.13.2/src/pyrite/runs/observe.py +77 -0
  1242. pyrite_mc-0.13.2/src/pyrite/runs/run.py +677 -0
  1243. pyrite_mc-0.13.2/src/pyrite/runs/scan.py +1230 -0
  1244. pyrite_mc-0.13.2/src/pyrite/validation/__init__.py +1 -0
  1245. pyrite_mc-0.13.2/src/pyrite/validation/_anchor_conditions.py +524 -0
  1246. pyrite_mc-0.13.2/src/pyrite/validation/_pinned.py +32 -0
  1247. pyrite_mc-0.13.2/src/pyrite/validation/_zhai.py +31 -0
  1248. pyrite_mc-0.13.2/src/pyrite/validation/anchor_figures.py +1165 -0
  1249. pyrite_mc-0.13.2/src/pyrite/validation/brem_angular.py +90 -0
  1250. pyrite_mc-0.13.2/src/pyrite/validation/brem_sources.py +225 -0
  1251. pyrite_mc-0.13.2/src/pyrite/validation/check_records.py +260 -0
  1252. pyrite_mc-0.13.2/src/pyrite/validation/feranchuk_spence.py +1069 -0
  1253. pyrite_mc-0.13.2/src/pyrite/validation/reference_data/README.md +38 -0
  1254. pyrite_mc-0.13.2/src/pyrite/validation/reference_data/external_brem/v1/README.md +32 -0
  1255. pyrite_mc-0.13.2/src/pyrite/validation/reference_data/external_brem/v1/zhai_fig3b_25kev_1mm_brem.csv +86 -0
  1256. pyrite_mc-0.13.2/src/pyrite/validation/reference_data/external_brem/v1/zhai_fig3b_25kev_1mm_experiment.csv +86 -0
  1257. pyrite_mc-0.13.2/src/pyrite/validation/reference_data/zhai_fig1c.example.csv +17 -0
  1258. pyrite_mc-0.13.2/src/pyrite/validation/shell_ionization.py +376 -0
  1259. pyrite_mc-0.13.2/src/pyrite/validation/validation_background.py +166 -0
  1260. pyrite_mc-0.13.2/src/pyrite/validation/validation_oracles.py +466 -0
  1261. pyrite_mc-0.13.2/src/pyrite/xsgen/__init__.py +51 -0
  1262. pyrite_mc-0.13.2/src/pyrite/xsgen/_errors.py +61 -0
  1263. pyrite_mc-0.13.2/src/pyrite/xsgen/_run.py +281 -0
  1264. pyrite_mc-0.13.2/src/pyrite/xsgen/_urls.py +36 -0
  1265. pyrite_mc-0.13.2/src/pyrite/xsgen/bremslib/__init__.py +41 -0
  1266. pyrite_mc-0.13.2/src/pyrite/xsgen/bremslib/convert.py +279 -0
  1267. pyrite_mc-0.13.2/src/pyrite/xsgen/bremslib/generate.py +128 -0
  1268. pyrite_mc-0.13.2/src/pyrite/xsgen/bremslib/read.py +435 -0
  1269. pyrite_mc-0.13.2/src/pyrite/xsgen/bremslib/release.py +377 -0
  1270. pyrite_mc-0.13.2/src/pyrite/xsgen/bremslib/tables.py +154 -0
  1271. pyrite_mc-0.13.2/src/pyrite/xsgen/elsepa/__init__.py +24 -0
  1272. pyrite_mc-0.13.2/src/pyrite/xsgen/elsepa/catalog.py +366 -0
  1273. pyrite_mc-0.13.2/src/pyrite/xsgen/elsepa/deck.py +229 -0
  1274. pyrite_mc-0.13.2/src/pyrite/xsgen/elsepa/generate.py +179 -0
  1275. pyrite_mc-0.13.2/src/pyrite/xsgen/elsepa/parse.py +144 -0
  1276. pyrite_mc-0.13.2/src/pyrite/xsgen/elsepa/release.py +259 -0
  1277. pyrite_mc-0.13.2/src/pyrite/xsgen/fetch.py +597 -0
  1278. pyrite_mc-0.13.2/src/pyrite/xsgen/install.py +118 -0
  1279. pyrite_mc-0.13.2/src/pyrite/xsgen/sbethe/__init__.py +42 -0
  1280. pyrite_mc-0.13.2/src/pyrite/xsgen/sbethe/catalog.py +171 -0
  1281. pyrite_mc-0.13.2/src/pyrite/xsgen/sbethe/deck.py +168 -0
  1282. pyrite_mc-0.13.2/src/pyrite/xsgen/sbethe/generate.py +170 -0
  1283. pyrite_mc-0.13.2/src/pyrite/xsgen/sbethe/parse.py +198 -0
  1284. pyrite_mc-0.13.2/src/pyrite/xsgen/sbethe/release.py +167 -0
  1285. pyrite_mc-0.13.2/src/pyrite/xsgen/sources.py +489 -0
  1286. pyrite_mc-0.13.2/src/pyrite/xsgen/store.py +690 -0
  1287. pyrite_mc-0.13.2/src/pyrite/xsgen/toolchain.py +223 -0
  1288. pyrite_mc-0.13.2/src/pyrite/xsgen/verify.py +155 -0
  1289. pyrite_mc-0.13.2/tests/check/test_app.py +413 -0
  1290. pyrite_mc-0.13.2/tests/check/test_config.py +83 -0
  1291. pyrite_mc-0.13.2/tests/check/test_config_penetration_watchdog.py +182 -0
  1292. pyrite_mc-0.13.2/tests/check/test_reproduce_zhai.py +65 -0
  1293. pyrite_mc-0.13.2/tests/checkpoint/data/schema_v1.pkl +0 -0
  1294. pyrite_mc-0.13.2/tests/checkpoint/test_archive.py +306 -0
  1295. pyrite_mc-0.13.2/tests/checkpoint/test_campaign_lock.py +151 -0
  1296. pyrite_mc-0.13.2/tests/checkpoint/test_cli.py +85 -0
  1297. pyrite_mc-0.13.2/tests/checkpoint/test_gc.py +97 -0
  1298. pyrite_mc-0.13.2/tests/checkpoint/test_io.py +405 -0
  1299. pyrite_mc-0.13.2/tests/checkpoint/test_rm.py +138 -0
  1300. pyrite_mc-0.13.2/tests/checkpoint/test_score_trajectories.py +203 -0
  1301. pyrite_mc-0.13.2/tests/checkpoint/test_slim.py +459 -0
  1302. pyrite_mc-0.13.2/tests/cli/test_app.py +191 -0
  1303. pyrite_mc-0.13.2/tests/cli/test_backend_setup.py +319 -0
  1304. pyrite_mc-0.13.2/tests/cli/test_beam.py +487 -0
  1305. pyrite_mc-0.13.2/tests/cli/test_blaze.py +179 -0
  1306. pyrite_mc-0.13.2/tests/cli/test_catalog_directory.py +64 -0
  1307. pyrite_mc-0.13.2/tests/cli/test_colors.py +51 -0
  1308. pyrite_mc-0.13.2/tests/cli/test_completion.py +413 -0
  1309. pyrite_mc-0.13.2/tests/cli/test_completion_install.py +310 -0
  1310. pyrite_mc-0.13.2/tests/cli/test_config_command.py +242 -0
  1311. pyrite_mc-0.13.2/tests/cli/test_contract.py +253 -0
  1312. pyrite_mc-0.13.2/tests/cli/test_core.py +185 -0
  1313. pyrite_mc-0.13.2/tests/cli/test_deprecations.py +443 -0
  1314. pyrite_mc-0.13.2/tests/cli/test_detector.py +174 -0
  1315. pyrite_mc-0.13.2/tests/cli/test_detector_demos.py +54 -0
  1316. pyrite_mc-0.13.2/tests/cli/test_dev_short_help.py +35 -0
  1317. pyrite_mc-0.13.2/tests/cli/test_entry_shims.py +68 -0
  1318. pyrite_mc-0.13.2/tests/cli/test_external_catalog.py +154 -0
  1319. pyrite_mc-0.13.2/tests/cli/test_gdf.py +485 -0
  1320. pyrite_mc-0.13.2/tests/cli/test_job.py +68 -0
  1321. pyrite_mc-0.13.2/tests/cli/test_json.py +187 -0
  1322. pyrite_mc-0.13.2/tests/cli/test_json_wiring.py +345 -0
  1323. pyrite_mc-0.13.2/tests/cli/test_local_click_cli.py +488 -0
  1324. pyrite_mc-0.13.2/tests/cli/test_material.py +671 -0
  1325. pyrite_mc-0.13.2/tests/cli/test_physical_detector.py +282 -0
  1326. pyrite_mc-0.13.2/tests/cli/test_profile.py +1878 -0
  1327. pyrite_mc-0.13.2/tests/cli/test_profile_line_grid.py +254 -0
  1328. pyrite_mc-0.13.2/tests/cli/test_profile_precision.py +399 -0
  1329. pyrite_mc-0.13.2/tests/cli/test_profile_user_layer.py +89 -0
  1330. pyrite_mc-0.13.2/tests/cli/test_reference.py +71 -0
  1331. pyrite_mc-0.13.2/tests/cli/test_remote_modifier.py +410 -0
  1332. pyrite_mc-0.13.2/tests/cli/test_retired_spellings.py +249 -0
  1333. pyrite_mc-0.13.2/tests/cli/test_root.py +89 -0
  1334. pyrite_mc-0.13.2/tests/cli/test_tables_command.py +1090 -0
  1335. pyrite_mc-0.13.2/tests/cli/test_trajectories.py +208 -0
  1336. pyrite_mc-0.13.2/tests/cli/test_trial_options.py +104 -0
  1337. pyrite_mc-0.13.2/tests/conftest.py +164 -0
  1338. pyrite_mc-0.13.2/tests/data/cli_contract.json +8134 -0
  1339. pyrite_mc-0.13.2/tests/data/external_crystal_lattices.json +320 -0
  1340. pyrite_mc-0.13.2/tests/data/lab_overlay/beams/compressed_microbunch.toml +11 -0
  1341. pyrite_mc-0.13.2/tests/data/lab_overlay/beams/microtrain_200fs.toml +12 -0
  1342. pyrite_mc-0.13.2/tests/data/lab_overlay/profiles/hopg_hbn_compressed_microbunch.toml +7 -0
  1343. pyrite_mc-0.13.2/tests/data/lab_overlay/profiles/hopg_hbn_gaussian_200fs.toml +7 -0
  1344. pyrite_mc-0.13.2/tests/data/lab_overlay/profiles/hopg_hbn_microtrain_200fs.toml +7 -0
  1345. pyrite_mc-0.13.2/tests/data/lab_overlay/profiles/promising_low_ne.toml +10 -0
  1346. pyrite_mc-0.13.2/tests/data/material_catalog_golden.json +11935 -0
  1347. pyrite_mc-0.13.2/tests/data/mott_srd64_synthetic/DisplayCalcTCSTableForAl.csv +37 -0
  1348. pyrite_mc-0.13.2/tests/data/mott_srd64_synthetic/DisplayCalcTCSTableForB.csv +37 -0
  1349. pyrite_mc-0.13.2/tests/data/mott_srd64_synthetic/DisplayCalcTCSTableForBi.csv +37 -0
  1350. pyrite_mc-0.13.2/tests/data/mott_srd64_synthetic/DisplayCalcTCSTableForC.csv +37 -0
  1351. pyrite_mc-0.13.2/tests/data/mott_srd64_synthetic/DisplayCalcTCSTableForFe.csv +37 -0
  1352. pyrite_mc-0.13.2/tests/data/mott_srd64_synthetic/DisplayCalcTCSTableForGe.csv +37 -0
  1353. pyrite_mc-0.13.2/tests/data/mott_srd64_synthetic/DisplayCalcTCSTableForHf.csv +37 -0
  1354. pyrite_mc-0.13.2/tests/data/mott_srd64_synthetic/DisplayCalcTCSTableForMo.csv +37 -0
  1355. pyrite_mc-0.13.2/tests/data/mott_srd64_synthetic/DisplayCalcTCSTableForN.csv +37 -0
  1356. pyrite_mc-0.13.2/tests/data/mott_srd64_synthetic/DisplayCalcTCSTableForNb.csv +37 -0
  1357. pyrite_mc-0.13.2/tests/data/mott_srd64_synthetic/DisplayCalcTCSTableForO.csv +37 -0
  1358. pyrite_mc-0.13.2/tests/data/mott_srd64_synthetic/DisplayCalcTCSTableForP.csv +37 -0
  1359. pyrite_mc-0.13.2/tests/data/mott_srd64_synthetic/DisplayCalcTCSTableForPd.csv +37 -0
  1360. pyrite_mc-0.13.2/tests/data/mott_srd64_synthetic/DisplayCalcTCSTableForPt.csv +37 -0
  1361. pyrite_mc-0.13.2/tests/data/mott_srd64_synthetic/DisplayCalcTCSTableForRe.csv +37 -0
  1362. pyrite_mc-0.13.2/tests/data/mott_srd64_synthetic/DisplayCalcTCSTableForS.csv +37 -0
  1363. pyrite_mc-0.13.2/tests/data/mott_srd64_synthetic/DisplayCalcTCSTableForSe.csv +37 -0
  1364. pyrite_mc-0.13.2/tests/data/mott_srd64_synthetic/DisplayCalcTCSTableForSi.csv +37 -0
  1365. pyrite_mc-0.13.2/tests/data/mott_srd64_synthetic/DisplayCalcTCSTableForTa.csv +37 -0
  1366. pyrite_mc-0.13.2/tests/data/mott_srd64_synthetic/DisplayCalcTCSTableForTe.csv +37 -0
  1367. pyrite_mc-0.13.2/tests/data/mott_srd64_synthetic/DisplayCalcTCSTableForTi.csv +37 -0
  1368. pyrite_mc-0.13.2/tests/data/mott_srd64_synthetic/DisplayCalcTCSTableForV.csv +37 -0
  1369. pyrite_mc-0.13.2/tests/data/mott_srd64_synthetic/DisplayCalcTCSTableForW.csv +37 -0
  1370. pyrite_mc-0.13.2/tests/data/mott_srd64_synthetic/DisplayCalcTCSTableForZr.csv +37 -0
  1371. pyrite_mc-0.13.2/tests/data/trajectory_artifacts/schema2_hopg_lockstep.h5 +0 -0
  1372. pyrite_mc-0.13.2/tests/data/user_catalog/profiles/coh_test.toml +9 -0
  1373. pyrite_mc-0.13.2/tests/data/user_catalog/profiles/high_energy.toml +20 -0
  1374. pyrite_mc-0.13.2/tests/data/user_catalog/profiles/hopg_hbn.toml +9 -0
  1375. pyrite_mc-0.13.2/tests/data/user_catalog/profiles/hopg_short.toml +9 -0
  1376. pyrite_mc-0.13.2/tests/data/user_catalog/profiles/sub_100keV.toml +7 -0
  1377. pyrite_mc-0.13.2/tests/data/xcom/xcom_Al.txt +86 -0
  1378. pyrite_mc-0.13.2/tests/data/xcom/xcom_C.txt +84 -0
  1379. pyrite_mc-0.13.2/tests/data/xcom/xcom_N.txt +84 -0
  1380. pyrite_mc-0.13.2/tests/data/xcom/xcom_Pb.txt +106 -0
  1381. pyrite_mc-0.13.2/tests/data/xcom/xcom_Se.txt +94 -0
  1382. pyrite_mc-0.13.2/tests/data/xcom/xcom_Si.txt +86 -0
  1383. pyrite_mc-0.13.2/tests/data/xcom/xcom_W.txt +107 -0
  1384. pyrite_mc-0.13.2/tests/data/xsgen/elsepa/test-run-output/dcs_1p000e03.dat +649 -0
  1385. pyrite_mc-0.13.2/tests/detectors/test_eag_wide_scaling_and_mosaic_fwhm.py +68 -0
  1386. pyrite_mc-0.13.2/tests/detectors/test_grating.py +402 -0
  1387. pyrite_mc-0.13.2/tests/detectors/test_package.py +20 -0
  1388. pyrite_mc-0.13.2/tests/detectors/test_pixel_reconstruction_oracle.py +127 -0
  1389. pyrite_mc-0.13.2/tests/detectors/test_response.py +42 -0
  1390. pyrite_mc-0.13.2/tests/detectors/test_solid_angle.py +112 -0
  1391. pyrite_mc-0.13.2/tests/detectors/test_spec.py +97 -0
  1392. pyrite_mc-0.13.2/tests/detectors/test_timepix_native_rebin.py +97 -0
  1393. pyrite_mc-0.13.2/tests/dev/test_agent_tooling.py +159 -0
  1394. pyrite_mc-0.13.2/tests/dev/test_coherent_remote_check.py +325 -0
  1395. pyrite_mc-0.13.2/tests/dev/test_dev.py +11 -0
  1396. pyrite_mc-0.13.2/tests/dev/test_dev_cli.py +536 -0
  1397. pyrite_mc-0.13.2/tests/dev/test_doc_blocks.py +231 -0
  1398. pyrite_mc-0.13.2/tests/dev/test_docs.py +119 -0
  1399. pyrite_mc-0.13.2/tests/dev/test_release.py +179 -0
  1400. pyrite_mc-0.13.2/tests/dev/test_repo_map.py +42 -0
  1401. pyrite_mc-0.13.2/tests/dev/test_slow_marker.py +81 -0
  1402. pyrite_mc-0.13.2/tests/dev/test_startup.py +117 -0
  1403. pyrite_mc-0.13.2/tests/dev/test_validation_check_records.py +153 -0
  1404. pyrite_mc-0.13.2/tests/dev/test_validation_ledger.py +351 -0
  1405. pyrite_mc-0.13.2/tests/energy-grid/test_apply.py +363 -0
  1406. pyrite_mc-0.13.2/tests/energy-grid/test_artifact_gc.py +166 -0
  1407. pyrite_mc-0.13.2/tests/energy-grid/test_artifacts.py +145 -0
  1408. pyrite_mc-0.13.2/tests/energy-grid/test_bounds.py +137 -0
  1409. pyrite_mc-0.13.2/tests/energy-grid/test_cli.py +746 -0
  1410. pyrite_mc-0.13.2/tests/energy-grid/test_coherent_band_audit.py +351 -0
  1411. pyrite_mc-0.13.2/tests/energy-grid/test_coherent_curvature.py +180 -0
  1412. pyrite_mc-0.13.2/tests/energy-grid/test_coherent_directed_bounds.py +165 -0
  1413. pyrite_mc-0.13.2/tests/energy-grid/test_coherent_dispersion.py +99 -0
  1414. pyrite_mc-0.13.2/tests/energy-grid/test_coherent_field_interpolation.py +225 -0
  1415. pyrite_mc-0.13.2/tests/energy-grid/test_coherent_form_factor.py +104 -0
  1416. pyrite_mc-0.13.2/tests/energy-grid/test_coherent_line_grid.py +117 -0
  1417. pyrite_mc-0.13.2/tests/energy-grid/test_coherent_normalization.py +238 -0
  1418. pyrite_mc-0.13.2/tests/energy-grid/test_coherent_sample_certificates.py +246 -0
  1419. pyrite_mc-0.13.2/tests/energy-grid/test_coherent_spectrum_audit.py +528 -0
  1420. pyrite_mc-0.13.2/tests/energy-grid/test_coherent_windowed_line_grid.py +1404 -0
  1421. pyrite_mc-0.13.2/tests/energy-grid/test_continuum_floor.py +372 -0
  1422. pyrite_mc-0.13.2/tests/energy-grid/test_continuum_refinement.py +256 -0
  1423. pyrite_mc-0.13.2/tests/energy-grid/test_convergence.py +345 -0
  1424. pyrite_mc-0.13.2/tests/energy-grid/test_convergence_case.py +197 -0
  1425. pyrite_mc-0.13.2/tests/energy-grid/test_convergence_job.py +105 -0
  1426. pyrite_mc-0.13.2/tests/energy-grid/test_convergence_windows.py +126 -0
  1427. pyrite_mc-0.13.2/tests/energy-grid/test_defaults.py +61 -0
  1428. pyrite_mc-0.13.2/tests/energy-grid/test_derive.py +554 -0
  1429. pyrite_mc-0.13.2/tests/energy-grid/test_golden.py +116 -0
  1430. pyrite_mc-0.13.2/tests/energy-grid/test_grid_semantics.py +256 -0
  1431. pyrite_mc-0.13.2/tests/energy-grid/test_job.py +294 -0
  1432. pyrite_mc-0.13.2/tests/energy-grid/test_line_grid_bandwidth.py +436 -0
  1433. pyrite_mc-0.13.2/tests/energy-grid/test_line_grid_local_spacing.py +358 -0
  1434. pyrite_mc-0.13.2/tests/energy-grid/test_line_grid_policy.py +436 -0
  1435. pyrite_mc-0.13.2/tests/energy-grid/test_line_grid_quadrature.py +161 -0
  1436. pyrite_mc-0.13.2/tests/energy-grid/test_line_grid_windows.py +363 -0
  1437. pyrite_mc-0.13.2/tests/energy-grid/test_line_seeds.py +304 -0
  1438. pyrite_mc-0.13.2/tests/energy-grid/test_line_windows.py +192 -0
  1439. pyrite_mc-0.13.2/tests/energy-grid/test_nonuniform_grid_spelling.py +240 -0
  1440. pyrite_mc-0.13.2/tests/energy-grid/test_precision_ladder.py +129 -0
  1441. pyrite_mc-0.13.2/tests/energy-grid/test_provenance.py +57 -0
  1442. pyrite_mc-0.13.2/tests/energy-grid/test_sinc_spacing.py +46 -0
  1443. pyrite_mc-0.13.2/tests/helpers/__init__.py +60 -0
  1444. pyrite_mc-0.13.2/tests/helpers/backend.py +118 -0
  1445. pyrite_mc-0.13.2/tests/helpers/bremslib.py +60 -0
  1446. pyrite_mc-0.13.2/tests/helpers/cli.py +36 -0
  1447. pyrite_mc-0.13.2/tests/helpers/energy_grid_catalog.py +29 -0
  1448. pyrite_mc-0.13.2/tests/helpers/external_db_fixtures.py +257 -0
  1449. pyrite_mc-0.13.2/tests/helpers/mott_synthetic.py +74 -0
  1450. pyrite_mc-0.13.2/tests/helpers/positron_tables.py +62 -0
  1451. pyrite_mc-0.13.2/tests/helpers/runner.py +93 -0
  1452. pyrite_mc-0.13.2/tests/helpers/segments.py +57 -0
  1453. pyrite_mc-0.13.2/tests/helpers/slow_marker.py +65 -0
  1454. pyrite_mc-0.13.2/tests/helpers/trajectory_schema.py +65 -0
  1455. pyrite_mc-0.13.2/tests/helpers/user_catalog.py +22 -0
  1456. pyrite_mc-0.13.2/tests/instrument/test_acquisition_core.py +191 -0
  1457. pyrite_mc-0.13.2/tests/instrument/test_attenuation.py +94 -0
  1458. pyrite_mc-0.13.2/tests/instrument/test_geometry.py +298 -0
  1459. pyrite_mc-0.13.2/tests/instrument/test_model.py +369 -0
  1460. pyrite_mc-0.13.2/tests/instrument/test_observation.py +218 -0
  1461. pyrite_mc-0.13.2/tests/integration/test_backend_selection.py +653 -0
  1462. pyrite_mc-0.13.2/tests/integration/test_intel_sycl_backend.py +0 -0
  1463. pyrite_mc-0.13.2/tests/materials/test_attenuation.py +172 -0
  1464. pyrite_mc-0.13.2/tests/materials/test_catalog_layout.py +126 -0
  1465. pyrite_mc-0.13.2/tests/materials/test_catalog_startup_errors.py +85 -0
  1466. pyrite_mc-0.13.2/tests/materials/test_crystal_external_db.py +151 -0
  1467. pyrite_mc-0.13.2/tests/materials/test_crystal_lattice.py +125 -0
  1468. pyrite_mc-0.13.2/tests/materials/test_crystallography.py +835 -0
  1469. pyrite_mc-0.13.2/tests/materials/test_detector_demos.py +70 -0
  1470. pyrite_mc-0.13.2/tests/materials/test_emission.py +327 -0
  1471. pyrite_mc-0.13.2/tests/materials/test_external_catalog_identity.py +43 -0
  1472. pyrite_mc-0.13.2/tests/materials/test_external_db_fixtures.py +142 -0
  1473. pyrite_mc-0.13.2/tests/materials/test_fe_w_zr_crystals.py +199 -0
  1474. pyrite_mc-0.13.2/tests/materials/test_form_factors.py +104 -0
  1475. pyrite_mc-0.13.2/tests/materials/test_germanium_crystals.py +88 -0
  1476. pyrite_mc-0.13.2/tests/materials/test_kinematic_validity.py +79 -0
  1477. pyrite_mc-0.13.2/tests/materials/test_line_grid_isolation.py +208 -0
  1478. pyrite_mc-0.13.2/tests/materials/test_material_catalog.py +2313 -0
  1479. pyrite_mc-0.13.2/tests/materials/test_materials_package.py +118 -0
  1480. pyrite_mc-0.13.2/tests/materials/test_nb_ti_v_crystals.py +80 -0
  1481. pyrite_mc-0.13.2/tests/materials/test_pd_pt_crystals.py +159 -0
  1482. pyrite_mc-0.13.2/tests/materials/test_photon_cross_sections.py +162 -0
  1483. pyrite_mc-0.13.2/tests/materials/test_profiles.py +1128 -0
  1484. pyrite_mc-0.13.2/tests/materials/test_re_ta_crystals.py +205 -0
  1485. pyrite_mc-0.13.2/tests/materials/test_user_catalog_layer.py +103 -0
  1486. pyrite_mc-0.13.2/tests/materials/test_validation_background.py +104 -0
  1487. pyrite_mc-0.13.2/tests/materials/test_validation_oracles.py +176 -0
  1488. pyrite_mc-0.13.2/tests/montecarlo/test_adaptive_stopping.py +525 -0
  1489. pyrite_mc-0.13.2/tests/montecarlo/test_annihilation_cuda.py +220 -0
  1490. pyrite_mc-0.13.2/tests/montecarlo/test_atomic_electron_deflection.py +294 -0
  1491. pyrite_mc-0.13.2/tests/montecarlo/test_beam_energy_spread_grid.py +77 -0
  1492. pyrite_mc-0.13.2/tests/montecarlo/test_beam_metrics.py +81 -0
  1493. pyrite_mc-0.13.2/tests/montecarlo/test_block_transport.py +240 -0
  1494. pyrite_mc-0.13.2/tests/montecarlo/test_brem_angular_comparison.py +63 -0
  1495. pyrite_mc-0.13.2/tests/montecarlo/test_brem_events.py +347 -0
  1496. pyrite_mc-0.13.2/tests/montecarlo/test_brem_source_comparison.py +165 -0
  1497. pyrite_mc-0.13.2/tests/montecarlo/test_bremsstrahlung_bremslib.py +305 -0
  1498. pyrite_mc-0.13.2/tests/montecarlo/test_bremsstrahlung_eedl.py +282 -0
  1499. pyrite_mc-0.13.2/tests/montecarlo/test_bremsstrahlung_model_case.py +123 -0
  1500. pyrite_mc-0.13.2/tests/montecarlo/test_bunch_front_tilt.py +235 -0
  1501. pyrite_mc-0.13.2/tests/montecarlo/test_case.py +133 -0
  1502. pyrite_mc-0.13.2/tests/montecarlo/test_characteristic.py +582 -0
  1503. pyrite_mc-0.13.2/tests/montecarlo/test_chunk_invariance.py +218 -0
  1504. pyrite_mc-0.13.2/tests/montecarlo/test_coherent_backend_parity_cuda.py +113 -0
  1505. pyrite_mc-0.13.2/tests/montecarlo/test_coherent_emission.py +690 -0
  1506. pyrite_mc-0.13.2/tests/montecarlo/test_coherent_flat_omission.py +681 -0
  1507. pyrite_mc-0.13.2/tests/montecarlo/test_coherent_formation_absorption.py +186 -0
  1508. pyrite_mc-0.13.2/tests/montecarlo/test_coherent_formation_absorption_cuda.py +337 -0
  1509. pyrite_mc-0.13.2/tests/montecarlo/test_coherent_physical_population.py +444 -0
  1510. pyrite_mc-0.13.2/tests/montecarlo/test_coherent_transverse_omission.py +272 -0
  1511. pyrite_mc-0.13.2/tests/montecarlo/test_coherent_transverse_tilt.py +276 -0
  1512. pyrite_mc-0.13.2/tests/montecarlo/test_coupled_radiative_runner.py +294 -0
  1513. pyrite_mc-0.13.2/tests/montecarlo/test_dielectric_loss.py +228 -0
  1514. pyrite_mc-0.13.2/tests/montecarlo/test_eadl_relaxation.py +171 -0
  1515. pyrite_mc-0.13.2/tests/montecarlo/test_eedl_ionization_consistency.py +82 -0
  1516. pyrite_mc-0.13.2/tests/montecarlo/test_elastic_model_case.py +123 -0
  1517. pyrite_mc-0.13.2/tests/montecarlo/test_electron_blocks.py +190 -0
  1518. pyrite_mc-0.13.2/tests/montecarlo/test_elsepa_elastic.py +283 -0
  1519. pyrite_mc-0.13.2/tests/montecarlo/test_elsepa_positron_elastic.py +74 -0
  1520. pyrite_mc-0.13.2/tests/montecarlo/test_energy_loss_straggling.py +472 -0
  1521. pyrite_mc-0.13.2/tests/montecarlo/test_exports.py +220 -0
  1522. pyrite_mc-0.13.2/tests/montecarlo/test_finite_transverse_geometry.py +135 -0
  1523. pyrite_mc-0.13.2/tests/montecarlo/test_gdf.py +514 -0
  1524. pyrite_mc-0.13.2/tests/montecarlo/test_gpu_oom_retry.py +555 -0
  1525. pyrite_mc-0.13.2/tests/montecarlo/test_groove.py +972 -0
  1526. pyrite_mc-0.13.2/tests/montecarlo/test_hard_radiative.py +189 -0
  1527. pyrite_mc-0.13.2/tests/montecarlo/test_hard_radiative_cuda.py +141 -0
  1528. pyrite_mc-0.13.2/tests/montecarlo/test_hard_radiative_transport.py +271 -0
  1529. pyrite_mc-0.13.2/tests/montecarlo/test_imports.py +238 -0
  1530. pyrite_mc-0.13.2/tests/montecarlo/test_inelastic_partition.py +277 -0
  1531. pyrite_mc-0.13.2/tests/montecarlo/test_line_absorption_tabulation.py +172 -0
  1532. pyrite_mc-0.13.2/tests/montecarlo/test_line_friedel_pairing.py +149 -0
  1533. pyrite_mc-0.13.2/tests/montecarlo/test_line_segment_escape.py +166 -0
  1534. pyrite_mc-0.13.2/tests/montecarlo/test_longitudinal_profiles.py +193 -0
  1535. pyrite_mc-0.13.2/tests/montecarlo/test_montecarlo.py +973 -0
  1536. pyrite_mc-0.13.2/tests/montecarlo/test_mosaic.py +163 -0
  1537. pyrite_mc-0.13.2/tests/montecarlo/test_mosaic_mc.py +152 -0
  1538. pyrite_mc-0.13.2/tests/montecarlo/test_mott_coverage.py +104 -0
  1539. pyrite_mc-0.13.2/tests/montecarlo/test_multilayer.py +581 -0
  1540. pyrite_mc-0.13.2/tests/montecarlo/test_output_noise.py +28 -0
  1541. pyrite_mc-0.13.2/tests/montecarlo/test_pair_production.py +551 -0
  1542. pyrite_mc-0.13.2/tests/montecarlo/test_pair_production_cuda.py +152 -0
  1543. pyrite_mc-0.13.2/tests/montecarlo/test_pair_production_runner.py +135 -0
  1544. pyrite_mc-0.13.2/tests/montecarlo/test_paraview_preset.py +53 -0
  1545. pyrite_mc-0.13.2/tests/montecarlo/test_pool_cadence.py +39 -0
  1546. pyrite_mc-0.13.2/tests/montecarlo/test_positron_annihilation.py +298 -0
  1547. pyrite_mc-0.13.2/tests/montecarlo/test_positron_brems.py +87 -0
  1548. pyrite_mc-0.13.2/tests/montecarlo/test_positron_cascade.py +112 -0
  1549. pyrite_mc-0.13.2/tests/montecarlo/test_positron_cuda.py +184 -0
  1550. pyrite_mc-0.13.2/tests/montecarlo/test_positron_runner.py +75 -0
  1551. pyrite_mc-0.13.2/tests/montecarlo/test_positron_shell_transport.py +155 -0
  1552. pyrite_mc-0.13.2/tests/montecarlo/test_radiation_error_estimators.py +235 -0
  1553. pyrite_mc-0.13.2/tests/montecarlo/test_sbethe_cuda.py +40 -0
  1554. pyrite_mc-0.13.2/tests/montecarlo/test_sbethe_positron_stopping.py +55 -0
  1555. pyrite_mc-0.13.2/tests/montecarlo/test_segment_escape.py +220 -0
  1556. pyrite_mc-0.13.2/tests/montecarlo/test_segment_events.py +338 -0
  1557. pyrite_mc-0.13.2/tests/montecarlo/test_segment_staging.py +294 -0
  1558. pyrite_mc-0.13.2/tests/montecarlo/test_shell_configuration.py +162 -0
  1559. pyrite_mc-0.13.2/tests/montecarlo/test_shell_gos.py +290 -0
  1560. pyrite_mc-0.13.2/tests/montecarlo/test_shell_gos_positron.py +98 -0
  1561. pyrite_mc-0.13.2/tests/montecarlo/test_shell_ionization_comparison.py +70 -0
  1562. pyrite_mc-0.13.2/tests/montecarlo/test_shell_oscillators.py +237 -0
  1563. pyrite_mc-0.13.2/tests/montecarlo/test_shell_partition.py +464 -0
  1564. pyrite_mc-0.13.2/tests/montecarlo/test_shell_rates.py +318 -0
  1565. pyrite_mc-0.13.2/tests/montecarlo/test_shell_secondary_cuda.py +129 -0
  1566. pyrite_mc-0.13.2/tests/montecarlo/test_shell_secondary_transport.py +463 -0
  1567. pyrite_mc-0.13.2/tests/montecarlo/test_shell_soft_hard_config.py +183 -0
  1568. pyrite_mc-0.13.2/tests/montecarlo/test_shell_soft_hard_cuda.py +138 -0
  1569. pyrite_mc-0.13.2/tests/montecarlo/test_shell_soft_hard_transport.py +270 -0
  1570. pyrite_mc-0.13.2/tests/montecarlo/test_sinc_bin_integration.py +347 -0
  1571. pyrite_mc-0.13.2/tests/montecarlo/test_sinc_bin_integration_cuda.py +212 -0
  1572. pyrite_mc-0.13.2/tests/montecarlo/test_sinc_bin_near_far.py +71 -0
  1573. pyrite_mc-0.13.2/tests/montecarlo/test_spectrum_cheap_hoists.py +172 -0
  1574. pyrite_mc-0.13.2/tests/montecarlo/test_spectrum_cuda_cheap_hoists.py +499 -0
  1575. pyrite_mc-0.13.2/tests/montecarlo/test_spectrum_escape_helpers.py +192 -0
  1576. pyrite_mc-0.13.2/tests/montecarlo/test_spectrum_phases.py +444 -0
  1577. pyrite_mc-0.13.2/tests/montecarlo/test_stage_counters.py +42 -0
  1578. pyrite_mc-0.13.2/tests/montecarlo/test_step_limit_retry.py +49 -0
  1579. pyrite_mc-0.13.2/tests/montecarlo/test_stopping_berger_seltzer.py +541 -0
  1580. pyrite_mc-0.13.2/tests/montecarlo/test_stopping_csda_range.py +117 -0
  1581. pyrite_mc-0.13.2/tests/montecarlo/test_stopping_density_effect.py +110 -0
  1582. pyrite_mc-0.13.2/tests/montecarlo/test_straggling_cuda.py +360 -0
  1583. pyrite_mc-0.13.2/tests/montecarlo/test_straggling_remaining_cores.py +589 -0
  1584. pyrite_mc-0.13.2/tests/montecarlo/test_straggling_rng_plumbing.py +357 -0
  1585. pyrite_mc-0.13.2/tests/montecarlo/test_straggling_surface.py +91 -0
  1586. pyrite_mc-0.13.2/tests/montecarlo/test_straggling_transport_integration.py +495 -0
  1587. pyrite_mc-0.13.2/tests/montecarlo/test_substep_invariance.py +324 -0
  1588. pyrite_mc-0.13.2/tests/montecarlo/test_surface_orientation.py +339 -0
  1589. pyrite_mc-0.13.2/tests/montecarlo/test_temporal_profile.py +268 -0
  1590. pyrite_mc-0.13.2/tests/montecarlo/test_tilt_convention.py +147 -0
  1591. pyrite_mc-0.13.2/tests/montecarlo/test_trajectory_capture.py +1085 -0
  1592. pyrite_mc-0.13.2/tests/montecarlo/test_trajectory_scene.py +334 -0
  1593. pyrite_mc-0.13.2/tests/montecarlo/test_trajectory_selection.py +237 -0
  1594. pyrite_mc-0.13.2/tests/montecarlo/test_transport_batch_progress.py +277 -0
  1595. pyrite_mc-0.13.2/tests/montecarlo/test_transport_core_default.py +245 -0
  1596. pyrite_mc-0.13.2/tests/montecarlo/test_transport_cutoff.py +257 -0
  1597. pyrite_mc-0.13.2/tests/montecarlo/test_transport_diagnostics.py +70 -0
  1598. pyrite_mc-0.13.2/tests/montecarlo/test_transport_energy_model.py +471 -0
  1599. pyrite_mc-0.13.2/tests/montecarlo/test_transport_lut.py +416 -0
  1600. pyrite_mc-0.13.2/tests/montecarlo/test_transport_per_electron.py +594 -0
  1601. pyrite_mc-0.13.2/tests/montecarlo/test_transverse.py +298 -0
  1602. pyrite_mc-0.13.2/tests/montecarlo/test_xray_dispersion.py +563 -0
  1603. pyrite_mc-0.13.2/tests/montecarlo/test_xray_dispersion_cuda.py +995 -0
  1604. pyrite_mc-0.13.2/tests/notebooks/altair/test_detectors.py +254 -0
  1605. pyrite_mc-0.13.2/tests/notebooks/altair/test_material_comparison.py +107 -0
  1606. pyrite_mc-0.13.2/tests/notebooks/altair/test_plots.py +439 -0
  1607. pyrite_mc-0.13.2/tests/notebooks/altair/test_spectra_compare.py +475 -0
  1608. pyrite_mc-0.13.2/tests/notebooks/altair/test_sweeps.py +216 -0
  1609. pyrite_mc-0.13.2/tests/notebooks/altair/test_trajectories.py +281 -0
  1610. pyrite_mc-0.13.2/tests/notebooks/analysis_app/test_analyze.py +650 -0
  1611. pyrite_mc-0.13.2/tests/notebooks/analysis_app/test_app.py +433 -0
  1612. pyrite_mc-0.13.2/tests/notebooks/analysis_app/test_export.py +28 -0
  1613. pyrite_mc-0.13.2/tests/notebooks/analysis_app/test_pickers.py +172 -0
  1614. pyrite_mc-0.13.2/tests/notebooks/test_acp.py +77 -0
  1615. pyrite_mc-0.13.2/tests/notebooks/test_anchor_figures.py +883 -0
  1616. pyrite_mc-0.13.2/tests/notebooks/test_design.py +193 -0
  1617. pyrite_mc-0.13.2/tests/notebooks/test_pixel_app.py +148 -0
  1618. pyrite_mc-0.13.2/tests/notebooks/test_scan_app.py +72 -0
  1619. pyrite_mc-0.13.2/tests/notebooks/test_split_apps.py +92 -0
  1620. pyrite_mc-0.13.2/tests/notebooks/test_trace_app.py +232 -0
  1621. pyrite_mc-0.13.2/tests/notebooks/test_viewer.py +257 -0
  1622. pyrite_mc-0.13.2/tests/observations/test_inventory.py +122 -0
  1623. pyrite_mc-0.13.2/tests/observations/test_produce.py +146 -0
  1624. pyrite_mc-0.13.2/tests/observations/test_store.py +390 -0
  1625. pyrite_mc-0.13.2/tests/observations/test_sweep.py +280 -0
  1626. pyrite_mc-0.13.2/tests/performance/test_analysis.py +241 -0
  1627. pyrite_mc-0.13.2/tests/performance/test_cli.py +73 -0
  1628. pyrite_mc-0.13.2/tests/performance/test_profile.py +188 -0
  1629. pyrite_mc-0.13.2/tests/plots/test_camera.py +181 -0
  1630. pyrite_mc-0.13.2/tests/plots/test_detectors.py +139 -0
  1631. pyrite_mc-0.13.2/tests/plots/test_exports.py +190 -0
  1632. pyrite_mc-0.13.2/tests/plots/test_faceting.py +109 -0
  1633. pyrite_mc-0.13.2/tests/plots/test_imports.py +53 -0
  1634. pyrite_mc-0.13.2/tests/plots/test_interactive.py +157 -0
  1635. pyrite_mc-0.13.2/tests/plots/test_material_comparison.py +250 -0
  1636. pyrite_mc-0.13.2/tests/plots/test_pixel_frames.py +99 -0
  1637. pyrite_mc-0.13.2/tests/plots/test_plotly_trajectories.py +545 -0
  1638. pyrite_mc-0.13.2/tests/plots/test_render_trajectories.py +98 -0
  1639. pyrite_mc-0.13.2/tests/plots/test_sweep_metrics_reuse.py +122 -0
  1640. pyrite_mc-0.13.2/tests/plots/test_trajectories.py +49 -0
  1641. pyrite_mc-0.13.2/tests/plots/test_trajectory_builders.py +125 -0
  1642. pyrite_mc-0.13.2/tests/plots/test_trajectory_phase_space.py +135 -0
  1643. pyrite_mc-0.13.2/tests/remote/conftest.py +65 -0
  1644. pyrite_mc-0.13.2/tests/remote/test_artifact_sync.py +85 -0
  1645. pyrite_mc-0.13.2/tests/remote/test_click.py +703 -0
  1646. pyrite_mc-0.13.2/tests/remote/test_emitted_cli_spellings.py +106 -0
  1647. pyrite_mc-0.13.2/tests/remote/test_external_catalog.py +84 -0
  1648. pyrite_mc-0.13.2/tests/remote/test_fidelity_removal.py +57 -0
  1649. pyrite_mc-0.13.2/tests/remote/test_remote.py +6897 -0
  1650. pyrite_mc-0.13.2/tests/remote/test_remote_stem_prediction.py +95 -0
  1651. pyrite_mc-0.13.2/tests/remote/test_remote_trajectories.py +306 -0
  1652. pyrite_mc-0.13.2/tests/remote/test_rsync_sync.py +430 -0
  1653. pyrite_mc-0.13.2/tests/remote/test_start_flags.py +173 -0
  1654. pyrite_mc-0.13.2/tests/remote/test_xsgen_sync.py +434 -0
  1655. pyrite_mc-0.13.2/tests/results/test_cxr_api.py +204 -0
  1656. pyrite_mc-0.13.2/tests/results/test_exports.py +133 -0
  1657. pyrite_mc-0.13.2/tests/results/test_line_metrics_pinned.py +476 -0
  1658. pyrite_mc-0.13.2/tests/results/test_result_views.py +86 -0
  1659. pyrite_mc-0.13.2/tests/results/test_results.py +236 -0
  1660. pyrite_mc-0.13.2/tests/results/test_select_thickness.py +76 -0
  1661. pyrite_mc-0.13.2/tests/results/test_selection.py +239 -0
  1662. pyrite_mc-0.13.2/tests/results/test_spatial_model.py +377 -0
  1663. pyrite_mc-0.13.2/tests/results/test_spectral_components.py +63 -0
  1664. pyrite_mc-0.13.2/tests/scan/test_adaptive_api.py +377 -0
  1665. pyrite_mc-0.13.2/tests/scan/test_beam_objects.py +140 -0
  1666. pyrite_mc-0.13.2/tests/scan/test_bunch_front_matching.py +145 -0
  1667. pyrite_mc-0.13.2/tests/scan/test_bunch_front_tilt.py +129 -0
  1668. pyrite_mc-0.13.2/tests/scan/test_default_precision.py +93 -0
  1669. pyrite_mc-0.13.2/tests/scan/test_kinematic_validity.py +137 -0
  1670. pyrite_mc-0.13.2/tests/scan/test_local_dashboard.py +122 -0
  1671. pyrite_mc-0.13.2/tests/scan/test_physics_policy.py +472 -0
  1672. pyrite_mc-0.13.2/tests/scan/test_public_api.py +167 -0
  1673. pyrite_mc-0.13.2/tests/scan/test_run.py +2746 -0
  1674. pyrite_mc-0.13.2/tests/scan/test_scan_beam_options.py +290 -0
  1675. pyrite_mc-0.13.2/tests/scan/test_scan_budget.py +335 -0
  1676. pyrite_mc-0.13.2/tests/scan/test_scan_coherent.py +233 -0
  1677. pyrite_mc-0.13.2/tests/scan/test_scan_quick_energy.py +127 -0
  1678. pyrite_mc-0.13.2/tests/scan/test_scene_model.py +144 -0
  1679. pyrite_mc-0.13.2/tests/scan/test_source_content_key.py +130 -0
  1680. pyrite_mc-0.13.2/tests/scan/test_stack_dump_signal.py +53 -0
  1681. pyrite_mc-0.13.2/tests/scan/test_successful_imports.py +12 -0
  1682. pyrite_mc-0.13.2/tests/scan/test_sweep.py +1365 -0
  1683. pyrite_mc-0.13.2/tests/scan/test_target_geometry.py +405 -0
  1684. pyrite_mc-0.13.2/tests/test_datasets.py +177 -0
  1685. pyrite_mc-0.13.2/tests/test_deprecation_schedule.py +143 -0
  1686. pyrite_mc-0.13.2/tests/test_module_deprecations.py +56 -0
  1687. pyrite_mc-0.13.2/tests/test_outputs.py +269 -0
  1688. pyrite_mc-0.13.2/tests/test_package_structure.py +90 -0
  1689. pyrite_mc-0.13.2/tests/test_paths.py +96 -0
  1690. pyrite_mc-0.13.2/tests/xsgen/conftest.py +66 -0
  1691. pyrite_mc-0.13.2/tests/xsgen/test_bremslib.py +369 -0
  1692. pyrite_mc-0.13.2/tests/xsgen/test_bremslib_release.py +276 -0
  1693. pyrite_mc-0.13.2/tests/xsgen/test_bremslib_tables.py +164 -0
  1694. pyrite_mc-0.13.2/tests/xsgen/test_elsepa.py +153 -0
  1695. pyrite_mc-0.13.2/tests/xsgen/test_elsepa_catalog.py +182 -0
  1696. pyrite_mc-0.13.2/tests/xsgen/test_elsepa_release.py +162 -0
  1697. pyrite_mc-0.13.2/tests/xsgen/test_extern_codes.py +616 -0
  1698. pyrite_mc-0.13.2/tests/xsgen/test_fetch.py +161 -0
  1699. pyrite_mc-0.13.2/tests/xsgen/test_github_download.py +232 -0
  1700. pyrite_mc-0.13.2/tests/xsgen/test_install.py +38 -0
  1701. pyrite_mc-0.13.2/tests/xsgen/test_legacy_tier.py +98 -0
  1702. pyrite_mc-0.13.2/tests/xsgen/test_positron_tables.py +222 -0
  1703. pyrite_mc-0.13.2/tests/xsgen/test_run.py +194 -0
  1704. pyrite_mc-0.13.2/tests/xsgen/test_run_identity.py +192 -0
  1705. pyrite_mc-0.13.2/tests/xsgen/test_sbethe.py +426 -0
  1706. pyrite_mc-0.13.2/tests/xsgen/test_sbethe_release.py +114 -0
  1707. pyrite_mc-0.13.2/tests/xsgen/test_sources.py +229 -0
  1708. pyrite_mc-0.13.2/tests/xsgen/test_store.py +290 -0
  1709. pyrite_mc-0.13.2/tests/xsgen/test_toolchain.py +155 -0
  1710. pyrite_mc-0.13.2/tests/xsgen/test_workspace_paths.py +20 -0
  1711. pyrite_mc-0.13.2/uv.lock +5362 -0
  1712. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_001.den +754 -0
  1713. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_001.dfs +128 -0
  1714. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_002.den +672 -0
  1715. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_002.dfs +158 -0
  1716. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_003.den +826 -0
  1717. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_003.dfs +178 -0
  1718. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_004.den +760 -0
  1719. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_004.dfs +202 -0
  1720. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_005.den +760 -0
  1721. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_005.dfs +229 -0
  1722. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_006.den +728 -0
  1723. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_006.dfs +247 -0
  1724. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_007.den +704 -0
  1725. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_007.dfs +259 -0
  1726. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_008.den +684 -0
  1727. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_008.dfs +269 -0
  1728. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_009.den +666 -0
  1729. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_009.dfs +278 -0
  1730. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_010.den +652 -0
  1731. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_010.dfs +286 -0
  1732. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_011.den +828 -0
  1733. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_011.dfs +294 -0
  1734. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_012.den +778 -0
  1735. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_012.dfs +301 -0
  1736. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_013.den +804 -0
  1737. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_013.dfs +305 -0
  1738. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_014.den +764 -0
  1739. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_014.dfs +308 -0
  1740. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_015.den +734 -0
  1741. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_015.dfs +311 -0
  1742. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_016.den +714 -0
  1743. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_016.dfs +314 -0
  1744. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_017.den +696 -0
  1745. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_017.dfs +317 -0
  1746. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_018.den +680 -0
  1747. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_018.dfs +320 -0
  1748. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_019.den +860 -0
  1749. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_019.dfs +323 -0
  1750. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_020.den +812 -0
  1751. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_020.dfs +326 -0
  1752. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_021.den +800 -0
  1753. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_021.dfs +359 -0
  1754. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_022.den +790 -0
  1755. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_022.dfs +365 -0
  1756. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_023.den +784 -0
  1757. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_023.dfs +369 -0
  1758. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_024.den +798 -0
  1759. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_024.dfs +373 -0
  1760. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_025.den +770 -0
  1761. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_025.dfs +377 -0
  1762. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_026.den +766 -0
  1763. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_026.dfs +383 -0
  1764. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_027.den +760 -0
  1765. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_027.dfs +384 -0
  1766. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_028.den +756 -0
  1767. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_028.dfs +390 -0
  1768. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_029.den +774 -0
  1769. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_029.dfs +391 -0
  1770. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_030.den +748 -0
  1771. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_030.dfs +391 -0
  1772. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_031.den +794 -0
  1773. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_031.dfs +397 -0
  1774. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_032.den +758 -0
  1775. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_032.dfs +403 -0
  1776. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_033.den +734 -0
  1777. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_033.dfs +410 -0
  1778. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_034.den +714 -0
  1779. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_034.dfs +412 -0
  1780. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_035.den +698 -0
  1781. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_035.dfs +417 -0
  1782. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_036.den +684 -0
  1783. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_036.dfs +423 -0
  1784. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_037.den +862 -0
  1785. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_037.dfs +425 -0
  1786. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_038.den +816 -0
  1787. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_038.dfs +430 -0
  1788. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_039.den +800 -0
  1789. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_039.dfs +432 -0
  1790. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_040.den +790 -0
  1791. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_040.dfs +437 -0
  1792. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_041.den +796 -0
  1793. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_041.dfs +439 -0
  1794. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_042.den +790 -0
  1795. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_042.dfs +444 -0
  1796. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_043.den +786 -0
  1797. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_043.dfs +446 -0
  1798. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_044.den +782 -0
  1799. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_044.dfs +449 -0
  1800. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_045.den +778 -0
  1801. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_045.dfs +453 -0
  1802. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_046.den +766 -0
  1803. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_046.dfs +455 -0
  1804. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_047.den +816 -0
  1805. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_047.dfs +460 -0
  1806. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_048.den +792 -0
  1807. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_048.dfs +462 -0
  1808. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_049.den +844 -0
  1809. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_049.dfs +466 -0
  1810. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_050.den +812 -0
  1811. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_050.dfs +468 -0
  1812. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_051.den +786 -0
  1813. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_051.dfs +471 -0
  1814. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_052.den +766 -0
  1815. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_052.dfs +475 -0
  1816. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_053.den +752 -0
  1817. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_053.dfs +477 -0
  1818. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_054.den +740 -0
  1819. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_054.dfs +480 -0
  1820. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_055.den +918 -0
  1821. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_055.dfs +483 -0
  1822. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_056.den +872 -0
  1823. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_056.dfs +485 -0
  1824. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_057.den +856 -0
  1825. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_057.dfs +488 -0
  1826. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_058.den +866 -0
  1827. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_058.dfs +491 -0
  1828. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_059.den +864 -0
  1829. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_059.dfs +493 -0
  1830. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_060.den +860 -0
  1831. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_060.dfs +496 -0
  1832. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_061.den +858 -0
  1833. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_061.dfs +498 -0
  1834. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_062.den +854 -0
  1835. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_062.dfs +500 -0
  1836. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_063.den +852 -0
  1837. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_063.dfs +503 -0
  1838. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_064.den +836 -0
  1839. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_064.dfs +505 -0
  1840. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_065.den +848 -0
  1841. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_065.dfs +507 -0
  1842. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_066.den +846 -0
  1843. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_066.dfs +509 -0
  1844. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_067.den +844 -0
  1845. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_067.dfs +511 -0
  1846. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_068.den +842 -0
  1847. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_068.dfs +513 -0
  1848. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_069.den +840 -0
  1849. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_069.dfs +515 -0
  1850. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_070.den +838 -0
  1851. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_070.dfs +517 -0
  1852. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_071.den +834 -0
  1853. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_071.dfs +519 -0
  1854. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_072.den +808 -0
  1855. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_072.dfs +521 -0
  1856. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_073.den +800 -0
  1857. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_073.dfs +523 -0
  1858. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_074.den +794 -0
  1859. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_074.dfs +524 -0
  1860. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_075.den +788 -0
  1861. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_075.dfs +526 -0
  1862. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_076.den +782 -0
  1863. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_076.dfs +528 -0
  1864. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_077.den +778 -0
  1865. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_077.dfs +530 -0
  1866. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_078.den +784 -0
  1867. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_078.dfs +531 -0
  1868. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_079.den +780 -0
  1869. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_079.dfs +533 -0
  1870. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_080.den +766 -0
  1871. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_080.dfs +535 -0
  1872. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_081.den +850 -0
  1873. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_081.dfs +536 -0
  1874. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_082.den +816 -0
  1875. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_082.dfs +537 -0
  1876. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_083.den +792 -0
  1877. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_083.dfs +539 -0
  1878. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_084.den +774 -0
  1879. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_084.dfs +541 -0
  1880. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_085.den +758 -0
  1881. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_085.dfs +542 -0
  1882. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_086.den +746 -0
  1883. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_086.dfs +543 -0
  1884. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_087.den +904 -0
  1885. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_087.dfs +545 -0
  1886. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_088.den +862 -0
  1887. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_088.dfs +546 -0
  1888. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_089.den +846 -0
  1889. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_089.dfs +548 -0
  1890. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_090.den +824 -0
  1891. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_090.dfs +549 -0
  1892. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_091.den +836 -0
  1893. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_091.dfs +550 -0
  1894. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_092.den +834 -0
  1895. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_092.dfs +551 -0
  1896. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_093.den +834 -0
  1897. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_093.dfs +553 -0
  1898. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_094.den +840 -0
  1899. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_094.dfs +554 -0
  1900. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_095.den +836 -0
  1901. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_095.dfs +555 -0
  1902. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_096.den +838 -0
  1903. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_096.dfs +556 -0
  1904. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_097.den +840 -0
  1905. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_097.dfs +557 -0
  1906. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_098.den +830 -0
  1907. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_098.dfs +559 -0
  1908. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_099.den +828 -0
  1909. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_099.dfs +560 -0
  1910. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_100.den +826 -0
  1911. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_100.dfs +561 -0
  1912. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_101.den +824 -0
  1913. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_101.dfs +562 -0
  1914. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_102.den +822 -0
  1915. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_102.dfs +563 -0
  1916. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_103.den +866 -0
  1917. pyrite_mc-0.13.2/vendor/xsgen/elsepa/database/z_103.dfs +564 -0
  1918. pyrite_mc-0.13.2/vendor/xsgen/elsepa/elscata.f +518 -0
  1919. pyrite_mc-0.13.2/vendor/xsgen/elsepa/elscata.in +17 -0
  1920. pyrite_mc-0.13.2/vendor/xsgen/elsepa/elsepa2020.f +5031 -0
  1921. pyrite_mc-0.13.2/vendor/xsgen/elsepa/radial.f +7498 -0
  1922. pyrite_mc-0.13.2/vendor/xsgen/sbethe/sbethe.f +4606 -0
@@ -0,0 +1,58 @@
1
+ #!/usr/bin/env bash
2
+ # Agent-agnostic SessionStart hook (Claude Code: .claude/settings.json; Codex:
3
+ # .codex/hooks.json). Top up the session's project venv with every dependency
4
+ # group plus this host's declared GPU backend extra. Backend comes from
5
+ # gitignored .env's
6
+ # PYRITE_MC_BACKEND, falling back to the primary checkout's .env when this
7
+ # worktree has none of its own (.env is gitignored, so a linked worktree
8
+ # created with plain `git worktree add` never inherits it), then to the
9
+ # ambient value. Unset/cpu/auto -> no vendor extra.
10
+ #
11
+ # Fail open and bounded: SessionStart must never hang or block a session.
12
+ # --inexact never uninstalls (so it cannot fight a concurrent `uv run` or drop
13
+ # another backend's packages), --locked never rewrites uv.lock, a short lock
14
+ # timeout gives up when another session is already syncing this venv, and the
15
+ # whole sync is capped by `timeout`. `tool.uv.default-groups = "all"` already
16
+ # makes every `uv run` install all groups; --all-groups also covers branches
17
+ # that predate that setting.
18
+ set -uo pipefail
19
+ root="${CLAUDE_PROJECT_DIR:-$(git rev-parse --show-toplevel 2>/dev/null || true)}"
20
+ [ -n "$root" ] || root=$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)
21
+ cd "$root" || exit 0
22
+
23
+ backend=""
24
+ if [ -f .env ]; then
25
+ backend=$(grep -E '^PYRITE_MC_BACKEND=' .env | tail -n1 | cut -d= -f2- || true)
26
+ fi
27
+
28
+ if [ -z "$backend" ]; then
29
+ common_dir=$(git rev-parse --path-format=absolute --git-common-dir 2>/dev/null || true)
30
+ if [ -n "$common_dir" ]; then
31
+ primary_root=$(dirname "$common_dir")
32
+ if [ -f "$primary_root/.env" ]; then
33
+ backend=$(grep -E '^PYRITE_MC_BACKEND=' "$primary_root/.env" | tail -n1 | cut -d= -f2- || true)
34
+ fi
35
+ fi
36
+ fi
37
+
38
+ [ -n "$backend" ] || backend="${PYRITE_MC_BACKEND:-}"
39
+ backend=$(printf '%s' "$backend" | tr -d '[:space:]' | tr '[:upper:]' '[:lower:]')
40
+
41
+ case "$backend" in
42
+ cuda) extra_args=(--extra nvidia) ;;
43
+ rocm) extra_args=(--extra amd) ;;
44
+ sycl) extra_args=(--extra intel) ;;
45
+ *) extra_args=() ;;
46
+ esac
47
+
48
+ log=$(mktemp "${TMPDIR:-/tmp}/pyrite-session-sync.XXXXXX") || exit 0
49
+ if UV_CACHE_DIR=/tmp/pyrite-uv-cache UV_LOCK_TIMEOUT=30 timeout 240 \
50
+ uv sync --all-groups --inexact --locked --quiet "${extra_args[@]}" \
51
+ </dev/null >"$log" 2>&1; then
52
+ rm -f "$log"
53
+ else
54
+ rc=$?
55
+ echo "pyrite: session dependency sync skipped (exit $rc); see $log." \
56
+ "Run \`uv sync --all-groups ${extra_args[*]}\` manually if imports fail."
57
+ fi
58
+ exit 0
@@ -0,0 +1,36 @@
1
+ ---
2
+ name: caveman
3
+ description: Use when user requests caveman mode, terse/token-efficient replies, or `/caveman`; supports lite, full, ultra, and wenyan variants.
4
+ ---
5
+
6
+ # Caveman
7
+
8
+ Reply tersely without losing technical substance.
9
+
10
+ ## Control
11
+
12
+ - Default: `full`.
13
+ - Switch: `/caveman lite|full|ultra|wenyan-lite|wenyan-full|wenyan-ultra`.
14
+ - `/caveman wenyan` means `wenyan-full`.
15
+ - Stop: `stop caveman` or `normal mode`.
16
+ - Claim persistence only when host carries session state.
17
+
18
+ ## Rules
19
+
20
+ - Obey higher-level instructions and required warnings, citations, evidence,
21
+ progress, and clarification.
22
+ - Drop filler, pleasantries, hedging, repetition, and decorative formatting.
23
+ - Keep technical terms, numbers, code, commands, API names, exact errors, and
24
+ user's language.
25
+ - Do not invent abbreviations or causal-arrow shorthand. Do not announce mode.
26
+ - Code, commits, PR text, quotations, and requested prose keep required format.
27
+
28
+ | Level | Style |
29
+ |---|---|
30
+ | `lite` | Tight full sentences |
31
+ | `full` | Articles optional; fragments allowed |
32
+ | `ultra` | Minimum unambiguous words; each fact once |
33
+ | `wenyan-*` | Matching compression in classical Chinese |
34
+
35
+ Use normal English for security warnings, irreversible confirmations,
36
+ multi-step ambiguity, or user confusion. Resume selected style afterward.
@@ -0,0 +1,23 @@
1
+ ---
2
+ name: caveman-commit
3
+ description: Use when user requests a commit message, `/commit`, or `/caveman-commit`; produce terse Conventional Commits text without staging or committing.
4
+ ---
5
+
6
+ # Caveman Commit
7
+
8
+ Return paste-ready commit message only.
9
+
10
+ ## Contract
11
+
12
+ - Subject: `<type>(<scope>): <imperative summary>`; scope optional.
13
+ - Types: `feat`, `fix`, `refactor`, `perf`, `docs`, `test`, `chore`, `build`,
14
+ `ci`, `style`, `revert`.
15
+ - Prefer ≤50 characters; hard cap 72. No trailing period.
16
+ - Match repository capitalization convention.
17
+ - Add 72-column body only for non-obvious why, breakage, migration, security,
18
+ revert context, or issue links.
19
+ - Use `BREAKING CHANGE:` and `Closes #N`/`Refs #N` when applicable.
20
+ - Omit diff narration, filler, emoji, and AI attribution unless repository
21
+ policy requires a trailer.
22
+
23
+ Never stage, commit, or amend. `normal mode` disables terse commit style.
@@ -0,0 +1,45 @@
1
+ ---
2
+ name: caveman-compress
3
+ description: Use when `/caveman-compress FILEPATH` or requests ask to compress natural-language memory/instruction files while preserving code, links, technical content, and Markdown structure.
4
+ ---
5
+
6
+ # Caveman Compress
7
+
8
+ Compress prose; preserve substance and machine-sensitive regions.
9
+
10
+ ## Run
11
+
12
+ Script sends file prose to configured Claude service. State that boundary and
13
+ obtain required approval before sending non-public or unverified repository
14
+ content.
15
+
16
+ From this skill directory:
17
+
18
+ ```bash
19
+ python3 -m scripts <absolute_filepath>
20
+ ```
21
+
22
+ CLI detects type, creates external backup under platform data directory,
23
+ compresses, validates structure/content, and attempts two targeted repairs.
24
+ Report failure without modifying source. If external execution is unavailable,
25
+ apply rules locally and disclose missing automated validation.
26
+
27
+ ## Preserve exactly
28
+
29
+ - fenced/indented code and inline backticks
30
+ - URLs, links, paths, commands, environment variables
31
+ - technical terms, proper nouns, dates, versions, and numbers
32
+ - YAML frontmatter, headings, list/table hierarchy
33
+
34
+ ## Compress
35
+
36
+ - Drop articles when clear, filler, pleasantries, hedging, and connective fluff.
37
+ - Use short words and fragments.
38
+ - Merge redundant prose; keep one equivalent example.
39
+ - Never edit uncertain code-like text.
40
+
41
+ ## Scope
42
+
43
+ Allowed: `.md`, `.txt`, `.typ`, `.typst`, `.tex`, extensionless prose.
44
+ Forbidden: `.py`, `.js`, `.ts`, `.json`, `.yaml`, `.yml`, `.toml`, `.env`,
45
+ `.lock`, `.css`, `.html`, `.xml`, `.sql`, `.sh`, and `*.original.md`.
@@ -0,0 +1,9 @@
1
+ """Caveman compress scripts.
2
+
3
+ This package provides tools to compress natural language markdown files
4
+ into caveman format to save input tokens.
5
+ """
6
+
7
+ __all__ = ["cli", "compress", "detect", "validate"]
8
+
9
+ __version__ = "1.0.0"
@@ -0,0 +1,3 @@
1
+ from .cli import main
2
+
3
+ main()
@@ -0,0 +1,81 @@
1
+ #!/usr/bin/env python3
2
+ import sys
3
+ from pathlib import Path
4
+
5
+ # Support both direct execution and module import
6
+ try:
7
+ from .validate import validate
8
+ except ImportError:
9
+ sys.path.insert(0, str(Path(__file__).parent))
10
+ from validate import validate
11
+
12
+ try:
13
+ import tiktoken
14
+
15
+ _enc = tiktoken.get_encoding("o200k_base")
16
+ except ImportError:
17
+ _enc = None
18
+
19
+
20
+ def count_tokens(text):
21
+ if _enc is None:
22
+ return len(text.split()) # fallback: word count
23
+ return len(_enc.encode(text))
24
+
25
+
26
+ def benchmark_pair(orig_path: Path, comp_path: Path):
27
+ orig_text = orig_path.read_text()
28
+ comp_text = comp_path.read_text()
29
+
30
+ orig_tokens = count_tokens(orig_text)
31
+ comp_tokens = count_tokens(comp_text)
32
+ saved = 100 * (orig_tokens - comp_tokens) / orig_tokens if orig_tokens > 0 else 0.0
33
+ result = validate(orig_path, comp_path)
34
+
35
+ return (comp_path.name, orig_tokens, comp_tokens, saved, result.is_valid)
36
+
37
+
38
+ def print_table(rows):
39
+ print("\n| File | Original | Compressed | Saved % | Valid |")
40
+ print("|------|----------|------------|---------|-------|")
41
+ for r in rows:
42
+ print(f"| {r[0]} | {r[1]} | {r[2]} | {r[3]:.1f}% | {'✅' if r[4] else '❌'} |")
43
+
44
+
45
+ def main():
46
+ # Direct file pair: python3 benchmark.py original.md compressed.md
47
+ if len(sys.argv) == 3:
48
+ orig = Path(sys.argv[1]).resolve()
49
+ comp = Path(sys.argv[2]).resolve()
50
+ if not orig.exists():
51
+ print(f"❌ Not found: {orig}")
52
+ sys.exit(1)
53
+ if not comp.exists():
54
+ print(f"❌ Not found: {comp}")
55
+ sys.exit(1)
56
+ print_table([benchmark_pair(orig, comp)])
57
+ return
58
+
59
+ # Glob mode: repo_root/tests/caveman-compress/
60
+ # __file__ lives at <repo_root>/skills/caveman-compress/scripts/benchmark.py
61
+ # Walk up four dirs: scripts → caveman-compress → skills → repo_root.
62
+ tests_dir = Path(__file__).resolve().parents[3] / "tests" / "caveman-compress"
63
+ if not tests_dir.exists():
64
+ print(f"❌ Tests dir not found: {tests_dir}")
65
+ sys.exit(1)
66
+
67
+ rows = []
68
+ for orig in sorted(tests_dir.glob("*.original.md")):
69
+ comp = orig.with_name(orig.stem.removesuffix(".original") + ".md")
70
+ if comp.exists():
71
+ rows.append(benchmark_pair(orig, comp))
72
+
73
+ if not rows:
74
+ print("No compressed file pairs found.")
75
+ return
76
+
77
+ print_table(rows)
78
+
79
+
80
+ if __name__ == "__main__":
81
+ main()
@@ -0,0 +1,85 @@
1
+ #!/usr/bin/env python3
2
+ """
3
+ Caveman Compress CLI
4
+
5
+ Usage:
6
+ caveman <filepath>
7
+ """
8
+
9
+ import sys
10
+
11
+ # Force UTF-8 on stdout/stderr before any code can print. Windows consoles
12
+ # default to cp1252 and crash on the ❌ glyphs in error/validation branches,
13
+ # masking the real error and leaving the user with a half-compressed file.
14
+ for _stream in (sys.stdout, sys.stderr):
15
+ reconfigure = getattr(_stream, "reconfigure", None)
16
+ if callable(reconfigure):
17
+ try:
18
+ reconfigure(encoding="utf-8", errors="replace")
19
+ except Exception:
20
+ pass
21
+
22
+ from pathlib import Path
23
+
24
+ from .compress import backup_dir_for, compress_file
25
+ from .detect import detect_file_type, should_compress
26
+
27
+
28
+ def print_usage():
29
+ print("Usage: caveman <filepath>")
30
+
31
+
32
+ def main():
33
+ if len(sys.argv) != 2:
34
+ print_usage()
35
+ sys.exit(1)
36
+
37
+ filepath = Path(sys.argv[1])
38
+
39
+ # Check file exists
40
+ if not filepath.exists():
41
+ print(f"❌ File not found: {filepath}")
42
+ sys.exit(1)
43
+
44
+ if not filepath.is_file():
45
+ print(f"❌ Not a file: {filepath}")
46
+ sys.exit(1)
47
+
48
+ filepath = filepath.resolve()
49
+
50
+ # Detect file type
51
+ file_type = detect_file_type(filepath)
52
+
53
+ print(f"Detected: {file_type}")
54
+
55
+ # Check if compressible
56
+ if not should_compress(filepath):
57
+ print("Skipping: file is not natural language (code/config)")
58
+ sys.exit(0)
59
+
60
+ print("Starting caveman compression...\n")
61
+
62
+ try:
63
+ success = compress_file(filepath)
64
+
65
+ if success:
66
+ print("\nCompression completed successfully")
67
+ backup_path = backup_dir_for(filepath) / (filepath.stem + ".original.md")
68
+ print(f"Compressed: {filepath}")
69
+ print(f"Original: {backup_path}")
70
+ sys.exit(0)
71
+ else:
72
+ print("\n❌ Compression failed after retries")
73
+ sys.exit(2)
74
+
75
+ except KeyboardInterrupt:
76
+ print("\nInterrupted by user")
77
+ sys.exit(130)
78
+
79
+ except Exception as e:
80
+ print(f"\n❌ Error: {e}")
81
+ sys.exit(1)
82
+
83
+
84
+ if __name__ == "__main__":
85
+ main()
@@ -0,0 +1,347 @@
1
+ #!/usr/bin/env python3
2
+ """
3
+ Caveman Memory Compression Orchestrator
4
+
5
+ Usage:
6
+ python scripts/compress.py <filepath>
7
+ """
8
+
9
+ import os
10
+ import re
11
+ import shutil
12
+ import subprocess
13
+ import sys
14
+ from pathlib import Path
15
+
16
+ OUTER_FENCE_REGEX = re.compile(r"\A\s*(`{3,}|~{3,})[^\n]*\n(.*)\n\1\s*\Z", re.DOTALL)
17
+
18
+ # YAML frontmatter: starts at file start with --- on its own line, ends with --- on its own line.
19
+ # Captures the entire block (including delimiters and trailing newline) and the body after.
20
+ FRONTMATTER_REGEX = re.compile(r"\A(---\r?\n.*?\r?\n---\r?\n)(.*)", re.DOTALL)
21
+
22
+
23
+ def split_frontmatter(text: str):
24
+ """Split YAML frontmatter from body. Returns (frontmatter, body).
25
+
26
+ Memory files (and many other markdown docs) start with a YAML frontmatter
27
+ block delimited by `---` lines. The compression LLM has a habit of stripping
28
+ or rewriting these despite preserve-structure rules in the prompt — so we
29
+ surgically remove the frontmatter before compression and prepend it back
30
+ verbatim to the output. Files without frontmatter pass through unchanged.
31
+ """
32
+ m = FRONTMATTER_REGEX.match(text)
33
+ if m:
34
+ return m.group(1), m.group(2)
35
+ return "", text
36
+
37
+
38
+ # Filenames and paths that almost certainly hold secrets or PII. Compressing
39
+ # them ships raw bytes to the Anthropic API — a third-party data boundary that
40
+ # developers on sensitive codebases cannot cross. detect.py already skips .env
41
+ # by extension, but credentials.md / secrets.txt / ~/.aws/credentials would
42
+ # slip through the natural-language filter. This is a hard refuse before read.
43
+ SENSITIVE_BASENAME_REGEX = re.compile(
44
+ r"(?ix)^("
45
+ r"\.env(\..+)?"
46
+ r"|\.netrc"
47
+ r"|credentials(\..+)?"
48
+ r"|secrets?(\..+)?"
49
+ r"|passwords?(\..+)?"
50
+ r"|id_(rsa|dsa|ecdsa|ed25519)(\.pub)?"
51
+ r"|authorized_keys"
52
+ r"|known_hosts"
53
+ r"|.*\.(pem|key|p12|pfx|crt|cer|jks|keystore|asc|gpg)"
54
+ r")$"
55
+ )
56
+
57
+ SENSITIVE_PATH_COMPONENTS = frozenset({".ssh", ".aws", ".gnupg", ".kube", ".docker"})
58
+
59
+ SENSITIVE_NAME_TOKENS = (
60
+ "secret",
61
+ "credential",
62
+ "password",
63
+ "passwd",
64
+ "apikey",
65
+ "accesskey",
66
+ "token",
67
+ "privatekey",
68
+ )
69
+
70
+
71
+ def backup_dir_for(filepath: Path) -> Path:
72
+ """Resolve the out-of-tree backup directory for a given source file.
73
+
74
+ Backups must live OUTSIDE the source directory so skill auto-loaders
75
+ (Claude Code rules/, opencode instructions/, etc.) stop re-ingesting the
76
+ `.original.md` copies as live files. Base dir is platform-aware:
77
+ - Windows: %LOCALAPPDATA%\\caveman-compress\\backups
78
+ - else: $XDG_DATA_HOME/caveman-compress/backups if set,
79
+ else ~/.local/share/caveman-compress/backups
80
+
81
+ The source file's parent-dir name is mirrored under the base to reduce
82
+ cross-project collisions (e.g. two `task.md` files in different repos).
83
+ """
84
+ if os.name == "nt" or sys.platform == "win32":
85
+ local_appdata = os.environ.get("LOCALAPPDATA")
86
+ base = Path(local_appdata) if local_appdata else Path.home() / "AppData" / "Local"
87
+ base = base / "caveman-compress" / "backups"
88
+ else:
89
+ xdg = os.environ.get("XDG_DATA_HOME")
90
+ base = Path(xdg) if xdg else Path.home() / ".local" / "share"
91
+ base = base / "caveman-compress" / "backups"
92
+ return base / filepath.parent.name
93
+
94
+
95
+ def is_sensitive_path(filepath: Path) -> bool:
96
+ """Heuristic denylist for files that must never be shipped to a third-party API."""
97
+ name = filepath.name
98
+ if SENSITIVE_BASENAME_REGEX.match(name):
99
+ return True
100
+ lowered_parts = {p.lower() for p in filepath.parts}
101
+ if lowered_parts & SENSITIVE_PATH_COMPONENTS:
102
+ return True
103
+ # Normalize separators so "api-key" and "api_key" both match "apikey".
104
+ lower = re.sub(r"[_\-\s.]", "", name.lower())
105
+ return any(tok in lower for tok in SENSITIVE_NAME_TOKENS)
106
+
107
+
108
+ def strip_llm_wrapper(text: str) -> str:
109
+ """Strip outer ```markdown ... ``` fence when it wraps the entire output."""
110
+ m = OUTER_FENCE_REGEX.match(text)
111
+ if m:
112
+ return m.group(2)
113
+ return text
114
+
115
+
116
+ from .detect import should_compress
117
+ from .validate import validate
118
+
119
+ MAX_RETRIES = 2
120
+
121
+
122
+ # ---------- Claude Calls ----------
123
+
124
+
125
+ def call_claude(prompt: str) -> str:
126
+ """Send a prompt to Claude.
127
+
128
+ Prefers the Anthropic SDK when ANTHROPIC_API_KEY is set; otherwise falls
129
+ back to the ``claude --print`` CLI (which handles desktop auth).
130
+
131
+ On Windows the CLI subprocess decoding defaults to the system codepage
132
+ (cp1251 / cp1252) and crashes on UTF-8 output — see issue #152. Pinning
133
+ ``encoding="utf-8"`` with ``errors="replace"`` matches the CLI's actual
134
+ native I/O and prevents the UnicodeDecodeError before validation can
135
+ report. Windows users with non-ASCII content can also set
136
+ ``ANTHROPIC_API_KEY`` to route through the SDK and skip the subprocess.
137
+ """
138
+ api_key = os.environ.get("ANTHROPIC_API_KEY")
139
+ if api_key:
140
+ try:
141
+ import anthropic
142
+
143
+ client = anthropic.Anthropic(api_key=api_key)
144
+ msg = client.messages.create(
145
+ model=os.environ.get("CAVEMAN_MODEL", "claude-sonnet-4-5"),
146
+ max_tokens=8192,
147
+ messages=[{"role": "user", "content": prompt}],
148
+ )
149
+ return strip_llm_wrapper(msg.content[0].text.strip())
150
+ except ImportError:
151
+ pass # anthropic not installed, fall back to CLI
152
+ # Fallback: use claude CLI (handles desktop auth).
153
+ # Resolve binary via shutil.which so Windows .cmd/.bat shims (e.g.
154
+ # %APPDATA%\npm\claude.CMD) work without shell=True. On POSIX,
155
+ # shutil.which returns the same absolute path as the implicit lookup,
156
+ # so this is a no-op there. Falls back to bare "claude" if not found
157
+ # on PATH so subprocess raises a clear FileNotFoundError.
158
+ claude_bin = shutil.which("claude") or "claude"
159
+ try:
160
+ result = subprocess.run(
161
+ [claude_bin, "--print"],
162
+ input=prompt,
163
+ text=True,
164
+ capture_output=True,
165
+ check=True,
166
+ encoding="utf-8",
167
+ errors="replace",
168
+ )
169
+ return strip_llm_wrapper(result.stdout.strip())
170
+ except subprocess.CalledProcessError as exc:
171
+ raise RuntimeError(f"Claude call failed:\n{exc.stderr}") from exc
172
+
173
+
174
+ def build_compress_prompt(original: str) -> str:
175
+ return f"""
176
+ Compress this markdown into caveman format.
177
+
178
+ STRICT RULES:
179
+ - Do NOT modify anything inside ``` code blocks
180
+ - Do NOT modify anything inside inline backticks
181
+ - Preserve ALL URLs exactly
182
+ - Preserve ALL headings exactly
183
+ - Preserve file paths and commands
184
+ - Return ONLY the compressed markdown body — do NOT wrap the entire output in a ```markdown fence or any other fence. Inner code blocks from the original stay as-is; do not add a new outer fence around the whole file.
185
+
186
+ Only compress natural language.
187
+
188
+ TEXT:
189
+ {original}
190
+ """
191
+
192
+
193
+ def build_fix_prompt(original: str, compressed: str, errors: list[str]) -> str:
194
+ errors_str = "\n".join(f"- {e}" for e in errors)
195
+ return f"""You are fixing a caveman-compressed markdown file. Specific validation errors were found.
196
+
197
+ CRITICAL RULES:
198
+ - DO NOT recompress or rephrase the file
199
+ - ONLY fix the listed errors — leave everything else exactly as-is
200
+ - The ORIGINAL is provided as reference only (to restore missing content)
201
+ - Preserve caveman style in all untouched sections
202
+
203
+ ERRORS TO FIX:
204
+ {errors_str}
205
+
206
+ HOW TO FIX:
207
+ - Missing URL: find it in ORIGINAL, restore it exactly where it belongs in COMPRESSED
208
+ - Code block mismatch: find the exact code block in ORIGINAL, restore it in COMPRESSED
209
+ - Heading mismatch: restore the exact heading text from ORIGINAL into COMPRESSED
210
+ - Do not touch any section not mentioned in the errors
211
+
212
+ ORIGINAL (reference only):
213
+ {original}
214
+
215
+ COMPRESSED (fix this):
216
+ {compressed}
217
+
218
+ Return ONLY the fixed compressed file. No explanation.
219
+ """
220
+
221
+
222
+ # ---------- Core Logic ----------
223
+
224
+
225
+ def compress_file(filepath: Path) -> bool:
226
+ # Resolve and validate path
227
+ filepath = filepath.resolve()
228
+ MAX_FILE_SIZE = 500_000 # 500KB
229
+ if not filepath.exists():
230
+ raise FileNotFoundError(f"File not found: {filepath}")
231
+ if filepath.stat().st_size > MAX_FILE_SIZE:
232
+ raise ValueError(f"File too large to compress safely (max 500KB): {filepath}")
233
+
234
+ # Refuse files that look like they contain secrets or PII. Compressing ships
235
+ # the raw bytes to the Anthropic API — a third-party boundary — so we fail
236
+ # loudly rather than silently exfiltrate credentials or keys. Override is
237
+ # intentional: the user must rename the file if the heuristic is wrong.
238
+ if is_sensitive_path(filepath):
239
+ raise ValueError(
240
+ f"Refusing to compress {filepath}: filename looks sensitive "
241
+ "(credentials, keys, secrets, or known private paths). "
242
+ "Compression sends file contents to the Anthropic API. "
243
+ "Rename the file if this is a false positive."
244
+ )
245
+
246
+ print(f"Processing: {filepath}")
247
+
248
+ if not should_compress(filepath):
249
+ print("Skipping (not natural language)")
250
+ return False
251
+
252
+ original_text = filepath.read_text(errors="ignore")
253
+ # Store backup outside the source directory so skill auto-loaders don't
254
+ # re-ingest the `.original.md` copy as a live file. Mirror the source's
255
+ # parent-dir name + stem under a platform-aware base to reduce collisions.
256
+ backup_dir = backup_dir_for(filepath)
257
+ backup_dir.mkdir(parents=True, exist_ok=True)
258
+ backup_path = backup_dir / (filepath.stem + ".original.md")
259
+
260
+ if not original_text.strip():
261
+ print("❌ Refusing to compress: file is empty or whitespace-only.")
262
+ return False
263
+
264
+ # Check if backup already exists to prevent accidental overwriting
265
+ if backup_path.exists():
266
+ print(f"⚠️ Backup file already exists: {backup_path}")
267
+ print("The original backup may contain important content.")
268
+ print(
269
+ "Aborting to prevent data loss. Please remove or rename the backup file if you want to proceed."
270
+ )
271
+ return False
272
+
273
+ # Split YAML frontmatter off before compression. Claude tends to strip or
274
+ # rewrite frontmatter despite preserve-structure rules; we keep it verbatim
275
+ # by removing it from the input and re-prepending it to the output.
276
+ frontmatter, body = split_frontmatter(original_text)
277
+ if frontmatter:
278
+ print(f"Detected YAML frontmatter ({len(frontmatter)} chars) — preserving verbatim")
279
+
280
+ if not body.strip():
281
+ print("❌ Refusing to compress: body is empty after frontmatter removal.")
282
+ return False
283
+
284
+ # Step 1: Compress (body only, frontmatter excluded)
285
+ print("Compressing with Claude...")
286
+ compressed_body = call_claude(build_compress_prompt(body))
287
+
288
+ if compressed_body is None or not compressed_body.strip():
289
+ print("❌ Compression aborted: Claude returned an empty response.")
290
+ print(" Original file is untouched (no backup created).")
291
+ return False
292
+
293
+ # Compare the BODY (not the whole file) — frontmatter is preserved verbatim
294
+ # and would never change, so identity must be judged on the compressible part.
295
+ if compressed_body.strip() == body.strip():
296
+ print("❌ Compression aborted: output is identical to input.")
297
+ print(" Likely causes: Claude refused, returned the prompt verbatim, or the file is")
298
+ print(" already in caveman form. Original file is untouched (no backup created).")
299
+ return False
300
+
301
+ # Reassemble: frontmatter (verbatim) + compressed body
302
+ compressed = frontmatter + compressed_body
303
+
304
+ # Save original as backup, then verify the backup readback before
305
+ # touching the input file. If the filesystem dropped bytes (encoding,
306
+ # antivirus, disk full), unlink the bad backup and abort instead of
307
+ # leaving the user with a corrupt backup + compressed primary.
308
+ backup_path.write_text(original_text)
309
+ backup_readback = backup_path.read_text(errors="ignore")
310
+ if backup_readback != original_text:
311
+ print(f"❌ Backup write verification failed: {backup_path}")
312
+ print(
313
+ " In-memory original differs from on-disk backup. Aborting before touching the input file."
314
+ )
315
+ try:
316
+ backup_path.unlink()
317
+ except OSError:
318
+ pass
319
+ return False
320
+ filepath.write_text(compressed)
321
+
322
+ # Step 2: Validate + Retry
323
+ for attempt in range(MAX_RETRIES):
324
+ print(f"\nValidation attempt {attempt + 1}")
325
+
326
+ result = validate(backup_path, filepath)
327
+
328
+ if result.is_valid:
329
+ print("Validation passed")
330
+ break
331
+
332
+ print("❌ Validation failed:")
333
+ for err in result.errors:
334
+ print(f" - {err}")
335
+
336
+ if attempt == MAX_RETRIES - 1:
337
+ # Restore original on failure
338
+ filepath.write_text(original_text)
339
+ backup_path.unlink(missing_ok=True)
340
+ print("❌ Failed after retries — original restored")
341
+ return False
342
+
343
+ print("Fixing with Claude...")
344
+ compressed = call_claude(build_fix_prompt(original_text, compressed, result.errors))
345
+ filepath.write_text(compressed)
346
+
347
+ return True