easydiffraction 0.2.0__tar.gz → 0.3.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 (188) hide show
  1. easydiffraction-0.3.0/.github/dependabot.yml +10 -0
  2. {easydiffraction-0.2.0 → easydiffraction-0.3.0}/.github/release-drafter.yml +11 -11
  3. easydiffraction-0.3.0/.github/workflows/ci-testing.yaml +258 -0
  4. {easydiffraction-0.2.0 → easydiffraction-0.3.0}/.github/workflows/delete-old-runs.yml +19 -12
  5. easydiffraction-0.3.0/.github/workflows/ossar-analysis.yml +40 -0
  6. easydiffraction-0.3.0/.github/workflows/pypi-publish.yml +42 -0
  7. {easydiffraction-0.2.0 → easydiffraction-0.3.0}/.github/workflows/release-drafter.yml +0 -1
  8. easydiffraction-0.3.0/.github/workflows/verify-pr-labels.yml +22 -0
  9. {easydiffraction-0.2.0 → easydiffraction-0.3.0}/.gitignore +3 -5
  10. {easydiffraction-0.2.0 → easydiffraction-0.3.0}/CONTRIBUTING.md +37 -31
  11. easydiffraction-0.3.0/DEVELOPMENT.md +74 -0
  12. {easydiffraction-0.2.0 → easydiffraction-0.3.0}/PKG-INFO +54 -14
  13. easydiffraction-0.3.0/README.md +59 -0
  14. {easydiffraction-0.2.0 → easydiffraction-0.3.0}/examples/Fitting_pd-neut-tof_Si-SEPD.ipynb +244 -41
  15. easydiffraction-0.3.0/prettierrc.toml +11 -0
  16. easydiffraction-0.3.0/pyproject.toml +149 -0
  17. easydiffraction-0.3.0/src/easydiffraction/__init__.py +11 -0
  18. {easydiffraction-0.2.0 → easydiffraction-0.3.0}/src/easydiffraction/calculators/cryspy/calculator.py +27 -4
  19. {easydiffraction-0.2.0 → easydiffraction-0.3.0}/src/easydiffraction/calculators/cryspy/wrapper.py +22 -14
  20. {easydiffraction-0.2.0 → easydiffraction-0.3.0}/src/easydiffraction/calculators/pdffit2/wrapper.py +7 -7
  21. {easydiffraction-0.2.0 → easydiffraction-0.3.0}/src/easydiffraction/calculators/pycrysfml/wrapper.py +8 -8
  22. {easydiffraction-0.2.0 → easydiffraction-0.3.0}/src/easydiffraction/calculators/wrapper_base.py +4 -0
  23. {easydiffraction-0.2.0 → easydiffraction-0.3.0}/src/easydiffraction/calculators/wrapper_factory.py +3 -0
  24. {easydiffraction-0.2.0 → easydiffraction-0.3.0}/src/easydiffraction/calculators/wrapper_types.py +1 -1
  25. {easydiffraction-0.2.0 → easydiffraction-0.3.0}/src/easydiffraction/io/cif.py +3 -5
  26. {easydiffraction-0.2.0 → easydiffraction-0.3.0}/src/easydiffraction/io/cif_reader.py +2 -2
  27. easydiffraction-0.2.0/src/easydiffraction/elements/Backgrounds/Background.py → easydiffraction-0.3.0/src/easydiffraction/job/experiment/backgrounds/background.py +1 -1
  28. easydiffraction-0.2.0/src/easydiffraction/elements/Backgrounds/Factorial.py → easydiffraction-0.3.0/src/easydiffraction/job/experiment/backgrounds/factorial.py +1 -1
  29. easydiffraction-0.2.0/src/easydiffraction/elements/Backgrounds/Point.py → easydiffraction-0.3.0/src/easydiffraction/job/experiment/backgrounds/point.py +1 -1
  30. easydiffraction-0.3.0/src/easydiffraction/job/experiment/common.py +87 -0
  31. easydiffraction-0.2.0/src/easydiffraction/Profiles/Container.py → easydiffraction-0.3.0/src/easydiffraction/job/experiment/data_container.py +2 -2
  32. easydiffraction-0.2.0/src/easydiffraction/Profiles/Experiment.py → easydiffraction-0.3.0/src/easydiffraction/job/experiment/experiment.py +21 -7
  33. easydiffraction-0.2.0/src/easydiffraction/Profiles/JobType.py → easydiffraction-0.3.0/src/easydiffraction/job/experiment/experiment_type.py +11 -11
  34. easydiffraction-0.2.0/src/easydiffraction/Profiles/P1D.py → easydiffraction-0.3.0/src/easydiffraction/job/experiment/pd_1d.py +5 -5
  35. {easydiffraction-0.2.0/src/easydiffraction/components → easydiffraction-0.3.0/src/easydiffraction/job/experiment}/polarization.py +1 -1
  36. easydiffraction-0.2.0/src/easydiffraction/Profiles/Sample.py → easydiffraction-0.3.0/src/easydiffraction/job/experiment/simulation.py +0 -2
  37. {easydiffraction-0.2.0/src/easydiffraction → easydiffraction-0.3.0/src/easydiffraction/job}/job.py +95 -55
  38. {easydiffraction-0.2.0/src/easydiffraction/components → easydiffraction-0.3.0/src/easydiffraction/job/model}/site.py +1 -19
  39. easydiffraction-0.3.0/src/easydiffraction/job/old_sample/__init__.py +3 -0
  40. easydiffraction-0.2.0/src/easydiffraction/sample.py → easydiffraction-0.3.0/src/easydiffraction/job/old_sample/old_sample.py +14 -7
  41. easydiffraction-0.3.0/src/easydiffraction/job/project/__init__.py +3 -0
  42. easydiffraction-0.3.0/src/easydiffraction/job/summary/__init__.py +3 -0
  43. {easydiffraction-0.2.0 → easydiffraction-0.3.0}/src/easydiffraction/main.py +2 -2
  44. {easydiffraction-0.2.0 → easydiffraction-0.3.0}/src/easydiffraction/utils.py +2 -1
  45. easydiffraction-0.3.0/tests/data/hrpt.xye +3099 -0
  46. easydiffraction-0.3.0/tests/data/lbco.cif +25 -0
  47. easydiffraction-0.3.0/tests/data/sepd.xye +5600 -0
  48. easydiffraction-0.3.0/tests/data/si.cif +22 -0
  49. easydiffraction-0.3.0/tests/functional_tests/fitting/test_fitting_pd-neut.py +108 -0
  50. {easydiffraction-0.2.0/tests/integration_tests/test_scipp → easydiffraction-0.3.0/tests/integration_tests/scipp}/test_scipp.py +12 -6
  51. easydiffraction-0.2.0/tests/unit_tests/Profiles/test_Experiment.py → easydiffraction-0.3.0/tests/unit_tests/job/experiment/test_experiment.py +20 -23
  52. easydiffraction-0.3.0/tests/unit_tests/job/experiment/test_experiment_type.py +99 -0
  53. easydiffraction-0.2.0/tests/unit_tests/test_Job.py → easydiffraction-0.3.0/tests/unit_tests/job/test_job.py +72 -55
  54. {easydiffraction-0.2.0/tests → easydiffraction-0.3.0/tests_old}/integration_tests/fit_script.py +3 -3
  55. {easydiffraction-0.2.0/tests → easydiffraction-0.3.0/tests_old}/integration_tests/test1.py +2 -2
  56. {easydiffraction-0.2.0/tests → easydiffraction-0.3.0/tests_old}/integration_tests/test3.py +2 -2
  57. easydiffraction-0.3.0/tools/linting_and_formatting.sh +11 -0
  58. easydiffraction-0.3.0/tools/run_notebooks.sh +6 -0
  59. easydiffraction-0.3.0/tools/run_tests.sh +12 -0
  60. easydiffraction-0.2.0/.github/dependabot.yml +0 -10
  61. easydiffraction-0.2.0/.github/workflows/ossar-analysis.yml +0 -40
  62. easydiffraction-0.2.0/.github/workflows/pypi-publish.yml +0 -43
  63. easydiffraction-0.2.0/.github/workflows/test-code.yaml +0 -130
  64. easydiffraction-0.2.0/.github/workflows/test-ipynb.yml +0 -97
  65. easydiffraction-0.2.0/.github/workflows/test-package.yaml +0 -130
  66. easydiffraction-0.2.0/.github/workflows/verify-pr-labels.yml +0 -24
  67. easydiffraction-0.2.0/DEVELOPMENT.md +0 -64
  68. easydiffraction-0.2.0/README.md +0 -24
  69. easydiffraction-0.2.0/docs/dev/diagrams/classes.md +0 -95
  70. easydiffraction-0.2.0/pyproject.toml +0 -147
  71. easydiffraction-0.2.0/src/easydiffraction/Profiles/common.py +0 -221
  72. easydiffraction-0.2.0/src/easydiffraction/__init__.py +0 -15
  73. easydiffraction-0.2.0/src/easydiffraction/elements/Experiments/Experiment.py +0 -193
  74. easydiffraction-0.2.0/src/easydiffraction/elements/Experiments/Pattern.py +0 -63
  75. easydiffraction-0.2.0/tests/unit_tests/Profiles/__init__.py +0 -2
  76. easydiffraction-0.2.0/tests/unit_tests/Profiles/test_JobType.py +0 -99
  77. easydiffraction-0.2.0/tests/unit_tests/__init__.py +0 -0
  78. easydiffraction-0.2.0/tools/Scripts/generate_html.py +0 -31
  79. /easydiffraction-0.2.0/tests/__init__.py → /easydiffraction-0.3.0/.prettierignore +0 -0
  80. {easydiffraction-0.2.0 → easydiffraction-0.3.0}/LICENSE +0 -0
  81. {easydiffraction-0.2.0 → easydiffraction-0.3.0}/examples/Change-minimizer.ipynb +0 -0
  82. {easydiffraction-0.2.0 → easydiffraction-0.3.0}/examples/Define-experiment.ipynb +0 -0
  83. {easydiffraction-0.2.0 → easydiffraction-0.3.0}/examples/Define-model.ipynb +0 -0
  84. {easydiffraction-0.2.0 → easydiffraction-0.3.0}/examples/Fitting-emcee_pd-neut-cwl_LBCO-HRPT.ipynb +0 -0
  85. {easydiffraction-0.2.0 → easydiffraction-0.3.0}/examples/Fitting_pd-neut-cwl_LBCO-HRPT.ipynb +0 -0
  86. {easydiffraction-0.2.0 → easydiffraction-0.3.0}/examples/Fitting_pd-neut-tof_NCAF-WISH.ipynb +0 -0
  87. {easydiffraction-0.2.0 → easydiffraction-0.3.0}/examples/Simulation_pd-xray_NaCl.ipynb +0 -0
  88. {easydiffraction-0.2.0 → easydiffraction-0.3.0}/examples/data/d1a.cif +0 -0
  89. {easydiffraction-0.2.0 → easydiffraction-0.3.0}/examples/data/hrpt.xye +0 -0
  90. {easydiffraction-0.2.0 → easydiffraction-0.3.0}/examples/data/lbco.cif +0 -0
  91. {easydiffraction-0.2.0 → easydiffraction-0.3.0}/examples/data/lbco_adp.cif +0 -0
  92. {easydiffraction-0.2.0 → easydiffraction-0.3.0}/examples/data/ncaf.cif +0 -0
  93. {easydiffraction-0.2.0 → easydiffraction-0.3.0}/examples/data/sepd.xye +0 -0
  94. {easydiffraction-0.2.0 → easydiffraction-0.3.0}/examples/data/si.cif +0 -0
  95. {easydiffraction-0.2.0 → easydiffraction-0.3.0}/examples/data/wish.xye +0 -0
  96. {easydiffraction-0.2.0 → easydiffraction-0.3.0}/examples_old/3T2@LLB.xye +0 -0
  97. {easydiffraction-0.2.0 → easydiffraction-0.3.0}/examples_old/D1A@ILL.xye +0 -0
  98. {easydiffraction-0.2.0 → easydiffraction-0.3.0}/examples_old/Fitting.ipynb +0 -0
  99. {easydiffraction-0.2.0 → easydiffraction-0.3.0}/examples_old/Fitting_PD-CW_La0.5Ba0.5CoO3-HRPT@PSI/fitting.ipynb +0 -0
  100. {easydiffraction-0.2.0 → easydiffraction-0.3.0}/examples_old/Fitting_PD-CW_La0.5Ba0.5CoO3-HRPT@PSI/fitting.py +0 -0
  101. {easydiffraction-0.2.0 → easydiffraction-0.3.0}/examples_old/Fitting_PD-CW_La0.5Ba0.5CoO3-HRPT@PSI/hrpt.xye +0 -0
  102. {easydiffraction-0.2.0 → easydiffraction-0.3.0}/examples_old/Fitting_PD-TOF_Si-SEPD@Argonne/fitting copy.py +0 -0
  103. {easydiffraction-0.2.0 → easydiffraction-0.3.0}/examples_old/Fitting_PD-TOF_Si-SEPD@Argonne/fitting.ipynb +0 -0
  104. {easydiffraction-0.2.0 → easydiffraction-0.3.0}/examples_old/Fitting_PD-TOF_Si-SEPD@Argonne/fitting.py +0 -0
  105. {easydiffraction-0.2.0 → easydiffraction-0.3.0}/examples_old/Fitting_PD-TOF_Si-SEPD@Argonne/sepd.xye +0 -0
  106. {easydiffraction-0.2.0 → easydiffraction-0.3.0}/examples_old/Fitting_PD-TOF_Si-SEPD@Argonne/si.cif +0 -0
  107. {easydiffraction-0.2.0 → easydiffraction-0.3.0}/examples_old/Fitting_TOF.ipynb +0 -0
  108. {easydiffraction-0.2.0 → easydiffraction-0.3.0}/examples_old/Fitting_TOF_xye.ipynb +0 -0
  109. {easydiffraction-0.2.0 → easydiffraction-0.3.0}/examples_old/Fitting_multiphase.ipynb +0 -0
  110. {easydiffraction-0.2.0 → easydiffraction-0.3.0}/examples_old/PDF/Calculate_PDF_Profile_Ni.ipynb +0 -0
  111. {easydiffraction-0.2.0 → easydiffraction-0.3.0}/examples_old/PDF/Fitting_PDF_Profile_Ni.ipynb +0 -0
  112. {easydiffraction-0.2.0 → easydiffraction-0.3.0}/examples_old/PDF/Fitting_PDF_Profile_Si.ipynb +0 -0
  113. {easydiffraction-0.2.0 → easydiffraction-0.3.0}/examples_old/PDF/data/4507226.cif +0 -0
  114. {easydiffraction-0.2.0 → easydiffraction-0.3.0}/examples_old/PDF/data/Ni-xray.gr +0 -0
  115. {easydiffraction-0.2.0 → easydiffraction-0.3.0}/examples_old/PDF/data/Ni.cif +0 -0
  116. {easydiffraction-0.2.0 → easydiffraction-0.3.0}/examples_old/PDF/data/Si_calibration_cryostat_100A.fgr +0 -0
  117. {easydiffraction-0.2.0 → easydiffraction-0.3.0}/examples_old/PDF/data/Si_calibration_cryostat_20A.fgr +0 -0
  118. {easydiffraction-0.2.0 → easydiffraction-0.3.0}/examples_old/PDF/data/Si_calibration_cryostat_20A_01Rmin.fgr +0 -0
  119. {easydiffraction-0.2.0 → easydiffraction-0.3.0}/examples_old/PDF/data/Si_calibration_cryostat_50A.fgr +0 -0
  120. {easydiffraction-0.2.0 → easydiffraction-0.3.0}/examples_old/PDF/data/Si_calibration_cryostat_50A_01Rmin.fgr +0 -0
  121. {easydiffraction-0.2.0 → easydiffraction-0.3.0}/examples_old/PDF2/Calculate_PDF_Profile.ipynb +0 -0
  122. {easydiffraction-0.2.0 → easydiffraction-0.3.0}/examples_old/PDF2/Fitting_PDF_Profile.ipynb +0 -0
  123. {easydiffraction-0.2.0 → easydiffraction-0.3.0}/examples_old/PDF2/Ni-xray.gr +0 -0
  124. {easydiffraction-0.2.0 → easydiffraction-0.3.0}/examples_old/PDF2/Ni.cif +0 -0
  125. {easydiffraction-0.2.0 → easydiffraction-0.3.0}/examples_old/PDF2/Ni_fitting.py +0 -0
  126. {easydiffraction-0.2.0 → easydiffraction-0.3.0}/examples_old/PDF2/Ni_profile.py +0 -0
  127. {easydiffraction-0.2.0 → easydiffraction-0.3.0}/examples_old/PbSO4.cif +0 -0
  128. {easydiffraction-0.2.0 → easydiffraction-0.3.0}/examples_old/PolNPD5T.cif +0 -0
  129. {easydiffraction-0.2.0 → easydiffraction-0.3.0}/examples_old/Polarized.ipynb +0 -0
  130. {easydiffraction-0.2.0 → easydiffraction-0.3.0}/examples_old/Simulation.ipynb +0 -0
  131. {easydiffraction-0.2.0 → easydiffraction-0.3.0}/examples_old/Simulation_xray.ipynb +0 -0
  132. {easydiffraction-0.2.0 → easydiffraction-0.3.0}/examples_old/TestingAPI/CrysPy/rhochi_unpolarized_tof_powder_Si/calc_chisq.py +0 -0
  133. {easydiffraction-0.2.0 → easydiffraction-0.3.0}/examples_old/TestingAPI/CrysPy/rhochi_unpolarized_tof_powder_Si/cryspy_PbSO4-D1A@ILL.rcif +0 -0
  134. {easydiffraction-0.2.0 → easydiffraction-0.3.0}/examples_old/TestingAPI/CrysPy/rhochi_unpolarized_tof_powder_Si/cryspy_unpolarized_tof_powder_Si.rcif +0 -0
  135. {easydiffraction-0.2.0 → easydiffraction-0.3.0}/examples_old/TestingAPI/CrysPy/rhochi_unpolarized_tof_powder_Si/refinement.py +0 -0
  136. {easydiffraction-0.2.0 → easydiffraction-0.3.0}/examples_old/TestingAPI/CrysPy/rhochi_unpolarized_tof_powder_Si/rhochi_unpolarized_tof_powder_CeCuAl.rcif +0 -0
  137. {easydiffraction-0.2.0 → easydiffraction-0.3.0}/examples_old/TestingAPI/EDB/experiments/d1a.cif +0 -0
  138. {easydiffraction-0.2.0 → easydiffraction-0.3.0}/examples_old/TestingAPI/EDB/models/pbso4.cif +0 -0
  139. {easydiffraction-0.2.0 → easydiffraction-0.3.0}/examples_old/TestingAPI/EDB/models/pbso4_dark.png +0 -0
  140. {easydiffraction-0.2.0 → easydiffraction-0.3.0}/examples_old/TestingAPI/EDB/project.cif +0 -0
  141. {easydiffraction-0.2.0 → easydiffraction-0.3.0}/examples_old/TestingAPI/EDB/summary/report.cif +0 -0
  142. {easydiffraction-0.2.0 → easydiffraction-0.3.0}/examples_old/TestingAPI/EDL/D1A@ILL.xye +0 -0
  143. {easydiffraction-0.2.0 → easydiffraction-0.3.0}/examples_old/TestingAPI/EDL/PbSO4.cif +0 -0
  144. {easydiffraction-0.2.0 → easydiffraction-0.3.0}/examples_old/TestingAPI/EDL/TestingAPI.py +0 -0
  145. {easydiffraction-0.2.0 → easydiffraction-0.3.0}/examples_old/advanced/refinement_bumps_dream.ipynb +0 -0
  146. {easydiffraction-0.2.0 → easydiffraction-0.3.0}/examples_old/advanced/refinement_emcee.ipynb +0 -0
  147. {easydiffraction-0.2.0 → easydiffraction-0.3.0}/examples_old/d1a.cif +0 -0
  148. {easydiffraction-0.2.0 → easydiffraction-0.3.0}/examples_old/diamond_exp.xye +0 -0
  149. {easydiffraction-0.2.0 → easydiffraction-0.3.0}/examples_old/diamond_phase.cif +0 -0
  150. {easydiffraction-0.2.0 → easydiffraction-0.3.0}/examples_old/experiment_polarized.xye +0 -0
  151. {easydiffraction-0.2.0 → easydiffraction-0.3.0}/examples_old/multiphase.cif +0 -0
  152. {easydiffraction-0.2.0 → easydiffraction-0.3.0}/examples_old/ncaf.cif +0 -0
  153. {easydiffraction-0.2.0 → easydiffraction-0.3.0}/examples_old/structure_polarized.cif +0 -0
  154. {easydiffraction-0.2.0 → easydiffraction-0.3.0}/examples_old/wish.cif +0 -0
  155. {easydiffraction-0.2.0 → easydiffraction-0.3.0}/src/easydiffraction/calculators/__init__.py +0 -0
  156. {easydiffraction-0.2.0 → easydiffraction-0.3.0}/src/easydiffraction/calculators/cryspy/parser.py +0 -0
  157. {easydiffraction-0.2.0 → easydiffraction-0.3.0}/src/easydiffraction/calculators/pdffit2/calculator.py +0 -0
  158. {easydiffraction-0.2.0 → easydiffraction-0.3.0}/src/easydiffraction/calculators/pycrysfml/calculator.py +0 -0
  159. {easydiffraction-0.2.0/src/easydiffraction/Profiles → easydiffraction-0.3.0/src/easydiffraction/io}/__init__.py +0 -0
  160. {easydiffraction-0.2.0/src/easydiffraction/components → easydiffraction-0.3.0/src/easydiffraction/job}/__init__.py +0 -0
  161. {easydiffraction-0.2.0/src/easydiffraction/elements/Backgrounds → easydiffraction-0.3.0/src/easydiffraction/job/analysis}/__init__.py +0 -0
  162. /easydiffraction-0.2.0/src/easydiffraction/Profiles/Analysis.py → /easydiffraction-0.3.0/src/easydiffraction/job/analysis/analysis.py +0 -0
  163. {easydiffraction-0.2.0/src/easydiffraction/elements/Experiments → easydiffraction-0.3.0/src/easydiffraction/job/experiment}/__init__.py +0 -0
  164. {easydiffraction-0.2.0/src/easydiffraction/elements → easydiffraction-0.3.0/src/easydiffraction/job/experiment/backgrounds}/__init__.py +0 -0
  165. {easydiffraction-0.2.0/src/easydiffraction/io → easydiffraction-0.3.0/src/easydiffraction/job/model}/__init__.py +0 -0
  166. {easydiffraction-0.2.0/src/easydiffraction/components → easydiffraction-0.3.0/src/easydiffraction/job/model}/phase.py +0 -0
  167. {easydiffraction-0.2.0/tests/resources → easydiffraction-0.3.0/tests/data}/PbSO4.cif +0 -0
  168. {easydiffraction-0.2.0/tests/resources → easydiffraction-0.3.0/tests/data}/PolNPD5T.cif +0 -0
  169. {easydiffraction-0.2.0/tests/resources → easydiffraction-0.3.0/tests/data}/d1a.cif +0 -0
  170. {easydiffraction-0.2.0/tests/resources → easydiffraction-0.3.0/tests/data}/scipp.cif +0 -0
  171. {easydiffraction-0.2.0/tests → easydiffraction-0.3.0/tests_old}/integration_tests/CFML_Cryspy.png +0 -0
  172. {easydiffraction-0.2.0/tests → easydiffraction-0.3.0/tests_old}/integration_tests/FittingData.ipynb +0 -0
  173. {easydiffraction-0.2.0/tests → easydiffraction-0.3.0/tests_old}/integration_tests/FittingData_CFML-xarrays.ipynb +0 -0
  174. {easydiffraction-0.2.0/tests → easydiffraction-0.3.0/tests_old}/integration_tests/FittingData_CFML.ipynb +0 -0
  175. {easydiffraction-0.2.0/tests → easydiffraction-0.3.0/tests_old}/integration_tests/PbSO4.cif +0 -0
  176. {easydiffraction-0.2.0/tests → easydiffraction-0.3.0/tests_old}/integration_tests/PbSO4_neutrons_short.xye +0 -0
  177. {easydiffraction-0.2.0/tests → easydiffraction-0.3.0/tests_old}/integration_tests/PbSO4_xrays_short.xye +0 -0
  178. {easydiffraction-0.2.0/tests → easydiffraction-0.3.0/tests_old}/integration_tests/SrTiO3.cif +0 -0
  179. {easydiffraction-0.2.0/tests → easydiffraction-0.3.0/tests_old}/integration_tests/WorkedExample2.ipynb +0 -0
  180. {easydiffraction-0.2.0/tests → easydiffraction-0.3.0/tests_old}/integration_tests/workedExample1.ipynb +0 -0
  181. {easydiffraction-0.2.0/tests → easydiffraction-0.3.0/tests_old}/integration_tests/xarray_test.ipynb +0 -0
  182. {easydiffraction-0.2.0/tests → easydiffraction-0.3.0/tests_old}/unit_tests/Calculators/__init__.py +0 -0
  183. {easydiffraction-0.2.0/tests → easydiffraction-0.3.0/tests_old}/unit_tests/Elements/__init__.py +0 -0
  184. {easydiffraction-0.2.0/tests → easydiffraction-0.3.0/tests_old}/unit_tests/Interfaces/__init__.py +0 -0
  185. {easydiffraction-0.2.0/tests → easydiffraction-0.3.0/tests_old}/unit_tests/test_Jobs.py +0 -0
  186. {easydiffraction-0.2.0/tests → easydiffraction-0.3.0/tests_old}/unit_tests/test_Runner.py +0 -0
  187. {easydiffraction-0.2.0/tests → easydiffraction-0.3.0/tests_old}/unit_tests/test_interface.py +0 -0
  188. {easydiffraction-0.2.0/tests → easydiffraction-0.3.0/tests_old}/unit_tests/test_sample.py +0 -0
@@ -0,0 +1,10 @@
1
+ version: 2
2
+ updates:
3
+ - package-ecosystem: pip
4
+ directory: /
5
+ schedule:
6
+ interval: daily
7
+ open-pull-requests-limit: 10
8
+ target-branch: develop
9
+ labels:
10
+ - dependencies
@@ -4,17 +4,17 @@
4
4
  name-template: 'EasyDiffraction $RESOLVED_VERSION'
5
5
  tag-template: 'v$RESOLVED_VERSION'
6
6
  categories:
7
- - title: 'Added'
8
- labels: # Labels to use to categorize a pull request as a feature
9
- - 'enhancement'
10
- - title: 'Fixed'
11
- labels: # Labels to use to categorize a pull request as a bug fix
12
- - 'bug'
13
- - title: 'Changed'
14
- labels: # Labels to use to categorize a pull request as a maintenance task
15
- - 'chore'
16
- - 'documentation'
17
- - 'refactor'
7
+ - title: 'Added'
8
+ labels: # Labels to use to categorize a pull request as a feature
9
+ - 'enhancement'
10
+ - title: 'Fixed'
11
+ labels: # Labels to use to categorize a pull request as a bug fix
12
+ - 'bug'
13
+ - title: 'Changed'
14
+ labels: # Labels to use to categorize a pull request as a maintenance task
15
+ - 'chore'
16
+ - 'documentation'
17
+ - 'refactor'
18
18
  change-template: '- $TITLE (#$NUMBER)'
19
19
  change-title-escapes: '\<*_&' # You can add # and @ to disable mentions, and add ` to disable code blocks.
20
20
  version-resolver:
@@ -0,0 +1,258 @@
1
+ # This is the main workflow for testing the code, notebooks and package.
2
+ # It is divided into three jobs:
3
+ # 1. Code-quality:
4
+ # - Check the validity of pyproject.toml
5
+ # - Check code linting
6
+ # - Check code formatting
7
+ # - Check Jupyter notebooks formatting
8
+ # - Check formatting of Markdown, YAML, TOML, etc. files
9
+ # 2. Test-code:
10
+ # - Test the code base and upload coverage to Codecov
11
+ # - Create the Python package
12
+ # - Upload the Python package for the next job
13
+ # 3. Test-package:
14
+ # - Download the Python package from the previous job
15
+ # - Install the downloaded Python package
16
+ # - Test the code base
17
+ # - Check if Jupyter Notebooks run without errors
18
+
19
+ name: Test code, notebooks and package
20
+
21
+ on:
22
+ # Trigger the workflow on push
23
+ push:
24
+ # Every branch
25
+ branches:
26
+ - '**'
27
+ # But do not run this workflow on creating a new tag starting with 'v', e.g. 'v1.0.3' (see pypi-publish.yml)
28
+ tags-ignore:
29
+ - 'v*'
30
+ # Trigger the workflow on pull request
31
+ pull_request:
32
+ branches:
33
+ - '**'
34
+ # Allows you to run this workflow manually from the Actions tab
35
+ workflow_dispatch:
36
+
37
+ # Allow only one concurrent workflow, skipping runs queued between the run in-progress and latest queued.
38
+ # And cancel in-progress runs.
39
+ concurrency:
40
+ group:
41
+ ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
42
+ cancel-in-progress: true
43
+
44
+ jobs:
45
+ # Job 1: Check code quality and consistency
46
+ code-quality:
47
+ strategy:
48
+ matrix:
49
+ os: [ubuntu-latest]
50
+ python-version: ['3.12']
51
+
52
+ runs-on: ${{ matrix.os }}
53
+
54
+ steps:
55
+ - name: Checkout repository
56
+ uses: actions/checkout@v4
57
+ with:
58
+ fetch-depth: '0' # full history with tags to get the version number by versioningit
59
+
60
+ - name: Set up Python ${{ matrix.python-version }}
61
+ uses: actions/setup-python@v5
62
+ with:
63
+ python-version: ${{ matrix.python-version }}
64
+
65
+ - name: Install Python dependencies
66
+ # Install 'validate-pyproject' for checking pyproject.toml
67
+ # Install 'ruff' for code linting and formatting
68
+ # Install 'nbqa' for quality assurance of Jupyter notebooks
69
+ run: pip install 'validate-pyproject[all]' ruff nbqa
70
+
71
+ - name: Install npm dependencies
72
+ # Install 'prettier' for code formatting of Markdown, YAML, etc. files
73
+ # Install 'prettier-plugin-toml' plugin for code formatting of TOML files
74
+ run: npm install prettier prettier-plugin-toml --save-dev --save-exact
75
+
76
+ # Check the validity of pyproject.toml
77
+ - name: Check validity of pyproject.toml
78
+ id: check_pyproject
79
+ continue-on-error: true
80
+ run: validate-pyproject pyproject.toml
81
+
82
+ # Check code linting with Ruff in the project root
83
+ - name: Check code linting
84
+ id: check_code_linting
85
+ continue-on-error: true
86
+ run: ruff check .
87
+
88
+ - name: Suggestion to fix code linting issues (for *.py files)
89
+ if: steps.check_code_linting.outcome == 'failure'
90
+ run:
91
+ echo "In project root run 'ruff check . --fix' and commit changes to
92
+ fix issues."
93
+
94
+ # Check code formatting with Ruff in the project root
95
+ - name: Check code formatting
96
+ id: check_code_formatting
97
+ continue-on-error: true
98
+ run: ruff format . --check
99
+
100
+ - name: Suggestion to fix code formatting issues (for *.py files)
101
+ if: steps.check_code_formatting.outcome == 'failure'
102
+ run:
103
+ echo "In project root run 'ruff format .' and commit changes to fix
104
+ issues."
105
+
106
+ # Check Jupyter notebooks with nbQA in the sample directory
107
+ - name: Check Jupyter notebooks formatting
108
+ id: check_notebooks
109
+ continue-on-error: true
110
+ run: nbqa ruff examples/
111
+
112
+ - name: Suggestion to fix notebook formatting issues (for *.ipynb files)
113
+ if: steps.check_notebooks.outcome == 'failure'
114
+ run:
115
+ echo "In project root run 'nbqa ruff examples/ --fix' and commit
116
+ changes to fix issues."
117
+
118
+ # Check formatting of Markdown, YAML, TOML, etc. files with Prettier in the project root
119
+ - name: Check formatting of Markdown, YAML, TOML, etc. files
120
+ id: check_others_formatting
121
+ continue-on-error: true
122
+ run: npx prettier . --check --config=prettierrc.toml
123
+
124
+ - name: Suggestion to fix non-code formatting issues (for *.md, etc.)
125
+ if: steps.check_others_formatting.outcome == 'failure'
126
+ run:
127
+ echo "In project root run 'npx prettier . --write
128
+ --config=prettierrc.toml' and commit changes to fix issues."
129
+
130
+ - name: Force fail if any of the previous steps failed
131
+ if: |
132
+ steps.check_pyproject.outcome == 'failure' ||
133
+ steps.check_code_linting.outcome == 'failure' ||
134
+ steps.check_code_formatting.outcome == 'failure' ||
135
+ steps.check_notebooks.outcome == 'failure' ||
136
+ steps.check_others_formatting.outcome == 'failure'
137
+ run: exit 1
138
+
139
+ # Job 2: Test code and upload coverage to Codecov.
140
+ test-code:
141
+ needs: code-quality # previous job 'code-quality' need to be finished first
142
+
143
+ # current job matrix. if modified, remember to UPDATE the strategy in the next job
144
+ strategy:
145
+ fail-fast: false
146
+ matrix:
147
+ os: [ubuntu-24.04, windows-2022, macos-13, macos-14]
148
+ python-version: ['3.10', '3.11', '3.12']
149
+
150
+ runs-on: ${{ matrix.os }}
151
+
152
+ steps:
153
+ - name: Checkout repository
154
+ uses: actions/checkout@v4
155
+ with:
156
+ fetch-depth: '0' # full history with tags to get the version number by versioningit
157
+
158
+ - name: Set up Python ${{ matrix.python-version }}
159
+ uses: actions/setup-python@v5
160
+ with:
161
+ python-version: ${{ matrix.python-version }}
162
+
163
+ - name: Upgrade package installer for Python
164
+ run: python -m pip install --upgrade pip
165
+
166
+ - name: Install Python dependencies
167
+ run: pip install '.[dev,charts]'
168
+
169
+ - name: Run Python tests and create coverage report
170
+ run: >
171
+ pytest tests/ --cov=./ --cov-report=xml:coverage/coverage.xml
172
+ --junitxml=./coverage/junit.xml --color=yes -n auto
173
+
174
+ #- name: Upload test results to Codecov
175
+ # if: ${{ !cancelled() }}
176
+ # uses: codecov/test-results-action@v1
177
+ # with:
178
+ # files: ./coverage/junit.xml
179
+ # fail_ci_if_error: true # optional (default = false)
180
+ # name: Pytest results
181
+ # token: ${{ secrets.CODECOV_TOKEN }}
182
+
183
+ #- name: Upload coverage report to Codecov
184
+ # uses: codecov/codecov-action@v4
185
+ # with:
186
+ # files: ./coverage/coverage.xml
187
+ # env_vars: OS,PYTHON
188
+ # fail_ci_if_error: true # optional (default = false)
189
+ # name: Pytest coverage
190
+ # token: ${{ secrets.CODECOV_TOKEN }}
191
+ # env:
192
+ # OS: ${{ matrix.os }}
193
+ # PYTHON: ${{ matrix.python-version }}
194
+
195
+ - name: Create Python package
196
+ run: python -m build --wheel --outdir dist
197
+
198
+ - name:
199
+ Upload zipped Python package (with tests and examples) for next job
200
+ uses: actions/upload-artifact@v4
201
+ with:
202
+ name:
203
+ EasyDiffractionLib_py${{ matrix.python-version }}_${{ matrix.os
204
+ }}_${{ runner.arch }}
205
+ path: |
206
+ dist/*.whl
207
+ tests/
208
+ examples/
209
+ if-no-files-found: 'error'
210
+ compression-level: 0
211
+
212
+ # Job 3: Test the package
213
+ test-package:
214
+ needs: test-code # the previous job needs to be finished first
215
+
216
+ strategy:
217
+ fail-fast: false
218
+ matrix:
219
+ os: [ubuntu-24.04, windows-2022, macos-13, macos-14]
220
+ python-version: ['3.10', '3.11', '3.12']
221
+
222
+ runs-on: ${{ matrix.os }}
223
+
224
+ steps:
225
+ - name: Set up Python ${{ matrix.python-version }}
226
+ uses: actions/setup-python@v5
227
+ with:
228
+ python-version: ${{ matrix.python-version }}
229
+
230
+ - name: Upgrade package installer for Python
231
+ run: python -m pip install --upgrade pip
232
+
233
+ - name:
234
+ Download zipped Python package (with tests and examples) from previous
235
+ job
236
+ uses: actions/download-artifact@v4
237
+ with: # name or path are taken from the upload step of the previous job
238
+ name:
239
+ EasyDiffractionLib_py${{ matrix.python-version }}_${{ matrix.os
240
+ }}_${{ runner.arch }}
241
+ path: . # directory to extract downloaded zipped artifacts
242
+
243
+ # The local version must be higher than the PyPI version for pip to
244
+ # prefer the local version. So, after a new release and a new tag,
245
+ # remember to merge the master branch with the develop branch,
246
+ # and then create a new feature branch from the develop branch.
247
+ - name: Install Python package from previous job with 'dev' extras
248
+ run: pip install 'easydiffraction[dev]' --find-links=dist
249
+
250
+ - name: Run Python tests
251
+ run: >
252
+ pytest tests/ --color=yes -n auto
253
+
254
+ - name: Check if Jupyter Notebooks run without errors
255
+ shell: bash
256
+ run: >
257
+ pytest --nbmake examples/ --ignore-glob='examples/*emcee*'
258
+ --nbmake-timeout=300 --color=yes -n=auto
@@ -11,7 +11,6 @@ on:
11
11
 
12
12
  # Allows you to run this workflow manually from the Actions tab
13
13
  workflow_dispatch:
14
-
15
14
  inputs:
16
15
  days:
17
16
  description: 'Number of days.'
@@ -22,26 +21,32 @@ on:
22
21
  required: true
23
22
  default: 6
24
23
  delete_workflow_pattern:
25
- description: 'The name or filename of the workflow. if not set then it will target all workflows.'
24
+ description:
25
+ 'The name or filename of the workflow. if not set then it will target
26
+ all workflows.'
26
27
  required: false
27
28
  delete_workflow_by_state_pattern:
28
- description: 'Remove workflow by state: active, deleted, disabled_fork, disabled_inactivity, disabled_manually'
29
+ description:
30
+ 'Remove workflow by state: active, deleted, disabled_fork,
31
+ disabled_inactivity, disabled_manually'
29
32
  required: true
30
- default: "All"
33
+ default: 'All'
31
34
  type: choice
32
35
  options:
33
- - "All"
36
+ - 'All'
34
37
  - active
35
38
  - deleted
36
39
  - disabled_inactivity
37
40
  - disabled_manually
38
41
  delete_run_by_conclusion_pattern:
39
- description: 'Remove workflow by conclusion: action_required, cancelled, failure, skipped, success'
42
+ description:
43
+ 'Remove workflow by conclusion: action_required, cancelled, failure,
44
+ skipped, success'
40
45
  required: true
41
- default: "All"
46
+ default: 'All'
42
47
  type: choice
43
48
  options:
44
- - "All"
49
+ - 'All'
45
50
  - action_required
46
51
  - cancelled
47
52
  - failure
@@ -53,7 +58,6 @@ on:
53
58
 
54
59
  jobs:
55
60
  del-runs:
56
-
57
61
  runs-on: ubuntu-latest
58
62
 
59
63
  permissions:
@@ -67,7 +71,10 @@ jobs:
67
71
  repository: ${{ github.repository }}
68
72
  retain_days: ${{ github.event.inputs.days }}
69
73
  keep_minimum_runs: ${{ github.event.inputs.minimum_runs }}
70
- delete_workflow_pattern: ${{ github.event.inputs.delete_workflow_pattern }}
71
- delete_workflow_by_state_pattern: ${{ github.event.inputs.delete_workflow_by_state_pattern }}
72
- delete_run_by_conclusion_pattern: ${{ github.event.inputs.delete_run_by_conclusion_pattern }}
74
+ delete_workflow_pattern:
75
+ ${{ github.event.inputs.delete_workflow_pattern }}
76
+ delete_workflow_by_state_pattern:
77
+ ${{ github.event.inputs.delete_workflow_by_state_pattern }}
78
+ delete_run_by_conclusion_pattern:
79
+ ${{ github.event.inputs.delete_run_by_conclusion_pattern }}
73
80
  dry_run: ${{ github.event.inputs.dry_run }}
@@ -0,0 +1,40 @@
1
+ # Integrates a collection of open source static analysis tools with
2
+ # GitHub code scanning.
3
+ # https://github.com/github/ossar-action
4
+
5
+ name: Run security static analysis
6
+
7
+ on:
8
+ # Runs on pull requests
9
+ pull_request:
10
+
11
+ # Allows you to run this workflow manually from the Actions tab
12
+ workflow_dispatch:
13
+
14
+ jobs:
15
+ ossar-analysis:
16
+ # OSSAR runs on windows-latest.
17
+ # ubuntu-latest and macos-latest support coming soon
18
+ runs-on: windows-latest
19
+
20
+ steps:
21
+ - name: Checkout repository
22
+ uses: actions/checkout@v4
23
+ with:
24
+ # We must fetch at least the immediate parents so that if this is
25
+ # a pull request then we can checkout the head.
26
+ fetch-depth: 2
27
+
28
+ # If this run was triggered by a pull request event, then checkout
29
+ # the head of the pull request instead of the merge commit.
30
+ - run: git checkout HEAD^2
31
+ if: ${{ github.event_name == 'pull_request' }}
32
+
33
+ - name: Run open source static analysis tools
34
+ uses: github/ossar-action@main
35
+ id: ossar
36
+
37
+ - name: Upload results to Security tab
38
+ uses: github/codeql-action/upload-sarif@v3
39
+ with:
40
+ sarif_file: ${{ steps.ossar.outputs.sarifFile }}
@@ -0,0 +1,42 @@
1
+ # Builds a Python package and publish it to PyPI when a new tag is
2
+ # created.
3
+
4
+ name: Upload release to PyPI
5
+
6
+ on:
7
+ # Runs on creating a new tag starting with 'v', e.g. 'v1.0.3'
8
+ push:
9
+ tags:
10
+ - 'v*'
11
+
12
+ # Allows you to run this workflow manually from the Actions tab
13
+ workflow_dispatch:
14
+
15
+ jobs:
16
+ pypi-publish:
17
+ runs-on: ubuntu-latest
18
+
19
+ steps:
20
+ - name: Check-out repository
21
+ uses: actions/checkout@v4
22
+ with:
23
+ fetch-depth: '0' # full history with tags to get the version number by versioningit
24
+
25
+ - name: Set up Python
26
+ uses: actions/setup-python@v5
27
+ with:
28
+ python-version: '3.12'
29
+
30
+ - name: Upgrade package installer for Python
31
+ run: pip install --upgrade pip
32
+
33
+ - name: Install Python dependencies
34
+ run: pip install '.[dev]'
35
+
36
+ - name: Create Python package
37
+ run: python -m build
38
+
39
+ - name: Publish distribution 📦 to PyPI
40
+ uses: pypa/gh-action-pypi-publish@release/v1
41
+ with:
42
+ password: ${{ secrets.PYPI_PASSWORD }}
@@ -10,7 +10,6 @@ on:
10
10
 
11
11
  jobs:
12
12
  update-release-draft:
13
-
14
13
  runs-on: ubuntu-latest
15
14
 
16
15
  steps:
@@ -0,0 +1,22 @@
1
+ # Verifies if a pull request has at least one label from a set of valid
2
+ # labels before it can be merged.
3
+
4
+ name: Verify pull request labels
5
+
6
+ on:
7
+ # Runs on pull requests to a repository
8
+ pull_request_target:
9
+ types: [opened, labeled, unlabeled, synchronize]
10
+
11
+ jobs:
12
+ verify-pr-labels:
13
+ runs-on: ubuntu-latest
14
+
15
+ steps:
16
+ - name: Verify pull request labels
17
+ uses: jesusvasquez333/verify-pr-label-action@v1.4.0
18
+ with:
19
+ github-token: ${{ secrets.GITHUB_TOKEN }}
20
+ valid-labels: 'enhancement, bug, chore, documentation, refactor'
21
+ pull-request-number: ${{ github.event.pull_request.number }}
22
+ disable-reviews: false
@@ -18,11 +18,6 @@ __pycache__
18
18
  .coverage
19
19
  .pyc
20
20
 
21
- # Poetry
22
- dist
23
- poetry.lock
24
- *.egg-info
25
-
26
21
  # PyInstaller
27
22
  build
28
23
  *.spec
@@ -30,6 +25,9 @@ build
30
25
  # Jupyter
31
26
  .ipynb_checkpoints
32
27
 
28
+ # npm
29
+ node_modules
30
+
33
31
  # macOS
34
32
  .DS_Store
35
33
  *.app
@@ -1,48 +1,53 @@
1
1
  # Contributing
2
2
 
3
3
  When contributing, please first discuss the change you wish to make via issue,
4
- email, or any other method with the owners of this repository before making a change.
4
+ email, or any other method with the owners of this repository before making a
5
+ change.
5
6
 
6
- Please note we have a code of conduct, please follow it in all your interactions with the project.
7
+ Please note we have a code of conduct, please follow it in all your interactions
8
+ with the project.
7
9
 
8
10
  ## Pull Request Process
9
11
 
10
- 1. Ensure any install or build dependencies are removed before the end of the layer when doing a
11
- build.
12
- 2. Update the README.md with details of changes to the interface, this includes new environment
13
- variables, exposed ports, useful file locations and container parameters.
14
- 3. Increase the version numbers in any example files and the README.md to the new version that this
15
- Pull Request would represent. The versioning scheme we use is [SemVer](http://semver.org/).
16
- 4. You may merge the Pull Request in once you have the sign-off of two other developers, or if you
17
- do not have permission to do that, you may request the second reviewer to merge it for you.
12
+ 1. Ensure any install or build dependencies are removed before the end of the
13
+ layer when doing a build.
14
+ 2. Update the README.md with details of changes to the interface, this includes
15
+ new environment variables, exposed ports, useful file locations and container
16
+ parameters.
17
+ 3. Increase the version numbers in any example files and the README.md to the
18
+ new version that this Pull Request would represent. The versioning scheme we
19
+ use is [SemVer](http://semver.org/).
20
+ 4. You may merge the Pull Request in once you have the sign-off of two other
21
+ developers, or if you do not have permission to do that, you may request the
22
+ second reviewer to merge it for you.
18
23
 
19
24
  ## Code of Conduct
20
25
 
21
26
  ### Our Pledge
22
27
 
23
28
  In the interest of fostering an open and welcoming environment, we as
24
- contributors and maintainers pledge to make participation in our project and
25
- our community a harassment-free experience for everyone, regardless of age, body
26
- size, disability, ethnicity, gender identity and expression, level of experience,
27
- nationality, personal appearance, race, religion, or sexual identity and
28
- orientation.
29
+ contributors and maintainers pledge to make participation in our project and our
30
+ community a harassment-free experience for everyone, regardless of age, body
31
+ size, disability, ethnicity, gender identity and expression, level of
32
+ experience, nationality, personal appearance, race, religion, or sexual identity
33
+ and orientation.
29
34
 
30
35
  ### Our Standards
31
36
 
32
37
  Examples of behavior that contributes to creating a positive environment
33
38
  include:
34
39
 
35
- * Being respectful of differing viewpoints and experiences
36
- * Gracefully accepting constructive criticism
37
- * Focusing on what is best for the community
40
+ - Being respectful of differing viewpoints and experiences
41
+ - Gracefully accepting constructive criticism
42
+ - Focusing on what is best for the community
38
43
 
39
44
  Examples of unacceptable behavior by participants include:
40
45
 
41
- * Trolling, insulting/derogatory comments, and personal or political attacks
42
- * Public or private harassment
43
- * Publishing others' private information, such as a physical or electronic
46
+ - Trolling, insulting/derogatory comments, and personal or political attacks
47
+ - Public or private harassment
48
+ - Publishing others' private information, such as a physical or electronic
44
49
  address, without explicit permission
45
- * Other conduct which could reasonably be considered inappropriate in a
50
+ - Other conduct which could reasonably be considered inappropriate in a
46
51
  professional setting
47
52
 
48
53
  ### Our Responsibilities
@@ -51,11 +56,11 @@ Project maintainers are responsible for clarifying the standards of acceptable
51
56
  behavior and are expected to take appropriate and fair corrective action in
52
57
  response to any instances of unacceptable behavior.
53
58
 
54
- Project maintainers have the right and responsibility to remove, edit, or
55
- reject comments, commits, code, wiki edits, issues, and other contributions
56
- that are not aligned to this Code of Conduct, or to ban temporarily or
57
- permanently any contributor for other behaviors that they deem inappropriate,
58
- threatening, offensive, or harmful.
59
+ Project maintainers have the right and responsibility to remove, edit, or reject
60
+ comments, commits, code, wiki edits, issues, and other contributions that are
61
+ not aligned to this Code of Conduct, or to ban temporarily or permanently any
62
+ contributor for other behaviors that they deem inappropriate, threatening,
63
+ offensive, or harmful.
59
64
 
60
65
  ### Scope
61
66
 
@@ -72,8 +77,9 @@ Instances of abusive, harassing, or otherwise unacceptable behavior may be
72
77
  reported by contacting the project team at suport@easydiffraction.org. All
73
78
  complaints will be reviewed and investigated and will result in a response that
74
79
  is deemed necessary and appropriate to the circumstances. The project team is
75
- obligated to maintain confidentiality with regard to the reporter of an incident.
76
- Further details of specific enforcement policies may be posted separately.
80
+ obligated to maintain confidentiality with regard to the reporter of an
81
+ incident. Further details of specific enforcement policies may be posted
82
+ separately.
77
83
 
78
84
  Project maintainers who do not follow or enforce the Code of Conduct in good
79
85
  faith may face temporary or permanent repercussions as determined by other
@@ -81,8 +87,8 @@ members of the project's leadership.
81
87
 
82
88
  ### Attribution
83
89
 
84
- This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
85
- available at [http://contributor-covenant.org/version/1/4][version]
90
+ This Code of Conduct is adapted from the [Contributor Covenant][homepage],
91
+ version 1.4, available at [http://contributor-covenant.org/version/1/4][version]
86
92
 
87
93
  [homepage]: http://contributor-covenant.org
88
94
  [version]: http://contributor-covenant.org/version/1/4/