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.
- easydiffraction-0.4.0/.github/workflows/build-docs.yml +219 -0
- easydiffraction-0.4.0/DEVELOPMENT.md +123 -0
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/LICENSE +2 -1
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/PKG-INFO +18 -9
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/README.md +5 -6
- easydiffraction-0.4.0/docs/analysis.md +77 -0
- easydiffraction-0.4.0/docs/dictionaries/_atom_site.md +62 -0
- easydiffraction-0.4.0/docs/dictionaries/_cell.md +30 -0
- easydiffraction-0.4.0/docs/dictionaries/_diffrn_radiation.md +21 -0
- easydiffraction-0.4.0/docs/dictionaries/_diffrn_radiation_wavelength.md +18 -0
- easydiffraction-0.4.0/docs/dictionaries/_exptl_crystal.md +7 -0
- easydiffraction-0.4.0/docs/dictionaries/_extinction.md +7 -0
- easydiffraction-0.4.0/docs/dictionaries/_pd_background.md +30 -0
- easydiffraction-0.4.0/docs/dictionaries/_pd_calib.md +17 -0
- easydiffraction-0.4.0/docs/dictionaries/_pd_instr.md +85 -0
- easydiffraction-0.4.0/docs/dictionaries/_pd_meas.md +29 -0
- easydiffraction-0.4.0/docs/dictionaries/_pd_phase.md +22 -0
- easydiffraction-0.4.0/docs/dictionaries/_space_group.md +25 -0
- easydiffraction-0.4.0/docs/dictionaries.md +158 -0
- easydiffraction-0.4.0/docs/easyscience.md +102 -0
- easydiffraction-0.4.0/docs/experiment.md +277 -0
- easydiffraction-0.4.0/docs/getting-started.md +162 -0
- easydiffraction-0.4.0/docs/glossary.md +34 -0
- easydiffraction-0.4.0/docs/how-to-use/index.md +10 -0
- easydiffraction-0.4.0/docs/index.md +30 -0
- easydiffraction-0.4.0/docs/mkdocs.yml +39 -0
- easydiffraction-0.4.0/docs/model.md +9 -0
- easydiffraction-0.4.0/docs/project-structure.md +151 -0
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples_old/PDF/Fitting_PDF_Profile_Ni.ipynb +1 -1
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples_old/PDF/Fitting_PDF_Profile_Si.ipynb +40 -40
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples_old/PDF2/Fitting_PDF_Profile.ipynb +1 -1
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples_old/PDF2/Ni_fitting.py +1 -1
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/pyproject.toml +23 -13
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/src/easydiffraction/calculators/cryspy/calculator.py +79 -32
- easydiffraction-0.4.0/src/easydiffraction/calculators/cryspy/parser.py +2029 -0
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/src/easydiffraction/calculators/cryspy/wrapper.py +15 -7
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/src/easydiffraction/calculators/pdffit2/calculator.py +8 -8
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/src/easydiffraction/calculators/pdffit2/wrapper.py +2 -2
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/src/easydiffraction/calculators/pycrysfml/calculator.py +2 -2
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/src/easydiffraction/calculators/pycrysfml/wrapper.py +2 -2
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/src/easydiffraction/io/cif.py +135 -21
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/src/easydiffraction/io/cif_reader.py +26 -5
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/src/easydiffraction/job/experiment/backgrounds/background.py +3 -3
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/src/easydiffraction/job/experiment/backgrounds/factorial.py +6 -6
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/src/easydiffraction/job/experiment/backgrounds/point.py +9 -9
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/src/easydiffraction/job/experiment/experiment.py +38 -33
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/src/easydiffraction/job/experiment/pd_1d.py +22 -16
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/src/easydiffraction/job/experiment/polarization.py +1 -1
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/src/easydiffraction/job/job.py +38 -22
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/src/easydiffraction/job/model/phase.py +6 -0
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/src/easydiffraction/job/model/site.py +3 -3
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/src/easydiffraction/job/old_sample/old_sample.py +3 -3
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/tests/functional_tests/fitting/test_fitting_pd-neut.py +4 -4
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/tests/integration_tests/scipp/test_scipp.py +3 -3
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/tests_old/integration_tests/FittingData.ipynb +1 -2
- easydiffraction-0.4.0/tools/build_docs.sh +3 -0
- easydiffraction-0.4.0/tools/cleanup_docs.sh +10 -0
- easydiffraction-0.3.0/tools/linting_and_formatting.sh → easydiffraction-0.4.0/tools/code_quality.sh +3 -0
- easydiffraction-0.4.0/tools/install_deps.sh +5 -0
- easydiffraction-0.4.0/tools/prepare_docs.sh +21 -0
- easydiffraction-0.3.0/DEVELOPMENT.md +0 -74
- easydiffraction-0.3.0/src/easydiffraction/calculators/cryspy/parser.py +0 -651
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/.github/dependabot.yml +0 -0
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/.github/release-drafter.yml +0 -0
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/.github/workflows/ci-testing.yaml +0 -0
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/.github/workflows/delete-old-runs.yml +0 -0
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/.github/workflows/ossar-analysis.yml +0 -0
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/.github/workflows/pypi-publish.yml +0 -0
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/.github/workflows/release-drafter.yml +0 -0
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/.github/workflows/verify-pr-labels.yml +0 -0
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/.gitignore +0 -0
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/.prettierignore +0 -0
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/CONTRIBUTING.md +0 -0
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples/Change-minimizer.ipynb +0 -0
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples/Define-experiment.ipynb +0 -0
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples/Define-model.ipynb +0 -0
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples/Fitting-emcee_pd-neut-cwl_LBCO-HRPT.ipynb +0 -0
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples/Fitting_pd-neut-cwl_LBCO-HRPT.ipynb +0 -0
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples/Fitting_pd-neut-tof_NCAF-WISH.ipynb +0 -0
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples/Fitting_pd-neut-tof_Si-SEPD.ipynb +0 -0
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples/Simulation_pd-xray_NaCl.ipynb +0 -0
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples/data/d1a.cif +0 -0
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples/data/hrpt.xye +0 -0
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples/data/lbco.cif +0 -0
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples/data/lbco_adp.cif +0 -0
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples/data/ncaf.cif +0 -0
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples/data/sepd.xye +0 -0
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples/data/si.cif +0 -0
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples/data/wish.xye +0 -0
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples_old/3T2@LLB.xye +0 -0
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples_old/D1A@ILL.xye +0 -0
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples_old/Fitting.ipynb +0 -0
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples_old/Fitting_PD-CW_La0.5Ba0.5CoO3-HRPT@PSI/fitting.ipynb +0 -0
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples_old/Fitting_PD-CW_La0.5Ba0.5CoO3-HRPT@PSI/fitting.py +0 -0
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples_old/Fitting_PD-CW_La0.5Ba0.5CoO3-HRPT@PSI/hrpt.xye +0 -0
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples_old/Fitting_PD-TOF_Si-SEPD@Argonne/fitting copy.py +0 -0
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples_old/Fitting_PD-TOF_Si-SEPD@Argonne/fitting.ipynb +0 -0
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples_old/Fitting_PD-TOF_Si-SEPD@Argonne/fitting.py +0 -0
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples_old/Fitting_PD-TOF_Si-SEPD@Argonne/sepd.xye +0 -0
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples_old/Fitting_PD-TOF_Si-SEPD@Argonne/si.cif +0 -0
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples_old/Fitting_TOF.ipynb +0 -0
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples_old/Fitting_TOF_xye.ipynb +0 -0
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples_old/Fitting_multiphase.ipynb +0 -0
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples_old/PDF/Calculate_PDF_Profile_Ni.ipynb +0 -0
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples_old/PDF/data/4507226.cif +0 -0
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples_old/PDF/data/Ni-xray.gr +0 -0
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples_old/PDF/data/Ni.cif +0 -0
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples_old/PDF/data/Si_calibration_cryostat_100A.fgr +0 -0
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples_old/PDF/data/Si_calibration_cryostat_20A.fgr +0 -0
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples_old/PDF/data/Si_calibration_cryostat_20A_01Rmin.fgr +0 -0
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples_old/PDF/data/Si_calibration_cryostat_50A.fgr +0 -0
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples_old/PDF/data/Si_calibration_cryostat_50A_01Rmin.fgr +0 -0
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples_old/PDF2/Calculate_PDF_Profile.ipynb +0 -0
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples_old/PDF2/Ni-xray.gr +0 -0
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples_old/PDF2/Ni.cif +0 -0
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples_old/PDF2/Ni_profile.py +0 -0
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples_old/PbSO4.cif +0 -0
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples_old/PolNPD5T.cif +0 -0
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples_old/Polarized.ipynb +0 -0
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples_old/Simulation.ipynb +0 -0
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples_old/Simulation_xray.ipynb +0 -0
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples_old/TestingAPI/CrysPy/rhochi_unpolarized_tof_powder_Si/calc_chisq.py +0 -0
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples_old/TestingAPI/CrysPy/rhochi_unpolarized_tof_powder_Si/cryspy_PbSO4-D1A@ILL.rcif +0 -0
- {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
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples_old/TestingAPI/CrysPy/rhochi_unpolarized_tof_powder_Si/refinement.py +0 -0
- {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
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples_old/TestingAPI/EDB/experiments/d1a.cif +0 -0
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples_old/TestingAPI/EDB/models/pbso4.cif +0 -0
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples_old/TestingAPI/EDB/models/pbso4_dark.png +0 -0
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples_old/TestingAPI/EDB/project.cif +0 -0
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples_old/TestingAPI/EDB/summary/report.cif +0 -0
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples_old/TestingAPI/EDL/D1A@ILL.xye +0 -0
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples_old/TestingAPI/EDL/PbSO4.cif +0 -0
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples_old/TestingAPI/EDL/TestingAPI.py +0 -0
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples_old/advanced/refinement_bumps_dream.ipynb +0 -0
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples_old/advanced/refinement_emcee.ipynb +0 -0
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples_old/d1a.cif +0 -0
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples_old/diamond_exp.xye +0 -0
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples_old/diamond_phase.cif +0 -0
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples_old/experiment_polarized.xye +0 -0
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples_old/multiphase.cif +0 -0
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples_old/ncaf.cif +0 -0
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples_old/structure_polarized.cif +0 -0
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/examples_old/wish.cif +0 -0
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/prettierrc.toml +0 -0
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/src/easydiffraction/__init__.py +0 -0
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/src/easydiffraction/calculators/__init__.py +0 -0
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/src/easydiffraction/calculators/wrapper_base.py +0 -0
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/src/easydiffraction/calculators/wrapper_factory.py +0 -0
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/src/easydiffraction/calculators/wrapper_types.py +0 -0
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/src/easydiffraction/io/__init__.py +0 -0
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/src/easydiffraction/job/__init__.py +0 -0
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/src/easydiffraction/job/analysis/__init__.py +0 -0
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/src/easydiffraction/job/analysis/analysis.py +0 -0
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/src/easydiffraction/job/experiment/__init__.py +0 -0
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/src/easydiffraction/job/experiment/backgrounds/__init__.py +0 -0
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/src/easydiffraction/job/experiment/common.py +0 -0
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/src/easydiffraction/job/experiment/data_container.py +0 -0
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/src/easydiffraction/job/experiment/experiment_type.py +0 -0
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/src/easydiffraction/job/experiment/simulation.py +0 -0
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/src/easydiffraction/job/model/__init__.py +0 -0
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/src/easydiffraction/job/old_sample/__init__.py +0 -0
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/src/easydiffraction/job/project/__init__.py +0 -0
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/src/easydiffraction/job/summary/__init__.py +0 -0
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/src/easydiffraction/main.py +0 -0
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/src/easydiffraction/utils.py +0 -0
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/tests/data/PbSO4.cif +0 -0
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/tests/data/PolNPD5T.cif +0 -0
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/tests/data/d1a.cif +0 -0
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/tests/data/hrpt.xye +0 -0
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/tests/data/lbco.cif +0 -0
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/tests/data/scipp.cif +0 -0
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/tests/data/sepd.xye +0 -0
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/tests/data/si.cif +0 -0
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/tests/unit_tests/job/experiment/test_experiment.py +0 -0
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/tests/unit_tests/job/experiment/test_experiment_type.py +0 -0
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/tests/unit_tests/job/test_job.py +0 -0
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/tests_old/integration_tests/CFML_Cryspy.png +0 -0
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/tests_old/integration_tests/FittingData_CFML-xarrays.ipynb +0 -0
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/tests_old/integration_tests/FittingData_CFML.ipynb +0 -0
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/tests_old/integration_tests/PbSO4.cif +0 -0
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/tests_old/integration_tests/PbSO4_neutrons_short.xye +0 -0
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/tests_old/integration_tests/PbSO4_xrays_short.xye +0 -0
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/tests_old/integration_tests/SrTiO3.cif +0 -0
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/tests_old/integration_tests/WorkedExample2.ipynb +0 -0
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/tests_old/integration_tests/fit_script.py +0 -0
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/tests_old/integration_tests/test1.py +0 -0
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/tests_old/integration_tests/test3.py +0 -0
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/tests_old/integration_tests/workedExample1.ipynb +0 -0
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/tests_old/integration_tests/xarray_test.ipynb +0 -0
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/tests_old/unit_tests/Calculators/__init__.py +0 -0
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/tests_old/unit_tests/Elements/__init__.py +0 -0
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/tests_old/unit_tests/Interfaces/__init__.py +0 -0
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/tests_old/unit_tests/test_Jobs.py +0 -0
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/tests_old/unit_tests/test_Runner.py +0 -0
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/tests_old/unit_tests/test_interface.py +0 -0
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/tests_old/unit_tests/test_sample.py +0 -0
- {easydiffraction-0.3.0 → easydiffraction-0.4.0}/tools/run_notebooks.sh +0 -0
- {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)
|
|
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
|
+
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)
|
|
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
|
|
86
|
+
<p>
|
|
77
87
|
<picture>
|
|
78
88
|
<!-- light mode logo -->
|
|
79
|
-
<source media='(prefers-color-scheme: light)' srcset='https://raw.githubusercontent.com/
|
|
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/
|
|
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/
|
|
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)]
|
|
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
|
|
1
|
+
<p>
|
|
2
2
|
<picture>
|
|
3
3
|
<!-- light mode logo -->
|
|
4
|
-
<source media='(prefers-color-scheme: light)' srcset='https://raw.githubusercontent.com/
|
|
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/
|
|
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/
|
|
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)]
|
|
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 -->
|