easydiffraction 0.5.0__tar.gz → 0.5.2__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 (225) hide show
  1. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/.github/workflows/build-docs.yml +3 -2
  2. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/.github/workflows/publish-pypi.yml +3 -3
  3. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/.github/workflows/test-tutorials-colab.yaml +3 -3
  4. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/.github/workflows/test-tutorials.yaml +2 -0
  5. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/PKG-INFO +2 -3
  6. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/docs/installation-and-setup/index.md +7 -7
  7. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/docs/mkdocs.yml +2 -2
  8. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/pyproject.toml +1 -2
  9. easydiffraction-0.5.2/tools/nb_uncomment_pip.py +108 -0
  10. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/tutorials/advanced_joint-fit_pd-neut-xray-cwl_PbSO4.ipynb +1 -1
  11. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/tutorials/basic_single-fit_pd-neut-cwl_LBCO-HRPT.ipynb +1 -1
  12. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/tutorials/cryst-struct_pd-neut-cwl_CoSiO4-D20.ipynb +1 -1
  13. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/tutorials/cryst-struct_pd-neut-cwl_HS-HRPT.ipynb +1 -1
  14. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/tutorials/cryst-struct_pd-neut-tof_Si-SEPD.ipynb +1 -1
  15. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/tutorials/cryst-struct_pd-neut-tof_multidata_NCAF-WISH.ipynb +1 -1
  16. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/tutorials/cryst-struct_pd-neut-tof_multiphase-LBCO-Si_McStas.ipynb +1 -1
  17. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/tutorials/dmsc-summer-school-2025_analysis-powder-diffraction.ipynb +132 -118
  18. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/tutorials/dmsc-summer-school-2025_analysis-powder-diffraction.py +9 -2
  19. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/tutorials/pdf_pd-neut-cwl_Ni.ipynb +1 -1
  20. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/tutorials/pdf_pd-neut-tof_Si-NOMAD.ipynb +1 -1
  21. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/tutorials/pdf_pd-xray_NaCl.ipynb +1 -1
  22. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/tutorials/quick_single-fit_pd-neut-cwl_LBCO-HRPT.ipynb +1 -1
  23. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/.github/release-drafter.yml +0 -0
  24. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/.github/workflows/delete-old-runs.yml +0 -0
  25. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/.github/workflows/scan-security.yml +0 -0
  26. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/.github/workflows/test-code.yaml +0 -0
  27. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/.github/workflows/update-release-draft.yml +0 -0
  28. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/.github/workflows/verify-pr-labels.yml +0 -0
  29. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/.gitignore +0 -0
  30. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/.prettierignore +0 -0
  31. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/CONTRIBUTING.md +0 -0
  32. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/DEVELOPMENT.md +0 -0
  33. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/LICENSE +0 -0
  34. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/README.md +0 -0
  35. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/deps/pycrysfml-0.1.6-py312-none-macosx_14_0_arm64.whl +0 -0
  36. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/deps/pycrysfml-0.1.6-py312-none-win_amd64.whl +0 -0
  37. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/docs/api-reference/analysis.md +0 -0
  38. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/docs/api-reference/core.md +0 -0
  39. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/docs/api-reference/crystallography.md +0 -0
  40. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/docs/api-reference/experiments.md +0 -0
  41. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/docs/api-reference/index.md +0 -0
  42. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/docs/api-reference/plotting.md +0 -0
  43. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/docs/api-reference/project.md +0 -0
  44. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/docs/api-reference/sample_models.md +0 -0
  45. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/docs/api-reference/summary.md +0 -0
  46. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/docs/api-reference/utils.md +0 -0
  47. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/docs/assets/images/user-guide/data-acquisition_2d-raw-data.jpg +0 -0
  48. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/docs/assets/images/user-guide/data-acquisition_instrument.png +0 -0
  49. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/docs/assets/images/user-guide/data-analysis_model.png +0 -0
  50. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/docs/assets/images/user-guide/data-analysis_refinement.png +0 -0
  51. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/docs/assets/images/user-guide/data-reduction_1d-pattern.png +0 -0
  52. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/docs/index.md +0 -0
  53. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/docs/introduction/index.md +0 -0
  54. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/docs/tutorials/index.md +0 -0
  55. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/docs/user-guide/analysis-workflow/analysis.md +0 -0
  56. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/docs/user-guide/analysis-workflow/experiment.md +0 -0
  57. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/docs/user-guide/analysis-workflow/index.md +0 -0
  58. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/docs/user-guide/analysis-workflow/model.md +0 -0
  59. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/docs/user-guide/analysis-workflow/project.md +0 -0
  60. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/docs/user-guide/analysis-workflow/summary.md +0 -0
  61. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/docs/user-guide/concept.md +0 -0
  62. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/docs/user-guide/data-format.md +0 -0
  63. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/docs/user-guide/first-steps.md +0 -0
  64. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/docs/user-guide/glossary.md +0 -0
  65. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/docs/user-guide/index.md +0 -0
  66. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/docs/user-guide/parameters/_diffrn_radiation.md +0 -0
  67. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/docs/user-guide/parameters/_diffrn_radiation_wavelength.md +0 -0
  68. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/docs/user-guide/parameters/_exptl_crystal.md +0 -0
  69. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/docs/user-guide/parameters/_extinction.md +0 -0
  70. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/docs/user-guide/parameters/_pd_calib.md +0 -0
  71. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/docs/user-guide/parameters/atom_site.md +0 -0
  72. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/docs/user-guide/parameters/background.md +0 -0
  73. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/docs/user-guide/parameters/cell.md +0 -0
  74. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/docs/user-guide/parameters/expt_type.md +0 -0
  75. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/docs/user-guide/parameters/instrument.md +0 -0
  76. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/docs/user-guide/parameters/linked_phases.md +0 -0
  77. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/docs/user-guide/parameters/pd_meas.md +0 -0
  78. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/docs/user-guide/parameters/peak.md +0 -0
  79. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/docs/user-guide/parameters/space_group.md +0 -0
  80. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/docs/user-guide/parameters.md +0 -0
  81. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/prettierrc.toml +0 -0
  82. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/src/easydiffraction/__init__.py +0 -0
  83. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/src/easydiffraction/analysis/__init__.py +0 -0
  84. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/src/easydiffraction/analysis/analysis.py +0 -0
  85. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/src/easydiffraction/analysis/calculation.py +0 -0
  86. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/src/easydiffraction/analysis/calculators/__init__.py +0 -0
  87. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/src/easydiffraction/analysis/calculators/calculator_base.py +0 -0
  88. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/src/easydiffraction/analysis/calculators/calculator_crysfml.py +0 -0
  89. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/src/easydiffraction/analysis/calculators/calculator_cryspy.py +0 -0
  90. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/src/easydiffraction/analysis/calculators/calculator_factory.py +0 -0
  91. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/src/easydiffraction/analysis/calculators/calculator_pdffit.py +0 -0
  92. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/src/easydiffraction/analysis/collections/__init__.py +0 -0
  93. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/src/easydiffraction/analysis/collections/aliases.py +0 -0
  94. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/src/easydiffraction/analysis/collections/constraints.py +0 -0
  95. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/src/easydiffraction/analysis/collections/joint_fit_experiments.py +0 -0
  96. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/src/easydiffraction/analysis/minimization.py +0 -0
  97. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/src/easydiffraction/analysis/minimizers/__init__.py +0 -0
  98. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/src/easydiffraction/analysis/minimizers/fitting_progress_tracker.py +0 -0
  99. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/src/easydiffraction/analysis/minimizers/minimizer_base.py +0 -0
  100. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/src/easydiffraction/analysis/minimizers/minimizer_dfols.py +0 -0
  101. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/src/easydiffraction/analysis/minimizers/minimizer_factory.py +0 -0
  102. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/src/easydiffraction/analysis/minimizers/minimizer_lmfit.py +0 -0
  103. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/src/easydiffraction/analysis/reliability_factors.py +0 -0
  104. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/src/easydiffraction/core/__init__.py +0 -0
  105. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/src/easydiffraction/core/constants.py +0 -0
  106. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/src/easydiffraction/core/objects.py +0 -0
  107. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/src/easydiffraction/core/singletons.py +0 -0
  108. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/src/easydiffraction/crystallography/__init__.py +0 -0
  109. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/src/easydiffraction/crystallography/crystallography.py +0 -0
  110. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/src/easydiffraction/crystallography/space_group_lookup_table.py +0 -0
  111. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/src/easydiffraction/experiments/__init__.py +0 -0
  112. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/src/easydiffraction/experiments/collections/__init__.py +0 -0
  113. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/src/easydiffraction/experiments/collections/background.py +0 -0
  114. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/src/easydiffraction/experiments/collections/datastore.py +0 -0
  115. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/src/easydiffraction/experiments/collections/excluded_regions.py +0 -0
  116. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/src/easydiffraction/experiments/collections/linked_phases.py +0 -0
  117. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/src/easydiffraction/experiments/components/__init__.py +0 -0
  118. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/src/easydiffraction/experiments/components/experiment_type.py +0 -0
  119. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/src/easydiffraction/experiments/components/instrument.py +0 -0
  120. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/src/easydiffraction/experiments/components/peak.py +0 -0
  121. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/src/easydiffraction/experiments/experiment.py +0 -0
  122. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/src/easydiffraction/experiments/experiments.py +0 -0
  123. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/src/easydiffraction/plotting/__init__.py +0 -0
  124. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/src/easydiffraction/plotting/plotters/__init__.py +0 -0
  125. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/src/easydiffraction/plotting/plotters/plotter_ascii.py +0 -0
  126. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/src/easydiffraction/plotting/plotters/plotter_base.py +0 -0
  127. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/src/easydiffraction/plotting/plotters/plotter_plotly.py +0 -0
  128. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/src/easydiffraction/plotting/plotting.py +0 -0
  129. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/src/easydiffraction/project.py +0 -0
  130. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/src/easydiffraction/sample_models/__init__.py +0 -0
  131. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/src/easydiffraction/sample_models/collections/__init__.py +0 -0
  132. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/src/easydiffraction/sample_models/collections/atom_sites.py +0 -0
  133. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/src/easydiffraction/sample_models/components/__init__.py +0 -0
  134. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/src/easydiffraction/sample_models/components/cell.py +0 -0
  135. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/src/easydiffraction/sample_models/components/space_group.py +0 -0
  136. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/src/easydiffraction/sample_models/sample_model.py +0 -0
  137. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/src/easydiffraction/sample_models/sample_models.py +0 -0
  138. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/src/easydiffraction/summary.py +0 -0
  139. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/src/easydiffraction/utils/__init__.py +0 -0
  140. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/src/easydiffraction/utils/decorators.py +0 -0
  141. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/src/easydiffraction/utils/formatting.py +0 -0
  142. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/src/easydiffraction/utils/utils.py +0 -0
  143. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/tests/functional_tests/fitting/test_pair-distribution-function.py +0 -0
  144. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/tests/functional_tests/fitting/test_powder-diffraction_constant-wavelength.py +0 -0
  145. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/tests/functional_tests/fitting/test_powder-diffraction_joint-fit.py +0 -0
  146. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/tests/functional_tests/fitting/test_powder-diffraction_multiphase.py +0 -0
  147. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/tests/functional_tests/fitting/test_powder-diffraction_time-of-flight.py +0 -0
  148. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/tests/unit_tests/analysis/calculators/test_calculator_base.py +0 -0
  149. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/tests/unit_tests/analysis/calculators/test_calculator_cryspy.py +0 -0
  150. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/tests/unit_tests/analysis/calculators/test_calculator_factory.py +0 -0
  151. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/tests/unit_tests/analysis/collections/test_joint_fit_experiment.py +0 -0
  152. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/tests/unit_tests/analysis/minimizers/test_fitting_progress_tracker.py +0 -0
  153. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/tests/unit_tests/analysis/minimizers/test_minimizer_base.py +0 -0
  154. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/tests/unit_tests/analysis/minimizers/test_minimizer_dfols.py +0 -0
  155. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/tests/unit_tests/analysis/minimizers/test_minimizer_factory.py +0 -0
  156. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/tests/unit_tests/analysis/minimizers/test_minimizer_lmfit.py +0 -0
  157. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/tests/unit_tests/analysis/test_analysis.py +0 -0
  158. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/tests/unit_tests/analysis/test_minimization.py +0 -0
  159. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/tests/unit_tests/analysis/test_reliability_factors.py +0 -0
  160. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/tests/unit_tests/core/test_objects.py +0 -0
  161. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/tests/unit_tests/core/test_singletons.py +0 -0
  162. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/tests/unit_tests/experiments/collections/test_background.py +0 -0
  163. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/tests/unit_tests/experiments/collections/test_datastore.py +0 -0
  164. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/tests/unit_tests/experiments/collections/test_linked_phases.py +0 -0
  165. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/tests/unit_tests/experiments/components/test_experiment_type.py +0 -0
  166. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/tests/unit_tests/experiments/components/test_instrument.py +0 -0
  167. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/tests/unit_tests/experiments/components/test_peak.py +0 -0
  168. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/tests/unit_tests/experiments/test_experiment.py +0 -0
  169. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/tests/unit_tests/experiments/test_experiments.py +0 -0
  170. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/tests/unit_tests/sample_models/collections/test_atom_sites.py +0 -0
  171. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/tests/unit_tests/sample_models/components/test_cell.py +0 -0
  172. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/tests/unit_tests/sample_models/components/test_space_group.py +0 -0
  173. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/tests/unit_tests/sample_models/test_sample_models.py +0 -0
  174. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/tests/unit_tests/test_project.py +0 -0
  175. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/tests/unit_tests/test_symmetry_lookup_table.py +0 -0
  176. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/tools/build_docs.sh +0 -0
  177. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/tools/cleanup_docs.sh +0 -0
  178. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/tools/create_mkdocs-yml.py +0 -0
  179. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/tools/install_deps.sh +0 -0
  180. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/tools/prepare_docs.sh +0 -0
  181. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/tools/run_notebooks.sh +0 -0
  182. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/tools/update_spdx-headers.py +0 -0
  183. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/tutorials/advanced_joint-fit_pd-neut-xray-cwl_PbSO4.py +0 -0
  184. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/tutorials/basic_single-fit_pd-neut-cwl_LBCO-HRPT.py +0 -0
  185. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/tutorials/cryst-struct_pd-neut-cwl_CoSiO4-D20.py +0 -0
  186. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/tutorials/cryst-struct_pd-neut-cwl_HS-HRPT.py +0 -0
  187. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/tutorials/cryst-struct_pd-neut-tof_Si-SEPD.py +0 -0
  188. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/tutorials/cryst-struct_pd-neut-tof_multidata_NCAF-WISH.py +0 -0
  189. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/tutorials/cryst-struct_pd-neut-tof_multiphase-LBCO-Si_McStas.py +0 -0
  190. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/tutorials/data/NOM_9999_Si_640g_PAC_50_ff_ftfrgr_up-to-50.gr +0 -0
  191. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/tutorials/data/NaCl.gr +0 -0
  192. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/tutorials/data/co2sio4_d20.xye +0 -0
  193. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/tutorials/data/d1a_pbso4.dat +0 -0
  194. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/tutorials/data/d1a_pbso4_first-half.dat +0 -0
  195. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/tutorials/data/d1a_pbso4_second-half.dat +0 -0
  196. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/tutorials/data/hrpt_hs.xye +0 -0
  197. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/tutorials/data/hrpt_lbco.xye +0 -0
  198. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/tutorials/data/lab_pbso4.dat +0 -0
  199. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/tutorials/data/mcstas_lbco-si.xye +0 -0
  200. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/tutorials/data/mcstas_lbco-si.xys +0 -0
  201. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/tutorials/data/mcstas_lbco-si_up-to-108k.xys +0 -0
  202. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/tutorials/data/ni-q27r100-neutron_from-2.gr +0 -0
  203. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/tutorials/data/powder_reduced_Si_2large_bank.xye +0 -0
  204. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/tutorials/data/reduced_LBCO.xye +0 -0
  205. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/tutorials/data/reduced_Si.xye +0 -0
  206. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/tutorials/data/sepd_si.xye +0 -0
  207. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/tutorials/data/wish_ncaf.xye +0 -0
  208. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/tutorials/data/wish_ncaf_2_9.xye +0 -0
  209. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/tutorials/data/wish_ncaf_4_7.xye +0 -0
  210. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/tutorials/data/wish_ncaf_4_7.xys +0 -0
  211. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/tutorials/data/wish_ncaf_5_6.xye +0 -0
  212. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/tutorials/data/wish_ncaf_5_6.xys +0 -0
  213. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/tutorials/data/wish_ybcfo_5_6.xye +0 -0
  214. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/tutorials/pdf_pd-neut-cwl_Ni.py +0 -0
  215. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/tutorials/pdf_pd-neut-tof_Si-NOMAD.py +0 -0
  216. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/tutorials/pdf_pd-xray_NaCl.py +0 -0
  217. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/tutorials/quick_single-fit_pd-neut-cwl_LBCO-HRPT.py +0 -0
  218. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/tutorials-drafts/cryst-struct_pd-neut-tof_multiphase-BSFTO-HRPT.py +0 -0
  219. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/tutorials-drafts/data/DREAM_mantle_bc240_nist_cif.xye +0 -0
  220. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/tutorials-drafts/data/DREAM_mantle_bc240_nist_cif_2.xye +0 -0
  221. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/tutorials-drafts/data/DREAM_mantle_bc240_nist_nc.xye +0 -0
  222. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/tutorials-drafts/data/DREAM_mantle_bc240_nist_nc_2.xye +0 -0
  223. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/tutorials-drafts/data/Si_mp-149_symmetrized_mcstas.cif +0 -0
  224. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/tutorials-drafts/hrpt_n_Bi0p88Sm0p12Fe0p94Ti0p06O3_DW_V_9x8x52_1p49_HI.xye +0 -0
  225. {easydiffraction-0.5.0 → easydiffraction-0.5.2}/tutorials-drafts/test_single-fit_pd-neut-tof_Si-DREAM_nc.py +0 -0
@@ -4,7 +4,7 @@ on:
4
4
  # Trigger the workflow on push
5
5
  push:
6
6
  # Selected branches
7
- branches: [develop, master, docs]
7
+ branches: [develop, master, docs, patch]
8
8
  # Allows you to run this workflow manually from the Actions tab
9
9
  workflow_dispatch:
10
10
 
@@ -104,7 +104,7 @@ jobs:
104
104
  cp ../assets-branding/easyscience-org/icons/eso-icon_bw.svg overrides/.icons/easyscience.svg
105
105
 
106
106
  # Convert python scripts in the notebooks directory to Jupyter notebooks
107
- # Strip output from the notebooks and simpify cell ids
107
+ # Strip output from the notebooks, simpify cell ids and replace '# !pip' with '!pip'
108
108
  # The notebooks are used to generate the documentation
109
109
  - name:
110
110
  Convert ${{ env.NOTEBOOKS_DIR }}/*.py to docs/${{env.NOTEBOOKS_DIR
@@ -113,6 +113,7 @@ jobs:
113
113
  cp -R ${{ env.NOTEBOOKS_DIR }}/data docs/${{ env.NOTEBOOKS_DIR }}/
114
114
  jupytext ${{ env.NOTEBOOKS_DIR }}/*.py --from py:percent --to ipynb
115
115
  nbstripout ${{ env.NOTEBOOKS_DIR }}/*.ipynb
116
+ python tools/nb_uncomment_pip.py ${{ env.NOTEBOOKS_DIR }}/
116
117
  mv ${{ env.NOTEBOOKS_DIR }}/*.ipynb docs/${{ env.NOTEBOOKS_DIR }}/
117
118
 
118
119
  # The following step is needed to avoid the following message during the build:
@@ -24,13 +24,13 @@ jobs:
24
24
  - name: Set up Python
25
25
  uses: actions/setup-python@v5
26
26
  with:
27
- python-version: '3.12'
27
+ python-version: '3.13'
28
28
 
29
29
  - name: Upgrade package installer for Python
30
30
  run: pip install --upgrade pip
31
31
 
32
- - name: Install Python dependencies
33
- run: pip install '.[dev]'
32
+ - name: Install build frontend
33
+ run: pip install --upgrade build
34
34
 
35
35
  - name: Create Python package
36
36
  run: python -m build
@@ -1,4 +1,4 @@
1
- name: Testing tutorials on Colab
1
+ name: Test tutorials on Colab
2
2
 
3
3
  on:
4
4
  # Trigger the workflow on push
@@ -49,8 +49,8 @@ jobs:
49
49
 
50
50
  - name: Install Python dependencies
51
51
  run:
52
- python -m pip install 'easydiffraction[charts]' nbconvert nbmake
53
- pytest pytest-xdist
52
+ python -m pip install 'easydiffraction[visualization]' nbconvert
53
+ nbmake pytest pytest-xdist
54
54
 
55
55
  - name: Check if Jupyter Notebooks run without errors
56
56
  run: >
@@ -142,6 +142,7 @@ jobs:
142
142
  # Check if tutorials as Jupyter Notebooks run without errors
143
143
  # Convert all Python scripts in the folder tutorials/ to Jupyter Notebooks
144
144
  # Strip output from Jupyter Notebooks and rename cell ids
145
+ # Replace '# !pip' with '!pip' in Jupyter Notebooks
145
146
  # Run all Jupyter Notebooks in the folder tutorials/ in parallel
146
147
  # -n auto: run as many in parallel as you have cores (auto mode)
147
148
  # --nbmake-timeout=600: set timeout to 600 seconds
@@ -150,6 +151,7 @@ jobs:
150
151
  run: |
151
152
  jupytext ${{ env.NOTEBOOKS_DIR }}/*.py --from py:percent --to ipynb
152
153
  nbstripout ${{ env.NOTEBOOKS_DIR }}/*.ipynb
154
+ python tools/nb_uncomment_pip.py ${{ env.NOTEBOOKS_DIR }}/
153
155
 
154
156
  - name: Run tutorials as Jupyter Notebooks (using src/ as the source dir)
155
157
  shell: bash
@@ -1,9 +1,9 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: easydiffraction
3
- Version: 0.5.0
3
+ Version: 0.5.2
4
4
  Summary: Diffraction data analysis
5
5
  Project-URL: homepage, https://easydiffraction.org
6
- Project-URL: documentation, https://easyscience.github.io/diffraction-lib
6
+ Project-URL: documentation, https://docs.easydiffraction.org/lib
7
7
  Project-URL: source, https://github.com/easyscience/diffraction-lib
8
8
  Project-URL: tracker, https://github.com/easyscience/diffraction-lib/issues
9
9
  Author: EasyDiffraction contributors
@@ -41,7 +41,6 @@ Classifier: License :: OSI Approved :: BSD License
41
41
  Classifier: Operating System :: OS Independent
42
42
  Classifier: Programming Language :: Python :: 3
43
43
  Classifier: Programming Language :: Python :: 3 :: Only
44
- Classifier: Programming Language :: Python :: 3.10
45
44
  Classifier: Programming Language :: Python :: 3.11
46
45
  Classifier: Programming Language :: Python :: 3.12
47
46
  Classifier: Programming Language :: Python :: 3.13
@@ -83,13 +83,13 @@ installed using `pip`. We strongly recommend installing it within a virtual
83
83
  environment, as described in the [Environment Setup](#environment-setup)
84
84
  section.
85
85
 
86
- We recommend installing the latest release of EasyDiffraction with the `charts`
87
- extras, which include optional dependencies used for simplified visualization of
88
- charts and tables. This can be especially useful for running the Jupyter
89
- Notebook examples. To do so, use the following command:
86
+ We recommend installing the latest release of EasyDiffraction with the
87
+ `visualization` extras, which include optional dependencies used for simplified
88
+ visualization of charts and tables. This can be especially useful for running
89
+ the Jupyter Notebook examples. To do so, use the following command:
90
90
 
91
91
  ```console
92
- pip install 'easydiffraction[charts]'
92
+ pip install 'easydiffraction[visualization]'
93
93
  ```
94
94
 
95
95
  If only the core functionality is needed, the library can be installed simply
@@ -128,10 +128,10 @@ To install EasyDiffraction from, e.g., the `develop` branch of GitHub:
128
128
  pip install git+https://github.com/easyscience/diffraction-lib@develop
129
129
  ```
130
130
 
131
- To include extra dependencies (e.g., charts):
131
+ To include extra dependencies (e.g., visualization):
132
132
 
133
133
  ```console
134
- pip install 'easydiffraction[charts] @ git+https://github.com/easyscience/diffraction-lib@develop'
134
+ pip install 'easydiffraction[visualization] @ git+https://github.com/easyscience/diffraction-lib@develop'
135
135
  ```
136
136
 
137
137
  ## How to Run Tutorials
@@ -4,10 +4,10 @@
4
4
 
5
5
  # Project information
6
6
  site_name: EasyDiffraction Library
7
- site_url: https://docs.easydiffraction.org/lib
7
+ site_url: https://docs.easydiffraction.org/lib/
8
8
 
9
9
  # Repository
10
- repo_url: https://github.com/easyscience/diffraction-lib
10
+ repo_url: https://github.com/easyscience/diffraction-lib/
11
11
  edit_uri: edit/develop/docs/
12
12
 
13
13
  # Copyright
@@ -16,7 +16,6 @@ classifiers = [
16
16
  'Operating System :: OS Independent',
17
17
  'Programming Language :: Python :: 3 :: Only',
18
18
  'Programming Language :: Python :: 3',
19
- "Programming Language :: Python :: 3.10",
20
19
  "Programming Language :: Python :: 3.11",
21
20
  "Programming Language :: Python :: 3.12",
22
21
  "Programming Language :: Python :: 3.13",
@@ -74,7 +73,7 @@ visualization = [
74
73
 
75
74
  [project.urls]
76
75
  homepage = 'https://easydiffraction.org'
77
- documentation = 'https://easyscience.github.io/diffraction-lib'
76
+ documentation = 'https://docs.easydiffraction.org/lib'
78
77
  source = 'https://github.com/easyscience/diffraction-lib'
79
78
  tracker = 'https://github.com/easyscience/diffraction-lib/issues'
80
79
 
@@ -0,0 +1,108 @@
1
+ """
2
+ Uncomment `# !pip ...` lines in Jupyter notebooks so they become `!pip ...`.
3
+
4
+ - Operates only on code cells (does not touch outputs/metadata/markdown).
5
+ - Matches lines that start with optional whitespace, then `# !pip` (e.g., " # !pip install ...").
6
+ - Rewrites to keep the original indentation and replace the leading "# !pip" with "!pip".
7
+ - Processes one or more paths (files or directories) given as CLI args, recursively for directories.
8
+ """
9
+
10
+ from __future__ import annotations
11
+
12
+ import argparse
13
+ import re
14
+ import sys
15
+ from pathlib import Path
16
+
17
+ import nbformat
18
+
19
+ # Regex: beginning-of-line, capture leading whitespace, then "#", spaces, then "!pip"
20
+ _PATTERN = re.compile(r'^(\s*)#\s*!pip\b')
21
+
22
+
23
+ def fix_cell_source(src: str) -> tuple[str, int]:
24
+ """
25
+ Replace lines starting with optional whitespace + '# !pip' with '!pip'.
26
+ Returns the updated source and number of replacements performed.
27
+ """
28
+ changed = 0
29
+ new_lines: list[str] = []
30
+ for line in src.splitlines(keepends=False):
31
+ m = _PATTERN.match(line)
32
+ if m:
33
+ # Replace only the first '# !pip' at the beginning, preserve the rest of the line
34
+ # e.g., " # !pip install foo" -> " !pip install foo"
35
+ new_line = _PATTERN.sub(r'\1!pip', line, count=1)
36
+ if new_line != line:
37
+ changed += 1
38
+ new_lines.append(new_line)
39
+ else:
40
+ new_lines.append(line)
41
+ return ('\n'.join(new_lines), changed)
42
+
43
+
44
+ def process_notebook(path: Path) -> int:
45
+ """
46
+ Process a single .ipynb file. Returns number of lines changed.
47
+ """
48
+ nb = nbformat.read(path, as_version=4)
49
+ total_changes = 0
50
+ for cell in nb.cells:
51
+ if cell.cell_type != 'code':
52
+ continue
53
+ new_src, changes = fix_cell_source(cell.source or '')
54
+ if changes:
55
+ cell.source = new_src
56
+ total_changes += changes
57
+ if total_changes:
58
+ nbformat.write(nb, path)
59
+ return total_changes
60
+
61
+
62
+ def iter_notebooks(paths: list[Path]):
63
+ for p in paths:
64
+ if p.is_dir():
65
+ yield from (q for q in p.rglob('*.ipynb') if q.is_file())
66
+ elif p.is_file() and p.suffix == '.ipynb':
67
+ yield p
68
+
69
+
70
+ def main(argv: list[str]) -> int:
71
+ ap = argparse.ArgumentParser(description="Uncomment '# !pip ...' to '!pip ...' in code cells of .ipynb notebooks.")
72
+ ap.add_argument('paths', nargs='+', help='Notebook files or directories to process')
73
+ ap.add_argument('--dry-run', action='store_true', help='Report changes without writing files')
74
+ args = ap.parse_args(argv)
75
+
76
+ targets = list(iter_notebooks([Path(p) for p in args.paths]))
77
+ if not targets:
78
+ print('No .ipynb files found.', file=sys.stderr)
79
+ return 1
80
+
81
+ total_files = 0
82
+ total_changes = 0
83
+ for nb_path in targets:
84
+ changes = process_notebook(nb_path) if not args.dry_run else 0
85
+ if args.dry_run:
86
+ # For dry-run, compute changes without writing
87
+ nb = nbformat.read(nb_path, as_version=4)
88
+ changes = 0
89
+ for cell in nb.cells:
90
+ if cell.cell_type != 'code':
91
+ continue
92
+ _, c = fix_cell_source(cell.source or '')
93
+ changes += c
94
+ if changes:
95
+ action = 'UPDATED' if not args.dry_run else 'WOULD UPDATE'
96
+ print(f'{action}: {nb_path} ({changes} line(s))')
97
+ total_files += 1
98
+ total_changes += changes
99
+
100
+ if total_files == 0:
101
+ print('No changes needed.')
102
+ else:
103
+ print(f'Done. Files changed: {total_files}, lines changed: {total_changes}')
104
+ return 0
105
+
106
+
107
+ if __name__ == '__main__':
108
+ raise SystemExit(main(sys.argv[1:]))
@@ -45,7 +45,7 @@
45
45
  "if hasattr(builtins, '__IPYTHON__'):\n",
46
46
  " if importlib.util.find_spec('easydiffraction') is None:\n",
47
47
  " print('Installing the easydiffraction library...')\n",
48
- " # !pip install 'easydiffraction[visualization]'"
48
+ " !pip install 'easydiffraction[visualization]'"
49
49
  ]
50
50
  },
51
51
  {
@@ -51,7 +51,7 @@
51
51
  "if hasattr(builtins, '__IPYTHON__'):\n",
52
52
  " if importlib.util.find_spec('easydiffraction') is None:\n",
53
53
  " print('Installing the easydiffraction library...')\n",
54
- " # !pip install 'easydiffraction[visualization]'"
54
+ " !pip install 'easydiffraction[visualization]'"
55
55
  ]
56
56
  },
57
57
  {
@@ -39,7 +39,7 @@
39
39
  "if hasattr(builtins, '__IPYTHON__'):\n",
40
40
  " if importlib.util.find_spec('easydiffraction') is None:\n",
41
41
  " print('Installing the easydiffraction library...')\n",
42
- " # !pip install 'easydiffraction[visualization]'"
42
+ " !pip install 'easydiffraction[visualization]'"
43
43
  ]
44
44
  },
45
45
  {
@@ -39,7 +39,7 @@
39
39
  "if hasattr(builtins, '__IPYTHON__'):\n",
40
40
  " if importlib.util.find_spec('easydiffraction') is None:\n",
41
41
  " print('Installing the easydiffraction library...')\n",
42
- " # !pip install 'easydiffraction[visualization]'"
42
+ " !pip install 'easydiffraction[visualization]'"
43
43
  ]
44
44
  },
45
45
  {
@@ -39,7 +39,7 @@
39
39
  "if hasattr(builtins, '__IPYTHON__'):\n",
40
40
  " if importlib.util.find_spec('easydiffraction') is None:\n",
41
41
  " print('Installing the easydiffraction library...')\n",
42
- " # !pip install 'easydiffraction[visualization]'"
42
+ " !pip install 'easydiffraction[visualization]'"
43
43
  ]
44
44
  },
45
45
  {
@@ -42,7 +42,7 @@
42
42
  "if hasattr(builtins, '__IPYTHON__'):\n",
43
43
  " if importlib.util.find_spec('easydiffraction') is None:\n",
44
44
  " print('Installing the easydiffraction library...')\n",
45
- " # !pip install 'easydiffraction[visualization]'"
45
+ " !pip install 'easydiffraction[visualization]'"
46
46
  ]
47
47
  },
48
48
  {
@@ -40,7 +40,7 @@
40
40
  "if hasattr(builtins, '__IPYTHON__'):\n",
41
41
  " if importlib.util.find_spec('easydiffraction') is None:\n",
42
42
  " print('Installing the easydiffraction library...')\n",
43
- " # !pip install 'easydiffraction[visualization]'"
43
+ " !pip install 'easydiffraction[visualization]'"
44
44
  ]
45
45
  },
46
46
  {