easydiffraction 0.12.0__tar.gz → 0.13.1__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.1}/.copier-answers.yml +1 -1
  2. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/.github/copilot-instructions.md +19 -3
  3. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/.github/workflows/pypi-test.yml +1 -0
  4. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/.github/workflows/test.yml +36 -2
  5. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/.gitignore +1 -0
  6. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/PKG-INFO +1 -1
  7. easydiffraction-0.13.1/docs/architecture/ROADMAP.md +406 -0
  8. easydiffraction-0.13.1/docs/architecture/adp_implementation.md +321 -0
  9. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/docs/architecture/architecture.md +172 -98
  10. easydiffraction-0.13.1/docs/architecture/cryspy-dwf-bug.md +126 -0
  11. easydiffraction-0.13.1/docs/architecture/issues_closed.md +125 -0
  12. easydiffraction-0.13.1/docs/architecture/issues_open.md +1524 -0
  13. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/docs/architecture/package-structure-full.md +41 -13
  14. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/docs/architecture/package-structure-short.md +15 -3
  15. easydiffraction-0.13.1/docs/docs/tutorials/data/ed-7.xye +5600 -0
  16. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/docs/docs/tutorials/ed-1.ipynb +25 -25
  17. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/docs/docs/tutorials/ed-1.py +2 -2
  18. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/docs/docs/tutorials/ed-10.ipynb +24 -23
  19. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/docs/docs/tutorials/ed-10.py +3 -2
  20. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/docs/docs/tutorials/ed-11.ipynb +29 -29
  21. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/docs/docs/tutorials/ed-11.py +5 -5
  22. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/docs/docs/tutorials/ed-12.ipynb +33 -32
  23. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/docs/docs/tutorials/ed-12.py +5 -4
  24. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/docs/docs/tutorials/ed-13.ipynb +231 -232
  25. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/docs/docs/tutorials/ed-13.py +25 -26
  26. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/docs/docs/tutorials/ed-14.ipynb +159 -46
  27. easydiffraction-0.13.1/docs/docs/tutorials/ed-14.py +159 -0
  28. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/docs/docs/tutorials/ed-15.ipynb +122 -35
  29. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/docs/docs/tutorials/ed-15.py +37 -6
  30. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/docs/docs/tutorials/ed-16.ipynb +64 -81
  31. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/docs/docs/tutorials/ed-16.py +8 -13
  32. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/docs/docs/tutorials/ed-17.ipynb +117 -81
  33. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/docs/docs/tutorials/ed-17.py +31 -19
  34. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/docs/docs/tutorials/ed-18.ipynb +35 -17
  35. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/docs/docs/tutorials/ed-18.py +7 -1
  36. easydiffraction-0.13.1/docs/docs/tutorials/ed-19.ipynb +1101 -0
  37. easydiffraction-0.12.0/tmp/hep7c/hep7c_II.py → easydiffraction-0.13.1/docs/docs/tutorials/ed-19.py +70 -38
  38. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/docs/docs/tutorials/ed-2.ipynb +141 -39
  39. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/docs/docs/tutorials/ed-2.py +51 -9
  40. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/docs/docs/tutorials/ed-3.ipynb +183 -210
  41. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/docs/docs/tutorials/ed-3.py +11 -20
  42. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/docs/docs/tutorials/ed-4.ipynb +63 -74
  43. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/docs/docs/tutorials/ed-4.py +5 -9
  44. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/docs/docs/tutorials/ed-5.ipynb +206 -103
  45. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/docs/docs/tutorials/ed-5.py +69 -32
  46. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/docs/docs/tutorials/ed-6.ipynb +109 -128
  47. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/docs/docs/tutorials/ed-6.py +27 -29
  48. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/docs/docs/tutorials/ed-7.ipynb +109 -111
  49. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/docs/docs/tutorials/ed-7.py +21 -18
  50. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/docs/docs/tutorials/ed-8.ipynb +88 -119
  51. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/docs/docs/tutorials/ed-8.py +33 -40
  52. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/docs/docs/tutorials/ed-9.ipynb +77 -103
  53. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/docs/docs/tutorials/ed-9.py +15 -23
  54. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/docs/docs/user-guide/analysis-workflow/analysis.md +2 -2
  55. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/docs/docs/user-guide/analysis-workflow/model.md +2 -2
  56. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/docs/docs/user-guide/first-steps.md +10 -10
  57. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/docs/docs/user-guide/parameters.md +13 -13
  58. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/pixi.lock +409 -376
  59. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/pixi.toml +3 -1
  60. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/pyproject.toml +2 -2
  61. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/__main__.py +11 -8
  62. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/analysis/analysis.py +55 -128
  63. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/analysis/calculators/base.py +2 -0
  64. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/analysis/calculators/crysfml.py +8 -8
  65. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/analysis/calculators/cryspy.py +357 -25
  66. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/analysis/calculators/pdffit.py +2 -3
  67. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/analysis/categories/fit_mode/enums.py +6 -2
  68. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/analysis/categories/fit_mode/fit_mode.py +2 -1
  69. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/analysis/fit_helpers/reporting.py +46 -0
  70. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/analysis/fitting.py +21 -2
  71. easydiffraction-0.13.1/src/easydiffraction/analysis/minimizers/__init__.py +11 -0
  72. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/analysis/minimizers/base.py +109 -4
  73. easydiffraction-0.13.1/src/easydiffraction/analysis/minimizers/bumps.py +266 -0
  74. easydiffraction-0.13.1/src/easydiffraction/analysis/minimizers/bumps_amoeba.py +35 -0
  75. easydiffraction-0.13.1/src/easydiffraction/analysis/minimizers/bumps_de.py +35 -0
  76. easydiffraction-0.13.1/src/easydiffraction/analysis/minimizers/bumps_lm.py +37 -0
  77. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/analysis/minimizers/dfols.py +4 -3
  78. easydiffraction-0.13.1/src/easydiffraction/analysis/minimizers/enums.py +51 -0
  79. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/analysis/minimizers/factory.py +2 -1
  80. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/analysis/minimizers/lmfit.py +4 -3
  81. easydiffraction-0.13.1/src/easydiffraction/analysis/minimizers/lmfit_least_squares.py +37 -0
  82. easydiffraction-0.13.1/src/easydiffraction/analysis/minimizers/lmfit_leastsq.py +39 -0
  83. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/analysis/sequential.py +1 -0
  84. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/core/category.py +10 -2
  85. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/core/datablock.py +1 -0
  86. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/core/guard.py +9 -1
  87. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/core/singleton.py +1 -1
  88. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/core/validation.py +1 -0
  89. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/core/variable.py +18 -0
  90. easydiffraction-0.13.1/src/easydiffraction/crystallography/crystallography.py +503 -0
  91. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/datablocks/experiment/categories/background/chebyshev.py +6 -5
  92. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/datablocks/experiment/categories/background/enums.py +1 -0
  93. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/datablocks/experiment/categories/background/line_segment.py +5 -1
  94. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/datablocks/experiment/categories/data/bragg_pd.py +18 -7
  95. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/datablocks/experiment/categories/data/bragg_sc.py +5 -1
  96. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/datablocks/experiment/categories/data/total_pd.py +5 -1
  97. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/datablocks/experiment/categories/excluded_regions/default.py +5 -1
  98. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/datablocks/experiment/categories/extinction/__init__.py +3 -1
  99. easydiffraction-0.13.1/src/easydiffraction/datablocks/experiment/categories/extinction/becker_coppens.py +133 -0
  100. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/datablocks/experiment/categories/extinction/factory.py +1 -1
  101. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/datablocks/experiment/categories/instrument/cwl.py +1 -1
  102. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/datablocks/experiment/categories/linked_phases/default.py +1 -1
  103. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/datablocks/experiment/categories/peak/__init__.py +6 -4
  104. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/datablocks/experiment/categories/peak/cwl.py +4 -4
  105. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/datablocks/experiment/categories/peak/factory.py +1 -1
  106. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/datablocks/experiment/categories/peak/tof.py +39 -21
  107. easydiffraction-0.13.1/src/easydiffraction/datablocks/experiment/categories/peak/tof_mixins.py +496 -0
  108. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/datablocks/experiment/item/base.py +22 -287
  109. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/datablocks/experiment/item/bragg_pd.py +9 -50
  110. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/datablocks/experiment/item/enums.py +55 -11
  111. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/datablocks/experiment/item/factory.py +1 -2
  112. easydiffraction-0.13.1/src/easydiffraction/datablocks/structure/categories/atom_site_aniso/__init__.py +7 -0
  113. easydiffraction-0.13.1/src/easydiffraction/datablocks/structure/categories/atom_site_aniso/default.py +283 -0
  114. easydiffraction-0.13.1/src/easydiffraction/datablocks/structure/categories/atom_site_aniso/factory.py +17 -0
  115. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/datablocks/structure/categories/atom_sites/__init__.py +1 -0
  116. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/datablocks/structure/categories/atom_sites/default.py +300 -12
  117. easydiffraction-0.13.1/src/easydiffraction/datablocks/structure/categories/atom_sites/enums.py +31 -0
  118. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/datablocks/structure/categories/cell/default.py +4 -3
  119. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/datablocks/structure/item/base.py +74 -106
  120. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/display/plotters/ascii.py +1 -2
  121. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/display/plotters/plotly.py +2 -6
  122. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/display/plotting.py +11 -4
  123. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/display/tablers/base.py +1 -2
  124. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/display/tablers/pandas.py +44 -0
  125. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/display/tablers/rich.py +1 -2
  126. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/io/ascii.py +21 -16
  127. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/io/cif/serialize.py +67 -25
  128. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/project/project.py +1 -0
  129. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/summary/summary.py +61 -31
  130. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/utils/utils.py +39 -16
  131. easydiffraction-0.13.1/tests/functional/test_adp_switching.py +244 -0
  132. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/functional/test_experiment_workflow.py +1 -1
  133. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/functional/test_fitting_workflow.py +15 -15
  134. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/functional/test_structure_workflow.py +6 -6
  135. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/functional/test_switchable_categories.py +6 -6
  136. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/integration/fitting/conftest.py +4 -4
  137. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/integration/fitting/test_analysis_display.py +0 -18
  138. easydiffraction-0.13.1/tests/integration/fitting/test_aniso_adp_fitting.py +106 -0
  139. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/integration/fitting/test_cif_round_trip.py +6 -6
  140. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/integration/fitting/test_exploration_help.py +6 -18
  141. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/integration/fitting/test_multi.py +25 -25
  142. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/integration/fitting/test_pair-distribution-function.py +8 -8
  143. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/integration/fitting/test_powder-diffraction_constant-wavelength.py +42 -42
  144. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/integration/fitting/test_powder-diffraction_joint-fit.py +10 -10
  145. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/integration/fitting/test_powder-diffraction_time-of-flight.py +20 -20
  146. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/integration/fitting/test_project_load.py +6 -6
  147. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/integration/fitting/test_sequential.py +4 -4
  148. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/integration/fitting/test_single-crystal-diffraction.py +1 -1
  149. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/integration/fitting/test_switch-calculator.py +2 -2
  150. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/integration/scipp-analysis/dream/test_analyze_reduced_data.py +12 -22
  151. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/unit/easydiffraction/analysis/calculators/test_cryspy.py +2 -0
  152. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/unit/easydiffraction/analysis/categories/test_aliases.py +2 -2
  153. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/unit/easydiffraction/analysis/fit_helpers/test_metrics.py +1 -1
  154. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/unit/easydiffraction/analysis/minimizers/test_base.py +18 -6
  155. easydiffraction-0.13.1/tests/unit/easydiffraction/analysis/minimizers/test_bumps.py +415 -0
  156. easydiffraction-0.13.1/tests/unit/easydiffraction/analysis/minimizers/test_bumps_amoeba.py +99 -0
  157. easydiffraction-0.13.1/tests/unit/easydiffraction/analysis/minimizers/test_bumps_de.py +99 -0
  158. easydiffraction-0.13.1/tests/unit/easydiffraction/analysis/minimizers/test_bumps_lm.py +100 -0
  159. easydiffraction-0.13.1/tests/unit/easydiffraction/analysis/minimizers/test_enums.py +32 -0
  160. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/unit/easydiffraction/analysis/minimizers/test_factory.py +23 -1
  161. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/unit/easydiffraction/analysis/minimizers/test_lmfit.py +1 -1
  162. easydiffraction-0.13.1/tests/unit/easydiffraction/analysis/minimizers/test_lmfit_least_squares.py +90 -0
  163. easydiffraction-0.13.1/tests/unit/easydiffraction/analysis/minimizers/test_lmfit_leastsq.py +90 -0
  164. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/unit/easydiffraction/analysis/test_analysis.py +1 -46
  165. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/unit/easydiffraction/analysis/test_analysis_coverage.py +2 -96
  166. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/unit/easydiffraction/analysis/test_fitting.py +20 -2
  167. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/unit/easydiffraction/datablocks/experiment/categories/peak/test_cwl.py +4 -2
  168. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/unit/easydiffraction/datablocks/experiment/categories/peak/test_cwl_mixins.py +4 -2
  169. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/unit/easydiffraction/datablocks/experiment/categories/peak/test_factory.py +3 -3
  170. easydiffraction-0.13.1/tests/unit/easydiffraction/datablocks/experiment/categories/peak/test_tof.py +40 -0
  171. easydiffraction-0.13.1/tests/unit/easydiffraction/datablocks/experiment/categories/peak/test_tof_mixins.py +90 -0
  172. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/unit/easydiffraction/datablocks/experiment/categories/test_extinction.py +57 -16
  173. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/unit/easydiffraction/datablocks/experiment/item/test_base.py +7 -7
  174. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/unit/easydiffraction/datablocks/experiment/item/test_base_coverage.py +0 -76
  175. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/unit/easydiffraction/datablocks/experiment/item/test_bragg_sc_coverage.py +0 -45
  176. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/unit/easydiffraction/datablocks/experiment/item/test_enums_coverage.py +15 -10
  177. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/unit/easydiffraction/datablocks/experiment/item/test_factory.py +3 -3
  178. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/unit/easydiffraction/datablocks/experiment/item/test_total_pd.py +3 -2
  179. easydiffraction-0.13.1/tests/unit/easydiffraction/datablocks/structure/categories/test_atom_site_aniso.py +537 -0
  180. easydiffraction-0.13.1/tests/unit/easydiffraction/datablocks/structure/categories/test_atom_sites.py +249 -0
  181. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/unit/easydiffraction/datablocks/structure/item/test_base_coverage.py +3 -78
  182. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/unit/easydiffraction/display/tablers/test_pandas.py +2 -0
  183. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/unit/easydiffraction/display/test_plotting.py +12 -5
  184. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/unit/easydiffraction/io/cif/test_parse.py +4 -4
  185. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/unit/easydiffraction/io/cif/test_serialize.py +3 -3
  186. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/unit/easydiffraction/io/cif/test_serialize_more.py +1 -1
  187. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/unit/easydiffraction/io/test_ascii.py +58 -1
  188. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/unit/easydiffraction/project/test_project_load.py +5 -5
  189. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/unit/easydiffraction/summary/test_summary_details.py +19 -12
  190. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/unit/easydiffraction/test___init__.py +2 -2
  191. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/unit/easydiffraction/test___main__.py +31 -1
  192. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/unit/easydiffraction/utils/test_utils_coverage.py +19 -12
  193. easydiffraction-0.12.0/docs/architecture/issues_closed.md +0 -117
  194. easydiffraction-0.12.0/docs/architecture/issues_open.md +0 -294
  195. easydiffraction-0.12.0/docs/architecture/sequential_fitting_design.md +0 -1269
  196. easydiffraction-0.12.0/docs/docs/tutorials/ed-14.py +0 -109
  197. easydiffraction-0.12.0/src/easydiffraction/analysis/minimizers/__init__.py +0 -5
  198. easydiffraction-0.12.0/src/easydiffraction/crystallography/crystallography.py +0 -191
  199. easydiffraction-0.12.0/src/easydiffraction/datablocks/experiment/categories/extinction/shelx.py +0 -94
  200. easydiffraction-0.12.0/src/easydiffraction/datablocks/experiment/categories/peak/tof_mixins.py +0 -276
  201. easydiffraction-0.12.0/tests/unit/easydiffraction/datablocks/experiment/categories/peak/test_tof.py +0 -25
  202. easydiffraction-0.12.0/tests/unit/easydiffraction/datablocks/experiment/categories/peak/test_tof_mixins.py +0 -42
  203. easydiffraction-0.12.0/tests/unit/easydiffraction/datablocks/structure/categories/test_atom_sites.py +0 -132
  204. easydiffraction-0.12.0/tmp/cli/lbco_hrpt/analysis/analysis.cif +0 -15
  205. easydiffraction-0.12.0/tmp/cli/lbco_hrpt/experiments/hrpt.cif +0 -3156
  206. easydiffraction-0.12.0/tmp/cli/lbco_hrpt/project.cif +0 -5
  207. easydiffraction-0.12.0/tmp/cli/lbco_hrpt/structures/lbco.cif +0 -26
  208. easydiffraction-0.12.0/tmp/cli/lbco_hrpt/summary.cif +0 -1
  209. easydiffraction-0.12.0/tmp/correlations/ed-1.py +0 -113
  210. easydiffraction-0.12.0/tmp/data/DREAM_mantle_bc240_nist_cif.xye +0 -1007
  211. easydiffraction-0.12.0/tmp/data/DREAM_mantle_bc240_nist_cif_2.xye +0 -802
  212. easydiffraction-0.12.0/tmp/data/DREAM_mantle_bc240_nist_nc.xye +0 -1007
  213. easydiffraction-0.12.0/tmp/data/DREAM_mantle_bc240_nist_nc_2.xye +0 -802
  214. easydiffraction-0.12.0/tmp/data/Si_mp-149_symmetrized_mcstas.cif +0 -221
  215. easydiffraction-0.12.0/tmp/data/hrpt.cif +0 -3140
  216. easydiffraction-0.12.0/tmp/data/hrpt_lbco.xye +0 -3099
  217. easydiffraction-0.12.0/tmp/data/large_structure.cif +0 -5025
  218. easydiffraction-0.12.0/tmp/data/lbco.cif +0 -36
  219. easydiffraction-0.12.0/tmp/data_old/mcstas_lbco-si.xys +0 -1000
  220. easydiffraction-0.12.0/tmp/data_old/mcstas_lbco-si_up-to-108k.xys +0 -634
  221. easydiffraction-0.12.0/tmp/data_old/powder_reduced_Si_2large_bank.xye +0 -1002
  222. easydiffraction-0.12.0/tmp/data_old/reduced_LBCO.xye +0 -902
  223. easydiffraction-0.12.0/tmp/data_old/reduced_Si.xye +0 -902
  224. easydiffraction-0.12.0/tmp/data_old/wish_ncaf.xye +0 -3738
  225. easydiffraction-0.12.0/tmp/data_old/wish_ncaf_2_9.xye +0 -3454
  226. easydiffraction-0.12.0/tmp/data_old/wish_ncaf_4_7.xye +0 -3472
  227. easydiffraction-0.12.0/tmp/data_old/wish_ncaf_4_7.xys +0 -4043
  228. easydiffraction-0.12.0/tmp/data_old/wish_ncaf_5_6.xye +0 -3573
  229. easydiffraction-0.12.0/tmp/data_old/wish_ybcfo_5_6.xye +0 -3807
  230. easydiffraction-0.12.0/tmp/hep7c/data/HEP_7c_LaMe_riet.dat +0 -9101
  231. easydiffraction-0.12.0/tmp/hep7c/data/hep7c_4.dat +0 -1469
  232. easydiffraction-0.12.0/tmp/hep7c/hep7c_I/analysis/analysis.cif +0 -25
  233. easydiffraction-0.12.0/tmp/hep7c/hep7c_I/experiments/pd_xray_1.cif +0 -1540
  234. easydiffraction-0.12.0/tmp/hep7c/hep7c_I/project.cif +0 -5
  235. easydiffraction-0.12.0/tmp/hep7c/hep7c_I/structures/lam7o3.cif +0 -32
  236. easydiffraction-0.12.0/tmp/hep7c/hep7c_I/summary.cif +0 -1
  237. easydiffraction-0.12.0/tmp/hep7c/hep7c_I.py +0 -514
  238. easydiffraction-0.12.0/tmp/hep7c/hep7c_II/analysis/analysis.cif +0 -25
  239. easydiffraction-0.12.0/tmp/hep7c/hep7c_II/experiments/pd_xray_2.cif +0 -9192
  240. easydiffraction-0.12.0/tmp/hep7c/hep7c_II/project.cif +0 -5
  241. easydiffraction-0.12.0/tmp/hep7c/hep7c_II/structures/lam7o3.cif +0 -32
  242. easydiffraction-0.12.0/tmp/hep7c/hep7c_II/summary.cif +0 -1
  243. easydiffraction-0.12.0/tmp/hep7c/hep7c_joint/analysis/analysis.cif +0 -31
  244. easydiffraction-0.12.0/tmp/hep7c/hep7c_joint/experiments/pd_xray_1.cif +0 -1540
  245. easydiffraction-0.12.0/tmp/hep7c/hep7c_joint/experiments/pd_xray_2.cif +0 -9192
  246. easydiffraction-0.12.0/tmp/hep7c/hep7c_joint/project.cif +0 -5
  247. easydiffraction-0.12.0/tmp/hep7c/hep7c_joint/structures/lam7o3.cif +0 -32
  248. easydiffraction-0.12.0/tmp/hep7c/hep7c_joint/summary.cif +0 -1
  249. easydiffraction-0.12.0/tmp/hep7c/hep7c_joint.py +0 -228
  250. easydiffraction-0.12.0/tmp/unsorted/Untitled.ipynb +0 -567
  251. easydiffraction-0.12.0/tmp/unsorted/Untitled0.ipynb +0 -492
  252. easydiffraction-0.12.0/tmp/unsorted/Untitled1.ipynb +0 -149
  253. easydiffraction-0.12.0/tmp/unsorted/Untitled2.ipynb +0 -6
  254. easydiffraction-0.12.0/tmp/unsorted/__validator.py +0 -87
  255. easydiffraction-0.12.0/tmp/unsorted/_gemmi.py +0 -613
  256. easydiffraction-0.12.0/tmp/unsorted/_read_cif.py +0 -184
  257. easydiffraction-0.12.0/tmp/unsorted/_smart.py +0 -162
  258. easydiffraction-0.12.0/tmp/unsorted/basic_single-fit_pd-neut-cwl_LBCO-HRPT.py +0 -736
  259. easydiffraction-0.12.0/tmp/unsorted/cryst-struct_pd-neut-tof_multiphase-BSFTO-HRPT.py +0 -269
  260. easydiffraction-0.12.0/tmp/unsorted/display.py +0 -413
  261. easydiffraction-0.12.0/tmp/unsorted/display2.py +0 -28
  262. easydiffraction-0.12.0/tmp/unsorted/display3-Copy1.py +0 -45
  263. easydiffraction-0.12.0/tmp/unsorted/display3.py +0 -173
  264. easydiffraction-0.12.0/tmp/unsorted/generate_overview_mermaid.py +0 -309
  265. easydiffraction-0.12.0/tmp/unsorted/hrpt_n_Bi0p88Sm0p12Fe0p94Ti0p06O3_DW_V_9x8x52_1p49_HI.xye +0 -3244
  266. easydiffraction-0.12.0/tmp/unsorted/short.py +0 -94
  267. easydiffraction-0.12.0/tmp/unsorted/short2.py +0 -228
  268. easydiffraction-0.12.0/tmp/unsorted/short3.py +0 -138
  269. easydiffraction-0.12.0/tmp/unsorted/short5.py +0 -316
  270. easydiffraction-0.12.0/tmp/unsorted/short6.py +0 -85
  271. easydiffraction-0.12.0/tmp/unsorted/short7.py +0 -128
  272. easydiffraction-0.12.0/tmp/unsorted/show_d401.py +0 -26
  273. easydiffraction-0.12.0/tmp/unsorted/show_w505.py +0 -27
  274. easydiffraction-0.12.0/tmp/unsorted/test_single-fit_pd-neut-tof_Si-DREAM_nc.py +0 -153
  275. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/.badgery.yaml +0 -0
  276. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/.codefactorignore +0 -0
  277. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/.github/actions/download-artifact/action.yml +0 -0
  278. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/.github/actions/github-script/action.yml +0 -0
  279. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/.github/actions/setup-easyscience-bot/action.yml +0 -0
  280. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/.github/actions/setup-pixi/action.yml +0 -0
  281. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/.github/actions/upload-artifact/action.yml +0 -0
  282. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/.github/actions/upload-codecov/action.yml +0 -0
  283. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/.github/configs/pages-deployment.json +0 -0
  284. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/.github/configs/rulesets-develop.json +0 -0
  285. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/.github/configs/rulesets-gh-pages.json +0 -0
  286. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/.github/configs/rulesets-master.json +0 -0
  287. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/.github/scripts/backmerge-conflict-issue.js +0 -0
  288. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/.github/workflows/backmerge.yml +0 -0
  289. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/.github/workflows/cleanup.yml +0 -0
  290. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/.github/workflows/coverage.yml +0 -0
  291. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/.github/workflows/dashboard.yml +0 -0
  292. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/.github/workflows/docs.yml +0 -0
  293. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/.github/workflows/issues-labels.yml +0 -0
  294. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/.github/workflows/lint-format.yml +0 -0
  295. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/.github/workflows/pr-labels.yml +0 -0
  296. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/.github/workflows/pypi-publish.yml +0 -0
  297. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/.github/workflows/release-notes.yml +0 -0
  298. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/.github/workflows/release-pr.yml +0 -0
  299. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/.github/workflows/security.yml +0 -0
  300. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/.github/workflows/test-trigger.yml +0 -0
  301. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/.github/workflows/tutorial-tests-colab.yaml +0 -0
  302. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/.github/workflows/tutorial-tests-trigger.yml +0 -0
  303. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/.github/workflows/tutorial-tests.yml +0 -0
  304. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/.pre-commit-config.yaml +0 -0
  305. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/.prettierignore +0 -0
  306. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/CONTRIBUTING.md +0 -0
  307. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/LICENSE +0 -0
  308. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/README.md +0 -0
  309. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/codecov.yml +0 -0
  310. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/docs/docs/api-reference/analysis.md +0 -0
  311. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/docs/docs/api-reference/core.md +0 -0
  312. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/docs/docs/api-reference/crystallography.md +0 -0
  313. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/docs/docs/api-reference/datablocks/experiment.md +0 -0
  314. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/docs/docs/api-reference/datablocks/structure.md +0 -0
  315. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/docs/docs/api-reference/display.md +0 -0
  316. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/docs/docs/api-reference/index.md +0 -0
  317. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/docs/docs/api-reference/io.md +0 -0
  318. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/docs/docs/api-reference/project.md +0 -0
  319. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/docs/docs/api-reference/summary.md +0 -0
  320. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/docs/docs/api-reference/utils.md +0 -0
  321. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/docs/docs/assets/images/favicon.png +0 -0
  322. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/docs/docs/assets/images/logo_dark.svg +0 -0
  323. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/docs/docs/assets/images/logo_light.svg +0 -0
  324. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/docs/docs/assets/images/user-guide/data-acquisition_2d-raw-data.jpg +0 -0
  325. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/docs/docs/assets/images/user-guide/data-acquisition_instrument.png +0 -0
  326. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/docs/docs/assets/images/user-guide/data-analysis_model.png +0 -0
  327. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/docs/docs/assets/images/user-guide/data-analysis_refinement.png +0 -0
  328. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/docs/docs/assets/images/user-guide/data-reduction_1d-pattern.png +0 -0
  329. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/docs/docs/assets/javascripts/extra.js +0 -0
  330. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/docs/docs/assets/javascripts/mathjax.js +0 -0
  331. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/docs/docs/assets/stylesheets/extra.css +0 -0
  332. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/docs/docs/cli/index.md +0 -0
  333. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/docs/docs/index.md +0 -0
  334. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/docs/docs/installation-and-setup/index.md +0 -0
  335. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/docs/docs/introduction/index.md +0 -0
  336. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/docs/docs/tutorials/index.json +0 -0
  337. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/docs/docs/tutorials/index.md +0 -0
  338. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/docs/docs/user-guide/analysis-workflow/experiment.md +0 -0
  339. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/docs/docs/user-guide/analysis-workflow/index.md +0 -0
  340. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/docs/docs/user-guide/analysis-workflow/project.md +0 -0
  341. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/docs/docs/user-guide/analysis-workflow/summary.md +0 -0
  342. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/docs/docs/user-guide/concept.md +0 -0
  343. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/docs/docs/user-guide/data-format.md +0 -0
  344. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/docs/docs/user-guide/glossary.md +0 -0
  345. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/docs/docs/user-guide/index.md +0 -0
  346. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/docs/docs/user-guide/parameters/_diffrn_radiation.md +0 -0
  347. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/docs/docs/user-guide/parameters/_diffrn_radiation_wavelength.md +0 -0
  348. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/docs/docs/user-guide/parameters/_exptl_crystal.md +0 -0
  349. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/docs/docs/user-guide/parameters/_extinction.md +0 -0
  350. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/docs/docs/user-guide/parameters/_pd_calib.md +0 -0
  351. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/docs/docs/user-guide/parameters/atom_site.md +0 -0
  352. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/docs/docs/user-guide/parameters/background.md +0 -0
  353. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/docs/docs/user-guide/parameters/cell.md +0 -0
  354. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/docs/docs/user-guide/parameters/expt_type.md +0 -0
  355. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/docs/docs/user-guide/parameters/instrument.md +0 -0
  356. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/docs/docs/user-guide/parameters/linked_phases.md +0 -0
  357. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/docs/docs/user-guide/parameters/pd_meas.md +0 -0
  358. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/docs/docs/user-guide/parameters/peak.md +0 -0
  359. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/docs/docs/user-guide/parameters/space_group.md +0 -0
  360. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/docs/includes/abbreviations.md +0 -0
  361. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/docs/mkdocs.yml +0 -0
  362. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/docs/overrides/.icons/app.svg +0 -0
  363. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/docs/overrides/.icons/easydiffraction.svg +0 -0
  364. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/docs/overrides/.icons/easyscience.svg +0 -0
  365. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/docs/overrides/.icons/google-colab.svg +0 -0
  366. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/docs/overrides/main.html +0 -0
  367. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/docs/overrides/partials/logo.html +0 -0
  368. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/prettierrc.toml +0 -0
  369. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/__init__.py +0 -0
  370. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/analysis/__init__.py +0 -0
  371. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/analysis/calculators/__init__.py +0 -0
  372. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/analysis/calculators/factory.py +0 -0
  373. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/analysis/categories/__init__.py +0 -0
  374. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/analysis/categories/aliases/__init__.py +0 -0
  375. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/analysis/categories/aliases/default.py +0 -0
  376. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/analysis/categories/aliases/factory.py +0 -0
  377. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/analysis/categories/constraints/__init__.py +0 -0
  378. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/analysis/categories/constraints/default.py +0 -0
  379. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/analysis/categories/constraints/factory.py +0 -0
  380. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/analysis/categories/fit_mode/__init__.py +0 -0
  381. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/analysis/categories/fit_mode/factory.py +0 -0
  382. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/analysis/categories/joint_fit_experiments/__init__.py +0 -0
  383. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/analysis/categories/joint_fit_experiments/default.py +0 -0
  384. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/analysis/categories/joint_fit_experiments/factory.py +0 -0
  385. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/analysis/fit_helpers/__init__.py +0 -0
  386. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/analysis/fit_helpers/metrics.py +0 -0
  387. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/analysis/fit_helpers/tracking.py +0 -0
  388. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/core/__init__.py +0 -0
  389. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/core/collection.py +0 -0
  390. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/core/diagnostic.py +0 -0
  391. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/core/factory.py +0 -0
  392. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/core/identity.py +0 -0
  393. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/core/metadata.py +0 -0
  394. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/crystallography/__init__.py +0 -0
  395. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/crystallography/space_groups.pkl.gz +0 -0
  396. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/crystallography/space_groups.py +0 -0
  397. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/datablocks/__init__.py +0 -0
  398. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/datablocks/experiment/__init__.py +0 -0
  399. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/datablocks/experiment/categories/__init__.py +0 -0
  400. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/datablocks/experiment/categories/background/__init__.py +0 -0
  401. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/datablocks/experiment/categories/background/base.py +0 -0
  402. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/datablocks/experiment/categories/background/factory.py +0 -0
  403. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/datablocks/experiment/categories/data/__init__.py +0 -0
  404. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/datablocks/experiment/categories/data/factory.py +0 -0
  405. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/datablocks/experiment/categories/diffrn/__init__.py +0 -0
  406. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/datablocks/experiment/categories/diffrn/default.py +0 -0
  407. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/datablocks/experiment/categories/diffrn/factory.py +0 -0
  408. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/datablocks/experiment/categories/excluded_regions/__init__.py +0 -0
  409. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/datablocks/experiment/categories/excluded_regions/factory.py +0 -0
  410. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/datablocks/experiment/categories/experiment_type/__init__.py +0 -0
  411. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/datablocks/experiment/categories/experiment_type/default.py +0 -0
  412. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/datablocks/experiment/categories/experiment_type/factory.py +0 -0
  413. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/datablocks/experiment/categories/instrument/__init__.py +0 -0
  414. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/datablocks/experiment/categories/instrument/base.py +0 -0
  415. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/datablocks/experiment/categories/instrument/factory.py +0 -0
  416. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/datablocks/experiment/categories/instrument/tof.py +0 -0
  417. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/datablocks/experiment/categories/linked_crystal/__init__.py +0 -0
  418. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/datablocks/experiment/categories/linked_crystal/default.py +0 -0
  419. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/datablocks/experiment/categories/linked_crystal/factory.py +0 -0
  420. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/datablocks/experiment/categories/linked_phases/__init__.py +0 -0
  421. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/datablocks/experiment/categories/linked_phases/factory.py +0 -0
  422. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/datablocks/experiment/categories/peak/base.py +0 -0
  423. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/datablocks/experiment/categories/peak/cwl_mixins.py +0 -0
  424. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/datablocks/experiment/categories/peak/total.py +0 -0
  425. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/datablocks/experiment/categories/peak/total_mixins.py +0 -0
  426. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/datablocks/experiment/collection.py +0 -0
  427. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/datablocks/experiment/item/__init__.py +0 -0
  428. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/datablocks/experiment/item/bragg_sc.py +0 -0
  429. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/datablocks/experiment/item/total_pd.py +0 -0
  430. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/datablocks/structure/__init__.py +0 -0
  431. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/datablocks/structure/categories/__init__.py +0 -0
  432. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/datablocks/structure/categories/atom_sites/factory.py +0 -0
  433. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/datablocks/structure/categories/cell/__init__.py +0 -0
  434. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/datablocks/structure/categories/cell/factory.py +0 -0
  435. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/datablocks/structure/categories/space_group/__init__.py +0 -0
  436. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/datablocks/structure/categories/space_group/default.py +0 -0
  437. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/datablocks/structure/categories/space_group/factory.py +0 -0
  438. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/datablocks/structure/collection.py +0 -0
  439. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/datablocks/structure/item/__init__.py +0 -0
  440. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/datablocks/structure/item/factory.py +0 -0
  441. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/display/__init__.py +0 -0
  442. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/display/base.py +0 -0
  443. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/display/plotters/__init__.py +0 -0
  444. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/display/plotters/base.py +0 -0
  445. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/display/tablers/__init__.py +0 -0
  446. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/display/tables.py +0 -0
  447. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/display/utils.py +0 -0
  448. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/io/__init__.py +0 -0
  449. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/io/cif/__init__.py +0 -0
  450. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/io/cif/handler.py +0 -0
  451. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/io/cif/parse.py +0 -0
  452. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/project/__init__.py +0 -0
  453. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/project/project_info.py +0 -0
  454. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/summary/__init__.py +0 -0
  455. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/utils/__init__.py +0 -0
  456. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/utils/_vendored/__init__.py +0 -0
  457. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/utils/_vendored/jupyter_dark_detect/__init__.py +0 -0
  458. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/utils/_vendored/jupyter_dark_detect/detector.py +0 -0
  459. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/utils/_vendored/theme_detect.py +0 -0
  460. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/utils/enums.py +0 -0
  461. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/utils/environment.py +0 -0
  462. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/src/easydiffraction/utils/logging.py +0 -0
  463. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/functional/conftest.py +0 -0
  464. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/functional/test_project_lifecycle.py +0 -0
  465. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/integration/fitting/test_plotting.py +0 -0
  466. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/integration/fitting/test_summary_report.py +0 -0
  467. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/integration/scipp-analysis/dream/conftest.py +0 -0
  468. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/integration/scipp-analysis/dream/test_package_import.py +0 -0
  469. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/integration/scipp-analysis/dream/test_read_reduced_data.py +0 -0
  470. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/integration/scipp-analysis/dream/test_validate_meta_data.py +0 -0
  471. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/integration/scipp-analysis/dream/test_validate_physical_data.py +0 -0
  472. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/unit/easydiffraction/analysis/calculators/test_base.py +0 -0
  473. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/unit/easydiffraction/analysis/calculators/test_crysfml.py +0 -0
  474. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/unit/easydiffraction/analysis/calculators/test_factory.py +0 -0
  475. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/unit/easydiffraction/analysis/calculators/test_pdffit.py +0 -0
  476. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/unit/easydiffraction/analysis/categories/test_constraints.py +0 -0
  477. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/unit/easydiffraction/analysis/categories/test_fit_mode.py +0 -0
  478. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/unit/easydiffraction/analysis/categories/test_joint_fit_experiments.py +0 -0
  479. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/unit/easydiffraction/analysis/fit_helpers/test_reporting.py +0 -0
  480. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/unit/easydiffraction/analysis/fit_helpers/test_tracking.py +0 -0
  481. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/unit/easydiffraction/analysis/minimizers/test_dfols.py +0 -0
  482. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/unit/easydiffraction/analysis/test_analysis_access_params.py +0 -0
  483. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/unit/easydiffraction/analysis/test_analysis_show_empty.py +0 -0
  484. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/unit/easydiffraction/analysis/test_sequential.py +0 -0
  485. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/unit/easydiffraction/core/test_category.py +0 -0
  486. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/unit/easydiffraction/core/test_collection.py +0 -0
  487. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/unit/easydiffraction/core/test_datablock.py +0 -0
  488. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/unit/easydiffraction/core/test_diagnostic.py +0 -0
  489. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/unit/easydiffraction/core/test_factory.py +0 -0
  490. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/unit/easydiffraction/core/test_guard.py +0 -0
  491. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/unit/easydiffraction/core/test_identity.py +0 -0
  492. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/unit/easydiffraction/core/test_metadata.py +0 -0
  493. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/unit/easydiffraction/core/test_parameters.py +0 -0
  494. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/unit/easydiffraction/core/test_singletons.py +0 -0
  495. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/unit/easydiffraction/core/test_validation.py +0 -0
  496. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/unit/easydiffraction/crystallography/test_crystallography.py +0 -0
  497. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/unit/easydiffraction/crystallography/test_crystallography_coverage.py +0 -0
  498. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/unit/easydiffraction/crystallography/test_crystallography_wyckoff.py +0 -0
  499. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/unit/easydiffraction/crystallography/test_space_groups.py +0 -0
  500. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/unit/easydiffraction/crystallography/test_space_groups_coverage.py +0 -0
  501. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/unit/easydiffraction/datablocks/experiment/categories/background/test_base.py +0 -0
  502. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/unit/easydiffraction/datablocks/experiment/categories/background/test_chebyshev.py +0 -0
  503. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/unit/easydiffraction/datablocks/experiment/categories/background/test_enums.py +0 -0
  504. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/unit/easydiffraction/datablocks/experiment/categories/background/test_factory.py +0 -0
  505. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/unit/easydiffraction/datablocks/experiment/categories/background/test_line_segment.py +0 -0
  506. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/unit/easydiffraction/datablocks/experiment/categories/data/test_bragg_pd.py +0 -0
  507. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/unit/easydiffraction/datablocks/experiment/categories/data/test_bragg_sc.py +0 -0
  508. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/unit/easydiffraction/datablocks/experiment/categories/data/test_factory.py +0 -0
  509. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/unit/easydiffraction/datablocks/experiment/categories/data/test_total_pd.py +0 -0
  510. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/unit/easydiffraction/datablocks/experiment/categories/instrument/test_base.py +0 -0
  511. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/unit/easydiffraction/datablocks/experiment/categories/instrument/test_cwl.py +0 -0
  512. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/unit/easydiffraction/datablocks/experiment/categories/instrument/test_factory.py +0 -0
  513. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/unit/easydiffraction/datablocks/experiment/categories/instrument/test_tof.py +0 -0
  514. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/unit/easydiffraction/datablocks/experiment/categories/peak/test_base.py +0 -0
  515. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/unit/easydiffraction/datablocks/experiment/categories/peak/test_total.py +0 -0
  516. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/unit/easydiffraction/datablocks/experiment/categories/peak/test_total_mixins.py +0 -0
  517. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/unit/easydiffraction/datablocks/experiment/categories/test_diffrn.py +0 -0
  518. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/unit/easydiffraction/datablocks/experiment/categories/test_excluded_regions.py +0 -0
  519. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/unit/easydiffraction/datablocks/experiment/categories/test_experiment_type.py +0 -0
  520. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/unit/easydiffraction/datablocks/experiment/categories/test_linked_crystal.py +0 -0
  521. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/unit/easydiffraction/datablocks/experiment/categories/test_linked_phases.py +0 -0
  522. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/unit/easydiffraction/datablocks/experiment/item/test_bragg_pd.py +0 -0
  523. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/unit/easydiffraction/datablocks/experiment/item/test_bragg_sc.py +0 -0
  524. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/unit/easydiffraction/datablocks/experiment/item/test_enums.py +0 -0
  525. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/unit/easydiffraction/datablocks/experiment/item/test_factory_coverage.py +0 -0
  526. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/unit/easydiffraction/datablocks/experiment/test_collection.py +0 -0
  527. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/unit/easydiffraction/datablocks/structure/categories/__init__.py +0 -0
  528. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/unit/easydiffraction/datablocks/structure/categories/test_cell.py +0 -0
  529. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/unit/easydiffraction/datablocks/structure/categories/test_space_group.py +0 -0
  530. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/unit/easydiffraction/datablocks/structure/item/test_base.py +0 -0
  531. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/unit/easydiffraction/datablocks/structure/item/test_factory.py +0 -0
  532. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/unit/easydiffraction/datablocks/structure/test_collection.py +0 -0
  533. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/unit/easydiffraction/datablocks/structure/test_collection_coverage.py +0 -0
  534. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/unit/easydiffraction/display/plotters/test_ascii.py +0 -0
  535. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/unit/easydiffraction/display/plotters/test_base.py +0 -0
  536. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/unit/easydiffraction/display/plotters/test_plotly.py +0 -0
  537. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/unit/easydiffraction/display/tablers/__init__.py +0 -0
  538. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/unit/easydiffraction/display/tablers/test_base.py +0 -0
  539. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/unit/easydiffraction/display/tablers/test_rich.py +0 -0
  540. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/unit/easydiffraction/display/test_base.py +0 -0
  541. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/unit/easydiffraction/display/test_plotting_coverage.py +0 -0
  542. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/unit/easydiffraction/display/test_tables.py +0 -0
  543. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/unit/easydiffraction/display/test_utils.py +0 -0
  544. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/unit/easydiffraction/io/cif/test_handler.py +0 -0
  545. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/unit/easydiffraction/project/test_project.py +0 -0
  546. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/unit/easydiffraction/project/test_project_info.py +0 -0
  547. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/unit/easydiffraction/project/test_project_load_and_summary_wrap.py +0 -0
  548. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/unit/easydiffraction/project/test_project_save.py +0 -0
  549. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/unit/easydiffraction/summary/test_summary.py +0 -0
  550. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/unit/easydiffraction/utils/test_enums.py +0 -0
  551. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/unit/easydiffraction/utils/test_environment.py +0 -0
  552. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/unit/easydiffraction/utils/test_environment_coverage.py +0 -0
  553. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/unit/easydiffraction/utils/test_logging.py +0 -0
  554. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/unit/easydiffraction/utils/test_logging_coverage.py +0 -0
  555. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/unit/easydiffraction/utils/test_theme_detect.py +0 -0
  556. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tests/unit/easydiffraction/utils/test_utils.py +0 -0
  557. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tools/gen_tests_scaffold.py +0 -0
  558. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tools/generate_package_docs.py +0 -0
  559. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tools/license_headers.py +0 -0
  560. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tools/naming_check.py +0 -0
  561. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tools/param_consistency.py +0 -0
  562. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tools/test_scripts.py +0 -0
  563. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tools/test_structure_check.py +0 -0
  564. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tools/tweak_notebooks.py +0 -0
  565. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/tools/update_docs_assets.py +0 -0
  566. {easydiffraction-0.12.0 → easydiffraction-0.13.1}/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.1
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,406 @@
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. Structure Model
22
+
23
+ ## 1.1 Crystal Structure
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 (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 - EPIC
63
+
64
+ | Feature | LIB | APP |
65
+ | ----------------------------------------------------- | --- | --- |
66
+ | Magnetic Space Groups | 🗓 | 🗓 |
67
+ | Irreducible representations | 🗓 | 🗓 |
68
+ | Magnetic propagation vector (_kx, ky, kz_) | 🗓 | 🗓 |
69
+ | Magnetic moments (_mx, my, mz_) | 🗓 | 🗓 |
70
+ | Local Susceptibility (_𝜒11, 𝜒22, 𝜒33, 𝜒12, 𝜒13, 𝜒23_) | 🗓 | 🗓 |
71
+
72
+ ---
73
+
74
+ # 2. Experiment Model
75
+
76
+ | Techniques | LIB | APP |
77
+ | ---------------------------------------------------- | ----- | ----- |
78
+ | 2.1. Powder Diffraction | ✅/🗓 | ✅/🗓 |
79
+ | 2.1.1. Common features | ✅/🗓 | ✅/🗓 |
80
+ | 2.1.2. Standard Bragg diffraction (CWL) | ✅/🗓 | ✅/🗓 |
81
+ | 2.1.2. Standard Bragg diffraction (TOF) | ✅/🗓 | ✅/🗓 |
82
+ | 2.1.3. Total Scattering (Pair-Distribution Function) | ✅/🗓 | 🗓 |
83
+ | 2.2. Single-Crystal Diffraction (CWL) | ✅/🗓 | ✅/🗓 |
84
+ | 2.2. Single-Crystal Diffraction (TOF) | ✅/🗓 | ✅/🗓 |
85
+ | 2.3. Polarized Powder Diffraction | 🗓 | 🗓 |
86
+ | 2.3.1. Flipping-rathio method (TOF) | 🗓 | 🗓 |
87
+ | 2.3.1. Flipping-rathio method (CWL) | 🗓 | 🗓 |
88
+ | 2.4. Polarized Single-Crystal Diffraction | 🗓 | 🗓 |
89
+ | 2.4.1. Flipping-rathio method (CWL) | 🗓 | 🗓 |
90
+ | 2.4.2. Flipping-rathio method (TOF) | 🗓 | 🗓 |
91
+ | 2.4.3. Spherical neutron polarimetry | 🗓 | 🗓 |
92
+
93
+ ## 2.1. Powder Diffraction
94
+
95
+ ## 2.1.1 Common features
96
+
97
+ ### Linked Phases
98
+
99
+ | Feature | LIB | APP |
100
+ | ------------ | --- | --- |
101
+ | Scale factor | ✅ | ✅ |
102
+
103
+ ### Excluded Regions
104
+
105
+ | Feature | LIB | APP |
106
+ | ----------------------------------------- | --- | --- |
107
+ | Multiple regions<br>_start/end positions_ | ✅ | 🗓 |
108
+
109
+ ## 2.1.1 Standard Bragg diffraction
110
+
111
+ ### Fitting Methods
112
+
113
+ | Feature | LIB | APP |
114
+ | ------------------------------------- | --- | --- |
115
+ | Rietveld refinement (full pattern) | ✅ | ✅ |
116
+ | Le Bail refinement (profile matching) | 🗓 | 🗓 |
117
+
118
+ ### Background
119
+
120
+ | Feature | LIB | APP |
121
+ | ------------------------------------------------- | --- | --- |
122
+ | Line segments type<br>_x, y_ | ✅ | ✅ |
123
+ | Chebyshev polynomial type<br>_order, coefficient_ | ✅ | 🗓 |
124
+
125
+ ### Preferred Orientation
126
+
127
+ | Feature | LIB | APP |
128
+ | ------------------------------------------ | -------- | --- |
129
+ | Basic preferred orientation model (CrysPy) | 🗓`high` | 🗓 |
130
+
131
+ ### Instrument — Constant Wavelength
132
+
133
+ | Feature | LIB | APP |
134
+ | -------------------------------------------------------- | --- | --- |
135
+ | Wavelength | ✅ | ✅ |
136
+ | Second wavelength | 🗓 | 🗓 |
137
+ | 2θ offset | ✅ | ✅ |
138
+ | Sample displacement correction (FullProf _SyCos, SySin_) | 🗓 | 🗓 |
139
+
140
+ ### Instrument — Time-of-Flight
141
+
142
+ | Feature | LIB | APP |
143
+ | ------------------------------------------------------------- | --- | --- |
144
+ | 2θ bank | ✅ | ✅ |
145
+ | d → TOF conversion<br>_reciprocal, offset, linear, quadratic_ | ✅ | ✅ |
146
+
147
+ ### Peak Profile — Constant Wavelength
148
+
149
+ | Feature | LIB | APP |
150
+ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----- | --- |
151
+ | Pseudo-Voigt + Empirical asymmetry<br>_Gaussian broadening U, V, W. Lorentzian broadening X, Y<br>Empirical asymmetry p1, p2, p3, p4_<br>(CrysPy) | ✅ | ✅ |
152
+ | 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) | ✅/🗓 | 🗓 |
153
+
154
+ ### Peak Profile — Time-of-Flight
155
+
156
+ | Feature | LIB | APP |
157
+ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --- | --- |
158
+ | Jorgensen (back-to-back exponentials ⊗ Gaussian)<br>_Gaussian broadening σ₀, σ₁, σ₂<br>Back-to-back exponential rise α₀, α₁. Back-to-back exponential decay β₀, β₁_<br>(CrysPy "Gauss") | ✅ | ✅ |
159
+ | 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 "pseudo-Voigt") | ✅ | ✅ |
160
+ | 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 "type0m") | ✅ | 🗓 |
161
+ | Ikeda-Carpenter ⊗ pseudo-Voigt<br>_Moderator pulse α₀, α₁, β₀, κ<br>Gaussian broadening σ². Lorentzian broadening γ_<br>(CrysFML) | 🗓 | 🗓 |
162
+
163
+ | TOF profile | TOF source | Performance |
164
+ | ------------------------------------------------------------------- | ----------------------------------------------------------------- | ----------- |
165
+ | Jorgensen (back-to-back exponentials ⊗ Gaussian) | Simpler TOF profile, including reactor-source TOF implementations | Fast |
166
+ | Jorgensen-Von Dreele (back-to-back exponentials ⊗ pseudo-Voigt) | Spallation-source TOF | Slower |
167
+ | Double back-to-back exponentials ⊗ pseudo-Voigt (Z-Rietveld type0m) | Spallation-source TOF; more elaborate asymmetric profile | Slowest |
168
+ | Ikeda-Carpenter ⊗ pseudo-Voigt | Spallation-source TOF; moderator pulse shape model | Moderate |
169
+
170
+ ---
171
+
172
+ ## 2.1.3 Total Scattering (Pair Distribution Function)
173
+
174
+ ### Peak Profile
175
+
176
+ | Feature | LIB | APP |
177
+ | ------------------------------------------------------------------------------------------------------------------------ | --- | --- |
178
+ | Gaussian-damped sinc termination function<br>_cutoff q. broadening q. sharpening δ₁, δ₂<br>damping q, particle diameter_ | ✅ | 🗓 |
179
+
180
+ ---
181
+
182
+ ## 2.2 Single Crystal Diffraction
183
+
184
+ ### Extinction
185
+
186
+ CrysPy's extinction is an analytical Becker-Coppens spherical model with
187
+ Gauss or Lorentz mosaicity distribution
188
+
189
+ | Feature | LIB | APP |
190
+ | ----------------------------------------------------- | --- | --- |
191
+ | Becker-Coppens, Gaussian model: _radius, mosaicity_ | ✅ | ✅ |
192
+ | Becker-Coppens, Lorentzian model: _radius, mosaicity_ | ✅ | ✅ |
193
+ | Anisotropic extinction correction | 🗓 | 🗓 |
194
+
195
+ ### Domains / Twinning
196
+
197
+ | Feature | LIB | APP |
198
+ | ------------------------------------------------- | --- | --- |
199
+ | Twinning / domains for single-crystal diffraction | 🗓 | 🗓 |
200
+
201
+ ### Instrument — Constant Wavelength
202
+
203
+ | Feature | LIB | APP |
204
+ | --------------------- | --- | --- |
205
+ | Wavelength | ✅ | ✅ |
206
+ | Half wavelength (λ/2) | 🗓 | 🗓 |
207
+
208
+ ### Instrument — Time-of-Flight
209
+
210
+ | Feature | LIB | APP |
211
+ | ------------------------------------ | --- | --- |
212
+ | Individual wavelength per reflection | ✅ | 🗓 |
213
+
214
+ ## 2.3. Polarized Neutron Powder Diffraction - EPIC
215
+
216
+ | Feature | LIB | APP |
217
+ | ---------------------------- | --- | --- |
218
+ | Flipping-rathio method (TOF) | 🗓 | 🗓 |
219
+ | Flipping-rathio method (CWL) | 🗓 | 🗓 |
220
+
221
+ ## 2.3. Polarized Neutron Single Crystal Diffraction - EPIC
222
+
223
+ | Feature | LIB | APP |
224
+ | ----------------------------- | --- | --- |
225
+ | Flipping-rathio method (TOF) | 🗓 | 🗓 |
226
+ | Flipping-rathio method (CWL) | 🗓 | 🗓 |
227
+ | Spherical neutron polarimetry | 🗓 | 🗓 |
228
+
229
+ ---
230
+
231
+ # 3. Multi-Dataset Support
232
+
233
+ | Feature | LIB | APP |
234
+ | --------------------------------- | --- | --- |
235
+ | Multiple structural data blocks | ✅ | ✅ |
236
+ | Multiple experimental data blocks | ✅ | 🗓 |
237
+
238
+ ---
239
+
240
+ # 4. Analysis (Fitting)
241
+
242
+ ### Refinement Algorithms (numerical derivatives)
243
+
244
+ | Feature | LIB | APP |
245
+ | ---------------------------------------------------- | --- | --- |
246
+ | Levenberg–Marquardt<br>LMFIT minimizer | ✅ | ✅ |
247
+ | Levenberg–Marquardt<br>LMFIT minimizer (scipy-based) | ✅ | ✅ |
248
+ | Levenberg–Marquardt<br>BUMPS minimizer | 🚧 | 🗓 |
249
+ | Derivative-free minimization<br>DFO-LS minimizer | ✅ | ✅ |
250
+ | Bayesian analysis<br>BUMPS minimizer | 🗓 | 🗓 |
251
+
252
+ ### Fit Strategies
253
+
254
+ | Feature | LIB | APP |
255
+ | ---------------------------------------------------------------------------------------------------- | --- | --- |
256
+ | Single fit of one experimental data block to one/multiple structural data block | ✅ | ✅ |
257
+ | Sequential fit of experimental data blocks | ✅ | 🗓 |
258
+ | Joint fit of experimental data blocks within the same calculation engine | ✅ | 🗓 |
259
+ | Joint fit of experimental data blocks using different calculation engines<br>(e.g. CrysPy + Pdffit2) | ✅ | 🗓 |
260
+ | Custom weighting for joint fit: _weight per dataset_ | ✅ | 🗓 |
261
+
262
+ ### Live Fitting
263
+
264
+ | Feature | LIB | APP |
265
+ | ---------------------------------------------- | --- | --- |
266
+ | Live fitting during real-time data acquisition | 🗓 | 🗓 |
267
+
268
+ ---
269
+
270
+ # 5. Refinement Execution
271
+
272
+ | Feature | LIB | APP | CLI |
273
+ | --------------------------------------------- | --- | --- | --- |
274
+ | Scripted refinement workflow | ✅ | — | — |
275
+ | GUI-driven refinement workflow | — | ✅ | — |
276
+ | Command-line refinement execution | — | — | ✅ |
277
+ | Parameter modification | ✅ | ✅ | — |
278
+ | Load individual structure or experiment files | ✅ | ✅ | — |
279
+ | Project-based refinement | ✅ | ✅ | ✅ |
280
+ | Save refinement results to project | ✅ | ✅ | ✅ |
281
+
282
+ ---
283
+
284
+ # 6. Constraints
285
+
286
+ | Feature | LIB | APP |
287
+ | ------------------------------ | --- | ----- |
288
+ | Automatic symmetry constraints | ✅ | ✅/🗓 |
289
+ | User-defined constraints | ✅ | 🗓 |
290
+
291
+ ---
292
+
293
+ # 7. Data Management
294
+
295
+ ### Data Loading
296
+
297
+ | Feature | LIB | APP | CLI |
298
+ | ------------------------------- | --- | --- | --- |
299
+ | Load structure from CIF | ✅ | ✅ | — |
300
+ | Load experiment data from ASCII | ✅ | ✅ | — |
301
+ | Load experiment data from CIF | ✅ | ✅ | — |
302
+
303
+ ### Project Files
304
+
305
+ | Feature | LIB | APP | CLI |
306
+ | ---------------------- | --- | --- | --- |
307
+ | Load project from disk | ✅ | ✅ | ✅ |
308
+ | Save project to disk | ✅ | ✅ | ✅ |
309
+
310
+ ### SciCat Integration
311
+
312
+ | Feature | LIB | APP | CLI |
313
+ | ------------------------ | --- | --- | --- |
314
+ | Load project from SciCat | 🗓 | 🗓 | — |
315
+ | Save project to SciCat | 🗓 | 🗓 | — |
316
+
317
+ ### External Resources
318
+
319
+ | Feature | LIB | APP | CLI |
320
+ | --------------------------------- | --- | --- | --- |
321
+ | List available tutorial notebooks | ✅ | — | ✅ |
322
+ | Download tutorial notebooks | ✅ | — | ✅ |
323
+
324
+ ---
325
+
326
+ # 8. Visualization
327
+
328
+ ## 8.1. Sample Model
329
+
330
+ ### Crystal Structure
331
+
332
+ | Feature | LIB | APP |
333
+ | ---------------------------------------- | --- | --- |
334
+ | Visualize unit cell | 🗓 | ✅ |
335
+ | Visualize multiple unit cells | 🗓 | 🗓 |
336
+ | Visualize atom sites as spheres | 🗓 | ✅ |
337
+ | Visualize atoms occupied same position | 🗓 | 🗓 |
338
+ | Visualize bonds | 🗓 | 🗓 |
339
+ | Visualize polyhedra | 🗓 | 🗓 |
340
+ | Interactive mode<br>3D rotation, zooming | 🗓 | ✅ |
341
+ | Orthogonal unit cell | 🗓 | ✅ |
342
+ | Non-orthogonal unit cell | 🗓 | 🗓 |
343
+
344
+ ### Magnetic Structure
345
+
346
+ | Feature | LIB | APP |
347
+ | ------------------------------------ | --- | --- |
348
+ | Visualize magnetic moments as arrows | 🗓 | 🗓 |
349
+
350
+ ## 8.2. Experiment
351
+
352
+ ### Powder Diffraction
353
+
354
+ | Feature | LIB | APP | CLI |
355
+ | ------------------------------------ | -------- | --- | --- |
356
+ | Plot experimental curve | ✅ | ✅ | ✅ |
357
+ | Plot calculated curve | ✅ | ✅ | ✅ |
358
+ | Plot residual curve | ✅ | ✅ | ✅ |
359
+ | Plot Bragg peaks | 🗓`high` | ✅ | — |
360
+ | Interactive mode<br>zooming, panning | ✅ | ✅ | — |
361
+
362
+ ### Single Crystal Diffraction
363
+
364
+ | Feature | LIB | APP | CLI |
365
+ | ------------------------------------ | --- | --- | --- |
366
+ | Plot obs vs calc for reflections | ✅ | ✅ | ✅ |
367
+ | Interactive mode<br>zooming, panning | ✅ | ✅ | — |
368
+
369
+ ## 8.3. Analysis
370
+
371
+ | Feature | LIB | APP | CLI |
372
+ | ---------------------------------------------------- | ----- | --- | --- |
373
+ | Live update of plots on parameter change with slider | — | ✅ | — |
374
+ | Live update of plots during refinement | — | ✅ | — |
375
+ | Parameter evolution (sequential refinement) | ✅/🗓 | 🗓 | — |
376
+
377
+ ### Fitting
378
+
379
+ | Feature | LIB | APP | CLI |
380
+ | ----------------------------------------- | --- | --- | --- |
381
+ | Live update of plots | — | ✅ | — |
382
+ | Live update of fit quality (change in χ²) | ✅ | ✅ | ✅ |
383
+ | Plot correlation between parameters | ✅ | 🗓 | ✅ |
384
+
385
+ ---
386
+
387
+ # 9. User documentation
388
+
389
+ | Feature | LIB | APP |
390
+ | ----------------------------------- | --- | ----- |
391
+ | New unified documentation structure | ✅ | 🗓 |
392
+ | Introduction | ✅ | ✅/🗓 |
393
+ | Installation and setup guide | ✅ | ✅/🗓 |
394
+ | User guide | ✅ | ✅/🗓 |
395
+ | Tutorials | ✅ | 🗓 |
396
+ | API reference | ✅ | — |
397
+
398
+ ---
399
+
400
+ # 10. Unsorted features
401
+
402
+ - Restrains (soft constraints, e.g. bond lengths, angles)
403
+ - Refinement using analytical derivatives
404
+ - Global optimization algorithms (e.g. simulated annealing)
405
+ - Incommensurate structures
406
+ - 2D Rietveld refinement