easydiffraction 0.13.1__tar.gz → 0.14.0__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 (503) hide show
  1. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/PKG-INFO +2 -1
  2. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/docs/architecture/architecture.md +118 -76
  3. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/docs/architecture/issues_closed.md +16 -6
  4. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/docs/architecture/issues_open.md +6 -26
  5. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/docs/architecture/package-structure-full.md +20 -5
  6. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/docs/architecture/package-structure-short.md +13 -3
  7. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/docs/docs/tutorials/ed-1.ipynb +3 -3
  8. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/docs/docs/tutorials/ed-1.py +3 -3
  9. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/docs/docs/tutorials/ed-10.ipynb +2 -2
  10. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/docs/docs/tutorials/ed-10.py +2 -2
  11. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/docs/docs/tutorials/ed-11.ipynb +5 -5
  12. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/docs/docs/tutorials/ed-11.py +5 -5
  13. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/docs/docs/tutorials/ed-12.ipynb +15 -25
  14. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/docs/docs/tutorials/ed-12.py +6 -9
  15. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/docs/docs/tutorials/ed-13.ipynb +103 -84
  16. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/docs/docs/tutorials/ed-13.py +71 -54
  17. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/docs/docs/tutorials/ed-14.ipynb +4 -4
  18. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/docs/docs/tutorials/ed-14.py +4 -4
  19. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/docs/docs/tutorials/ed-15.ipynb +29 -21
  20. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/docs/docs/tutorials/ed-15.py +8 -7
  21. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/docs/docs/tutorials/ed-16.ipynb +6 -6
  22. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/docs/docs/tutorials/ed-16.py +6 -6
  23. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/docs/docs/tutorials/ed-17.ipynb +48 -18
  24. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/docs/docs/tutorials/ed-17.py +48 -18
  25. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/docs/docs/tutorials/ed-18.ipynb +4 -20
  26. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/docs/docs/tutorials/ed-18.py +2 -8
  27. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/docs/docs/tutorials/ed-2.ipynb +6 -7
  28. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/docs/docs/tutorials/ed-2.py +6 -7
  29. easydiffraction-0.14.0/docs/docs/tutorials/ed-20.ipynb +816 -0
  30. easydiffraction-0.14.0/docs/docs/tutorials/ed-20.py +381 -0
  31. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/docs/docs/tutorials/ed-3.ipynb +138 -228
  32. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/docs/docs/tutorials/ed-3.py +25 -55
  33. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/docs/docs/tutorials/ed-4.ipynb +8 -4
  34. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/docs/docs/tutorials/ed-4.py +8 -4
  35. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/docs/docs/tutorials/ed-5.ipynb +10 -12
  36. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/docs/docs/tutorials/ed-5.py +10 -12
  37. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/docs/docs/tutorials/ed-6.ipynb +12 -13
  38. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/docs/docs/tutorials/ed-6.py +12 -13
  39. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/docs/docs/tutorials/ed-7.ipynb +23 -14
  40. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/docs/docs/tutorials/ed-7.py +23 -14
  41. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/docs/docs/tutorials/ed-8.ipynb +9 -12
  42. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/docs/docs/tutorials/ed-8.py +9 -12
  43. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/docs/docs/tutorials/ed-9.ipynb +5 -7
  44. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/docs/docs/tutorials/ed-9.py +4 -6
  45. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/docs/docs/tutorials/index.json +7 -0
  46. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/docs/docs/tutorials/index.md +8 -3
  47. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/docs/docs/user-guide/analysis-workflow/analysis.md +10 -11
  48. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/docs/docs/user-guide/analysis-workflow/project.md +13 -18
  49. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/docs/docs/user-guide/first-steps.md +7 -8
  50. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/docs/mkdocs.yml +3 -1
  51. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/pixi.lock +708 -657
  52. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/pyproject.toml +1 -0
  53. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/__main__.py +3 -3
  54. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/analysis/analysis.py +13 -66
  55. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/analysis/calculators/crysfml.py +125 -39
  56. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/analysis/calculators/cryspy.py +77 -50
  57. easydiffraction-0.14.0/src/easydiffraction/analysis/categories/fit/__init__.py +6 -0
  58. easydiffraction-0.14.0/src/easydiffraction/analysis/categories/fit/default.py +200 -0
  59. {easydiffraction-0.13.1/src/easydiffraction/analysis/categories/fit_mode → easydiffraction-0.14.0/src/easydiffraction/analysis/categories/fit}/enums.py +2 -2
  60. {easydiffraction-0.13.1/src/easydiffraction/analysis/categories/fit_mode → easydiffraction-0.14.0/src/easydiffraction/analysis/categories/fit}/factory.py +3 -3
  61. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/analysis/sequential.py +3 -5
  62. easydiffraction-0.14.0/src/easydiffraction/datablocks/experiment/categories/calculation/__init__.py +8 -0
  63. easydiffraction-0.14.0/src/easydiffraction/datablocks/experiment/categories/calculation/default.py +106 -0
  64. easydiffraction-0.14.0/src/easydiffraction/datablocks/experiment/categories/calculation/factory.py +17 -0
  65. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/datablocks/experiment/categories/data/bragg_pd.py +1 -1
  66. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/datablocks/experiment/categories/data/bragg_sc.py +1 -1
  67. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/datablocks/experiment/categories/data/total_pd.py +1 -1
  68. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/datablocks/experiment/categories/instrument/tof.py +1 -1
  69. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/datablocks/experiment/categories/peak/__init__.py +1 -0
  70. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/datablocks/experiment/categories/peak/cwl.py +7 -6
  71. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/datablocks/experiment/categories/peak/cwl_mixins.py +2 -2
  72. easydiffraction-0.14.0/src/easydiffraction/datablocks/experiment/categories/peak/factory.py +148 -0
  73. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/datablocks/experiment/categories/peak/tof.py +38 -12
  74. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/datablocks/experiment/categories/peak/total.py +7 -3
  75. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/datablocks/experiment/item/base.py +143 -100
  76. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/datablocks/experiment/item/bragg_pd.py +21 -11
  77. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/datablocks/experiment/item/enums.py +35 -27
  78. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/datablocks/experiment/item/factory.py +2 -0
  79. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/datablocks/structure/categories/atom_site_aniso/default.py +0 -42
  80. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/datablocks/structure/categories/atom_sites/default.py +3 -0
  81. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/datablocks/structure/item/base.py +17 -10
  82. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/io/cif/serialize.py +69 -36
  83. easydiffraction-0.14.0/src/easydiffraction/project/categories/display/__init__.py +8 -0
  84. easydiffraction-0.14.0/src/easydiffraction/project/categories/display/default.py +117 -0
  85. easydiffraction-0.14.0/src/easydiffraction/project/categories/display/factory.py +17 -0
  86. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/project/project.py +17 -20
  87. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/summary/summary.py +2 -2
  88. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/utils/utils.py +2 -2
  89. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/functional/test_adp_switching.py +5 -7
  90. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/functional/test_switchable_categories.py +5 -5
  91. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/integration/fitting/conftest.py +1 -1
  92. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/integration/fitting/test_analysis_display.py +5 -6
  93. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/integration/fitting/test_aniso_adp_fitting.py +2 -3
  94. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/integration/fitting/test_exploration_help.py +4 -7
  95. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/integration/fitting/test_multi.py +3 -3
  96. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/integration/fitting/test_plotting.py +5 -5
  97. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/integration/fitting/test_powder-diffraction_constant-wavelength.py +3 -3
  98. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/integration/fitting/test_powder-diffraction_joint-fit.py +4 -4
  99. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/integration/fitting/test_powder-diffraction_time-of-flight.py +2 -2
  100. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/integration/fitting/test_project_load.py +2 -2
  101. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/integration/fitting/test_switch-calculator.py +3 -3
  102. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/integration/scipp-analysis/dream/test_package_import.py +6 -0
  103. easydiffraction-0.14.0/tests/unit/easydiffraction/analysis/calculators/test_cryspy.py +116 -0
  104. easydiffraction-0.14.0/tests/unit/easydiffraction/analysis/categories/test_fit.py +92 -0
  105. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/unit/easydiffraction/analysis/test_analysis.py +9 -9
  106. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/unit/easydiffraction/analysis/test_analysis_coverage.py +3 -3
  107. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/unit/easydiffraction/core/test_parameters.py +2 -2
  108. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/unit/easydiffraction/datablocks/experiment/categories/background/test_base.py +2 -2
  109. easydiffraction-0.14.0/tests/unit/easydiffraction/datablocks/experiment/categories/calculation/test_default.py +90 -0
  110. easydiffraction-0.14.0/tests/unit/easydiffraction/datablocks/experiment/categories/calculation/test_factory.py +27 -0
  111. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/unit/easydiffraction/datablocks/experiment/categories/instrument/test_tof.py +1 -1
  112. easydiffraction-0.14.0/tests/unit/easydiffraction/datablocks/experiment/categories/peak/test_factory.py +89 -0
  113. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/unit/easydiffraction/datablocks/experiment/categories/peak/test_tof.py +13 -0
  114. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/unit/easydiffraction/datablocks/experiment/item/test_base_coverage.py +15 -15
  115. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/unit/easydiffraction/datablocks/experiment/item/test_bragg_sc_coverage.py +4 -4
  116. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/unit/easydiffraction/datablocks/experiment/item/test_enums_coverage.py +24 -12
  117. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/unit/easydiffraction/datablocks/experiment/test_collection.py +1 -0
  118. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/unit/easydiffraction/datablocks/structure/categories/test_atom_site_aniso.py +48 -87
  119. easydiffraction-0.14.0/tests/unit/easydiffraction/display/tablers/__init__.py +2 -0
  120. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/unit/easydiffraction/io/cif/test_serialize.py +39 -1
  121. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/unit/easydiffraction/io/cif/test_serialize_more.py +5 -7
  122. easydiffraction-0.14.0/tests/unit/easydiffraction/project/categories/display/test_default.py +55 -0
  123. easydiffraction-0.14.0/tests/unit/easydiffraction/project/categories/display/test_factory.py +23 -0
  124. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/unit/easydiffraction/project/test_project_load.py +16 -5
  125. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/unit/easydiffraction/summary/test_summary.py +4 -1
  126. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/unit/easydiffraction/summary/test_summary_details.py +9 -2
  127. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/unit/easydiffraction/test___main__.py +21 -29
  128. easydiffraction-0.13.1/docs/docs/tutorials/data/ed-7.xye +0 -5600
  129. easydiffraction-0.13.1/docs/docs/tutorials/ed-19.ipynb +0 -1101
  130. easydiffraction-0.13.1/docs/docs/tutorials/ed-19.py +0 -566
  131. easydiffraction-0.13.1/src/easydiffraction/analysis/categories/fit_mode/__init__.py +0 -6
  132. easydiffraction-0.13.1/src/easydiffraction/analysis/categories/fit_mode/fit_mode.py +0 -65
  133. easydiffraction-0.13.1/src/easydiffraction/datablocks/experiment/categories/peak/factory.py +0 -30
  134. easydiffraction-0.13.1/tests/unit/easydiffraction/analysis/calculators/test_cryspy.py +0 -28
  135. easydiffraction-0.13.1/tests/unit/easydiffraction/analysis/categories/test_fit_mode.py +0 -85
  136. easydiffraction-0.13.1/tests/unit/easydiffraction/datablocks/experiment/categories/peak/test_factory.py +0 -57
  137. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/.badgery.yaml +0 -0
  138. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/.codefactorignore +0 -0
  139. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/.copier-answers.yml +0 -0
  140. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/.github/actions/download-artifact/action.yml +0 -0
  141. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/.github/actions/github-script/action.yml +0 -0
  142. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/.github/actions/setup-easyscience-bot/action.yml +0 -0
  143. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/.github/actions/setup-pixi/action.yml +0 -0
  144. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/.github/actions/upload-artifact/action.yml +0 -0
  145. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/.github/actions/upload-codecov/action.yml +0 -0
  146. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/.github/configs/pages-deployment.json +0 -0
  147. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/.github/configs/rulesets-develop.json +0 -0
  148. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/.github/configs/rulesets-gh-pages.json +0 -0
  149. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/.github/configs/rulesets-master.json +0 -0
  150. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/.github/copilot-instructions.md +0 -0
  151. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/.github/scripts/backmerge-conflict-issue.js +0 -0
  152. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/.github/workflows/backmerge.yml +0 -0
  153. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/.github/workflows/cleanup.yml +0 -0
  154. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/.github/workflows/coverage.yml +0 -0
  155. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/.github/workflows/dashboard.yml +0 -0
  156. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/.github/workflows/docs.yml +0 -0
  157. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/.github/workflows/issues-labels.yml +0 -0
  158. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/.github/workflows/lint-format.yml +0 -0
  159. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/.github/workflows/pr-labels.yml +0 -0
  160. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/.github/workflows/pypi-publish.yml +0 -0
  161. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/.github/workflows/pypi-test.yml +0 -0
  162. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/.github/workflows/release-notes.yml +0 -0
  163. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/.github/workflows/release-pr.yml +0 -0
  164. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/.github/workflows/security.yml +0 -0
  165. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/.github/workflows/test-trigger.yml +0 -0
  166. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/.github/workflows/test.yml +0 -0
  167. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/.github/workflows/tutorial-tests-colab.yaml +0 -0
  168. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/.github/workflows/tutorial-tests-trigger.yml +0 -0
  169. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/.github/workflows/tutorial-tests.yml +0 -0
  170. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/.gitignore +0 -0
  171. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/.pre-commit-config.yaml +0 -0
  172. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/.prettierignore +0 -0
  173. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/CONTRIBUTING.md +0 -0
  174. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/LICENSE +0 -0
  175. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/README.md +0 -0
  176. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/codecov.yml +0 -0
  177. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/docs/architecture/ROADMAP.md +0 -0
  178. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/docs/architecture/adp_implementation.md +0 -0
  179. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/docs/architecture/cryspy-dwf-bug.md +0 -0
  180. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/docs/docs/api-reference/analysis.md +0 -0
  181. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/docs/docs/api-reference/core.md +0 -0
  182. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/docs/docs/api-reference/crystallography.md +0 -0
  183. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/docs/docs/api-reference/datablocks/experiment.md +0 -0
  184. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/docs/docs/api-reference/datablocks/structure.md +0 -0
  185. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/docs/docs/api-reference/display.md +0 -0
  186. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/docs/docs/api-reference/index.md +0 -0
  187. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/docs/docs/api-reference/io.md +0 -0
  188. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/docs/docs/api-reference/project.md +0 -0
  189. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/docs/docs/api-reference/summary.md +0 -0
  190. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/docs/docs/api-reference/utils.md +0 -0
  191. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/docs/docs/assets/images/favicon.png +0 -0
  192. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/docs/docs/assets/images/logo_dark.svg +0 -0
  193. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/docs/docs/assets/images/logo_light.svg +0 -0
  194. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/docs/docs/assets/images/user-guide/data-acquisition_2d-raw-data.jpg +0 -0
  195. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/docs/docs/assets/images/user-guide/data-acquisition_instrument.png +0 -0
  196. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/docs/docs/assets/images/user-guide/data-analysis_model.png +0 -0
  197. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/docs/docs/assets/images/user-guide/data-analysis_refinement.png +0 -0
  198. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/docs/docs/assets/images/user-guide/data-reduction_1d-pattern.png +0 -0
  199. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/docs/docs/assets/javascripts/extra.js +0 -0
  200. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/docs/docs/assets/javascripts/mathjax.js +0 -0
  201. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/docs/docs/assets/stylesheets/extra.css +0 -0
  202. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/docs/docs/cli/index.md +0 -0
  203. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/docs/docs/index.md +0 -0
  204. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/docs/docs/installation-and-setup/index.md +0 -0
  205. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/docs/docs/introduction/index.md +0 -0
  206. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/docs/docs/user-guide/analysis-workflow/experiment.md +0 -0
  207. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/docs/docs/user-guide/analysis-workflow/index.md +0 -0
  208. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/docs/docs/user-guide/analysis-workflow/model.md +0 -0
  209. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/docs/docs/user-guide/analysis-workflow/summary.md +0 -0
  210. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/docs/docs/user-guide/concept.md +0 -0
  211. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/docs/docs/user-guide/data-format.md +0 -0
  212. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/docs/docs/user-guide/glossary.md +0 -0
  213. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/docs/docs/user-guide/index.md +0 -0
  214. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/docs/docs/user-guide/parameters/_diffrn_radiation.md +0 -0
  215. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/docs/docs/user-guide/parameters/_diffrn_radiation_wavelength.md +0 -0
  216. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/docs/docs/user-guide/parameters/_exptl_crystal.md +0 -0
  217. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/docs/docs/user-guide/parameters/_extinction.md +0 -0
  218. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/docs/docs/user-guide/parameters/_pd_calib.md +0 -0
  219. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/docs/docs/user-guide/parameters/atom_site.md +0 -0
  220. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/docs/docs/user-guide/parameters/background.md +0 -0
  221. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/docs/docs/user-guide/parameters/cell.md +0 -0
  222. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/docs/docs/user-guide/parameters/expt_type.md +0 -0
  223. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/docs/docs/user-guide/parameters/instrument.md +0 -0
  224. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/docs/docs/user-guide/parameters/linked_phases.md +0 -0
  225. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/docs/docs/user-guide/parameters/pd_meas.md +0 -0
  226. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/docs/docs/user-guide/parameters/peak.md +0 -0
  227. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/docs/docs/user-guide/parameters/space_group.md +0 -0
  228. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/docs/docs/user-guide/parameters.md +0 -0
  229. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/docs/includes/abbreviations.md +0 -0
  230. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/docs/overrides/.icons/app.svg +0 -0
  231. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/docs/overrides/.icons/easydiffraction.svg +0 -0
  232. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/docs/overrides/.icons/easyscience.svg +0 -0
  233. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/docs/overrides/.icons/google-colab.svg +0 -0
  234. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/docs/overrides/main.html +0 -0
  235. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/docs/overrides/partials/logo.html +0 -0
  236. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/pixi.toml +0 -0
  237. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/prettierrc.toml +0 -0
  238. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/__init__.py +0 -0
  239. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/analysis/__init__.py +0 -0
  240. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/analysis/calculators/__init__.py +0 -0
  241. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/analysis/calculators/base.py +0 -0
  242. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/analysis/calculators/factory.py +0 -0
  243. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/analysis/calculators/pdffit.py +0 -0
  244. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/analysis/categories/__init__.py +0 -0
  245. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/analysis/categories/aliases/__init__.py +0 -0
  246. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/analysis/categories/aliases/default.py +0 -0
  247. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/analysis/categories/aliases/factory.py +0 -0
  248. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/analysis/categories/constraints/__init__.py +0 -0
  249. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/analysis/categories/constraints/default.py +0 -0
  250. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/analysis/categories/constraints/factory.py +0 -0
  251. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/analysis/categories/joint_fit_experiments/__init__.py +0 -0
  252. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/analysis/categories/joint_fit_experiments/default.py +0 -0
  253. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/analysis/categories/joint_fit_experiments/factory.py +0 -0
  254. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/analysis/fit_helpers/__init__.py +0 -0
  255. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/analysis/fit_helpers/metrics.py +0 -0
  256. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/analysis/fit_helpers/reporting.py +0 -0
  257. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/analysis/fit_helpers/tracking.py +0 -0
  258. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/analysis/fitting.py +0 -0
  259. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/analysis/minimizers/__init__.py +0 -0
  260. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/analysis/minimizers/base.py +0 -0
  261. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/analysis/minimizers/bumps.py +0 -0
  262. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/analysis/minimizers/bumps_amoeba.py +0 -0
  263. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/analysis/minimizers/bumps_de.py +0 -0
  264. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/analysis/minimizers/bumps_lm.py +0 -0
  265. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/analysis/minimizers/dfols.py +0 -0
  266. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/analysis/minimizers/enums.py +0 -0
  267. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/analysis/minimizers/factory.py +0 -0
  268. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/analysis/minimizers/lmfit.py +0 -0
  269. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/analysis/minimizers/lmfit_least_squares.py +0 -0
  270. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/analysis/minimizers/lmfit_leastsq.py +0 -0
  271. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/core/__init__.py +0 -0
  272. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/core/category.py +0 -0
  273. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/core/collection.py +0 -0
  274. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/core/datablock.py +0 -0
  275. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/core/diagnostic.py +0 -0
  276. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/core/factory.py +0 -0
  277. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/core/guard.py +0 -0
  278. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/core/identity.py +0 -0
  279. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/core/metadata.py +0 -0
  280. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/core/singleton.py +0 -0
  281. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/core/validation.py +0 -0
  282. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/core/variable.py +0 -0
  283. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/crystallography/__init__.py +0 -0
  284. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/crystallography/crystallography.py +0 -0
  285. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/crystallography/space_groups.pkl.gz +0 -0
  286. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/crystallography/space_groups.py +0 -0
  287. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/datablocks/__init__.py +0 -0
  288. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/datablocks/experiment/__init__.py +0 -0
  289. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/datablocks/experiment/categories/__init__.py +0 -0
  290. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/datablocks/experiment/categories/background/__init__.py +0 -0
  291. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/datablocks/experiment/categories/background/base.py +0 -0
  292. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/datablocks/experiment/categories/background/chebyshev.py +0 -0
  293. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/datablocks/experiment/categories/background/enums.py +0 -0
  294. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/datablocks/experiment/categories/background/factory.py +0 -0
  295. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/datablocks/experiment/categories/background/line_segment.py +0 -0
  296. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/datablocks/experiment/categories/data/__init__.py +0 -0
  297. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/datablocks/experiment/categories/data/factory.py +0 -0
  298. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/datablocks/experiment/categories/diffrn/__init__.py +0 -0
  299. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/datablocks/experiment/categories/diffrn/default.py +0 -0
  300. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/datablocks/experiment/categories/diffrn/factory.py +0 -0
  301. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/datablocks/experiment/categories/excluded_regions/__init__.py +0 -0
  302. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/datablocks/experiment/categories/excluded_regions/default.py +0 -0
  303. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/datablocks/experiment/categories/excluded_regions/factory.py +0 -0
  304. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/datablocks/experiment/categories/experiment_type/__init__.py +0 -0
  305. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/datablocks/experiment/categories/experiment_type/default.py +0 -0
  306. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/datablocks/experiment/categories/experiment_type/factory.py +0 -0
  307. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/datablocks/experiment/categories/extinction/__init__.py +0 -0
  308. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/datablocks/experiment/categories/extinction/becker_coppens.py +0 -0
  309. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/datablocks/experiment/categories/extinction/factory.py +0 -0
  310. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/datablocks/experiment/categories/instrument/__init__.py +0 -0
  311. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/datablocks/experiment/categories/instrument/base.py +0 -0
  312. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/datablocks/experiment/categories/instrument/cwl.py +0 -0
  313. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/datablocks/experiment/categories/instrument/factory.py +0 -0
  314. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/datablocks/experiment/categories/linked_crystal/__init__.py +0 -0
  315. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/datablocks/experiment/categories/linked_crystal/default.py +0 -0
  316. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/datablocks/experiment/categories/linked_crystal/factory.py +0 -0
  317. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/datablocks/experiment/categories/linked_phases/__init__.py +0 -0
  318. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/datablocks/experiment/categories/linked_phases/default.py +0 -0
  319. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/datablocks/experiment/categories/linked_phases/factory.py +0 -0
  320. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/datablocks/experiment/categories/peak/base.py +0 -0
  321. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/datablocks/experiment/categories/peak/tof_mixins.py +0 -0
  322. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/datablocks/experiment/categories/peak/total_mixins.py +0 -0
  323. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/datablocks/experiment/collection.py +0 -0
  324. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/datablocks/experiment/item/__init__.py +0 -0
  325. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/datablocks/experiment/item/bragg_sc.py +0 -0
  326. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/datablocks/experiment/item/total_pd.py +0 -0
  327. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/datablocks/structure/__init__.py +0 -0
  328. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/datablocks/structure/categories/__init__.py +0 -0
  329. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/datablocks/structure/categories/atom_site_aniso/__init__.py +0 -0
  330. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/datablocks/structure/categories/atom_site_aniso/factory.py +0 -0
  331. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/datablocks/structure/categories/atom_sites/__init__.py +0 -0
  332. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/datablocks/structure/categories/atom_sites/enums.py +0 -0
  333. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/datablocks/structure/categories/atom_sites/factory.py +0 -0
  334. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/datablocks/structure/categories/cell/__init__.py +0 -0
  335. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/datablocks/structure/categories/cell/default.py +0 -0
  336. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/datablocks/structure/categories/cell/factory.py +0 -0
  337. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/datablocks/structure/categories/space_group/__init__.py +0 -0
  338. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/datablocks/structure/categories/space_group/default.py +0 -0
  339. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/datablocks/structure/categories/space_group/factory.py +0 -0
  340. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/datablocks/structure/collection.py +0 -0
  341. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/datablocks/structure/item/__init__.py +0 -0
  342. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/datablocks/structure/item/factory.py +0 -0
  343. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/display/__init__.py +0 -0
  344. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/display/base.py +0 -0
  345. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/display/plotters/__init__.py +0 -0
  346. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/display/plotters/ascii.py +0 -0
  347. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/display/plotters/base.py +0 -0
  348. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/display/plotters/plotly.py +0 -0
  349. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/display/plotting.py +0 -0
  350. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/display/tablers/__init__.py +0 -0
  351. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/display/tablers/base.py +0 -0
  352. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/display/tablers/pandas.py +0 -0
  353. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/display/tablers/rich.py +0 -0
  354. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/display/tables.py +0 -0
  355. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/display/utils.py +0 -0
  356. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/io/__init__.py +0 -0
  357. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/io/ascii.py +0 -0
  358. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/io/cif/__init__.py +0 -0
  359. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/io/cif/handler.py +0 -0
  360. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/io/cif/parse.py +0 -0
  361. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/project/__init__.py +0 -0
  362. {easydiffraction-0.13.1/src/easydiffraction/summary → easydiffraction-0.14.0/src/easydiffraction/project/categories}/__init__.py +0 -0
  363. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/project/project_info.py +0 -0
  364. {easydiffraction-0.13.1/tests/unit/easydiffraction/datablocks/structure/categories → easydiffraction-0.14.0/src/easydiffraction/summary}/__init__.py +0 -0
  365. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/utils/__init__.py +0 -0
  366. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/utils/_vendored/__init__.py +0 -0
  367. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/utils/_vendored/jupyter_dark_detect/__init__.py +0 -0
  368. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/utils/_vendored/jupyter_dark_detect/detector.py +0 -0
  369. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/utils/_vendored/theme_detect.py +0 -0
  370. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/utils/enums.py +0 -0
  371. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/utils/environment.py +0 -0
  372. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/src/easydiffraction/utils/logging.py +0 -0
  373. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/functional/conftest.py +0 -0
  374. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/functional/test_experiment_workflow.py +0 -0
  375. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/functional/test_fitting_workflow.py +0 -0
  376. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/functional/test_project_lifecycle.py +0 -0
  377. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/functional/test_structure_workflow.py +0 -0
  378. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/integration/fitting/test_cif_round_trip.py +0 -0
  379. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/integration/fitting/test_pair-distribution-function.py +0 -0
  380. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/integration/fitting/test_sequential.py +0 -0
  381. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/integration/fitting/test_single-crystal-diffraction.py +0 -0
  382. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/integration/fitting/test_summary_report.py +0 -0
  383. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/integration/scipp-analysis/dream/conftest.py +0 -0
  384. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/integration/scipp-analysis/dream/test_analyze_reduced_data.py +0 -0
  385. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/integration/scipp-analysis/dream/test_read_reduced_data.py +0 -0
  386. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/integration/scipp-analysis/dream/test_validate_meta_data.py +0 -0
  387. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/integration/scipp-analysis/dream/test_validate_physical_data.py +0 -0
  388. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/unit/easydiffraction/analysis/calculators/test_base.py +0 -0
  389. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/unit/easydiffraction/analysis/calculators/test_crysfml.py +0 -0
  390. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/unit/easydiffraction/analysis/calculators/test_factory.py +0 -0
  391. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/unit/easydiffraction/analysis/calculators/test_pdffit.py +0 -0
  392. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/unit/easydiffraction/analysis/categories/test_aliases.py +0 -0
  393. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/unit/easydiffraction/analysis/categories/test_constraints.py +0 -0
  394. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/unit/easydiffraction/analysis/categories/test_joint_fit_experiments.py +0 -0
  395. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/unit/easydiffraction/analysis/fit_helpers/test_metrics.py +0 -0
  396. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/unit/easydiffraction/analysis/fit_helpers/test_reporting.py +0 -0
  397. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/unit/easydiffraction/analysis/fit_helpers/test_tracking.py +0 -0
  398. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/unit/easydiffraction/analysis/minimizers/test_base.py +0 -0
  399. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/unit/easydiffraction/analysis/minimizers/test_bumps.py +0 -0
  400. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/unit/easydiffraction/analysis/minimizers/test_bumps_amoeba.py +0 -0
  401. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/unit/easydiffraction/analysis/minimizers/test_bumps_de.py +0 -0
  402. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/unit/easydiffraction/analysis/minimizers/test_bumps_lm.py +0 -0
  403. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/unit/easydiffraction/analysis/minimizers/test_dfols.py +0 -0
  404. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/unit/easydiffraction/analysis/minimizers/test_enums.py +0 -0
  405. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/unit/easydiffraction/analysis/minimizers/test_factory.py +0 -0
  406. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/unit/easydiffraction/analysis/minimizers/test_lmfit.py +0 -0
  407. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/unit/easydiffraction/analysis/minimizers/test_lmfit_least_squares.py +0 -0
  408. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/unit/easydiffraction/analysis/minimizers/test_lmfit_leastsq.py +0 -0
  409. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/unit/easydiffraction/analysis/test_analysis_access_params.py +0 -0
  410. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/unit/easydiffraction/analysis/test_analysis_show_empty.py +0 -0
  411. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/unit/easydiffraction/analysis/test_fitting.py +0 -0
  412. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/unit/easydiffraction/analysis/test_sequential.py +0 -0
  413. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/unit/easydiffraction/core/test_category.py +0 -0
  414. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/unit/easydiffraction/core/test_collection.py +0 -0
  415. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/unit/easydiffraction/core/test_datablock.py +0 -0
  416. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/unit/easydiffraction/core/test_diagnostic.py +0 -0
  417. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/unit/easydiffraction/core/test_factory.py +0 -0
  418. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/unit/easydiffraction/core/test_guard.py +0 -0
  419. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/unit/easydiffraction/core/test_identity.py +0 -0
  420. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/unit/easydiffraction/core/test_metadata.py +0 -0
  421. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/unit/easydiffraction/core/test_singletons.py +0 -0
  422. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/unit/easydiffraction/core/test_validation.py +0 -0
  423. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/unit/easydiffraction/crystallography/test_crystallography.py +0 -0
  424. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/unit/easydiffraction/crystallography/test_crystallography_coverage.py +0 -0
  425. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/unit/easydiffraction/crystallography/test_crystallography_wyckoff.py +0 -0
  426. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/unit/easydiffraction/crystallography/test_space_groups.py +0 -0
  427. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/unit/easydiffraction/crystallography/test_space_groups_coverage.py +0 -0
  428. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/unit/easydiffraction/datablocks/experiment/categories/background/test_chebyshev.py +0 -0
  429. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/unit/easydiffraction/datablocks/experiment/categories/background/test_enums.py +0 -0
  430. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/unit/easydiffraction/datablocks/experiment/categories/background/test_factory.py +0 -0
  431. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/unit/easydiffraction/datablocks/experiment/categories/background/test_line_segment.py +0 -0
  432. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/unit/easydiffraction/datablocks/experiment/categories/data/test_bragg_pd.py +0 -0
  433. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/unit/easydiffraction/datablocks/experiment/categories/data/test_bragg_sc.py +0 -0
  434. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/unit/easydiffraction/datablocks/experiment/categories/data/test_factory.py +0 -0
  435. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/unit/easydiffraction/datablocks/experiment/categories/data/test_total_pd.py +0 -0
  436. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/unit/easydiffraction/datablocks/experiment/categories/instrument/test_base.py +0 -0
  437. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/unit/easydiffraction/datablocks/experiment/categories/instrument/test_cwl.py +0 -0
  438. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/unit/easydiffraction/datablocks/experiment/categories/instrument/test_factory.py +0 -0
  439. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/unit/easydiffraction/datablocks/experiment/categories/peak/test_base.py +0 -0
  440. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/unit/easydiffraction/datablocks/experiment/categories/peak/test_cwl.py +0 -0
  441. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/unit/easydiffraction/datablocks/experiment/categories/peak/test_cwl_mixins.py +0 -0
  442. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/unit/easydiffraction/datablocks/experiment/categories/peak/test_tof_mixins.py +0 -0
  443. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/unit/easydiffraction/datablocks/experiment/categories/peak/test_total.py +0 -0
  444. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/unit/easydiffraction/datablocks/experiment/categories/peak/test_total_mixins.py +0 -0
  445. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/unit/easydiffraction/datablocks/experiment/categories/test_diffrn.py +0 -0
  446. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/unit/easydiffraction/datablocks/experiment/categories/test_excluded_regions.py +0 -0
  447. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/unit/easydiffraction/datablocks/experiment/categories/test_experiment_type.py +0 -0
  448. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/unit/easydiffraction/datablocks/experiment/categories/test_extinction.py +0 -0
  449. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/unit/easydiffraction/datablocks/experiment/categories/test_linked_crystal.py +0 -0
  450. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/unit/easydiffraction/datablocks/experiment/categories/test_linked_phases.py +0 -0
  451. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/unit/easydiffraction/datablocks/experiment/item/test_base.py +0 -0
  452. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/unit/easydiffraction/datablocks/experiment/item/test_bragg_pd.py +0 -0
  453. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/unit/easydiffraction/datablocks/experiment/item/test_bragg_sc.py +0 -0
  454. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/unit/easydiffraction/datablocks/experiment/item/test_enums.py +0 -0
  455. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/unit/easydiffraction/datablocks/experiment/item/test_factory.py +0 -0
  456. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/unit/easydiffraction/datablocks/experiment/item/test_factory_coverage.py +0 -0
  457. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/unit/easydiffraction/datablocks/experiment/item/test_total_pd.py +0 -0
  458. {easydiffraction-0.13.1/tests/unit/easydiffraction/display/tablers → easydiffraction-0.14.0/tests/unit/easydiffraction/datablocks/structure/categories}/__init__.py +0 -0
  459. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/unit/easydiffraction/datablocks/structure/categories/test_atom_sites.py +0 -0
  460. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/unit/easydiffraction/datablocks/structure/categories/test_cell.py +0 -0
  461. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/unit/easydiffraction/datablocks/structure/categories/test_space_group.py +0 -0
  462. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/unit/easydiffraction/datablocks/structure/item/test_base.py +0 -0
  463. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/unit/easydiffraction/datablocks/structure/item/test_base_coverage.py +0 -0
  464. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/unit/easydiffraction/datablocks/structure/item/test_factory.py +0 -0
  465. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/unit/easydiffraction/datablocks/structure/test_collection.py +0 -0
  466. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/unit/easydiffraction/datablocks/structure/test_collection_coverage.py +0 -0
  467. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/unit/easydiffraction/display/plotters/test_ascii.py +0 -0
  468. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/unit/easydiffraction/display/plotters/test_base.py +0 -0
  469. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/unit/easydiffraction/display/plotters/test_plotly.py +0 -0
  470. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/unit/easydiffraction/display/tablers/test_base.py +0 -0
  471. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/unit/easydiffraction/display/tablers/test_pandas.py +0 -0
  472. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/unit/easydiffraction/display/tablers/test_rich.py +0 -0
  473. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/unit/easydiffraction/display/test_base.py +0 -0
  474. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/unit/easydiffraction/display/test_plotting.py +0 -0
  475. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/unit/easydiffraction/display/test_plotting_coverage.py +0 -0
  476. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/unit/easydiffraction/display/test_tables.py +0 -0
  477. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/unit/easydiffraction/display/test_utils.py +0 -0
  478. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/unit/easydiffraction/io/cif/test_handler.py +0 -0
  479. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/unit/easydiffraction/io/cif/test_parse.py +0 -0
  480. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/unit/easydiffraction/io/test_ascii.py +0 -0
  481. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/unit/easydiffraction/project/test_project.py +0 -0
  482. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/unit/easydiffraction/project/test_project_info.py +0 -0
  483. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/unit/easydiffraction/project/test_project_load_and_summary_wrap.py +0 -0
  484. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/unit/easydiffraction/project/test_project_save.py +0 -0
  485. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/unit/easydiffraction/test___init__.py +0 -0
  486. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/unit/easydiffraction/utils/test_enums.py +0 -0
  487. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/unit/easydiffraction/utils/test_environment.py +0 -0
  488. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/unit/easydiffraction/utils/test_environment_coverage.py +0 -0
  489. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/unit/easydiffraction/utils/test_logging.py +0 -0
  490. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/unit/easydiffraction/utils/test_logging_coverage.py +0 -0
  491. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/unit/easydiffraction/utils/test_theme_detect.py +0 -0
  492. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/unit/easydiffraction/utils/test_utils.py +0 -0
  493. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tests/unit/easydiffraction/utils/test_utils_coverage.py +0 -0
  494. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tools/gen_tests_scaffold.py +0 -0
  495. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tools/generate_package_docs.py +0 -0
  496. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tools/license_headers.py +0 -0
  497. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tools/naming_check.py +0 -0
  498. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tools/param_consistency.py +0 -0
  499. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tools/test_scripts.py +0 -0
  500. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tools/test_structure_check.py +0 -0
  501. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tools/tweak_notebooks.py +0 -0
  502. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tools/update_docs_assets.py +0 -0
  503. {easydiffraction-0.13.1 → easydiffraction-0.14.0}/tools/update_github_labels.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: easydiffraction
3
- Version: 0.13.1
3
+ Version: 0.14.0
4
4
  Summary: Diffraction data analysis
5
5
  Project-URL: Homepage, https://easydiffraction.org
6
6
  Project-URL: Documentation, https://easyscience.github.io/diffraction-lib
@@ -69,6 +69,7 @@ Requires-Dist: nbstripout; extra == 'dev'
69
69
  Requires-Dist: pre-commit; extra == 'dev'
70
70
  Requires-Dist: pydoclint; extra == 'dev'
71
71
  Requires-Dist: pytest; extra == 'dev'
72
+ Requires-Dist: pytest-benchmark; extra == 'dev'
72
73
  Requires-Dist: pytest-cov; extra == 'dev'
73
74
  Requires-Dist: pytest-xdist; extra == 'dev'
74
75
  Requires-Dist: pyyaml; extra == 'dev'
@@ -389,14 +389,14 @@ class PeakFactory(FactoryBase):
389
389
  frozenset({
390
390
  ('scattering_type', ScatteringTypeEnum.BRAGG),
391
391
  ('beam_mode', BeamModeEnum.CONSTANT_WAVELENGTH),
392
- }): PeakProfileTypeEnum.PSEUDO_VOIGT,
392
+ }): PeakProfileTypeEnum.CWL_PSEUDO_VOIGT,
393
393
  frozenset({
394
394
  ('scattering_type', ScatteringTypeEnum.BRAGG),
395
395
  ('beam_mode', BeamModeEnum.TIME_OF_FLIGHT),
396
- }): PeakProfileTypeEnum.JORGENSEN,
396
+ }): PeakProfileTypeEnum.TOF_JORGENSEN,
397
397
  frozenset({
398
398
  ('scattering_type', ScatteringTypeEnum.TOTAL),
399
- }): PeakProfileTypeEnum.GAUSSIAN_DAMPED_SINC,
399
+ }): PeakProfileTypeEnum.TOTAL_GAUSSIAN_DAMPED_SINC,
400
400
  }
401
401
  ```
402
402
 
@@ -413,8 +413,8 @@ attributes:
413
413
  @PeakFactory.register
414
414
  class CwlPseudoVoigt(PeakBase, CwlBroadeningMixin):
415
415
  type_info = TypeInfo(
416
- tag='pseudo-voigt',
417
- description='Pseudo-Voigt profile',
416
+ tag=PeakProfileTypeEnum.CWL_PSEUDO_VOIGT.value,
417
+ description=PeakProfileTypeEnum.CWL_PSEUDO_VOIGT.description(),
418
418
  )
419
419
  compatibility = Compatibility(
420
420
  scattering_type=frozenset({ScatteringTypeEnum.BRAGG}),
@@ -478,7 +478,11 @@ from .line_segment import LineSegmentBackground
478
478
 
479
479
  ### 5.6 Tag Naming Convention
480
480
 
481
- Tags are the user-facing identifiers for selecting types. They must be:
481
+ Canonical tags are the stable identifiers for factory lookup and
482
+ serialisation. User-facing APIs may expose context-local aliases when
483
+ the owner object already provides enough context to disambiguate the
484
+ choice (for example, `experiment.peak_profile_type = 'pseudo-voigt'`
485
+ inside a CWL or TOF experiment). Canonical tags must be:
482
486
 
483
487
  - **Consistent** — use the same abbreviations everywhere.
484
488
  - **Hyphen-separated** — all lowercase, words joined by hyphens.
@@ -507,15 +511,22 @@ Tags are the user-facing identifiers for selecting types. They must be:
507
511
 
508
512
  **Peak tags**
509
513
 
510
- | Tag | Class |
511
- | ------------------------------------ | ---------------------------------- |
512
- | `pseudo-voigt` | `CwlPseudoVoigt` |
513
- | `pseudo-voigt + empirical asymmetry` | `CwlPseudoVoigtEmpiricalAsymmetry` |
514
- | `thompson-cox-hastings` | `CwlThompsonCoxHastings` |
515
- | `jorgensen` | `TofJorgensen` |
516
- | `jorgensen-von-dreele` | `TofJorgensenVonDreele` |
517
- | `double-jorgensen-von-dreele` | `TofDoubleJorgensenVonDreele` |
518
- | `gaussian-damped-sinc` | `TotalGaussianDampedSinc` |
514
+ Canonical peak tags are globally unique within `PeakFactory`. The
515
+ experiment-facing `peak_profile_type` getter, setter, and supported-type
516
+ display use context-local aliases so users do not need to type `cwl-`,
517
+ `tof-`, or `total-` when the experiment context already disambiguates
518
+ the choice.
519
+
520
+ | Canonical tag | Local alias | Class |
521
+ | -------------------------------------- | ------------------------------------ | ---------------------------------- |
522
+ | `cwl-pseudo-voigt` | `pseudo-voigt` | `CwlPseudoVoigt` |
523
+ | `cwl-pseudo-voigt-empirical-asymmetry` | `pseudo-voigt + empirical asymmetry` | `CwlPseudoVoigtEmpiricalAsymmetry` |
524
+ | `cwl-thompson-cox-hastings` | `thompson-cox-hastings` | `CwlThompsonCoxHastings` |
525
+ | `tof-pseudo-voigt` | `pseudo-voigt` | `TofPseudoVoigt` |
526
+ | `tof-jorgensen` | `jorgensen` | `TofJorgensen` |
527
+ | `tof-jorgensen-von-dreele` | `jorgensen-von-dreele` | `TofJorgensenVonDreele` |
528
+ | `tof-double-jorgensen-von-dreele` | `double-jorgensen-von-dreele` | `TofDoubleJorgensenVonDreele` |
529
+ | `total-gaussian-damped-sinc` | `gaussian-damped-sinc` | `TotalGaussianDampedSinc` |
519
530
 
520
531
  **Instrument tags**
521
532
 
@@ -684,14 +695,14 @@ category's `calculator_support` metadata and
684
695
  registry by `engine_imported` (whether the third-party library is
685
696
  available in the environment).
686
697
 
687
- The experiment exposes the standard switchable-category API:
698
+ The experiment exposes a dedicated `calculation` category:
688
699
 
689
- - `calculator` — read-only property (lazy, auto-resolved on first
690
- access)
691
- - `calculator_type` — getter + setter
692
- - `show_supported_calculator_types()` — filtered by data category
693
- support
694
- - `show_current_calculator_type()`
700
+ - `calculation.calculator_type` — getter + setter for the calculator
701
+ backend tag
702
+ - `calculation.calculator` — read-only access to the live backend
703
+ instance
704
+ - `calculation.show_calculator_types()` — filtered by data category
705
+ support and marks the current type
695
706
 
696
707
  ### 6.2 Minimiser
697
708
 
@@ -713,22 +724,19 @@ workflow:
713
724
 
714
725
  `Analysis` is bound to a `Project` and provides the high-level API:
715
726
 
716
- - Minimiser selection: `current_minimizer`,
717
- `show_available_minimizers()`
718
- - Fit mode: `fit_mode` (`CategoryItem` with a `mode` descriptor
719
- validated by `FitModeEnum`); `'single'` fits each experiment
720
- independently, `'joint'` fits all simultaneously with weights from
721
- `joint_fit_experiments`, `'sequential'` records that sequential
722
- fitting was used. `show_supported_fit_mode_types()` filters by
723
- experiment count (≤1 → only `single`; >1 → all three).
724
- `show_current_fit_mode_type()` prints the current mode.
727
+ - Fit configuration: `fit` (`CategoryItem` with `minimizer_type` and
728
+ `mode` descriptors). `fit.minimizer_type` selects the minimizer
729
+ backend. `fit.mode` stores whether fitting is `'single'`, `'joint'`,
730
+ or `'sequential'`. `fit.show_minimizer_types()` lists supported
731
+ minimizers; `fit.show_modes()` filters modes by experiment count (≤1 →
732
+ only `single`; >1 all three).
725
733
  - Joint-fit weights: `joint_fit_experiments` (`CategoryCollection` of
726
- per-experiment weight entries); sibling of `fit_mode`, not a child.
734
+ per-experiment weight entries); sibling of `fit`, not a child.
727
735
  - Parameter tables: `show_all_params()`, `show_fittable_params()`,
728
736
  `show_free_params()`, `how_to_access_parameters()`
729
- - Fitting: `fit()` dispatches single/joint; `fit_sequential()` handles
730
- sequential mode (sets `fit_mode` to `'sequential'` internally).
731
- `display.fit_results()` shows results.
737
+ - Fitting: `fit()` dispatches single/joint through the callable `fit`
738
+ category; `fit_sequential()` handles sequential mode (sets `fit.mode`
739
+ to `'sequential'` internally). `display.fit_results()` shows results.
732
740
  - Aliases and constraints (single-type categories; no public `_type`
733
741
  getter or setter)
734
742
 
@@ -751,9 +759,9 @@ It owns and coordinates all components:
751
759
  | `project.info` | `ProjectInfo` | Metadata: name, title, description, path |
752
760
  | `project.structures` | `Structures` | Collection of structure datablocks |
753
761
  | `project.experiments` | `Experiments` | Collection of experiment datablocks |
754
- | `project.analysis` | `Analysis` | Calculator, minimiser, fitting |
762
+ | `project.display` | `Display` | Plot/table engine selection and facades |
763
+ | `project.analysis` | `Analysis` | Minimiser, fitting, aliases, constraints |
755
764
  | `project.summary` | `Summary` | Report generation |
756
- | `project.plotter` | `Plotter` | Visualisation |
757
765
  | `project.verbosity` | `str` | Console output level (full/short/silent) |
758
766
 
759
767
  ### 7.1 Data Flow
@@ -778,7 +786,7 @@ Projects are saved as a directory of CIF files:
778
786
 
779
787
  ```shell
780
788
  project_dir/
781
- ├── project.cif # ProjectInfo
789
+ ├── project.cif # ProjectInfo + Display preferences
782
790
  ├── summary.cif # Summary report
783
791
  ├── structures/
784
792
  │ └── lbco.cif # One file per structure
@@ -788,6 +796,13 @@ project_dir/
788
796
  └── analysis.cif # Analysis settings
789
797
  ```
790
798
 
799
+ `project.cif` carries both the `_project.*` metadata and the
800
+ `_display.*` engine preferences (`plotter_type`, `tabler_type`), so a
801
+ saved project re-opens with the same display backends. Per-experiment
802
+ calculator selection (`_calculation.calculator_type`) lives in each
803
+ experiment file, and fit configuration (`_fit.minimizer_type`,
804
+ `_fit.mode`) lives in `analysis/analysis.cif`.
805
+
791
806
  ### 7.3 Verbosity
792
807
 
793
808
  `Project.verbosity` controls how much console output operations produce.
@@ -894,7 +909,7 @@ project.experiments['hrpt'].instrument.setup_wavelength = 1.494
894
909
  project.experiments['hrpt'].instrument.calib_twotheta_offset = 0.6
895
910
 
896
911
  # Browse and select peak profile type
897
- project.experiments['hrpt'].show_supported_peak_profile_types()
912
+ project.experiments['hrpt'].show_peak_profile_types()
898
913
  project.experiments['hrpt'].peak_profile_type = 'pseudo-voigt'
899
914
 
900
915
  # Set peak profile parameters
@@ -902,7 +917,7 @@ project.experiments['hrpt'].peak.broad_gauss_u = 0.1
902
917
  project.experiments['hrpt'].peak.broad_gauss_v = -0.1
903
918
 
904
919
  # Browse and select background type
905
- project.experiments['hrpt'].show_supported_background_types()
920
+ project.experiments['hrpt'].show_background_types()
906
921
  project.experiments['hrpt'].background_type = 'line-segment'
907
922
 
908
923
  # Add background points
@@ -917,12 +932,12 @@ project.experiments['hrpt'].linked_phases.create(id='lbco', scale=10.0)
917
932
 
918
933
  ```python
919
934
  # Calculator is auto-resolved per experiment; override if needed
920
- project.experiments['hrpt'].show_supported_calculator_types()
921
- project.experiments['hrpt'].calculator_type = 'cryspy'
922
- project.analysis.current_minimizer = 'lmfit'
935
+ project.experiments['hrpt'].calculation.show_calculator_types()
936
+ project.experiments['hrpt'].calculation.calculator_type = 'cryspy'
937
+ project.analysis.fit.minimizer_type = 'lmfit'
923
938
 
924
939
  # Plot before fitting
925
- project.plotter.plot_meas_vs_calc(expt_name='hrpt', show_residual=True)
940
+ project.display.plotter.plot_meas_vs_calc(expt_name='hrpt', show_residual=True)
926
941
 
927
942
  # Select free parameters
928
943
  project.structures['lbco'].cell.length_a.free = True
@@ -938,7 +953,7 @@ project.analysis.fit()
938
953
  project.analysis.display.fit_results()
939
954
 
940
955
  # Plot after fitting
941
- project.plotter.plot_meas_vs_calc(expt_name='hrpt', show_residual=True)
956
+ project.display.plotter.plot_meas_vs_calc(expt_name='hrpt', show_residual=True)
942
957
 
943
958
  # Save
944
959
  project.save()
@@ -1030,13 +1045,12 @@ exposes the full switchable API:
1030
1045
  | --------------- | -------------------------------------------- | ------------------------------------------------ |
1031
1046
  | Current object | `<category>` property (read-only) | `expt.background`, `expt.peak` |
1032
1047
  | Active type tag | `<category>_type` property (getter + setter) | `expt.background_type`, `expt.peak_profile_type` |
1033
- | Show supported | `show_supported_<category>_types()` | `expt.show_supported_background_types()` |
1034
- | Show current | `show_current_<category>_type()` | `expt.show_current_peak_profile_type()` |
1048
+ | Show types | `show_<category>_types()` | `expt.show_background_types()` |
1035
1049
 
1036
1050
  Multi-type categories:
1037
1051
 
1038
- - **Experiment:** `calculator_type`, `background_type`,
1039
- `peak_profile_type`, `extinction_type`.
1052
+ - **Experiment:** `background_type`, `peak_profile_type`,
1053
+ `extinction_type`.
1040
1054
 
1041
1055
  Categories that are **fixed at creation** (determined by the experiment
1042
1056
  type and never changed) expose only a read-only `<category>` property
@@ -1056,10 +1070,15 @@ Single-type categories (no public `_type` property):
1056
1070
  - **Structure:** `cell`, `space_group`, `atom_sites`, `atom_site_aniso`.
1057
1071
  - **Analysis:** `aliases`, `constraints`.
1058
1072
 
1059
- `fit_mode` has show methods (`show_supported_fit_mode_types()`,
1060
- `show_current_fit_mode_type()`) but no public `_type` getter or setter
1061
- because it has only one factory implementation. The mode is changed via
1062
- the `fit_mode.mode` descriptor directly.
1073
+ `fit` is a dedicated analysis category. Its public selector surface is
1074
+ `fit.minimizer_type` and `fit.mode`; there is no separate owner-level
1075
+ proxy API. Likewise, `calculation` is a dedicated experiment category
1076
+ that owns calculator selection —
1077
+ `experiment.calculation.calculator_type` and
1078
+ `experiment.calculation.show_calculator_types()` — instead of the
1079
+ selector being exposed at the experiment owner level. The same pattern
1080
+ applies to `display` on `Project`, which owns `plotter_type` and
1081
+ `tabler_type` (see §9.4.1).
1063
1082
 
1064
1083
  **Design decisions:**
1065
1084
 
@@ -1074,17 +1093,39 @@ the `fit_mode.mode` descriptor directly.
1074
1093
  displaying the current content (not on the base
1075
1094
  `CategoryItem`/`CategoryCollection`).
1076
1095
 
1096
+ #### 9.4.1 Selector Families
1097
+
1098
+ Not every `_type` attribute represents the same kind of choice. The API
1099
+ recognises three distinct selector families. They share a similar
1100
+ `<name>_type` shape so the user can inspect and set them uniformly, but
1101
+ their intent and ownership differ:
1102
+
1103
+ | Family | User intent | Examples | CIF |
1104
+ | ---------------------------------- | ------------------------------- | --------------------------------------------------------------------------- | ------------------------------------------------------------------------------ |
1105
+ | Backend selector | Pick an execution backend | `fit.minimizer_type`, `calculation.calculator_type`, `display.plotter_type` | `_fit.minimizer_type`, `_calculation.calculator_type`, `_display.plotter_type` |
1106
+ | Switchable-category impl. selector | Swap a category implementation | `experiment.background_type`, `experiment.peak_profile_type` | category-owned type tag such as `_peak.profile_type` |
1107
+ | Semantic value selector | Pick a scientific/analysis mode | `fit.mode` | `_fit.mode` |
1108
+
1109
+ Backend selectors and semantic value selectors live on a dedicated
1110
+ configuration category (`fit`, `calculation`, `display`). Switchable-
1111
+ category implementation selectors are owned by the host (typically the
1112
+ experiment) because switching them replaces the category instance, as
1113
+ described in §9.3.
1114
+
1077
1115
  ### 9.5 Discoverable Supported Options
1078
1116
 
1079
1117
  The user can always discover what is supported for the current
1080
1118
  experiment:
1081
1119
 
1082
1120
  ```python
1083
- expt.show_supported_peak_profile_types()
1084
- expt.show_supported_background_types()
1085
- expt.show_supported_calculator_types()
1086
- expt.show_supported_extinction_types()
1087
- project.analysis.show_available_minimizers()
1121
+ expt.show_peak_profile_types()
1122
+ expt.show_background_types()
1123
+ expt.calculation.show_calculator_types()
1124
+ expt.show_extinction_types()
1125
+ project.analysis.fit.show_minimizer_types()
1126
+ project.analysis.fit.show_modes()
1127
+ project.display.show_plotter_types()
1128
+ project.display.show_tabler_types()
1088
1129
  ```
1089
1130
 
1090
1131
  Available calculators are filtered by `engine_imported` (whether the
@@ -1122,10 +1163,10 @@ but internal dispatch always uses the enum:
1122
1163
 
1123
1164
  ```python
1124
1165
  # ✅ Correct — compare with enum
1125
- if self._fit_mode.mode.value == FitModeEnum.JOINT:
1166
+ if self._fit.mode.value == FitModeEnum.JOINT:
1126
1167
 
1127
1168
  # ❌ Wrong — compare with raw string
1128
- if self._fit_mode.mode.value == 'joint':
1169
+ if self._fit.mode.value == 'joint':
1129
1170
  ```
1130
1171
 
1131
1172
  ### 9.7 Flat Category Structure — No Nested Categories
@@ -1150,25 +1191,26 @@ Owner
1150
1191
  └── CategoryB ← WRONG: CategoryB is a child of CategoryA
1151
1192
  ```
1152
1193
 
1153
- **Example — `fit_mode` and `joint_fit_experiments`:** `fit_mode` is a
1154
- `CategoryItem` holding the active strategy (`'single'` or `'joint'`).
1194
+ **Example — `fit` and `joint_fit_experiments`:** `fit` is a
1195
+ `CategoryItem` holding the active minimizer and fitting mode.
1155
1196
  `joint_fit_experiments` is a separate `CategoryCollection` holding
1156
1197
  per-experiment weights. Both are direct children of `Analysis`, not
1157
1198
  nested:
1158
1199
 
1159
1200
  ```python
1160
1201
  # ✅ Correct — sibling categories on Analysis
1161
- project.analysis.fit_mode.mode = 'joint'
1202
+ project.analysis.fit.mode = 'joint'
1162
1203
  project.analysis.joint_fit_experiments['npd'].weight = 0.7
1163
1204
 
1164
- # ❌ Wrong — joint_fit_experiments as a child of fit_mode
1165
- project.analysis.fit_mode.joint_fit_experiments['npd'].weight = 0.7
1205
+ # ❌ Wrong — joint_fit_experiments as a child of fit
1206
+ project.analysis.fit.joint_fit_experiments['npd'].weight = 0.7
1166
1207
  ```
1167
1208
 
1168
1209
  In CIF output, sibling categories appear as independent blocks:
1169
1210
 
1170
1211
  ```
1171
- _analysis.fit_mode joint
1212
+ _fit.minimizer_type lmfit
1213
+ _fit.mode joint
1172
1214
 
1173
1215
  loop_
1174
1216
  _joint_fit_experiment.id
@@ -1326,16 +1368,16 @@ in `KNOWN_ALIASES` inside the tool script.
1326
1368
 
1327
1369
  ### 10.3 What to Test per Source Module Type
1328
1370
 
1329
- | Source module type | Required tests |
1330
- | -------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- |
1331
- | **Core base class** (`core/`) | Instantiation, public properties, validation edge cases, identity wiring. |
1332
- | **Factory** (`factory.py`) | Registration check, `supported_tags()`, `default_tag()`, `create()` for each tag, `show_supported()` output, invalid-tag handling. |
1333
- | **Category** (`default.py`) | Instantiation, all public properties (read + write where applicable), CIF round-trip (`as_cif` → `from_cif`), parameter enumeration. |
1334
- | **Enum** (`enums.py`) | Membership of all members, `default()` method, `description()` for every member, `StrEnum` string equality. |
1335
- | **Datablock item** (`base.py`) | Construction, switchable-category full API (`<cat>`, `<cat>_type` get/set, `show_supported_<cat>_types`, `show_current_<cat>_type`), `show`/`show_as_cif`. |
1336
- | **Collection** (`collection.py`) | `create`, `add`, `remove`, `names`, `show_names`, `show_params`, iteration, duplicate-name handling. |
1337
- | **Calculator / Minimizer** | `can_handle()` with compatible and incompatible experiment types, `_compute()` stub or mock. |
1338
- | **Display / IO** | Input → output for representative cases; file-not-found and malformed-input error paths. |
1371
+ | Source module type | Required tests |
1372
+ | -------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------ |
1373
+ | **Core base class** (`core/`) | Instantiation, public properties, validation edge cases, identity wiring. |
1374
+ | **Factory** (`factory.py`) | Registration check, `supported_tags()`, `default_tag()`, `create()` for each tag, `show_supported()` output, invalid-tag handling. |
1375
+ | **Category** (`default.py`) | Instantiation, all public properties (read + write where applicable), CIF round-trip (`as_cif` → `from_cif`), parameter enumeration. |
1376
+ | **Enum** (`enums.py`) | Membership of all members, `default()` method, `description()` for every member, `StrEnum` string equality. |
1377
+ | **Datablock item** (`base.py`) | Construction, switchable-category full API (`<cat>`, `<cat>_type` get/set, `show_<cat>_types`), `show`/`show_as_cif`. |
1378
+ | **Collection** (`collection.py`) | `create`, `add`, `remove`, `names`, `show_names`, `show_params`, iteration, duplicate-name handling. |
1379
+ | **Calculator / Minimizer** | `can_handle()` with compatible and incompatible experiment types, `_compute()` stub or mock. |
1380
+ | **Display / IO** | Input → output for representative cases; file-not-found and malformed-input error paths. |
1339
1381
 
1340
1382
  ### 10.4 Test Conventions
1341
1383
 
@@ -117,9 +117,19 @@ to an incompatible data class and silently discarding loaded data.
117
117
 
118
118
  Added `SEQUENTIAL = 'sequential'` to `FitModeEnum`. `fit_sequential()`
119
119
  now sets `fit_mode.mode = 'sequential'` internally so the mode is
120
- persisted in CIF. Added `show_supported_fit_mode_types()` (filters by
121
- experiment count: ≤1 → only `single`; >1 → all three) and
122
- `show_current_fit_mode_type()` on `Analysis`. If `fit()` is called while
123
- mode is `'sequential'`, it logs an error directing the user to
124
- `fit_sequential()`. Promoted `fit_mode` from a pure single-type category
125
- to one with show methods.
120
+ persisted in CIF. Added `show_fit_mode_types()` (filters by experiment
121
+ count: ≤1 → only `single`; >1 → all three) and `show_fit_mode_types()`
122
+ on `Analysis`. If `fit()` is called while mode is `'sequential'`, it
123
+ logs an error directing the user to `fit_sequential()`. Promoted
124
+ `fit_mode` from a pure single-type category to one with show methods.
125
+
126
+ ---
127
+
128
+ ## Persist Per-Experiment Calculator Selection
129
+
130
+ Calculator selection now lives in the experiment-side `calculation`
131
+ category and is persisted in experiment CIF via
132
+ `_calculation.calculator_type`. Loading restores the explicit backend
133
+ selection before dependent experiment categories are populated, so saved
134
+ projects keep the exact active calculator configuration instead of
135
+ falling back to auto-resolution.
@@ -14,7 +14,7 @@ needed.
14
14
 
15
15
  **Type:** Fragility
16
16
 
17
- `joint_fit_experiments` is created once when `fit_mode` becomes
17
+ `joint_fit_experiments` is created once when `fit.mode` becomes
18
18
  `'joint'`. If experiments are added, removed, or renamed afterwards, the
19
19
  weight collection is stale. Joint fitting can fail with missing keys or
20
20
  run with incorrect weights.
@@ -180,25 +180,6 @@ minimiser.
180
180
 
181
181
  ---
182
182
 
183
- ## 16. 🟡 Persist Per-Experiment `calculator_type`
184
-
185
- **Type:** Completeness
186
-
187
- The current architecture moved calculator selection to the experiment
188
- level via `calculator_type`, but this selection is not written to CIF
189
- during `save()` / `show_as_cif()`. Reloading or exporting a project
190
- therefore loses explicit calculator choices and falls back to
191
- auto-resolution.
192
-
193
- **Fix:** serialise `calculator_type` as part of the experiment or
194
- analysis state, and make sure `load()` restores it. The saved project
195
- should represent the exact active calculator configuration, not just a
196
- re-derivable default.
197
-
198
- **Depends on:** nothing.
199
-
200
- ---
201
-
202
183
  ## 17. 🟢 Use PDF-Specific CIF Names for Total Scattering
203
184
 
204
185
  **Type:** Naming
@@ -1191,9 +1172,9 @@ check. Options:
1191
1172
 
1192
1173
  **Type:** API completeness
1193
1174
 
1194
- `show_supported_calculator_types()` exists per-experiment, but there is
1195
- no project/analysis-level method to list all available calculator
1196
- engines. Users exploring the API have no single entry point to see what
1175
+ `show_calculator_types()` exists per-experiment, but there is no
1176
+ project/analysis-level method to list all available calculator engines.
1177
+ Users exploring the API have no single entry point to see what
1197
1178
  calculators are installed.
1198
1179
 
1199
1180
  **Depends on:** nothing.
@@ -1206,8 +1187,8 @@ calculators are installed.
1206
1187
 
1207
1188
  The switchable-category naming convention prescribes `<category>_type`
1208
1189
  (getter/setter) and `show_supported_<category>_types()`. But some names
1209
- deviate: e.g. `show_supported_minimizers()` instead of
1210
- `show_supported_minimizer_types()`, and `current_minimizer` instead of
1190
+ deviate: e.g. `show_minimizer_types()` instead of
1191
+ `show_supported_minimizer_types()`, and `minimizer_type` instead of
1211
1192
  `minimizer_type`. Audit and align all switchable-category APIs.
1212
1193
 
1213
1194
  **Depends on:** nothing.
@@ -1446,7 +1427,6 @@ operation is possible (e.g. in automated pipelines or tests).
1446
1427
  | 13 | Suppress redundant dirty-flag sets | 🟢 Low | Performance |
1447
1428
  | 14 | Finer-grained change tracking | 🟢 Low | Performance |
1448
1429
  | 15 | Validate joint-fit weights | 🟡 Med | Correctness |
1449
- | 16 | Persist per-experiment `calculator_type` | 🟡 Med | Completeness |
1450
1430
  | 17 | Use PDF-specific CIF names | 🟢 Low | Naming |
1451
1431
  | 18 | Move CIF v2→v1 conversion out of calculator | 🟢 Low | Maintainability |
1452
1432
  | 19 | Debug-mode logging for calculator imports | 🟢 Low | Diagnostics |
@@ -30,14 +30,14 @@
30
30
  │ │ │ │ └── 🏷️ class Constraints
31
31
  │ │ │ └── 📄 factory.py
32
32
  │ │ │ └── 🏷️ class ConstraintsFactory
33
- │ │ ├── 📁 fit_mode
33
+ │ │ ├── 📁 fit
34
34
  │ │ │ ├── 📄 __init__.py
35
+ │ │ │ ├── 📄 default.py
36
+ │ │ │ │ └── 🏷️ class Fit
35
37
  │ │ │ ├── 📄 enums.py
36
38
  │ │ │ │ └── 🏷️ class FitModeEnum
37
- │ │ │ ├── 📄 factory.py
38
- │ │ │└── 🏷️ class FitModeFactory
39
- │ │ │ └── 📄 fit_mode.py
40
- │ │ │ └── 🏷️ class FitMode
39
+ │ │ │ └── 📄 factory.py
40
+ │ │ │ └── 🏷️ class FitFactory
41
41
  │ │ ├── 📁 joint_fit_experiments
42
42
  │ │ │ ├── 📄 __init__.py
43
43
  │ │ │ ├── 📄 default.py
@@ -152,6 +152,12 @@
152
152
  │ │ │ │ └── 📄 line_segment.py
153
153
  │ │ │ │ ├── 🏷️ class LineSegment
154
154
  │ │ │ │ └── 🏷️ class LineSegmentBackground
155
+ │ │ │ ├── 📁 calculation
156
+ │ │ │ │ ├── 📄 __init__.py
157
+ │ │ │ │ ├── 📄 default.py
158
+ │ │ │ │ │ └── 🏷️ class Calculation
159
+ │ │ │ │ └── 📄 factory.py
160
+ │ │ │ │ └── 🏷️ class CalculationFactory
155
161
  │ │ │ ├── 📁 data
156
162
  │ │ │ │ ├── 📄 __init__.py
157
163
  │ │ │ │ ├── 📄 bragg_pd.py
@@ -238,6 +244,7 @@
238
244
  │ │ │ │ ├── 📄 factory.py
239
245
  │ │ │ │ │ └── 🏷️ class PeakFactory
240
246
  │ │ │ │ ├── 📄 tof.py
247
+ │ │ │ │ │ ├── 🏷️ class TofPseudoVoigt
241
248
  │ │ │ │ │ ├── 🏷️ class TofJorgensen
242
249
  │ │ │ │ │ ├── 🏷️ class TofJorgensenVonDreele
243
250
  │ │ │ │ │ └── 🏷️ class TofDoubleJorgensenVonDreele
@@ -360,6 +367,14 @@
360
367
  │ ├── 📄 __init__.py
361
368
  │ └── 📄 ascii.py
362
369
  ├── 📁 project
370
+ │ ├── 📁 categories
371
+ │ │ ├── 📁 display
372
+ │ │ │ ├── 📄 __init__.py
373
+ │ │ │ ├── 📄 default.py
374
+ │ │ │ │ └── 🏷️ class Display
375
+ │ │ │ └── 📄 factory.py
376
+ │ │ │ └── 🏷️ class DisplayFactory
377
+ │ │ └── 📄 __init__.py
363
378
  │ ├── 📄 __init__.py
364
379
  │ ├── 📄 project.py
365
380
  │ │ └── 🏷️ class Project
@@ -19,11 +19,11 @@
19
19
  │ │ │ ├── 📄 __init__.py
20
20
  │ │ │ ├── 📄 default.py
21
21
  │ │ │ └── 📄 factory.py
22
- │ │ ├── 📁 fit_mode
22
+ │ │ ├── 📁 fit
23
23
  │ │ │ ├── 📄 __init__.py
24
+ │ │ │ ├── 📄 default.py
24
25
  │ │ │ ├── 📄 enums.py
25
- │ │ │ ├── 📄 factory.py
26
- │ │ │ └── 📄 fit_mode.py
26
+ │ │ │ └── 📄 factory.py
27
27
  │ │ ├── 📁 joint_fit_experiments
28
28
  │ │ │ ├── 📄 __init__.py
29
29
  │ │ │ ├── 📄 default.py
@@ -78,6 +78,10 @@
78
78
  │ │ │ │ ├── 📄 enums.py
79
79
  │ │ │ │ ├── 📄 factory.py
80
80
  │ │ │ │ └── 📄 line_segment.py
81
+ │ │ │ ├── 📁 calculation
82
+ │ │ │ │ ├── 📄 __init__.py
83
+ │ │ │ │ ├── 📄 default.py
84
+ │ │ │ │ └── 📄 factory.py
81
85
  │ │ │ ├── 📁 data
82
86
  │ │ │ │ ├── 📄 __init__.py
83
87
  │ │ │ │ ├── 📄 bragg_pd.py
@@ -187,6 +191,12 @@
187
191
  │ ├── 📄 __init__.py
188
192
  │ └── 📄 ascii.py
189
193
  ├── 📁 project
194
+ │ ├── 📁 categories
195
+ │ │ ├── 📁 display
196
+ │ │ │ ├── 📄 __init__.py
197
+ │ │ │ ├── 📄 default.py
198
+ │ │ │ └── 📄 factory.py
199
+ │ │ └── 📄 __init__.py
190
200
  │ ├── 📄 __init__.py
191
201
  │ ├── 📄 project.py
192
202
  │ └── 📄 project_info.py
@@ -178,7 +178,7 @@
178
178
  "outputs": [],
179
179
  "source": [
180
180
  "# Show parameter correlations\n",
181
- "project.plotter.plot_param_correlations()"
181
+ "project.display.plotter.plot_param_correlations()"
182
182
  ]
183
183
  },
184
184
  {
@@ -245,7 +245,7 @@
245
245
  "outputs": [],
246
246
  "source": [
247
247
  "# Show parameter correlations\n",
248
- "project.plotter.plot_param_correlations()"
248
+ "project.display.plotter.plot_param_correlations()"
249
249
  ]
250
250
  },
251
251
  {
@@ -267,7 +267,7 @@
267
267
  "outputs": [],
268
268
  "source": [
269
269
  "# Plot measured vs. calculated diffraction patterns\n",
270
- "project.plotter.plot_meas_vs_calc(expt_name='hrpt', show_residual=True)"
270
+ "project.display.plotter.plot_meas_vs_calc(expt_name='hrpt', show_residual=True)"
271
271
  ]
272
272
  }
273
273
  ],
@@ -65,7 +65,7 @@ project.analysis.display.fit_results()
65
65
 
66
66
  # %%
67
67
  # Show parameter correlations
68
- project.plotter.plot_param_correlations()
68
+ project.display.plotter.plot_param_correlations()
69
69
 
70
70
  # %% [markdown]
71
71
  # ## Step 5: Perform Analysis (with constraints)
@@ -99,7 +99,7 @@ project.analysis.display.fit_results()
99
99
 
100
100
  # %%
101
101
  # Show parameter correlations
102
- project.plotter.plot_param_correlations()
102
+ project.display.plotter.plot_param_correlations()
103
103
 
104
104
  # %%
105
105
  # Show defined experiment names
@@ -107,4 +107,4 @@ project.experiments.show_names()
107
107
 
108
108
  # %%
109
109
  # Plot measured vs. calculated diffraction patterns
110
- project.plotter.plot_meas_vs_calc(expt_name='hrpt', show_residual=True)
110
+ project.display.plotter.plot_meas_vs_calc(expt_name='hrpt', show_residual=True)
@@ -208,7 +208,7 @@
208
208
  "source": [
209
209
  "project.analysis.fit()\n",
210
210
  "project.analysis.display.fit_results()\n",
211
- "project.plotter.plot_param_correlations(threshold=0.75)"
211
+ "project.display.plotter.plot_param_correlations(threshold=0.75)"
212
212
  ]
213
213
  },
214
214
  {
@@ -226,7 +226,7 @@
226
226
  "metadata": {},
227
227
  "outputs": [],
228
228
  "source": [
229
- "project.plotter.plot_meas_vs_calc(expt_name='pdf', show_residual=True)"
229
+ "project.display.plotter.plot_meas_vs_calc(expt_name='pdf', show_residual=True)"
230
230
  ]
231
231
  }
232
232
  ],
@@ -83,10 +83,10 @@ project.experiments['pdf'].peak.sharp_delta_2.free = True
83
83
  # %%
84
84
  project.analysis.fit()
85
85
  project.analysis.display.fit_results()
86
- project.plotter.plot_param_correlations(threshold=0.75)
86
+ project.display.plotter.plot_param_correlations(threshold=0.75)
87
87
 
88
88
  # %% [markdown]
89
89
  # ## Plot Measured vs Calculated
90
90
 
91
91
  # %%
92
- project.plotter.plot_meas_vs_calc(expt_name='pdf', show_residual=True)
92
+ project.display.plotter.plot_meas_vs_calc(expt_name='pdf', show_residual=True)