easydiffraction 0.3.0__tar.gz → 0.4.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 (199) hide show
  1. easydiffraction-0.4.0/.github/workflows/build-docs.yml +219 -0
  2. easydiffraction-0.4.0/DEVELOPMENT.md +123 -0
  3. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/LICENSE +2 -1
  4. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/PKG-INFO +18 -9
  5. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/README.md +5 -6
  6. easydiffraction-0.4.0/docs/analysis.md +77 -0
  7. easydiffraction-0.4.0/docs/dictionaries/_atom_site.md +62 -0
  8. easydiffraction-0.4.0/docs/dictionaries/_cell.md +30 -0
  9. easydiffraction-0.4.0/docs/dictionaries/_diffrn_radiation.md +21 -0
  10. easydiffraction-0.4.0/docs/dictionaries/_diffrn_radiation_wavelength.md +18 -0
  11. easydiffraction-0.4.0/docs/dictionaries/_exptl_crystal.md +7 -0
  12. easydiffraction-0.4.0/docs/dictionaries/_extinction.md +7 -0
  13. easydiffraction-0.4.0/docs/dictionaries/_pd_background.md +30 -0
  14. easydiffraction-0.4.0/docs/dictionaries/_pd_calib.md +17 -0
  15. easydiffraction-0.4.0/docs/dictionaries/_pd_instr.md +85 -0
  16. easydiffraction-0.4.0/docs/dictionaries/_pd_meas.md +29 -0
  17. easydiffraction-0.4.0/docs/dictionaries/_pd_phase.md +22 -0
  18. easydiffraction-0.4.0/docs/dictionaries/_space_group.md +25 -0
  19. easydiffraction-0.4.0/docs/dictionaries.md +158 -0
  20. easydiffraction-0.4.0/docs/easyscience.md +102 -0
  21. easydiffraction-0.4.0/docs/experiment.md +277 -0
  22. easydiffraction-0.4.0/docs/getting-started.md +162 -0
  23. easydiffraction-0.4.0/docs/glossary.md +34 -0
  24. easydiffraction-0.4.0/docs/how-to-use/index.md +10 -0
  25. easydiffraction-0.4.0/docs/index.md +30 -0
  26. easydiffraction-0.4.0/docs/mkdocs.yml +39 -0
  27. easydiffraction-0.4.0/docs/model.md +9 -0
  28. easydiffraction-0.4.0/docs/project-structure.md +151 -0
  29. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples_old/PDF/Fitting_PDF_Profile_Ni.ipynb +1 -1
  30. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples_old/PDF/Fitting_PDF_Profile_Si.ipynb +40 -40
  31. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples_old/PDF2/Fitting_PDF_Profile.ipynb +1 -1
  32. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples_old/PDF2/Ni_fitting.py +1 -1
  33. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/pyproject.toml +23 -13
  34. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/src/easydiffraction/calculators/cryspy/calculator.py +79 -32
  35. easydiffraction-0.4.0/src/easydiffraction/calculators/cryspy/parser.py +2029 -0
  36. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/src/easydiffraction/calculators/cryspy/wrapper.py +15 -7
  37. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/src/easydiffraction/calculators/pdffit2/calculator.py +8 -8
  38. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/src/easydiffraction/calculators/pdffit2/wrapper.py +2 -2
  39. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/src/easydiffraction/calculators/pycrysfml/calculator.py +2 -2
  40. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/src/easydiffraction/calculators/pycrysfml/wrapper.py +2 -2
  41. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/src/easydiffraction/io/cif.py +135 -21
  42. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/src/easydiffraction/io/cif_reader.py +26 -5
  43. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/src/easydiffraction/job/experiment/backgrounds/background.py +3 -3
  44. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/src/easydiffraction/job/experiment/backgrounds/factorial.py +6 -6
  45. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/src/easydiffraction/job/experiment/backgrounds/point.py +9 -9
  46. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/src/easydiffraction/job/experiment/experiment.py +38 -33
  47. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/src/easydiffraction/job/experiment/pd_1d.py +22 -16
  48. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/src/easydiffraction/job/experiment/polarization.py +1 -1
  49. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/src/easydiffraction/job/job.py +38 -22
  50. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/src/easydiffraction/job/model/phase.py +6 -0
  51. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/src/easydiffraction/job/model/site.py +3 -3
  52. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/src/easydiffraction/job/old_sample/old_sample.py +3 -3
  53. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/tests/functional_tests/fitting/test_fitting_pd-neut.py +4 -4
  54. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/tests/integration_tests/scipp/test_scipp.py +3 -3
  55. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/tests_old/integration_tests/FittingData.ipynb +1 -2
  56. easydiffraction-0.4.0/tools/build_docs.sh +3 -0
  57. easydiffraction-0.4.0/tools/cleanup_docs.sh +10 -0
  58. easydiffraction-0.3.0/tools/linting_and_formatting.sh → easydiffraction-0.4.0/tools/code_quality.sh +3 -0
  59. easydiffraction-0.4.0/tools/install_deps.sh +5 -0
  60. easydiffraction-0.4.0/tools/prepare_docs.sh +21 -0
  61. easydiffraction-0.3.0/DEVELOPMENT.md +0 -74
  62. easydiffraction-0.3.0/src/easydiffraction/calculators/cryspy/parser.py +0 -651
  63. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/.github/dependabot.yml +0 -0
  64. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/.github/release-drafter.yml +0 -0
  65. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/.github/workflows/ci-testing.yaml +0 -0
  66. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/.github/workflows/delete-old-runs.yml +0 -0
  67. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/.github/workflows/ossar-analysis.yml +0 -0
  68. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/.github/workflows/pypi-publish.yml +0 -0
  69. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/.github/workflows/release-drafter.yml +0 -0
  70. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/.github/workflows/verify-pr-labels.yml +0 -0
  71. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/.gitignore +0 -0
  72. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/.prettierignore +0 -0
  73. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/CONTRIBUTING.md +0 -0
  74. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples/Change-minimizer.ipynb +0 -0
  75. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples/Define-experiment.ipynb +0 -0
  76. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples/Define-model.ipynb +0 -0
  77. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples/Fitting-emcee_pd-neut-cwl_LBCO-HRPT.ipynb +0 -0
  78. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples/Fitting_pd-neut-cwl_LBCO-HRPT.ipynb +0 -0
  79. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples/Fitting_pd-neut-tof_NCAF-WISH.ipynb +0 -0
  80. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples/Fitting_pd-neut-tof_Si-SEPD.ipynb +0 -0
  81. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples/Simulation_pd-xray_NaCl.ipynb +0 -0
  82. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples/data/d1a.cif +0 -0
  83. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples/data/hrpt.xye +0 -0
  84. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples/data/lbco.cif +0 -0
  85. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples/data/lbco_adp.cif +0 -0
  86. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples/data/ncaf.cif +0 -0
  87. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples/data/sepd.xye +0 -0
  88. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples/data/si.cif +0 -0
  89. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples/data/wish.xye +0 -0
  90. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples_old/3T2@LLB.xye +0 -0
  91. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples_old/D1A@ILL.xye +0 -0
  92. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples_old/Fitting.ipynb +0 -0
  93. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples_old/Fitting_PD-CW_La0.5Ba0.5CoO3-HRPT@PSI/fitting.ipynb +0 -0
  94. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples_old/Fitting_PD-CW_La0.5Ba0.5CoO3-HRPT@PSI/fitting.py +0 -0
  95. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples_old/Fitting_PD-CW_La0.5Ba0.5CoO3-HRPT@PSI/hrpt.xye +0 -0
  96. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples_old/Fitting_PD-TOF_Si-SEPD@Argonne/fitting copy.py +0 -0
  97. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples_old/Fitting_PD-TOF_Si-SEPD@Argonne/fitting.ipynb +0 -0
  98. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples_old/Fitting_PD-TOF_Si-SEPD@Argonne/fitting.py +0 -0
  99. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples_old/Fitting_PD-TOF_Si-SEPD@Argonne/sepd.xye +0 -0
  100. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples_old/Fitting_PD-TOF_Si-SEPD@Argonne/si.cif +0 -0
  101. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples_old/Fitting_TOF.ipynb +0 -0
  102. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples_old/Fitting_TOF_xye.ipynb +0 -0
  103. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples_old/Fitting_multiphase.ipynb +0 -0
  104. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples_old/PDF/Calculate_PDF_Profile_Ni.ipynb +0 -0
  105. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples_old/PDF/data/4507226.cif +0 -0
  106. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples_old/PDF/data/Ni-xray.gr +0 -0
  107. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples_old/PDF/data/Ni.cif +0 -0
  108. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples_old/PDF/data/Si_calibration_cryostat_100A.fgr +0 -0
  109. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples_old/PDF/data/Si_calibration_cryostat_20A.fgr +0 -0
  110. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples_old/PDF/data/Si_calibration_cryostat_20A_01Rmin.fgr +0 -0
  111. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples_old/PDF/data/Si_calibration_cryostat_50A.fgr +0 -0
  112. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples_old/PDF/data/Si_calibration_cryostat_50A_01Rmin.fgr +0 -0
  113. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples_old/PDF2/Calculate_PDF_Profile.ipynb +0 -0
  114. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples_old/PDF2/Ni-xray.gr +0 -0
  115. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples_old/PDF2/Ni.cif +0 -0
  116. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples_old/PDF2/Ni_profile.py +0 -0
  117. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples_old/PbSO4.cif +0 -0
  118. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples_old/PolNPD5T.cif +0 -0
  119. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples_old/Polarized.ipynb +0 -0
  120. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples_old/Simulation.ipynb +0 -0
  121. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples_old/Simulation_xray.ipynb +0 -0
  122. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples_old/TestingAPI/CrysPy/rhochi_unpolarized_tof_powder_Si/calc_chisq.py +0 -0
  123. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples_old/TestingAPI/CrysPy/rhochi_unpolarized_tof_powder_Si/cryspy_PbSO4-D1A@ILL.rcif +0 -0
  124. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples_old/TestingAPI/CrysPy/rhochi_unpolarized_tof_powder_Si/cryspy_unpolarized_tof_powder_Si.rcif +0 -0
  125. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples_old/TestingAPI/CrysPy/rhochi_unpolarized_tof_powder_Si/refinement.py +0 -0
  126. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples_old/TestingAPI/CrysPy/rhochi_unpolarized_tof_powder_Si/rhochi_unpolarized_tof_powder_CeCuAl.rcif +0 -0
  127. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples_old/TestingAPI/EDB/experiments/d1a.cif +0 -0
  128. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples_old/TestingAPI/EDB/models/pbso4.cif +0 -0
  129. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples_old/TestingAPI/EDB/models/pbso4_dark.png +0 -0
  130. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples_old/TestingAPI/EDB/project.cif +0 -0
  131. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples_old/TestingAPI/EDB/summary/report.cif +0 -0
  132. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples_old/TestingAPI/EDL/D1A@ILL.xye +0 -0
  133. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples_old/TestingAPI/EDL/PbSO4.cif +0 -0
  134. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples_old/TestingAPI/EDL/TestingAPI.py +0 -0
  135. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples_old/advanced/refinement_bumps_dream.ipynb +0 -0
  136. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples_old/advanced/refinement_emcee.ipynb +0 -0
  137. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples_old/d1a.cif +0 -0
  138. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples_old/diamond_exp.xye +0 -0
  139. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples_old/diamond_phase.cif +0 -0
  140. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples_old/experiment_polarized.xye +0 -0
  141. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples_old/multiphase.cif +0 -0
  142. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples_old/ncaf.cif +0 -0
  143. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples_old/structure_polarized.cif +0 -0
  144. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples_old/wish.cif +0 -0
  145. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/prettierrc.toml +0 -0
  146. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/src/easydiffraction/__init__.py +0 -0
  147. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/src/easydiffraction/calculators/__init__.py +0 -0
  148. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/src/easydiffraction/calculators/wrapper_base.py +0 -0
  149. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/src/easydiffraction/calculators/wrapper_factory.py +0 -0
  150. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/src/easydiffraction/calculators/wrapper_types.py +0 -0
  151. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/src/easydiffraction/io/__init__.py +0 -0
  152. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/src/easydiffraction/job/__init__.py +0 -0
  153. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/src/easydiffraction/job/analysis/__init__.py +0 -0
  154. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/src/easydiffraction/job/analysis/analysis.py +0 -0
  155. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/src/easydiffraction/job/experiment/__init__.py +0 -0
  156. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/src/easydiffraction/job/experiment/backgrounds/__init__.py +0 -0
  157. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/src/easydiffraction/job/experiment/common.py +0 -0
  158. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/src/easydiffraction/job/experiment/data_container.py +0 -0
  159. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/src/easydiffraction/job/experiment/experiment_type.py +0 -0
  160. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/src/easydiffraction/job/experiment/simulation.py +0 -0
  161. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/src/easydiffraction/job/model/__init__.py +0 -0
  162. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/src/easydiffraction/job/old_sample/__init__.py +0 -0
  163. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/src/easydiffraction/job/project/__init__.py +0 -0
  164. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/src/easydiffraction/job/summary/__init__.py +0 -0
  165. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/src/easydiffraction/main.py +0 -0
  166. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/src/easydiffraction/utils.py +0 -0
  167. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/tests/data/PbSO4.cif +0 -0
  168. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/tests/data/PolNPD5T.cif +0 -0
  169. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/tests/data/d1a.cif +0 -0
  170. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/tests/data/hrpt.xye +0 -0
  171. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/tests/data/lbco.cif +0 -0
  172. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/tests/data/scipp.cif +0 -0
  173. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/tests/data/sepd.xye +0 -0
  174. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/tests/data/si.cif +0 -0
  175. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/tests/unit_tests/job/experiment/test_experiment.py +0 -0
  176. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/tests/unit_tests/job/experiment/test_experiment_type.py +0 -0
  177. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/tests/unit_tests/job/test_job.py +0 -0
  178. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/tests_old/integration_tests/CFML_Cryspy.png +0 -0
  179. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/tests_old/integration_tests/FittingData_CFML-xarrays.ipynb +0 -0
  180. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/tests_old/integration_tests/FittingData_CFML.ipynb +0 -0
  181. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/tests_old/integration_tests/PbSO4.cif +0 -0
  182. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/tests_old/integration_tests/PbSO4_neutrons_short.xye +0 -0
  183. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/tests_old/integration_tests/PbSO4_xrays_short.xye +0 -0
  184. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/tests_old/integration_tests/SrTiO3.cif +0 -0
  185. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/tests_old/integration_tests/WorkedExample2.ipynb +0 -0
  186. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/tests_old/integration_tests/fit_script.py +0 -0
  187. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/tests_old/integration_tests/test1.py +0 -0
  188. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/tests_old/integration_tests/test3.py +0 -0
  189. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/tests_old/integration_tests/workedExample1.ipynb +0 -0
  190. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/tests_old/integration_tests/xarray_test.ipynb +0 -0
  191. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/tests_old/unit_tests/Calculators/__init__.py +0 -0
  192. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/tests_old/unit_tests/Elements/__init__.py +0 -0
  193. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/tests_old/unit_tests/Interfaces/__init__.py +0 -0
  194. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/tests_old/unit_tests/test_Jobs.py +0 -0
  195. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/tests_old/unit_tests/test_Runner.py +0 -0
  196. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/tests_old/unit_tests/test_interface.py +0 -0
  197. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/tests_old/unit_tests/test_sample.py +0 -0
  198. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/tools/run_notebooks.sh +0 -0
  199. {easydiffraction-0.3.0 → easydiffraction-0.4.0}/tools/run_tests.sh +0 -0
@@ -0,0 +1,219 @@
1
+ name: Build and deploy docs
2
+
3
+ on:
4
+ # Triggers the workflow on tag creation
5
+ push:
6
+ tags:
7
+ - 'v*'
8
+
9
+ # Allows you to run this workflow manually from the Actions tab
10
+ workflow_dispatch:
11
+
12
+ env:
13
+ # Set the environment variables to be used in all jobs defined in this workflow
14
+ # Set the CI_BRANCH environment variable to be the branch name
15
+ # NOTE: Use the same branch name as the one of easyscience/diffraction-lib. This is
16
+ # required to download the Jupyter notebooks from the easyscience/diffraction-lib repository
17
+ # Set the NOTEBOOKS_DIR environment variable to be the directory containing the Jupyter notebooks
18
+ CI_BRANCH: ${{ github.head_ref || github.ref_name }}
19
+ NOTEBOOKS_DIR: examples
20
+
21
+ jobs:
22
+ # Job 1: Build the static files for the documentation site
23
+ build-docs:
24
+ runs-on: macos-14 # Use macOS to switch to dark mode for Plotly charts
25
+
26
+ steps:
27
+ - name: Cancel previous workflow runs
28
+ uses: n1hility/cancel-previous-runs@v2
29
+ with:
30
+ token: ${{ secrets.GITHUB_TOKEN }}
31
+
32
+ # Without this step, GITHUB_REPOSITORY is not accessible from mkdocs.yml
33
+ - name: Get GitHub repository
34
+ run: echo "GITHUB_REPOSITORY=$GITHUB_REPOSITORY" >> $GITHUB_ENV
35
+
36
+ # Save the latest release version of easyscience/diffraction-lib to RELEASE_VERSION
37
+ # RELEASE_VERSION is used in the mkdocs.yml file to set release_version.
38
+ # The release_version is then needed to display the latest release version in the index.md file
39
+ - name: Get the latest release version of EasyDiffraction Library
40
+ # This method is not working in CI with the following error: "API rate limit exceeded..."
41
+ #run: echo "RELEASE_VERSION=$(curl https://api.github.com/repos/easyscience/diffraction-lib/releases/latest | grep -i 'tag_name' | awk -F '"' '{print $4}')" >> $GITHUB_ENV
42
+ # This method is not optimal and takes some more time to run, but it works and it is reliable
43
+ run: |
44
+ git clone --depth 1 https://github.com/easyscience/EasyDiffractionLib .
45
+ git fetch --tags
46
+ echo "RELEASE_VERSION=$(git describe --tags --abbrev=0)" >> $GITHUB_ENV
47
+
48
+ # Activate dark mode to create documentation with Plotly charts in dark mode
49
+ # Need a better solution to automatically switch the chart colour theme based on the mkdocs material switcher
50
+ # Something similar to mkdocs_plotly_plugin https://haoda-li.github.io/mkdocs-plotly-plugin/,
51
+ # but for generating documentation from notepads
52
+ - name: Activate dark mode
53
+ run: |
54
+ brew install dark-mode
55
+ dark-mode status
56
+ dark-mode on
57
+ dark-mode status
58
+
59
+ - name: Check-out repository
60
+ uses: actions/checkout@v4
61
+
62
+ - name: Set up Python environment
63
+ uses: actions/setup-python@v4
64
+ with:
65
+ python-version: '3.12'
66
+
67
+ - name: Upgrade package installer for Python
68
+ run: python -m pip install --upgrade pip
69
+
70
+ # Install MkDocs -- static site generator
71
+ # https://www.mkdocs.org
72
+ - name: Install MkDocs and its dependencies
73
+ run: >
74
+ pip install mkdocs mkdocs-material 'mkdocs-autorefs<1.3.0'
75
+ mkdocs-jupyter mkdocs-plugin-inline-svg
76
+ mkdocs-markdownextradata-plugin mkdocstrings-python
77
+
78
+ # Install EasyDiffraction Library to run Jupyter notebooks
79
+ # Install with the 'charts' and 'docs' extras
80
+ - name: Install EasyDiffraction Library and its dependencies
81
+ run: pip install 'easydiffraction[charts]'
82
+
83
+ # Download and add the extra files from the easyscience/assets-docs repository
84
+ - name: Get easyscience/assets-docs files
85
+ run: |
86
+ git clone https://github.com/easyscience/assets-docs.git
87
+ cp -R assets-docs/docs/assets/ docs/assets/
88
+ cp -R assets-docs/includes/ includes/
89
+ cp -R assets-docs/overrides/ overrides/
90
+
91
+ # Download and add the extra files from the easyscience/assets-branding repository
92
+ - name: Get easyscience/assets-branding files
93
+ run: |
94
+ git clone https://github.com/easyscience/assets-branding.git
95
+ mkdir -p docs/assets/images/
96
+ cp assets-branding/easydiffraction/logos/ed-logo-2_dark.svg docs/assets/images/
97
+ cp assets-branding/easydiffraction/logos/ed-logo-2_light.svg docs/assets/images/
98
+ cp assets-branding/easydiffraction/icons/ed-icon_256x256.png docs/assets/images/favicon.png
99
+ mkdir -p overrides/.icons/
100
+ cp assets-branding/easydiffraction/icons/ed-icon_bw.svg overrides/.icons/easydiffraction.svg
101
+ cp assets-branding/easyscience-org/icons/eso-icon_bw.svg overrides/.icons/easyscience.svg
102
+
103
+ # Copy Jupyter notebooks from the project to the docs folder
104
+ # The notebooks are used to generate the documentation
105
+ - name:
106
+ Copy Jupyter notebooks from ${{ env.NOTEBOOKS_DIR }}/ to docs/${{
107
+ env.NOTEBOOKS_DIR }}/
108
+ run: cp -R ${{ env.NOTEBOOKS_DIR }}/ docs/${{ env.NOTEBOOKS_DIR }}/
109
+
110
+ # The following step is needed to avoid the following message during the build:
111
+ # "Matplotlib is building the font cache; this may take a moment"
112
+ - name: Pre-build site step
113
+ run: python -c "import easydiffraction"
114
+
115
+ # Create the mkdocs.yml configuration file
116
+ # The file is created by merging two files:
117
+ # - assets-docs/mkdocs.yml - the common configuration (theme, plugins, etc.)
118
+ # - docs/mkdocs.yml - the project-specific configuration (project name, TOC, etc.)
119
+ - name: Create mkdocs.yml file
120
+ run: cat assets-docs/mkdocs.yml docs/mkdocs.yml > mkdocs.yml
121
+
122
+ # Build the static files
123
+ # Input: docs/ directory containing the Markdown files
124
+ # Output: site/ directory containing the generated HTML files
125
+ - name: Build site with MkDocs
126
+ run: |
127
+ export JUPYTER_PLATFORM_DIRS=1
128
+ mkdocs build
129
+
130
+ # Set up the Pages action to configure the static files to be deployed
131
+ # NOTE: The repository must have GitHub Pages enabled and configured to build using GitHub Actions
132
+ # This can be done via https://github.com/easyscience/diffraction-lib/settings/pages
133
+ # Select: Build and deploy - Source - GitHub Actions
134
+ - name: Setup GitHub Pages
135
+ uses: actions/configure-pages@v5
136
+
137
+ # Upload the static files from the site/ directory to be used in the next job
138
+ # This artifact is named github-pages and is a single gzip archive containing a single tar file
139
+ # The artifact is then used in the next job by actions/deploy-pages to deploy the static files to GitHub Pages
140
+ # Unfortunately, the artifact is not available for download, so extra steps below are needed to do similar things
141
+ - name:
142
+ Upload built site as artifact for
143
+ easyscience.github.io/diffraction-lib (all branches)
144
+ uses: actions/upload-pages-artifact@v3
145
+ with:
146
+ path: site/
147
+
148
+ # Upload the static files from the site/ directory to be used in the next job
149
+ # This extra step is needed to allow the download of the artifact in the next job
150
+ # for pushing its content to the branch named 'easydiffraction.org'
151
+ - name:
152
+ Upload built site as artifact for gh_pages and easydiffraction.org
153
+ (master branch)
154
+ if: ${{ env.CI_BRANCH == 'master' }}
155
+ uses: actions/upload-artifact@v4
156
+ with:
157
+ name: artifact # name of the artifact (without the extension zip)
158
+ path: site/
159
+ if-no-files-found: 'error'
160
+ compression-level: 0
161
+
162
+ # Job 2: Deploy the static files
163
+ deploy-docs:
164
+ needs: build-docs # previous job 'build-docs' need to be finished first
165
+
166
+ # Grant GITHUB_TOKEN the permissions required to make a Pages deployment
167
+ permissions:
168
+ contents: read
169
+ pages: write # to deploy to Pages
170
+ id-token: write # to verify the deployment, originates from an appropriate source
171
+
172
+ # Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
173
+ # However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
174
+ concurrency:
175
+ group: 'pages'
176
+ cancel-in-progress: false
177
+
178
+ # Deploy to the github-pages environment
179
+ environment:
180
+ name: github-pages # Artifact name
181
+ url: ${{ steps.deployment.outputs.page_url }}
182
+
183
+ runs-on: ubuntu-latest
184
+
185
+ steps:
186
+ # Deploy the static files created in the previous job to GitHub Pages
187
+ # To allow the deployment of the static files to GitHub Pages, no
188
+ # restrictions on the branch name need to be set for desired branches on
189
+ # https://github.com/easyscience/diffraction-lib/settings/environments
190
+ # Currently, only develop and master branches are allowed to deploy to GitHub Pages
191
+ # Deployed pages are available at https://easyscience.github.io/diffraction-lib
192
+ - name: Deploy to easyscience.github.io/diffraction-lib (all branches)
193
+ uses: actions/deploy-pages@v4
194
+
195
+ # Download built site as artifact from a previous job for gh_pages and easydiffraction.org (master branch)
196
+ - name: Download built site from previous job (master branch)
197
+ if: ${{ env.CI_BRANCH == 'master' }}
198
+ uses: actions/download-artifact@v4
199
+ with: # name or path are taken from the upload step of the previous job
200
+ name: artifact
201
+ path: site/ # directory to extract downloaded zipped artifacts
202
+
203
+ # Push the site files created in the previous job to the gh_pages branch
204
+ # To be able to push to the gh_pages branch, the personal GitHub API access
205
+ # token GH_API_PERSONAL_ACCSESS_TOKEN must be set for this repository via
206
+ # https://github.com/easyscience/diffraction-lib/settings/secrets/actions
207
+ # This branch is used to deploy the site to the custom domain https://easydiffraction.org
208
+ # Deploying is done with a webhook: https://github.com/easyscience/diffraction-lib/settings/hooks
209
+ # This is done for the gh_pages branch when the site is tested with a step above
210
+ - name:
211
+ Deploy to gh_pages branch to trigger deployment to easydiffraction.org
212
+ (master branch)
213
+ if: ${{ env.CI_BRANCH == 'master' }}
214
+ uses: s0/git-publish-subdir-action@develop
215
+ env:
216
+ GITHUB_TOKEN: ${{ secrets.GH_API_PERSONAL_ACCSESS_TOKEN }}
217
+ REPO: self
218
+ BRANCH: gh_pages
219
+ FOLDER: site
@@ -0,0 +1,123 @@
1
+ # Development
2
+
3
+ This is an example of a workflow that describes the development process.
4
+
5
+ - Clone EasyDiffractionLib repository
6
+ ```console
7
+ git clone https://github.com/EasyScience/EasyDiffractionLib
8
+ ```
9
+ - Go to the cloned directory
10
+ ```console
11
+ cd EasyDiffractionLib
12
+ ```
13
+ - Checkout/switch to the `develop` branch
14
+ ```console
15
+ git checkout develop
16
+ ```
17
+ - Create a new branch from the current one
18
+ ```console
19
+ git checkout -b new-feature
20
+ ```
21
+ - Create Python environment and activate it
22
+ ```console
23
+ python3 -m venv .venv
24
+ source .venv/bin/activate
25
+ ```
26
+ - Upgrade PIP - package installer for Python
27
+ ```console
28
+ python -m pip install --upgrade pip
29
+ ```
30
+ - Install easydiffraction from root with `dev` extras for development, `charts`
31
+ extras for Jupyter notebooks and `docs` extras for building documentation
32
+ ```console
33
+ pip install '.[dev,charts,docs]'
34
+ ```
35
+ - Make changes in the code
36
+ ```console
37
+ ...
38
+ ```
39
+ - Check the validity of pyproject.toml
40
+ ```console
41
+ validate-pyproject pyproject.toml
42
+ ```
43
+ - Run Ruff - Python linter and code formatter (configuration is in
44
+ pyproject.toml)<br/> Linting (overwriting files)
45
+ ```console
46
+ ruff check . --fix
47
+ ```
48
+ Formatting (overwriting files)
49
+ ```console
50
+ ruff format .
51
+ ```
52
+ - Install and run Prettier - code formatter for Markdown, YAML, TOML, etc. files
53
+ (configuration in prettierrc.toml)<br/> Formatting (overwriting files)
54
+ ```console
55
+ npm install prettier prettier-plugin-toml --save-dev --save-exact
56
+ npx prettier . --write --config=prettierrc.toml
57
+ ```
58
+ - Run python tests
59
+ ```console
60
+ pytest tests/ --color=yes -n auto
61
+ ```
62
+ - Clear all Jupyter notebooks output (Only those that were changed!). Replace
63
+ `examples/*.ipynb` with the path to the notebook(s) you want to clear
64
+ ```console
65
+ jupyter nbconvert --clear-output --inplace examples/*.ipynb
66
+ ```
67
+ - Run nbQA - Jupyter notebooks quality assurance package
68
+ ```console
69
+ nbqa ruff examples/ --fix
70
+ ```
71
+ - Run Jupyter notebooks as tests
72
+ ```console
73
+ pytest --nbmake examples/ --ignore-glob='examples/*emcee*' --nbmake-timeout=300 --color=yes -n=auto
74
+ ```
75
+ - Add extra files to build documentation (from `../assets-docs/` and
76
+ `../assets-branding/` directories)
77
+ ```console
78
+ cp -R ../assets-docs/docs/assets/ docs/assets/
79
+ cp -R ../assets-docs/includes/ includes/
80
+ cp -R ../assets-docs/overrides/ overrides/
81
+ mkdir -p docs/assets/images/
82
+ cp ../assets-branding/easydiffraction/logos/ed-logo-2_dark.svg docs/assets/images/
83
+ cp ../assets-branding/easydiffraction/logos/ed-logo-2_light.svg docs/assets/images/
84
+ <!-- cp ../assets-branding/easydiffraction/logos/edl-logo_dark.svg docs/assets/images/logo_dark.svg
85
+ cp ../assets-branding/easydiffraction/logos/edl-logo_light.svg docs/assets/images/logo_light.svg -->
86
+ cp ../assets-branding/easydiffraction/icons/ed-icon_256x256.png docs/assets/images/favicon.png
87
+ mkdir -p overrides/.icons/
88
+ cp ../assets-branding/easydiffraction/icons/ed-icon_bw.svg overrides/.icons/easydiffraction.svg
89
+ cp ../assets-branding/easyscience-org/icons/eso-icon_bw.svg overrides/.icons/easyscience.svg
90
+ cp -R examples/ docs/examples/
91
+ cat ../assets-docs/mkdocs.yml docs/mkdocs.yml > mkdocs.yml
92
+ ```
93
+ - Build documentation with MkDocs - static site generator
94
+ ```console
95
+ export JUPYTER_PLATFORM_DIRS=1
96
+ mkdocs serve
97
+ ```
98
+ - Test the documentation locally (built in the `site/` directory). E.g., on
99
+ macOS, open the site in the default browser via the terminal
100
+ ```console
101
+ open http://127.0.0.1:8000
102
+ ```
103
+ - Clean up after building documentation
104
+ ```console
105
+ rm -rf site/
106
+ rm -rf docs/assets/
107
+ rm -rf includes/
108
+ rm -rf overrides/
109
+ rm -rf docs/examples/
110
+ rm -rf node_modules/
111
+ rm mkdocs.yml
112
+ rm package-lock.json
113
+ rm package.json
114
+ ```
115
+ - Commit changes
116
+ ```console
117
+ git add .
118
+ git commit -m "Add new feature"
119
+ ```
120
+ - Push the new branch to a remote repository
121
+ ```console
122
+ git push -u origin new-feature
123
+ ```
@@ -1,6 +1,7 @@
1
1
  BSD 3-Clause License
2
2
 
3
- Copyright (c) 2024, EasyDiffractionLib contributors (https://github.com/EasyScience/EasyDiffractionLib)
3
+ Copyright (c) 2025, EasyDiffraction contributors
4
+ (https://github.com/EasyScience/EasyDiffractionLib)
4
5
  All rights reserved.
5
6
 
6
7
  Redistribution and use in source and binary forms, with or without
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: easydiffraction
3
- Version: 0.3.0
3
+ Version: 0.4.0
4
4
  Summary: Making diffraction data analysis and modelling easy
5
5
  Project-URL: homepage, https://easydiffraction.org
6
6
  Project-URL: documentation, https://docs.easydiffraction.org/lib
@@ -9,7 +9,8 @@ Project-URL: tracker, https://github.com/EasyScience/EasyDiffractionLib/issues
9
9
  Author-email: EasyDiffraction contributors <support@easydiffraction.org>
10
10
  License: BSD 3-Clause License
11
11
 
12
- Copyright (c) 2024, EasyDiffractionLib contributors (https://github.com/EasyScience/EasyDiffractionLib)
12
+ Copyright (c) 2025, EasyDiffraction contributors
13
+ (https://github.com/EasyScience/EasyDiffractionLib)
13
14
  All rights reserved.
14
15
 
15
16
  Redistribution and use in source and binary forms, with or without
@@ -55,7 +56,7 @@ Requires-Dist: pooch
55
56
  Provides-Extra: charts
56
57
  Requires-Dist: darkdetect; extra == 'charts'
57
58
  Requires-Dist: pandas; extra == 'charts'
58
- Requires-Dist: plotly; extra == 'charts'
59
+ Requires-Dist: plotly<6.0.0; extra == 'charts'
59
60
  Requires-Dist: py3dmol; extra == 'charts'
60
61
  Provides-Extra: dev
61
62
  Requires-Dist: build; extra == 'dev'
@@ -66,21 +67,30 @@ Requires-Dist: pytest; extra == 'dev'
66
67
  Requires-Dist: pytest-cov; extra == 'dev'
67
68
  Requires-Dist: pytest-xdist; extra == 'dev'
68
69
  Requires-Dist: ruff; extra == 'dev'
70
+ Requires-Dist: validate-pyproject[all]; extra == 'dev'
69
71
  Requires-Dist: versioningit; extra == 'dev'
72
+ Provides-Extra: docs
73
+ Requires-Dist: mkdocs; extra == 'docs'
74
+ Requires-Dist: mkdocs-autorefs<1.3.0; extra == 'docs'
75
+ Requires-Dist: mkdocs-jupyter; extra == 'docs'
76
+ Requires-Dist: mkdocs-markdownextradata-plugin; extra == 'docs'
77
+ Requires-Dist: mkdocs-material; extra == 'docs'
78
+ Requires-Dist: mkdocs-plugin-inline-svg; extra == 'docs'
79
+ Requires-Dist: mkdocstrings; extra == 'docs'
70
80
  Provides-Extra: pdf
71
81
  Requires-Dist: diffpy-pdffit2; extra == 'pdf'
72
82
  Requires-Dist: diffpy-structure; extra == 'pdf'
73
83
  Requires-Dist: diffpy-utils; extra == 'pdf'
74
84
  Description-Content-Type: text/markdown
75
85
 
76
- <p align='left'>
86
+ <p>
77
87
  <picture>
78
88
  <!-- light mode logo -->
79
- <source media='(prefers-color-scheme: light)' srcset='https://raw.githubusercontent.com/EasyScience/BrandingResources/refs/heads/master/EasyDiffraction/logos/ed-logo_light.svg'>
89
+ <source media='(prefers-color-scheme: light)' srcset='https://raw.githubusercontent.com/easyscience/assets-branding/refs/heads/master/easydiffraction/logos/ed-logo-2_light.svg'>
80
90
  <!-- dark mode logo -->
81
- <source media='(prefers-color-scheme: dark)' srcset='https://raw.githubusercontent.com/EasyScience/BrandingResources/refs/heads/master/EasyDiffraction/logos/ed-logo_dark.svg'>
91
+ <source media='(prefers-color-scheme: dark)' srcset='https://raw.githubusercontent.com/easyscience/assets-branding/refs/heads/master/easydiffraction/logos/ed-logo-2_dark.svg'>
82
92
  <!-- default logo == light mode logo -->
83
- <img src='https://raw.githubusercontent.com/EasyScience/BrandingResources/refs/heads/master/EasyDiffraction/logos/ed-logo_light.svg' alt='EasyDiffraction'>
93
+ <img src='https://raw.githubusercontent.com/easyscience/assets-branding/refs/heads/master/easydiffraction/logos/ed-logo-2_light.svg' alt='EasyDiffraction'>
84
94
  </picture>
85
95
  </p>
86
96
 
@@ -109,8 +119,7 @@ We welcome contributions! Our vision is for **EasyDiffraction** to be a
109
119
  community-driven, open-source project supported by a diverse group of
110
120
  contributors.
111
121
 
112
- The project is currently maintained by the [European Spallation Source (ESS)] in
113
- Sweden.
122
+ The project is currently maintained by the [European Spallation Source (ESS)].
114
123
 
115
124
  If you'd like to contribute, please refer to our [Contributing Guidelines] for
116
125
  information about our code of conduct and instructions on submitting pull
@@ -1,11 +1,11 @@
1
- <p align='left'>
1
+ <p>
2
2
  <picture>
3
3
  <!-- light mode logo -->
4
- <source media='(prefers-color-scheme: light)' srcset='https://raw.githubusercontent.com/EasyScience/BrandingResources/refs/heads/master/EasyDiffraction/logos/ed-logo_light.svg'>
4
+ <source media='(prefers-color-scheme: light)' srcset='https://raw.githubusercontent.com/easyscience/assets-branding/refs/heads/master/easydiffraction/logos/ed-logo-2_light.svg'>
5
5
  <!-- dark mode logo -->
6
- <source media='(prefers-color-scheme: dark)' srcset='https://raw.githubusercontent.com/EasyScience/BrandingResources/refs/heads/master/EasyDiffraction/logos/ed-logo_dark.svg'>
6
+ <source media='(prefers-color-scheme: dark)' srcset='https://raw.githubusercontent.com/easyscience/assets-branding/refs/heads/master/easydiffraction/logos/ed-logo-2_dark.svg'>
7
7
  <!-- default logo == light mode logo -->
8
- <img src='https://raw.githubusercontent.com/EasyScience/BrandingResources/refs/heads/master/EasyDiffraction/logos/ed-logo_light.svg' alt='EasyDiffraction'>
8
+ <img src='https://raw.githubusercontent.com/easyscience/assets-branding/refs/heads/master/easydiffraction/logos/ed-logo-2_light.svg' alt='EasyDiffraction'>
9
9
  </picture>
10
10
  </p>
11
11
 
@@ -34,8 +34,7 @@ We welcome contributions! Our vision is for **EasyDiffraction** to be a
34
34
  community-driven, open-source project supported by a diverse group of
35
35
  contributors.
36
36
 
37
- The project is currently maintained by the [European Spallation Source (ESS)] in
38
- Sweden.
37
+ The project is currently maintained by the [European Spallation Source (ESS)].
39
38
 
40
39
  If you'd like to contribute, please refer to our [Contributing Guidelines] for
41
40
  information about our code of conduct and instructions on submitting pull
@@ -0,0 +1,77 @@
1
+ # Analysis
2
+
3
+ This section contains information about the analysis of diffraction data in
4
+ EasyDiffraction.
5
+
6
+ ### Model-dependent analysis
7
+
8
+ There are two general approaches to the analysis of data: **model-dependent**
9
+ and **model-independent**. In the following examples, we are going to focus on
10
+ the former. However, the latter is worth briefly highlighting.
11
+
12
+ A model-independent approach to analysis is where no assumptions are made about
13
+ the system that is being studied and conclusions are drawn only from the data
14
+ that has been observed. However, in many applications, it is desirable to
15
+ include what we think we know about the system, and so model-dependent analysis
16
+ is used.
17
+
18
+ Model-dependent analysis involves the development of a mathematical model that
19
+ describes the model dataset that would be found for our system. This
20
+ mathematical model usually has parameters that are linked to the physics and
21
+ chemistry of our system. These parameters are varied to optimise the model,
22
+ using an optimisation algorithm, with respect to the experimental data, i.e., to
23
+ get the best agreement between the model data and the experimental data.
24
+
25
+ Below is a diagram illustrating this process:
26
+
27
+ ```mermaid
28
+ flowchart LR
29
+ a(Propose<br/>model)
30
+ b(Set/change<br/>model<br/>parameter<br/>values)
31
+ c(Calculate<br/>model<br/>data)
32
+ d(Compare<br/>model data to<br/>experimental<br/>data)
33
+ e(Stop<br/>iteration)
34
+ a --> b
35
+ b --> c
36
+ c --> d
37
+ d-- Threshold<br/>not<br/>reached -->b
38
+ d-- Threshold<br/>reached -->e
39
+ ```
40
+
41
+ Model-dependent analysis is popular in the analysis of neutron scattering data,
42
+ and we will use it in the following examples.
43
+
44
+ ## Calculation engines
45
+
46
+ EasyDiffraction is designed to be a flexible and extensible tool for calculating
47
+ diffraction patterns. It can use different calculation engines to perform the
48
+ calculations.
49
+
50
+ We currently rely on [CrysPy](https://www.cryspy.fr) as a calculation engine.
51
+ CrysPy is a Python library originally developed for analysing polarised neutron
52
+ diffraction data. It is now evolving into a more general purpose library and
53
+ covers powders and single crystals, nuclear and (commensurate) magnetic
54
+ structures, unpolarised neutron and X-ray diffraction.
55
+
56
+ Another calculation engine is
57
+ [CrysFML](https://code.ill.fr/scientific-software/CrysFML2008). This library is
58
+ a collection of Fortran modules for crystallographic computations. It is used in
59
+ the software package [FullProf](https://www.ill.eu/sites/fullprof/), and we are
60
+ currently working on its integration into EasyDiffraction.
61
+
62
+ ## Minimisation engines
63
+
64
+ EasyDiffraction uses different third-party libraries to perform the
65
+ model-dependent analysis.
66
+
67
+ Most of the examples in this section will use the
68
+ [lmfit](https://lmfit.github.io/lmfit-py/) package, which provides a high-level
69
+ interface to non-linear optimisation and curve fitting problems for Python. It
70
+ is one of the tools that can be used to fit models to the experimental data.
71
+
72
+ Another package that can be used for the same purpose is
73
+ [bumps](https://bumps.readthedocs.io/en/latest/). In addition to traditional
74
+ optimizers which search for the best minimum they can find in the search space,
75
+ bumps provides Bayesian uncertainty analysis which explores all viable minima
76
+ and finds confidence intervals on the parameters based on uncertainty in the
77
+ measured values.
@@ -0,0 +1,62 @@
1
+ [coreCIF][1]{:.label-cif}
2
+
3
+ # \_atom_site
4
+
5
+ Data items in this category record details about the atom sites in a crystal
6
+ structure, such as the positional coordinates and atomic displacement
7
+ parameters. Please see the
8
+ [IUCr page](https://www.iucr.org/__data/iucr/cifdic_html/3/CORE_DIC/CATOM_SITE.html)
9
+ for further details.
10
+
11
+ ## [\_atom_site.label](https://www.iucr.org/__data/iucr/cifdic_html/3/CORE_DIC/Iatom_site.label.html)
12
+
13
+ This is a unique identifier for a particular site in the asymmetric unit of the
14
+ crystal unit cell.
15
+
16
+ ## [\_atom_site.type_symbol](https://www.iucr.org/__data/iucr/cifdic_html/3/CORE_DIC/Iatom_site.type_symbol.html)
17
+
18
+ A code to identify the atom specie(s) occupying this site.
19
+
20
+ ## \_atom_site.fract
21
+
22
+ Atom-site coordinates as fractions of the [\_cell_length](_cell.md) values.
23
+
24
+ - [\_atom_site.fract_x](https://www.iucr.org/__data/iucr/cifdic_html/3/CORE_DIC/Iatom_site.fract_x.html)
25
+ - [\_atom_site.fract_y](https://www.iucr.org/__data/iucr/cifdic_html/3/CORE_DIC/Iatom_site.fract_y.html)
26
+ - [\_atom_site.fract_z](https://www.iucr.org/__data/iucr/cifdic_html/3/CORE_DIC/Iatom_site.fract_z.html)
27
+
28
+ ## [\_atom_site.occupancy](https://www.iucr.org/__data/iucr/cifdic_html/3/CORE_DIC/Iatom_site.occupancy.html)
29
+
30
+ The fraction of the atom type present at this site.
31
+
32
+ ## [\_atom_site.ADP_type](https://www.iucr.org/__data/iucr/cifdic_html/3/CORE_DIC/Iatom_site.adp_type.html)
33
+
34
+ Code for type of atomic displacement parameters used for the site. Currently
35
+ only `Biso` (isotropic B) is supported.
36
+
37
+ ## [\_atom_site.B_iso_or_equiv](https://www.iucr.org/__data/iucr/cifdic_html/3/CORE_DIC/Iatom_site.B_iso_or_equiv.html)
38
+
39
+ Isotropic atomic displacement parameter, or equivalent isotropic atomic
40
+ displacement parameter, in angstroms squared.
41
+
42
+ ## [\_atom_site.site_symmetry_multiplicity](https://www.iucr.org/__data/iucr/cifdic_html/3/CORE_DIC/Iatom_site.site_symmetry_multiplicity.html)
43
+
44
+ `optional parameter`
45
+
46
+ The number of different sites that are generated by the application of the
47
+ space-group symmetry to the coordinates given for this site. It is equal to the
48
+ multiplicity given for this Wyckoff site in International Tables for
49
+ Crystallography Vol. A (2002).
50
+
51
+ ## [\_atom_site.Wyckoff_symbol](https://www.iucr.org/__data/iucr/cifdic_html/3/CORE_DIC/Iatom_site.Wyckoff_symbol.html)
52
+
53
+ `optional parameter`
54
+
55
+ The Wyckoff symbol (letter) as listed in the space-group tables of International
56
+ Tables for Crystallography Vol. A.
57
+
58
+ <!-- prettier-ignore-start -->
59
+ [0]: #
60
+ [1]: https://www.iucr.org/resources/cif/dictionaries/browse/cif_core
61
+ [2]: https://www.iucr.org/resources/cif/dictionaries/browse/cif_pd
62
+ <!-- prettier-ignore-end -->
@@ -0,0 +1,30 @@
1
+ [coreCIF][1]{:.label-cif}
2
+
3
+ # \_cell
4
+
5
+ Data items in this category record details about the crystallographic cell
6
+ parameters and their measurement. Please see the
7
+ [IUCr page](https://www.iucr.org/__data/iucr/cifdic_html/3/CORE_DIC/CCELL.html)
8
+ for further details.
9
+
10
+ ## \_cell.angle
11
+
12
+ The angles between the bounding cell axes in degrees.
13
+
14
+ - [\_cell.angle_alpha](https://www.iucr.org/__data/iucr/cifdic_html/3/CORE_DIC/Icell.angle_alpha.html)
15
+ - [\_cell.angle_beta](https://www.iucr.org/__data/iucr/cifdic_html/3/CORE_DIC/Icell.angle_beta.html)
16
+ - [\_cell.angle_gamma](https://www.iucr.org/__data/iucr/cifdic_html/3/CORE_DIC/Icell.angle_gamma.html)
17
+
18
+ ## \_cell.length
19
+
20
+ The lengths of each cell axis in angstroms.
21
+
22
+ - [\_cell.length_a](https://www.iucr.org/__data/iucr/cifdic_html/3/CORE_DIC/Icell.length_a.html)
23
+ - [\_cell.length_b](https://www.iucr.org/__data/iucr/cifdic_html/3/CORE_DIC/Icell.length_b.html)
24
+ - [\_cell.length_c](https://www.iucr.org/__data/iucr/cifdic_html/3/CORE_DIC/Icell.length_c.html)
25
+
26
+ <!-- prettier-ignore-start -->
27
+ [0]: #
28
+ [1]: https://www.iucr.org/resources/cif/dictionaries/browse/cif_core
29
+ [2]: https://www.iucr.org/resources/cif/dictionaries/browse/cif_pd
30
+ <!-- prettier-ignore-end -->
@@ -0,0 +1,21 @@
1
+ [coreCIF][1]{:.label-cif}
2
+
3
+ # \_diffrn_radiation
4
+
5
+ Data items in this category describe the radiation used in measuring the
6
+ diffraction intensities. Please see the
7
+ [IUCr page](https://www.iucr.org/resources/cif/dictionaries/browse/cif_pd) for
8
+ further details.
9
+
10
+ ## [\_diffrn_radiation.probe](https://www.iucr.org/resources/cif/dictionaries/browse/cif_pd)
11
+
12
+ The nature of the radiation used (i.e. the name of the subatomic particle or the
13
+ region of the electromagnetic spectrum).
14
+
15
+ Supported values: `neutron` and `x-ray`
16
+
17
+ <!-- prettier-ignore-start -->
18
+ [0]: #
19
+ [1]: https://www.iucr.org/resources/cif/dictionaries/browse/cif_core
20
+ [2]: https://www.iucr.org/resources/cif/dictionaries/browse/cif_pd
21
+ <!-- prettier-ignore-end -->
@@ -0,0 +1,18 @@
1
+ [coreCIF][1]{:.label-cif}
2
+
3
+ # \_diffrn_radiation_wavelength
4
+
5
+ Data items in this category describe the wavelength of radiation used in
6
+ diffraction measurements. Please see the
7
+ [IUCr page](https://www.iucr.org/resources/cif/dictionaries/browse/cif_pd) for
8
+ further details.
9
+
10
+ ## [\_diffrn_radiation_wavelength.wavelength](https://www.iucr.org/resources/cif/dictionaries/browse/cif_pd)
11
+
12
+ Wavelength of the radiation used to measure the unit cell.
13
+
14
+ <!-- prettier-ignore-start -->
15
+ [0]: #
16
+ [1]: https://www.iucr.org/resources/cif/dictionaries/browse/cif_core
17
+ [2]: https://www.iucr.org/resources/cif/dictionaries/browse/cif_pd
18
+ <!-- prettier-ignore-end -->