easydiffraction 0.12.0__tar.gz → 0.13.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 (566) hide show
  1. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/.copier-answers.yml +1 -1
  2. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/.github/copilot-instructions.md +19 -3
  3. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/.github/workflows/pypi-test.yml +1 -0
  4. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/.github/workflows/test.yml +36 -2
  5. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/.gitignore +1 -0
  6. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/PKG-INFO +1 -1
  7. easydiffraction-0.13.0/docs/architecture/ROADMAP.md +382 -0
  8. easydiffraction-0.13.0/docs/architecture/adp_implementation.md +321 -0
  9. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/docs/architecture/architecture.md +172 -98
  10. easydiffraction-0.13.0/docs/architecture/cryspy-dwf-bug.md +126 -0
  11. easydiffraction-0.13.0/docs/architecture/issues_closed.md +125 -0
  12. easydiffraction-0.13.0/docs/architecture/issues_open.md +1524 -0
  13. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/docs/architecture/package-structure-full.md +41 -13
  14. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/docs/architecture/package-structure-short.md +15 -3
  15. easydiffraction-0.13.0/docs/docs/tutorials/data/MAT005500.BS.bin02Double_0_int_c.histogramIgor +12638 -0
  16. easydiffraction-0.13.0/docs/docs/tutorials/data/MAT005500.SE.bin02Double_0_int_c.histogramIgor +9813 -0
  17. easydiffraction-0.13.0/docs/docs/tutorials/data/ed-7.xye +5600 -0
  18. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/docs/docs/tutorials/ed-1.ipynb +25 -25
  19. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/docs/docs/tutorials/ed-1.py +2 -2
  20. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/docs/docs/tutorials/ed-10.ipynb +24 -23
  21. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/docs/docs/tutorials/ed-10.py +3 -2
  22. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/docs/docs/tutorials/ed-11.ipynb +27 -26
  23. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/docs/docs/tutorials/ed-11.py +3 -2
  24. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/docs/docs/tutorials/ed-12.ipynb +33 -32
  25. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/docs/docs/tutorials/ed-12.py +5 -4
  26. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/docs/docs/tutorials/ed-13.ipynb +230 -231
  27. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/docs/docs/tutorials/ed-13.py +25 -26
  28. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/docs/docs/tutorials/ed-14.ipynb +159 -46
  29. easydiffraction-0.13.0/docs/docs/tutorials/ed-14.py +159 -0
  30. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/docs/docs/tutorials/ed-15.ipynb +120 -35
  31. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/docs/docs/tutorials/ed-15.py +35 -6
  32. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/docs/docs/tutorials/ed-16.ipynb +67 -66
  33. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/docs/docs/tutorials/ed-16.py +8 -7
  34. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/docs/docs/tutorials/ed-17.ipynb +117 -81
  35. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/docs/docs/tutorials/ed-17.py +31 -19
  36. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/docs/docs/tutorials/ed-18.ipynb +35 -17
  37. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/docs/docs/tutorials/ed-18.py +7 -1
  38. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/docs/docs/tutorials/ed-2.ipynb +129 -39
  39. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/docs/docs/tutorials/ed-2.py +46 -9
  40. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/docs/docs/tutorials/ed-3.ipynb +183 -210
  41. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/docs/docs/tutorials/ed-3.py +11 -20
  42. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/docs/docs/tutorials/ed-4.ipynb +69 -68
  43. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/docs/docs/tutorials/ed-4.py +6 -5
  44. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/docs/docs/tutorials/ed-5.ipynb +86 -86
  45. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/docs/docs/tutorials/ed-5.py +23 -25
  46. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/docs/docs/tutorials/ed-6.ipynb +100 -90
  47. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/docs/docs/tutorials/ed-6.py +13 -10
  48. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/docs/docs/tutorials/ed-7.ipynb +109 -94
  49. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/docs/docs/tutorials/ed-7.py +20 -12
  50. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/docs/docs/tutorials/ed-8.ipynb +87 -86
  51. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/docs/docs/tutorials/ed-8.py +27 -26
  52. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/docs/docs/tutorials/ed-9.ipynb +80 -87
  53. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/docs/docs/tutorials/ed-9.py +16 -17
  54. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/docs/docs/user-guide/analysis-workflow/analysis.md +2 -2
  55. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/docs/docs/user-guide/analysis-workflow/model.md +2 -2
  56. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/docs/docs/user-guide/first-steps.md +10 -10
  57. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/docs/docs/user-guide/parameters.md +13 -13
  58. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/pixi.lock +126 -126
  59. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/pixi.toml +3 -1
  60. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/pyproject.toml +2 -2
  61. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/__main__.py +8 -8
  62. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/analysis/analysis.py +55 -128
  63. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/analysis/calculators/base.py +2 -0
  64. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/analysis/calculators/crysfml.py +8 -8
  65. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/analysis/calculators/cryspy.py +357 -25
  66. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/analysis/calculators/pdffit.py +2 -3
  67. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/analysis/categories/fit_mode/enums.py +6 -2
  68. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/analysis/categories/fit_mode/fit_mode.py +2 -1
  69. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/analysis/fit_helpers/reporting.py +41 -0
  70. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/analysis/fitting.py +21 -2
  71. easydiffraction-0.13.0/src/easydiffraction/analysis/minimizers/__init__.py +11 -0
  72. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/analysis/minimizers/base.py +109 -4
  73. easydiffraction-0.13.0/src/easydiffraction/analysis/minimizers/bumps.py +266 -0
  74. easydiffraction-0.13.0/src/easydiffraction/analysis/minimizers/bumps_amoeba.py +35 -0
  75. easydiffraction-0.13.0/src/easydiffraction/analysis/minimizers/bumps_de.py +35 -0
  76. easydiffraction-0.13.0/src/easydiffraction/analysis/minimizers/bumps_lm.py +37 -0
  77. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/analysis/minimizers/dfols.py +4 -3
  78. easydiffraction-0.13.0/src/easydiffraction/analysis/minimizers/enums.py +51 -0
  79. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/analysis/minimizers/factory.py +2 -1
  80. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/analysis/minimizers/lmfit.py +4 -3
  81. easydiffraction-0.13.0/src/easydiffraction/analysis/minimizers/lmfit_least_squares.py +37 -0
  82. easydiffraction-0.13.0/src/easydiffraction/analysis/minimizers/lmfit_leastsq.py +39 -0
  83. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/analysis/sequential.py +1 -0
  84. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/core/category.py +10 -2
  85. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/core/datablock.py +1 -0
  86. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/core/guard.py +9 -1
  87. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/core/singleton.py +1 -1
  88. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/core/validation.py +1 -0
  89. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/core/variable.py +18 -0
  90. easydiffraction-0.13.0/src/easydiffraction/crystallography/crystallography.py +503 -0
  91. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/datablocks/experiment/categories/background/chebyshev.py +5 -1
  92. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/datablocks/experiment/categories/background/enums.py +1 -0
  93. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/datablocks/experiment/categories/background/line_segment.py +5 -1
  94. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/datablocks/experiment/categories/data/bragg_pd.py +18 -7
  95. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/datablocks/experiment/categories/data/bragg_sc.py +5 -1
  96. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/datablocks/experiment/categories/data/total_pd.py +5 -1
  97. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/datablocks/experiment/categories/excluded_regions/default.py +5 -1
  98. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/datablocks/experiment/categories/extinction/__init__.py +3 -1
  99. easydiffraction-0.12.0/src/easydiffraction/datablocks/experiment/categories/extinction/shelx.py → easydiffraction-0.13.0/src/easydiffraction/datablocks/experiment/categories/extinction/becker_coppens.py +54 -20
  100. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/datablocks/experiment/categories/extinction/factory.py +1 -1
  101. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/datablocks/experiment/categories/instrument/cwl.py +1 -1
  102. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/datablocks/experiment/categories/linked_phases/default.py +1 -1
  103. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/datablocks/experiment/categories/peak/__init__.py +6 -4
  104. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/datablocks/experiment/categories/peak/cwl.py +4 -4
  105. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/datablocks/experiment/categories/peak/factory.py +1 -1
  106. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/datablocks/experiment/categories/peak/tof.py +39 -21
  107. easydiffraction-0.13.0/src/easydiffraction/datablocks/experiment/categories/peak/tof_mixins.py +496 -0
  108. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/datablocks/experiment/item/base.py +12 -284
  109. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/datablocks/experiment/item/bragg_pd.py +1 -47
  110. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/datablocks/experiment/item/enums.py +55 -11
  111. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/datablocks/experiment/item/factory.py +1 -2
  112. easydiffraction-0.13.0/src/easydiffraction/datablocks/structure/categories/atom_site_aniso/__init__.py +7 -0
  113. easydiffraction-0.13.0/src/easydiffraction/datablocks/structure/categories/atom_site_aniso/default.py +283 -0
  114. easydiffraction-0.13.0/src/easydiffraction/datablocks/structure/categories/atom_site_aniso/factory.py +17 -0
  115. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/datablocks/structure/categories/atom_sites/__init__.py +1 -0
  116. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/datablocks/structure/categories/atom_sites/default.py +300 -12
  117. easydiffraction-0.13.0/src/easydiffraction/datablocks/structure/categories/atom_sites/enums.py +31 -0
  118. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/datablocks/structure/categories/cell/default.py +4 -3
  119. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/datablocks/structure/item/base.py +74 -106
  120. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/display/plotters/ascii.py +1 -2
  121. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/display/plotters/plotly.py +2 -6
  122. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/display/plotting.py +11 -4
  123. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/display/tablers/base.py +1 -2
  124. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/display/tablers/pandas.py +44 -0
  125. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/display/tablers/rich.py +1 -2
  126. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/io/ascii.py +21 -16
  127. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/io/cif/serialize.py +67 -25
  128. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/project/project.py +1 -0
  129. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/summary/summary.py +1 -1
  130. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/utils/utils.py +6 -6
  131. easydiffraction-0.13.0/tests/functional/test_adp_switching.py +244 -0
  132. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/functional/test_experiment_workflow.py +1 -1
  133. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/functional/test_fitting_workflow.py +15 -15
  134. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/functional/test_structure_workflow.py +6 -6
  135. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/functional/test_switchable_categories.py +6 -6
  136. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/integration/fitting/conftest.py +4 -4
  137. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/integration/fitting/test_analysis_display.py +0 -18
  138. easydiffraction-0.13.0/tests/integration/fitting/test_aniso_adp_fitting.py +106 -0
  139. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/integration/fitting/test_cif_round_trip.py +6 -6
  140. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/integration/fitting/test_exploration_help.py +6 -18
  141. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/integration/fitting/test_multi.py +25 -25
  142. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/integration/fitting/test_pair-distribution-function.py +8 -8
  143. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/integration/fitting/test_powder-diffraction_constant-wavelength.py +42 -42
  144. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/integration/fitting/test_powder-diffraction_joint-fit.py +10 -10
  145. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/integration/fitting/test_powder-diffraction_time-of-flight.py +20 -20
  146. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/integration/fitting/test_project_load.py +6 -6
  147. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/integration/fitting/test_sequential.py +4 -4
  148. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/integration/fitting/test_single-crystal-diffraction.py +1 -1
  149. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/integration/fitting/test_switch-calculator.py +2 -2
  150. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/integration/scipp-analysis/dream/test_analyze_reduced_data.py +8 -8
  151. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/unit/easydiffraction/analysis/calculators/test_cryspy.py +2 -0
  152. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/unit/easydiffraction/analysis/categories/test_aliases.py +2 -2
  153. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/unit/easydiffraction/analysis/fit_helpers/test_metrics.py +1 -1
  154. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/unit/easydiffraction/analysis/minimizers/test_base.py +18 -6
  155. easydiffraction-0.13.0/tests/unit/easydiffraction/analysis/minimizers/test_bumps.py +415 -0
  156. easydiffraction-0.13.0/tests/unit/easydiffraction/analysis/minimizers/test_bumps_amoeba.py +99 -0
  157. easydiffraction-0.13.0/tests/unit/easydiffraction/analysis/minimizers/test_bumps_de.py +99 -0
  158. easydiffraction-0.13.0/tests/unit/easydiffraction/analysis/minimizers/test_bumps_lm.py +100 -0
  159. easydiffraction-0.13.0/tests/unit/easydiffraction/analysis/minimizers/test_enums.py +32 -0
  160. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/unit/easydiffraction/analysis/minimizers/test_factory.py +23 -1
  161. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/unit/easydiffraction/analysis/minimizers/test_lmfit.py +1 -1
  162. easydiffraction-0.13.0/tests/unit/easydiffraction/analysis/minimizers/test_lmfit_least_squares.py +90 -0
  163. easydiffraction-0.13.0/tests/unit/easydiffraction/analysis/minimizers/test_lmfit_leastsq.py +90 -0
  164. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/unit/easydiffraction/analysis/test_analysis.py +1 -46
  165. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/unit/easydiffraction/analysis/test_analysis_coverage.py +2 -96
  166. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/unit/easydiffraction/analysis/test_fitting.py +20 -2
  167. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/unit/easydiffraction/datablocks/experiment/categories/peak/test_cwl.py +4 -2
  168. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/unit/easydiffraction/datablocks/experiment/categories/peak/test_cwl_mixins.py +4 -2
  169. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/unit/easydiffraction/datablocks/experiment/categories/peak/test_factory.py +3 -3
  170. easydiffraction-0.13.0/tests/unit/easydiffraction/datablocks/experiment/categories/peak/test_tof.py +40 -0
  171. easydiffraction-0.13.0/tests/unit/easydiffraction/datablocks/experiment/categories/peak/test_tof_mixins.py +90 -0
  172. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/unit/easydiffraction/datablocks/experiment/categories/test_extinction.py +57 -16
  173. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/unit/easydiffraction/datablocks/experiment/item/test_base.py +7 -7
  174. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/unit/easydiffraction/datablocks/experiment/item/test_base_coverage.py +0 -76
  175. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/unit/easydiffraction/datablocks/experiment/item/test_bragg_sc_coverage.py +0 -45
  176. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/unit/easydiffraction/datablocks/experiment/item/test_enums_coverage.py +15 -10
  177. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/unit/easydiffraction/datablocks/experiment/item/test_factory.py +3 -3
  178. easydiffraction-0.13.0/tests/unit/easydiffraction/datablocks/structure/categories/test_atom_site_aniso.py +537 -0
  179. easydiffraction-0.13.0/tests/unit/easydiffraction/datablocks/structure/categories/test_atom_sites.py +249 -0
  180. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/unit/easydiffraction/datablocks/structure/item/test_base_coverage.py +3 -78
  181. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/unit/easydiffraction/display/test_plotting.py +12 -5
  182. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/unit/easydiffraction/io/cif/test_parse.py +4 -4
  183. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/unit/easydiffraction/io/cif/test_serialize.py +3 -3
  184. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/unit/easydiffraction/io/cif/test_serialize_more.py +1 -1
  185. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/unit/easydiffraction/io/test_ascii.py +58 -1
  186. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/unit/easydiffraction/project/test_project_load.py +5 -5
  187. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/unit/easydiffraction/summary/test_summary_details.py +1 -1
  188. easydiffraction-0.12.0/docs/architecture/issues_closed.md +0 -117
  189. easydiffraction-0.12.0/docs/architecture/issues_open.md +0 -294
  190. easydiffraction-0.12.0/docs/architecture/sequential_fitting_design.md +0 -1269
  191. easydiffraction-0.12.0/docs/docs/tutorials/ed-14.py +0 -109
  192. easydiffraction-0.12.0/src/easydiffraction/analysis/minimizers/__init__.py +0 -5
  193. easydiffraction-0.12.0/src/easydiffraction/crystallography/crystallography.py +0 -191
  194. easydiffraction-0.12.0/src/easydiffraction/datablocks/experiment/categories/peak/tof_mixins.py +0 -276
  195. easydiffraction-0.12.0/tests/unit/easydiffraction/datablocks/experiment/categories/peak/test_tof.py +0 -25
  196. easydiffraction-0.12.0/tests/unit/easydiffraction/datablocks/experiment/categories/peak/test_tof_mixins.py +0 -42
  197. easydiffraction-0.12.0/tests/unit/easydiffraction/datablocks/structure/categories/test_atom_sites.py +0 -132
  198. easydiffraction-0.12.0/tmp/cli/lbco_hrpt/analysis/analysis.cif +0 -15
  199. easydiffraction-0.12.0/tmp/cli/lbco_hrpt/experiments/hrpt.cif +0 -3156
  200. easydiffraction-0.12.0/tmp/cli/lbco_hrpt/project.cif +0 -5
  201. easydiffraction-0.12.0/tmp/cli/lbco_hrpt/structures/lbco.cif +0 -26
  202. easydiffraction-0.12.0/tmp/correlations/ed-1.py +0 -113
  203. easydiffraction-0.12.0/tmp/data/DREAM_mantle_bc240_nist_cif.xye +0 -1007
  204. easydiffraction-0.12.0/tmp/data/DREAM_mantle_bc240_nist_cif_2.xye +0 -802
  205. easydiffraction-0.12.0/tmp/data/DREAM_mantle_bc240_nist_nc.xye +0 -1007
  206. easydiffraction-0.12.0/tmp/data/DREAM_mantle_bc240_nist_nc_2.xye +0 -802
  207. easydiffraction-0.12.0/tmp/data/Si_mp-149_symmetrized_mcstas.cif +0 -221
  208. easydiffraction-0.12.0/tmp/data/hrpt.cif +0 -3140
  209. easydiffraction-0.12.0/tmp/data/hrpt_lbco.xye +0 -3099
  210. easydiffraction-0.12.0/tmp/data/large_structure.cif +0 -5025
  211. easydiffraction-0.12.0/tmp/data/lbco.cif +0 -36
  212. easydiffraction-0.12.0/tmp/data_old/mcstas_lbco-si.xys +0 -1000
  213. easydiffraction-0.12.0/tmp/data_old/mcstas_lbco-si_up-to-108k.xys +0 -634
  214. easydiffraction-0.12.0/tmp/data_old/powder_reduced_Si_2large_bank.xye +0 -1002
  215. easydiffraction-0.12.0/tmp/data_old/reduced_LBCO.xye +0 -902
  216. easydiffraction-0.12.0/tmp/data_old/reduced_Si.xye +0 -902
  217. easydiffraction-0.12.0/tmp/data_old/wish_ncaf.xye +0 -3738
  218. easydiffraction-0.12.0/tmp/data_old/wish_ncaf_2_9.xye +0 -3454
  219. easydiffraction-0.12.0/tmp/data_old/wish_ncaf_4_7.xye +0 -3472
  220. easydiffraction-0.12.0/tmp/data_old/wish_ncaf_4_7.xys +0 -4043
  221. easydiffraction-0.12.0/tmp/data_old/wish_ncaf_5_6.xye +0 -3573
  222. easydiffraction-0.12.0/tmp/data_old/wish_ybcfo_5_6.xye +0 -3807
  223. easydiffraction-0.12.0/tmp/hep7c/data/HEP_7c_LaMe_riet.dat +0 -9101
  224. easydiffraction-0.12.0/tmp/hep7c/data/hep7c_4.dat +0 -1469
  225. easydiffraction-0.12.0/tmp/hep7c/hep7c_I/analysis/analysis.cif +0 -25
  226. easydiffraction-0.12.0/tmp/hep7c/hep7c_I/experiments/pd_xray_1.cif +0 -1540
  227. easydiffraction-0.12.0/tmp/hep7c/hep7c_I/project.cif +0 -5
  228. easydiffraction-0.12.0/tmp/hep7c/hep7c_I/structures/lam7o3.cif +0 -32
  229. easydiffraction-0.12.0/tmp/hep7c/hep7c_I/summary.cif +0 -1
  230. easydiffraction-0.12.0/tmp/hep7c/hep7c_I.py +0 -514
  231. easydiffraction-0.12.0/tmp/hep7c/hep7c_II/analysis/analysis.cif +0 -25
  232. easydiffraction-0.12.0/tmp/hep7c/hep7c_II/experiments/pd_xray_2.cif +0 -9192
  233. easydiffraction-0.12.0/tmp/hep7c/hep7c_II/project.cif +0 -5
  234. easydiffraction-0.12.0/tmp/hep7c/hep7c_II/structures/lam7o3.cif +0 -32
  235. easydiffraction-0.12.0/tmp/hep7c/hep7c_II/summary.cif +0 -1
  236. easydiffraction-0.12.0/tmp/hep7c/hep7c_II.py +0 -534
  237. easydiffraction-0.12.0/tmp/hep7c/hep7c_joint/analysis/analysis.cif +0 -31
  238. easydiffraction-0.12.0/tmp/hep7c/hep7c_joint/experiments/pd_xray_1.cif +0 -1540
  239. easydiffraction-0.12.0/tmp/hep7c/hep7c_joint/experiments/pd_xray_2.cif +0 -9192
  240. easydiffraction-0.12.0/tmp/hep7c/hep7c_joint/project.cif +0 -5
  241. easydiffraction-0.12.0/tmp/hep7c/hep7c_joint/structures/lam7o3.cif +0 -32
  242. easydiffraction-0.12.0/tmp/hep7c/hep7c_joint/summary.cif +0 -1
  243. easydiffraction-0.12.0/tmp/hep7c/hep7c_joint.py +0 -228
  244. easydiffraction-0.12.0/tmp/unsorted/Untitled.ipynb +0 -567
  245. easydiffraction-0.12.0/tmp/unsorted/Untitled0.ipynb +0 -492
  246. easydiffraction-0.12.0/tmp/unsorted/Untitled1.ipynb +0 -149
  247. easydiffraction-0.12.0/tmp/unsorted/Untitled2.ipynb +0 -6
  248. easydiffraction-0.12.0/tmp/unsorted/__validator.py +0 -87
  249. easydiffraction-0.12.0/tmp/unsorted/_gemmi.py +0 -613
  250. easydiffraction-0.12.0/tmp/unsorted/_read_cif.py +0 -184
  251. easydiffraction-0.12.0/tmp/unsorted/_smart.py +0 -162
  252. easydiffraction-0.12.0/tmp/unsorted/basic_single-fit_pd-neut-cwl_LBCO-HRPT.py +0 -736
  253. easydiffraction-0.12.0/tmp/unsorted/cryst-struct_pd-neut-tof_multiphase-BSFTO-HRPT.py +0 -269
  254. easydiffraction-0.12.0/tmp/unsorted/display.py +0 -413
  255. easydiffraction-0.12.0/tmp/unsorted/display2.py +0 -28
  256. easydiffraction-0.12.0/tmp/unsorted/display3-Copy1.py +0 -45
  257. easydiffraction-0.12.0/tmp/unsorted/display3.py +0 -173
  258. easydiffraction-0.12.0/tmp/unsorted/generate_overview_mermaid.py +0 -309
  259. easydiffraction-0.12.0/tmp/unsorted/hrpt_n_Bi0p88Sm0p12Fe0p94Ti0p06O3_DW_V_9x8x52_1p49_HI.xye +0 -3244
  260. easydiffraction-0.12.0/tmp/unsorted/short.py +0 -94
  261. easydiffraction-0.12.0/tmp/unsorted/short2.py +0 -228
  262. easydiffraction-0.12.0/tmp/unsorted/short3.py +0 -138
  263. easydiffraction-0.12.0/tmp/unsorted/short5.py +0 -316
  264. easydiffraction-0.12.0/tmp/unsorted/short6.py +0 -85
  265. easydiffraction-0.12.0/tmp/unsorted/short7.py +0 -128
  266. easydiffraction-0.12.0/tmp/unsorted/show_d401.py +0 -26
  267. easydiffraction-0.12.0/tmp/unsorted/show_w505.py +0 -27
  268. easydiffraction-0.12.0/tmp/unsorted/test_single-fit_pd-neut-tof_Si-DREAM_nc.py +0 -153
  269. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/.badgery.yaml +0 -0
  270. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/.codefactorignore +0 -0
  271. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/.github/actions/download-artifact/action.yml +0 -0
  272. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/.github/actions/github-script/action.yml +0 -0
  273. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/.github/actions/setup-easyscience-bot/action.yml +0 -0
  274. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/.github/actions/setup-pixi/action.yml +0 -0
  275. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/.github/actions/upload-artifact/action.yml +0 -0
  276. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/.github/actions/upload-codecov/action.yml +0 -0
  277. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/.github/configs/pages-deployment.json +0 -0
  278. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/.github/configs/rulesets-develop.json +0 -0
  279. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/.github/configs/rulesets-gh-pages.json +0 -0
  280. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/.github/configs/rulesets-master.json +0 -0
  281. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/.github/scripts/backmerge-conflict-issue.js +0 -0
  282. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/.github/workflows/backmerge.yml +0 -0
  283. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/.github/workflows/cleanup.yml +0 -0
  284. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/.github/workflows/coverage.yml +0 -0
  285. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/.github/workflows/dashboard.yml +0 -0
  286. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/.github/workflows/docs.yml +0 -0
  287. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/.github/workflows/issues-labels.yml +0 -0
  288. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/.github/workflows/lint-format.yml +0 -0
  289. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/.github/workflows/pr-labels.yml +0 -0
  290. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/.github/workflows/pypi-publish.yml +0 -0
  291. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/.github/workflows/release-notes.yml +0 -0
  292. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/.github/workflows/release-pr.yml +0 -0
  293. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/.github/workflows/security.yml +0 -0
  294. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/.github/workflows/test-trigger.yml +0 -0
  295. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/.github/workflows/tutorial-tests-colab.yaml +0 -0
  296. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/.github/workflows/tutorial-tests-trigger.yml +0 -0
  297. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/.github/workflows/tutorial-tests.yml +0 -0
  298. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/.pre-commit-config.yaml +0 -0
  299. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/.prettierignore +0 -0
  300. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/CONTRIBUTING.md +0 -0
  301. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/LICENSE +0 -0
  302. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/README.md +0 -0
  303. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/codecov.yml +0 -0
  304. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/docs/docs/api-reference/analysis.md +0 -0
  305. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/docs/docs/api-reference/core.md +0 -0
  306. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/docs/docs/api-reference/crystallography.md +0 -0
  307. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/docs/docs/api-reference/datablocks/experiment.md +0 -0
  308. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/docs/docs/api-reference/datablocks/structure.md +0 -0
  309. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/docs/docs/api-reference/display.md +0 -0
  310. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/docs/docs/api-reference/index.md +0 -0
  311. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/docs/docs/api-reference/io.md +0 -0
  312. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/docs/docs/api-reference/project.md +0 -0
  313. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/docs/docs/api-reference/summary.md +0 -0
  314. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/docs/docs/api-reference/utils.md +0 -0
  315. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/docs/docs/assets/images/favicon.png +0 -0
  316. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/docs/docs/assets/images/logo_dark.svg +0 -0
  317. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/docs/docs/assets/images/logo_light.svg +0 -0
  318. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/docs/docs/assets/images/user-guide/data-acquisition_2d-raw-data.jpg +0 -0
  319. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/docs/docs/assets/images/user-guide/data-acquisition_instrument.png +0 -0
  320. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/docs/docs/assets/images/user-guide/data-analysis_model.png +0 -0
  321. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/docs/docs/assets/images/user-guide/data-analysis_refinement.png +0 -0
  322. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/docs/docs/assets/images/user-guide/data-reduction_1d-pattern.png +0 -0
  323. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/docs/docs/assets/javascripts/extra.js +0 -0
  324. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/docs/docs/assets/javascripts/mathjax.js +0 -0
  325. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/docs/docs/assets/stylesheets/extra.css +0 -0
  326. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/docs/docs/cli/index.md +0 -0
  327. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/docs/docs/index.md +0 -0
  328. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/docs/docs/installation-and-setup/index.md +0 -0
  329. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/docs/docs/introduction/index.md +0 -0
  330. {easydiffraction-0.12.0/tmp/cli/lbco_hrpt → easydiffraction-0.13.0/docs/docs/tutorials/data/lbco_project}/summary.cif +0 -0
  331. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/docs/docs/tutorials/index.json +0 -0
  332. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/docs/docs/tutorials/index.md +0 -0
  333. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/docs/docs/user-guide/analysis-workflow/experiment.md +0 -0
  334. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/docs/docs/user-guide/analysis-workflow/index.md +0 -0
  335. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/docs/docs/user-guide/analysis-workflow/project.md +0 -0
  336. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/docs/docs/user-guide/analysis-workflow/summary.md +0 -0
  337. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/docs/docs/user-guide/concept.md +0 -0
  338. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/docs/docs/user-guide/data-format.md +0 -0
  339. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/docs/docs/user-guide/glossary.md +0 -0
  340. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/docs/docs/user-guide/index.md +0 -0
  341. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/docs/docs/user-guide/parameters/_diffrn_radiation.md +0 -0
  342. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/docs/docs/user-guide/parameters/_diffrn_radiation_wavelength.md +0 -0
  343. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/docs/docs/user-guide/parameters/_exptl_crystal.md +0 -0
  344. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/docs/docs/user-guide/parameters/_extinction.md +0 -0
  345. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/docs/docs/user-guide/parameters/_pd_calib.md +0 -0
  346. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/docs/docs/user-guide/parameters/atom_site.md +0 -0
  347. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/docs/docs/user-guide/parameters/background.md +0 -0
  348. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/docs/docs/user-guide/parameters/cell.md +0 -0
  349. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/docs/docs/user-guide/parameters/expt_type.md +0 -0
  350. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/docs/docs/user-guide/parameters/instrument.md +0 -0
  351. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/docs/docs/user-guide/parameters/linked_phases.md +0 -0
  352. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/docs/docs/user-guide/parameters/pd_meas.md +0 -0
  353. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/docs/docs/user-guide/parameters/peak.md +0 -0
  354. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/docs/docs/user-guide/parameters/space_group.md +0 -0
  355. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/docs/includes/abbreviations.md +0 -0
  356. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/docs/mkdocs.yml +0 -0
  357. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/docs/overrides/.icons/app.svg +0 -0
  358. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/docs/overrides/.icons/easydiffraction.svg +0 -0
  359. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/docs/overrides/.icons/easyscience.svg +0 -0
  360. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/docs/overrides/.icons/google-colab.svg +0 -0
  361. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/docs/overrides/main.html +0 -0
  362. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/docs/overrides/partials/logo.html +0 -0
  363. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/prettierrc.toml +0 -0
  364. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/__init__.py +0 -0
  365. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/analysis/__init__.py +0 -0
  366. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/analysis/calculators/__init__.py +0 -0
  367. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/analysis/calculators/factory.py +0 -0
  368. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/analysis/categories/__init__.py +0 -0
  369. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/analysis/categories/aliases/__init__.py +0 -0
  370. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/analysis/categories/aliases/default.py +0 -0
  371. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/analysis/categories/aliases/factory.py +0 -0
  372. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/analysis/categories/constraints/__init__.py +0 -0
  373. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/analysis/categories/constraints/default.py +0 -0
  374. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/analysis/categories/constraints/factory.py +0 -0
  375. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/analysis/categories/fit_mode/__init__.py +0 -0
  376. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/analysis/categories/fit_mode/factory.py +0 -0
  377. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/analysis/categories/joint_fit_experiments/__init__.py +0 -0
  378. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/analysis/categories/joint_fit_experiments/default.py +0 -0
  379. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/analysis/categories/joint_fit_experiments/factory.py +0 -0
  380. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/analysis/fit_helpers/__init__.py +0 -0
  381. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/analysis/fit_helpers/metrics.py +0 -0
  382. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/analysis/fit_helpers/tracking.py +0 -0
  383. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/core/__init__.py +0 -0
  384. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/core/collection.py +0 -0
  385. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/core/diagnostic.py +0 -0
  386. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/core/factory.py +0 -0
  387. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/core/identity.py +0 -0
  388. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/core/metadata.py +0 -0
  389. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/crystallography/__init__.py +0 -0
  390. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/crystallography/space_groups.pkl.gz +0 -0
  391. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/crystallography/space_groups.py +0 -0
  392. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/datablocks/__init__.py +0 -0
  393. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/datablocks/experiment/__init__.py +0 -0
  394. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/datablocks/experiment/categories/__init__.py +0 -0
  395. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/datablocks/experiment/categories/background/__init__.py +0 -0
  396. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/datablocks/experiment/categories/background/base.py +0 -0
  397. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/datablocks/experiment/categories/background/factory.py +0 -0
  398. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/datablocks/experiment/categories/data/__init__.py +0 -0
  399. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/datablocks/experiment/categories/data/factory.py +0 -0
  400. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/datablocks/experiment/categories/diffrn/__init__.py +0 -0
  401. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/datablocks/experiment/categories/diffrn/default.py +0 -0
  402. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/datablocks/experiment/categories/diffrn/factory.py +0 -0
  403. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/datablocks/experiment/categories/excluded_regions/__init__.py +0 -0
  404. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/datablocks/experiment/categories/excluded_regions/factory.py +0 -0
  405. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/datablocks/experiment/categories/experiment_type/__init__.py +0 -0
  406. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/datablocks/experiment/categories/experiment_type/default.py +0 -0
  407. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/datablocks/experiment/categories/experiment_type/factory.py +0 -0
  408. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/datablocks/experiment/categories/instrument/__init__.py +0 -0
  409. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/datablocks/experiment/categories/instrument/base.py +0 -0
  410. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/datablocks/experiment/categories/instrument/factory.py +0 -0
  411. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/datablocks/experiment/categories/instrument/tof.py +0 -0
  412. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/datablocks/experiment/categories/linked_crystal/__init__.py +0 -0
  413. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/datablocks/experiment/categories/linked_crystal/default.py +0 -0
  414. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/datablocks/experiment/categories/linked_crystal/factory.py +0 -0
  415. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/datablocks/experiment/categories/linked_phases/__init__.py +0 -0
  416. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/datablocks/experiment/categories/linked_phases/factory.py +0 -0
  417. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/datablocks/experiment/categories/peak/base.py +0 -0
  418. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/datablocks/experiment/categories/peak/cwl_mixins.py +0 -0
  419. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/datablocks/experiment/categories/peak/total.py +0 -0
  420. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/datablocks/experiment/categories/peak/total_mixins.py +0 -0
  421. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/datablocks/experiment/collection.py +0 -0
  422. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/datablocks/experiment/item/__init__.py +0 -0
  423. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/datablocks/experiment/item/bragg_sc.py +0 -0
  424. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/datablocks/experiment/item/total_pd.py +0 -0
  425. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/datablocks/structure/__init__.py +0 -0
  426. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/datablocks/structure/categories/__init__.py +0 -0
  427. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/datablocks/structure/categories/atom_sites/factory.py +0 -0
  428. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/datablocks/structure/categories/cell/__init__.py +0 -0
  429. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/datablocks/structure/categories/cell/factory.py +0 -0
  430. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/datablocks/structure/categories/space_group/__init__.py +0 -0
  431. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/datablocks/structure/categories/space_group/default.py +0 -0
  432. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/datablocks/structure/categories/space_group/factory.py +0 -0
  433. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/datablocks/structure/collection.py +0 -0
  434. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/datablocks/structure/item/__init__.py +0 -0
  435. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/datablocks/structure/item/factory.py +0 -0
  436. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/display/__init__.py +0 -0
  437. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/display/base.py +0 -0
  438. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/display/plotters/__init__.py +0 -0
  439. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/display/plotters/base.py +0 -0
  440. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/display/tablers/__init__.py +0 -0
  441. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/display/tables.py +0 -0
  442. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/display/utils.py +0 -0
  443. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/io/__init__.py +0 -0
  444. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/io/cif/__init__.py +0 -0
  445. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/io/cif/handler.py +0 -0
  446. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/io/cif/parse.py +0 -0
  447. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/project/__init__.py +0 -0
  448. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/project/project_info.py +0 -0
  449. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/summary/__init__.py +0 -0
  450. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/utils/__init__.py +0 -0
  451. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/utils/_vendored/__init__.py +0 -0
  452. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/utils/_vendored/jupyter_dark_detect/__init__.py +0 -0
  453. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/utils/_vendored/jupyter_dark_detect/detector.py +0 -0
  454. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/utils/_vendored/theme_detect.py +0 -0
  455. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/utils/enums.py +0 -0
  456. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/utils/environment.py +0 -0
  457. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/src/easydiffraction/utils/logging.py +0 -0
  458. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/functional/conftest.py +0 -0
  459. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/functional/test_project_lifecycle.py +0 -0
  460. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/integration/fitting/test_plotting.py +0 -0
  461. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/integration/fitting/test_summary_report.py +0 -0
  462. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/integration/scipp-analysis/dream/conftest.py +0 -0
  463. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/integration/scipp-analysis/dream/test_package_import.py +0 -0
  464. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/integration/scipp-analysis/dream/test_read_reduced_data.py +0 -0
  465. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/integration/scipp-analysis/dream/test_validate_meta_data.py +0 -0
  466. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/integration/scipp-analysis/dream/test_validate_physical_data.py +0 -0
  467. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/unit/easydiffraction/analysis/calculators/test_base.py +0 -0
  468. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/unit/easydiffraction/analysis/calculators/test_crysfml.py +0 -0
  469. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/unit/easydiffraction/analysis/calculators/test_factory.py +0 -0
  470. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/unit/easydiffraction/analysis/calculators/test_pdffit.py +0 -0
  471. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/unit/easydiffraction/analysis/categories/test_constraints.py +0 -0
  472. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/unit/easydiffraction/analysis/categories/test_fit_mode.py +0 -0
  473. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/unit/easydiffraction/analysis/categories/test_joint_fit_experiments.py +0 -0
  474. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/unit/easydiffraction/analysis/fit_helpers/test_reporting.py +0 -0
  475. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/unit/easydiffraction/analysis/fit_helpers/test_tracking.py +0 -0
  476. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/unit/easydiffraction/analysis/minimizers/test_dfols.py +0 -0
  477. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/unit/easydiffraction/analysis/test_analysis_access_params.py +0 -0
  478. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/unit/easydiffraction/analysis/test_analysis_show_empty.py +0 -0
  479. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/unit/easydiffraction/analysis/test_sequential.py +0 -0
  480. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/unit/easydiffraction/core/test_category.py +0 -0
  481. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/unit/easydiffraction/core/test_collection.py +0 -0
  482. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/unit/easydiffraction/core/test_datablock.py +0 -0
  483. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/unit/easydiffraction/core/test_diagnostic.py +0 -0
  484. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/unit/easydiffraction/core/test_factory.py +0 -0
  485. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/unit/easydiffraction/core/test_guard.py +0 -0
  486. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/unit/easydiffraction/core/test_identity.py +0 -0
  487. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/unit/easydiffraction/core/test_metadata.py +0 -0
  488. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/unit/easydiffraction/core/test_parameters.py +0 -0
  489. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/unit/easydiffraction/core/test_singletons.py +0 -0
  490. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/unit/easydiffraction/core/test_validation.py +0 -0
  491. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/unit/easydiffraction/crystallography/test_crystallography.py +0 -0
  492. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/unit/easydiffraction/crystallography/test_crystallography_coverage.py +0 -0
  493. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/unit/easydiffraction/crystallography/test_crystallography_wyckoff.py +0 -0
  494. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/unit/easydiffraction/crystallography/test_space_groups.py +0 -0
  495. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/unit/easydiffraction/crystallography/test_space_groups_coverage.py +0 -0
  496. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/unit/easydiffraction/datablocks/experiment/categories/background/test_base.py +0 -0
  497. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/unit/easydiffraction/datablocks/experiment/categories/background/test_chebyshev.py +0 -0
  498. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/unit/easydiffraction/datablocks/experiment/categories/background/test_enums.py +0 -0
  499. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/unit/easydiffraction/datablocks/experiment/categories/background/test_factory.py +0 -0
  500. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/unit/easydiffraction/datablocks/experiment/categories/background/test_line_segment.py +0 -0
  501. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/unit/easydiffraction/datablocks/experiment/categories/data/test_bragg_pd.py +0 -0
  502. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/unit/easydiffraction/datablocks/experiment/categories/data/test_bragg_sc.py +0 -0
  503. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/unit/easydiffraction/datablocks/experiment/categories/data/test_factory.py +0 -0
  504. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/unit/easydiffraction/datablocks/experiment/categories/data/test_total_pd.py +0 -0
  505. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/unit/easydiffraction/datablocks/experiment/categories/instrument/test_base.py +0 -0
  506. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/unit/easydiffraction/datablocks/experiment/categories/instrument/test_cwl.py +0 -0
  507. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/unit/easydiffraction/datablocks/experiment/categories/instrument/test_factory.py +0 -0
  508. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/unit/easydiffraction/datablocks/experiment/categories/instrument/test_tof.py +0 -0
  509. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/unit/easydiffraction/datablocks/experiment/categories/peak/test_base.py +0 -0
  510. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/unit/easydiffraction/datablocks/experiment/categories/peak/test_total.py +0 -0
  511. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/unit/easydiffraction/datablocks/experiment/categories/peak/test_total_mixins.py +0 -0
  512. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/unit/easydiffraction/datablocks/experiment/categories/test_diffrn.py +0 -0
  513. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/unit/easydiffraction/datablocks/experiment/categories/test_excluded_regions.py +0 -0
  514. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/unit/easydiffraction/datablocks/experiment/categories/test_experiment_type.py +0 -0
  515. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/unit/easydiffraction/datablocks/experiment/categories/test_linked_crystal.py +0 -0
  516. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/unit/easydiffraction/datablocks/experiment/categories/test_linked_phases.py +0 -0
  517. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/unit/easydiffraction/datablocks/experiment/item/test_bragg_pd.py +0 -0
  518. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/unit/easydiffraction/datablocks/experiment/item/test_bragg_sc.py +0 -0
  519. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/unit/easydiffraction/datablocks/experiment/item/test_enums.py +0 -0
  520. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/unit/easydiffraction/datablocks/experiment/item/test_factory_coverage.py +0 -0
  521. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/unit/easydiffraction/datablocks/experiment/item/test_total_pd.py +0 -0
  522. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/unit/easydiffraction/datablocks/experiment/test_collection.py +0 -0
  523. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/unit/easydiffraction/datablocks/structure/categories/__init__.py +0 -0
  524. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/unit/easydiffraction/datablocks/structure/categories/test_cell.py +0 -0
  525. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/unit/easydiffraction/datablocks/structure/categories/test_space_group.py +0 -0
  526. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/unit/easydiffraction/datablocks/structure/item/test_base.py +0 -0
  527. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/unit/easydiffraction/datablocks/structure/item/test_factory.py +0 -0
  528. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/unit/easydiffraction/datablocks/structure/test_collection.py +0 -0
  529. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/unit/easydiffraction/datablocks/structure/test_collection_coverage.py +0 -0
  530. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/unit/easydiffraction/display/plotters/test_ascii.py +0 -0
  531. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/unit/easydiffraction/display/plotters/test_base.py +0 -0
  532. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/unit/easydiffraction/display/plotters/test_plotly.py +0 -0
  533. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/unit/easydiffraction/display/tablers/__init__.py +0 -0
  534. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/unit/easydiffraction/display/tablers/test_base.py +0 -0
  535. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/unit/easydiffraction/display/tablers/test_pandas.py +0 -0
  536. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/unit/easydiffraction/display/tablers/test_rich.py +0 -0
  537. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/unit/easydiffraction/display/test_base.py +0 -0
  538. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/unit/easydiffraction/display/test_plotting_coverage.py +0 -0
  539. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/unit/easydiffraction/display/test_tables.py +0 -0
  540. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/unit/easydiffraction/display/test_utils.py +0 -0
  541. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/unit/easydiffraction/io/cif/test_handler.py +0 -0
  542. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/unit/easydiffraction/project/test_project.py +0 -0
  543. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/unit/easydiffraction/project/test_project_info.py +0 -0
  544. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/unit/easydiffraction/project/test_project_load_and_summary_wrap.py +0 -0
  545. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/unit/easydiffraction/project/test_project_save.py +0 -0
  546. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/unit/easydiffraction/summary/test_summary.py +0 -0
  547. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/unit/easydiffraction/test___init__.py +0 -0
  548. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/unit/easydiffraction/test___main__.py +0 -0
  549. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/unit/easydiffraction/utils/test_enums.py +0 -0
  550. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/unit/easydiffraction/utils/test_environment.py +0 -0
  551. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/unit/easydiffraction/utils/test_environment_coverage.py +0 -0
  552. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/unit/easydiffraction/utils/test_logging.py +0 -0
  553. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/unit/easydiffraction/utils/test_logging_coverage.py +0 -0
  554. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/unit/easydiffraction/utils/test_theme_detect.py +0 -0
  555. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/unit/easydiffraction/utils/test_utils.py +0 -0
  556. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tests/unit/easydiffraction/utils/test_utils_coverage.py +0 -0
  557. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tools/gen_tests_scaffold.py +0 -0
  558. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tools/generate_package_docs.py +0 -0
  559. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tools/license_headers.py +0 -0
  560. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tools/naming_check.py +0 -0
  561. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tools/param_consistency.py +0 -0
  562. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tools/test_scripts.py +0 -0
  563. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tools/test_structure_check.py +0 -0
  564. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tools/tweak_notebooks.py +0 -0
  565. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tools/update_docs_assets.py +0 -0
  566. {easydiffraction-0.12.0 → easydiffraction-0.13.0}/tools/update_github_labels.py +0 -0
@@ -1,6 +1,6 @@
1
1
  # WARNING: Do not edit this file manually.
2
2
  # Any changes will be overwritten by Copier.
3
- _commit: v0.10.1-40-g29e2ccf
3
+ _commit: v0.10.1-41-g508666e
4
4
  _src_path: gh:easyscience/templates
5
5
  app_docs_url: https://easyscience.github.io/diffraction-app
6
6
  app_doi: 10.5281/zenodo.18163581
@@ -44,6 +44,10 @@
44
44
  - Type-annotate all public function signatures.
45
45
  - Docstrings on all public classes and methods (numpy style). These must
46
46
  include sections Parameters, Returns and Raises, where applicable.
47
+ - Docstring summary must be a single line no longer than 72 characters
48
+ (the `max-doc-length` setting in `pyproject.toml`). If the summary
49
+ does not fit, shorten the wording rather than wrapping to a second
50
+ line.
47
51
  - Prefer flat over nested, explicit over clever.
48
52
  - Write straightforward code; do not add defensive checks for unlikely
49
53
  edge cases.
@@ -173,6 +177,15 @@
173
177
 
174
178
  ## Workflow
175
179
 
180
+ - Use a two-phase workflow for all non-trivial changes:
181
+ - **Phase 1 — Implementation:** implement the change (source code,
182
+ docs, architecture updates). Do not create new tests or run existing
183
+ tests. Present the implementation for review and iterate until
184
+ approved.
185
+ - **Phase 2 — Verification:** once the implementation is approved, add
186
+ or update tests, then run linting (`pixi run fix`, `pixi run check`)
187
+ and all test suites (`pixi run unit-tests`,
188
+ `pixi run integration-tests`, `pixi run script-tests`).
176
189
  - All open issues, design questions, and planned improvements are
177
190
  tracked in `docs/architecture/issues_open.md`, ordered by priority.
178
191
  When an issue is fully implemented, move it from that file to
@@ -180,9 +193,12 @@
180
193
  architecture, update the relevant sections of
181
194
  `docs/architecture/architecture.md`.
182
195
  - After changes, run linting and formatting fixes with `pixi run fix`.
183
- Do not check what was auto-fixed, just accept the fixes and move on.
184
- Then, run linting and formatting checks with `pixi run check` and
185
- address any remaining issues until the code is clean.
196
+ This also regenerates `docs/architecture/package-structure-full.md`
197
+ and `docs/architecture/package-structure-short.md` automatically do
198
+ not edit those files by hand. Do not check what was auto-fixed, just
199
+ accept the fixes and move on. Then, run linting and formatting checks
200
+ with `pixi run check` and address any remaining issues until the code
201
+ is clean.
186
202
  - After changes, run unit tests with `pixi run unit-tests`.
187
203
  - After changes, run integration tests with
188
204
  `pixi run integration-tests`.
@@ -49,6 +49,7 @@ jobs:
49
49
  run: pixi init easydiffraction
50
50
 
51
51
  - name: Set the minimum system requirements
52
+ working-directory: easydiffraction
52
53
  run: pixi project system-requirements add macos 14.0
53
54
 
54
55
  - name: Add Python 3.14 from Conda
@@ -99,12 +99,27 @@ jobs:
99
99
  echo
100
100
  echo "🔹🔸🔹🔸🔹 Python: $py_ver 🔹🔸🔹🔸🔹"
101
101
 
102
- env="py-$(echo $py_ver | tr -d .)-env" # Converts 3.11 -> py-311-env
102
+ env="py-$(echo $py_ver | tr -d .)-env" # Converts 3.XX -> py-3XX-env
103
103
 
104
104
  echo "Running tests in environment: $env"
105
105
  pixi run --environment $env unit-tests
106
106
  done
107
107
 
108
+ - name: Run functional tests
109
+ shell: bash
110
+ run: |
111
+ set -euo pipefail
112
+
113
+ for py_ver in $PY_VERSIONS; do
114
+ echo
115
+ echo "🔹🔸🔹🔸🔹 Python: $py_ver 🔹🔸🔹🔸🔹"
116
+
117
+ env="py-$(echo $py_ver | tr -d .)-env" # Converts 3.XX -> py-3XX-env
118
+
119
+ echo "Running tests in environment: $env"
120
+ pixi run --environment $env functional-tests
121
+ done
122
+
108
123
  - name: Run integration tests ${{ needs.env-prepare.outputs.pytest-marks }}
109
124
  shell: bash
110
125
  run: |
@@ -114,7 +129,7 @@ jobs:
114
129
  echo
115
130
  echo "🔹🔸🔹🔸🔹 Python: $py_ver 🔹🔸🔹🔸🔹"
116
131
 
117
- env="py-$(echo $py_ver | tr -d .)-env" # Converts 3.11 -> py-311-env
132
+ env="py-$(echo $py_ver | tr -d .)-env" # Converts 3.XX -> py-3XX-env
118
133
 
119
134
  echo "Running tests in environment: $env"
120
135
  pixi run --environment $env integration-tests ${{ needs.env-prepare.outputs.pytest-marks }}
@@ -263,6 +278,25 @@ jobs:
263
278
  cd ..
264
279
  done
265
280
 
281
+ - name: Run functional tests
282
+ shell: bash
283
+ run: |
284
+ set -euo pipefail
285
+
286
+ for py_ver in $PY_VERSIONS; do
287
+ echo
288
+ echo "🔹🔸🔹🔸🔹 Python: $py_ver 🔹🔸🔹🔸🔹"
289
+
290
+ echo "Entering pixi project directory easydiffraction_py$py_ver"
291
+ cd easydiffraction_py$py_ver
292
+
293
+ echo "Running tests"
294
+ pixi run python -m pytest ../tests/functional/ --color=yes -v
295
+
296
+ echo "Exiting pixi project directory"
297
+ cd ..
298
+ done
299
+
266
300
  - name: Run integration tests ${{ needs.env-prepare.outputs.pytest-marks }}
267
301
  shell: bash
268
302
  run: |
@@ -49,3 +49,4 @@ CMakeLists.txt.user*
49
49
  # Used to fetch tutorials data during their runtime. Need to have '/' at
50
50
  # the beginning to avoid ignoring 'data' module in the src/.
51
51
  /data/
52
+ /tmp/
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: easydiffraction
3
- Version: 0.12.0
3
+ Version: 0.13.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
@@ -0,0 +1,382 @@
1
+ # EasyDiffraction Development Roadmap
2
+
3
+ LIB – Python library API
4
+ APP – graphical application
5
+ CLI – command-line interface
6
+
7
+ Legend:
8
+
9
+ - ✅ done
10
+ - 🚧 work in progress
11
+ - 🗓 planned
12
+ - 🗓`highest` Urgent. Needs attention ASAP
13
+ - 🗓`high` Should be prioritized soon
14
+ - 🗓`medium` Normal/default priority
15
+ - 🗓`low` Low importance
16
+ - 🗓`lowest` Very low urgency
17
+ - — not applicable / not implemented
18
+
19
+ ---
20
+
21
+ # 1. Sample Model
22
+
23
+ ## 1.1 Crystal Structure Parameters
24
+
25
+ ### Space Group
26
+
27
+ | Feature | LIB | APP |
28
+ | ---------------------------------- | --- | --- |
29
+ | Hermann-Mauguin space-group symbol | ✅ | ✅ |
30
+ | Space group IT number | 🗓 | 🗓 |
31
+ | IT coordinate system code | ✅ | ✅ |
32
+
33
+ ### Cell
34
+
35
+ | Feature | LIB | APP |
36
+ | ----------------- | --- | --- |
37
+ | Lengths _a, b, c_ | ✅ | ✅ |
38
+ | Angles _α, β, γ_ | ✅ | ✅ |
39
+
40
+ ### Atom Sites
41
+
42
+ | Feature | LIB | APP |
43
+ | ---------------------------------------------- | --- | --- |
44
+ | Neutron scattering lengths (tabulated, CrysPy) | ✅ | ✅ |
45
+ | X-ray scattering factors (tabulated, CrysPy) | ✅ | ✅ |
46
+ | Custom neutron scattering length | 🗓 | 🗓 |
47
+ | Fractional coordinates _x, y, z_ | ✅ | ✅ |
48
+ | Occupancy | ✅ | ✅ |
49
+ | Symmetry _wyckoff_letter_ | ✅ | ✅ |
50
+
51
+ ### Atomic Displacement Parameters (ADP)
52
+
53
+ | Feature | LIB | APP |
54
+ | ----------------------------------------------- | --- | --- |
55
+ | Isotropic Biso | ✅ | 🗓 |
56
+ | Isotropic Uiso | 🚧 | ✅ |
57
+ | Anisotropic Bani _B11, B22, B33, B12, B13, B23_ | 🚧 | 🗓 |
58
+ | Anisotropic Uani _U11, U22, U33, U12, U13, U23_ | 🚧 | 🗓 |
59
+
60
+ ---
61
+
62
+ ## 1.2 Magnetic Structure Parameters
63
+
64
+ | Feature | LIB | APP |
65
+ | ------------------------------------------------------- | --- | --- |
66
+ | EPIC (Magnetic space groups, unpolarized and polarized) | 🗓 | 🗓 |
67
+
68
+ ---
69
+
70
+ # 2. Experiment Model
71
+
72
+ ## 2.1 Powder Diffraction
73
+
74
+ ### Fitting Methods
75
+
76
+ | Feature | LIB | APP |
77
+ | ------------------------------------- | --- | --- |
78
+ | Rietveld refinement (full pattern) | ✅ | ✅ |
79
+ | Le Bail refinement (profile matching) | 🗓 | 🗓 |
80
+
81
+ ### Linked Phases
82
+
83
+ | Feature | LIB | APP |
84
+ | ------------ | --- | --- |
85
+ | Scale factor | ✅ | ✅ |
86
+
87
+ ### Excluded Regions
88
+
89
+ | Feature | LIB | APP |
90
+ | ----------------------------------------- | --- | --- |
91
+ | Multiple regions<br>_start/end positions_ | ✅ | 🗓 |
92
+
93
+ ---
94
+
95
+ ### Background
96
+
97
+ | Feature | LIB | APP |
98
+ | ------------------------------------------------- | --- | --- |
99
+ | Line segments type<br>_x, y_ | ✅ | ✅ |
100
+ | Chebyshev polynomial type<br>_order, coefficient_ | ✅ | 🗓 |
101
+
102
+ ### Preferred Orientation
103
+
104
+ | Feature | LIB | APP |
105
+ | ------------------------------------------ | -------- | --- |
106
+ | Basic preferred orientation model (CrysPy) | 🗓`high` | 🗓 |
107
+
108
+ ### Instrument — Constant Wavelength
109
+
110
+ | Feature | LIB | APP |
111
+ | -------------------------------------------------------- | --- | --- |
112
+ | Wavelength | ✅ | ✅ |
113
+ | Second wavelength | 🗓 | 🗓 |
114
+ | 2θ offset | ✅ | ✅ |
115
+ | Sample displacement correction (FullProf _SyCos, SySin_) | 🗓 | 🗓 |
116
+
117
+ ### Instrument — Time-of-Flight
118
+
119
+ | Feature | LIB | APP |
120
+ | ------------------------------------------------------------- | --- | --- |
121
+ | 2θ bank | ✅ | ✅ |
122
+ | d → TOF conversion<br>_reciprocal, offset, linear, quadratic_ | ✅ | ✅ |
123
+
124
+ ### Peak Profile — Constant Wavelength
125
+
126
+ | Feature | LIB | APP |
127
+ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----- | --- |
128
+ | Pseudo-Voigt + Empirical asymmetry<br>_Gaussian broadening U, V, W. Lorentzian broadening X, Y<br>Empirical asymmetry p1, p2, p3, p4_<br>(CrysPy) | ✅ | ✅ |
129
+ | Thompson-Cox-Hastings Pseudo-Voigt + Finger-Cox-Jephcoat asymmetry<br>_Gaussian broadening U, V, W. Lorentzian broadening X, Y<br>Finger-Cox-Jephcoat asymmetry 1, 2_<br>(CrysFML) | ✅/🗓 | 🗓 |
130
+
131
+ ### Peak Profile — Time-of-Flight
132
+
133
+ CrysPy peak_shape options:
134
+
135
+ - "Gauss": Jorgensen (back-to-back exponentials ⊗ Gaussian)
136
+ - "pseudo-Voigt": Jorgensen-Von Dreele (back-to-back exponentials ⊗
137
+ pseudo-Voigt)
138
+ - "type0m": Double back-to-back exponentials ⊗ pseudo-Voigt (Z-Rietveld
139
+ type 0m)
140
+
141
+ | Feature | LIB | APP |
142
+ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --- | --- |
143
+ | Jorgensen (back-to-back exponentials ⊗ Gaussian)<br>_Gaussian broadening σ₀, σ₁, σ₂<br>Back-to-back exponential rise α₀, α₁. Back-to-back exponential decay β₀, β₁_<br>(CrysPy) | ✅ | ✅ |
144
+ | Jorgensen-Von Dreele (back-to-back exponentials ⊗ pseudo-Voigt)<br>_Gaussian broadening σ₀, σ₁, σ₂. Lorentzian broadening γ₀, γ₁, γ₂<br>Back-to-back exponential rise α₀, α₁. Back-to-back exponential decay β₀, β₁_<br>(CrysPy) | ✅ | ✅ |
145
+ | Double back-to-back exponentials ⊗ pseudo-Voigt [Z-Rietveld type0m]<br>_Gaussian broadening σ₀, σ₁, σ₂. Lorentzian broadening γ₀, γ₁, γ₂<br>Rise α₁, α₂. Fast decay β₀₀, β₀₁. Slow decay β₁₀. Switching r₀₁, r₀₂, r₀₃_<br>(CrysPy) | ✅ | 🗓 |
146
+ | Ikeda-Carpenter ⊗ pseudo-Voigt<br>_Moderator pulse α₀, α₁, β₀, κ<br>Gaussian broadening σ². Lorentzian broadening γ_<br>(CrysFML) | 🗓 | 🗓 |
147
+
148
+ | TOF profile | TOF source | Performance |
149
+ | ------------------------------------------------------------------- | ----------------------------------------------------------------- | ----------- |
150
+ | Jorgensen (back-to-back exponentials ⊗ Gaussian) | Simpler TOF profile, including reactor-source TOF implementations | Fast |
151
+ | Jorgensen-Von Dreele (back-to-back exponentials ⊗ pseudo-Voigt) | Spallation-source TOF | Slower |
152
+ | Double back-to-back exponentials ⊗ pseudo-Voigt (Z-Rietveld type0m) | Spallation-source TOF; more elaborate asymmetric profile | Slowest |
153
+ | Ikeda-Carpenter ⊗ pseudo-Voigt | Spallation-source TOF; moderator pulse shape model | Moderate |
154
+
155
+ ---
156
+
157
+ ## 2.1.2 Total Scattering (Pair Distribution Function)
158
+
159
+ ### Peak Profile
160
+
161
+ | Feature | LIB | APP |
162
+ | ------------------------------------------------------------------------------------------------------ | --- | --- |
163
+ | GaussianDampedSinc type<br>_cutoff q. broadening q. sharpening δ₁, δ₂<br>damping q, particle diameter_ | ✅ | 🗓 |
164
+
165
+ ---
166
+
167
+ ## 2.2 Single Crystal Diffraction
168
+
169
+ ### Extinction
170
+
171
+ CrysPy's extinction is an analytical Becker-Coppens spherical model with
172
+ Gauss or Lorentz mosaicity distribution
173
+
174
+ | Feature | LIB | APP |
175
+ | ----------------------------------------------------- | --- | --- |
176
+ | Becker-Coppens, Gaussian model: _radius, mosaicity_ | ✅ | ✅ |
177
+ | Becker-Coppens, Lorentzian model: _radius, mosaicity_ | ✅ | ✅ |
178
+ | Anisotropic extinction correction | 🗓 | 🗓 |
179
+
180
+ ### Domains / Twinning
181
+
182
+ | Feature | LIB | APP |
183
+ | ------------------------------------------------- | --- | --- |
184
+ | Twinning / domains for single-crystal diffraction | 🗓 | 🗓 |
185
+
186
+ ### Instrument — Constant Wavelength
187
+
188
+ | Feature | LIB | APP |
189
+ | --------------------- | --- | --- |
190
+ | Wavelength | ✅ | ✅ |
191
+ | Half wavelength (λ/2) | 🗓 | 🗓 |
192
+
193
+ ### Instrument — Time-of-Flight
194
+
195
+ | Feature | LIB | APP |
196
+ | ------------------------------------ | --- | --- |
197
+ | Individual wavelength per reflection | ✅ | 🗓 |
198
+
199
+ ## 2.3. Polarized Neutron Diffraction
200
+
201
+ | Feature | LIB | APP |
202
+ | ---------------------------------------------- | --- | --- |
203
+ | EPIC (powders and single crystals, FR and SNP) | 🗓 | 🗓 |
204
+
205
+ ---
206
+
207
+ # 3. Multi-Dataset Support
208
+
209
+ | Feature | LIB | APP |
210
+ | --------------------------------- | --- | --- |
211
+ | Multiple structural data blocks | ✅ | ✅ |
212
+ | Multiple experimental data blocks | ✅ | 🗓 |
213
+
214
+ ---
215
+
216
+ # 4. Analysis (Fitting)
217
+
218
+ ### Refinement Algorithms
219
+
220
+ | Feature | LIB | APP |
221
+ | --------------------------------------------------------------- | --- | --- |
222
+ | Levenberg–Marquardt (numerical derivatives)<br>LMFIT minimizer | ✅ | ✅ |
223
+ | Levenberg–Marquardt (analytical derivatives)<br>LMFIT minimizer | 🗓 | 🗓 |
224
+ | Derivative-free minimization<br>DFO-LS minimizer | ✅ | ✅ |
225
+ | Bayesian analysis<br>BUMPS minimizer | 🗓 | 🗓 |
226
+
227
+ ### Fit Strategies
228
+
229
+ | Feature | LIB | APP |
230
+ | ---------------------------------------------------------------------------------------------------- | --- | --- |
231
+ | Sequential fit of experimental data blocks | ✅ | 🗓 |
232
+ | Joint fit of experimental data blocks within the same calculation engine | ✅ | 🗓 |
233
+ | Joint fit of experimental data blocks using different calculation engines<br>(e.g. CrysPy + Pdffit2) | ✅ | 🗓 |
234
+ | Custom weighting for joint fit: _weight per dataset_ | ✅ | 🗓 |
235
+
236
+ ### Live Fitting
237
+
238
+ | Feature | LIB | APP |
239
+ | ---------------------------------------------- | --- | --- |
240
+ | Live fitting during real-time data acquisition | 🗓 | 🗓 |
241
+
242
+ ---
243
+
244
+ # 5. Refinement Execution
245
+
246
+ | Feature | LIB | APP | CLI |
247
+ | --------------------------------------------- | --- | --- | --- |
248
+ | Scripted refinement workflow | ✅ | — | — |
249
+ | GUI-driven refinement workflow | — | ✅ | — |
250
+ | Command-line refinement execution | — | — | ✅ |
251
+ | Parameter modification | ✅ | ✅ | — |
252
+ | Load individual structure or experiment files | ✅ | ✅ | — |
253
+ | Project-based refinement | ✅ | ✅ | ✅ |
254
+ | Save refinement results to project | ✅ | ✅ | ✅ |
255
+
256
+ ---
257
+
258
+ # 6. Constraints
259
+
260
+ | Feature | LIB | APP |
261
+ | ------------------------------ | --- | ----- |
262
+ | Automatic symmetry constraints | ✅ | ✅/🗓 |
263
+ | User-defined constraints | ✅ | 🗓 |
264
+
265
+ ---
266
+
267
+ # 7. Data Management
268
+
269
+ ### Data Loading
270
+
271
+ | Feature | LIB | APP | CLI |
272
+ | ------------------------------- | --- | --- | --- |
273
+ | Load structure from CIF | ✅ | ✅ | — |
274
+ | Load experiment data from ASCII | ✅ | ✅ | — |
275
+ | Load experiment data from CIF | ✅ | ✅ | — |
276
+
277
+ ### Project Files
278
+
279
+ | Feature | LIB | APP | CLI |
280
+ | ---------------------- | --- | --- | --- |
281
+ | Load project from disk | ✅ | ✅ | ✅ |
282
+ | Save project to disk | ✅ | ✅ | ✅ |
283
+
284
+ ### SciCat Integration
285
+
286
+ | Feature | LIB | APP | CLI |
287
+ | ------------------------ | --- | --- | --- |
288
+ | Load project from SciCat | 🗓 | 🗓 | — |
289
+ | Save project to SciCat | 🗓 | 🗓 | — |
290
+
291
+ ### External Resources
292
+
293
+ | Feature | LIB | APP | CLI |
294
+ | --------------------------------- | --- | --- | --- |
295
+ | List available tutorial notebooks | — | — | ✅ |
296
+ | Download tutorial notebooks | — | — | ✅ |
297
+
298
+ ---
299
+
300
+ # 8. Visualization
301
+
302
+ ## 8.1. Sample Model
303
+
304
+ ### Crystal Structure
305
+
306
+ | Feature | LIB | APP |
307
+ | ---------------------------------------- | --- | --- |
308
+ | Visualize unit cell | 🗓 | ✅ |
309
+ | Visualize multiple unit cells | 🗓 | 🗓 |
310
+ | Visualize atom sites as spheres | 🗓 | ✅ |
311
+ | Visualize atoms occupied same position | 🗓 | 🗓 |
312
+ | Visualize bonds | 🗓 | 🗓 |
313
+ | Visualize polyhedra | 🗓 | 🗓 |
314
+ | Interactive mode<br>3D rotation, zooming | 🗓 | ✅ |
315
+ | Orthogonal unit cell | 🗓 | ✅ |
316
+ | Non-orthogonal unit cell | 🗓 | 🗓 |
317
+
318
+ ### Magnetic Structure
319
+
320
+ | Feature | LIB | APP |
321
+ | ------------------------------------ | --- | --- |
322
+ | Visualize magnetic moments as arrows | 🗓 | 🗓 |
323
+
324
+ ## 8.2. Experiment
325
+
326
+ ### Powder Diffraction
327
+
328
+ | Feature | LIB | APP | CLI |
329
+ | ------------------------------------ | -------- | --- | --- |
330
+ | Plot experimental curve | ✅ | ✅ | ✅ |
331
+ | Plot calculated curve | ✅ | ✅ | ✅ |
332
+ | Plot residual curve | ✅ | ✅ | ✅ |
333
+ | Plot Bragg peaks | 🗓`high` | ✅ | — |
334
+ | Interactive mode<br>zooming, panning | ✅ | ✅ | — |
335
+
336
+ ### Single Crystal Diffraction
337
+
338
+ | Feature | LIB | APP | CLI |
339
+ | ------------------------------------ | --- | --- | --- |
340
+ | Plot obs vs calc for reflections | ✅ | ✅ | ✅ |
341
+ | Interactive mode<br>zooming, panning | ✅ | ✅ | — |
342
+
343
+ ## 8.3. Analysis
344
+
345
+ | Feature | LIB | APP | CLI |
346
+ | ---------------------------------------------------- | ----- | --- | --- |
347
+ | Live update of plots on parameter change with slider | — | ✅ | — |
348
+ | Live update of plots during refinement | — | ✅ | — |
349
+ | Parameter evolution (sequential refinement) | ✅/🗓 | 🗓 | — |
350
+
351
+ ### Fitting
352
+
353
+ | Feature | LIB | APP | CLI |
354
+ | ----------------------------------------- | --- | --- | --- |
355
+ | Live update of plots | — | ✅ | — |
356
+ | Live update of fit quality (change in χ²) | ✅ | ✅ | ✅ |
357
+ | Plot correlation between parameters | ✅ | 🗓 | ✅ |
358
+
359
+ ---
360
+
361
+ # 9. User documentation
362
+
363
+ | Feature | LIB | APP |
364
+ | ----------------------------------- | --- | ----- |
365
+ | New unified documentation structure | ✅ | 🗓 |
366
+ | Introduction | ✅ | ✅/🗓 |
367
+ | Installation and setup guide | ✅ | ✅/🗓 |
368
+ | User guide | ✅ | ✅/🗓 |
369
+ | Tutorials | ✅ | 🗓 |
370
+ | API reference | ✅ | — |
371
+
372
+ ---
373
+
374
+ # 10. Future Topics
375
+
376
+ Here, we list features that are not sorted into the above categories,
377
+ but are still on our radar for future development.
378
+
379
+ - Restrains (soft constraints, e.g. bond lengths, angles)
380
+ - Global optimization algorithms (e.g. simulated annealing)
381
+ - Incommensurate structures
382
+ - 2D Rietveld refinement