From e6dbb3c13541b1b1d8a917793cf1693c0b8e8dbe Mon Sep 17 00:00:00 2001 From: Caden Myers Date: Sun, 21 Dec 2025 13:25:31 -0600 Subject: [PATCH 1/3] remove packing fraction from the database mu calculation function --- src/diffpy/utils/tools.py | 39 ++++++++++----------------------------- 1 file changed, 10 insertions(+), 29 deletions(-) diff --git a/src/diffpy/utils/tools.py b/src/diffpy/utils/tools.py index d6f9617..19f8e03 100644 --- a/src/diffpy/utils/tools.py +++ b/src/diffpy/utils/tools.py @@ -231,49 +231,30 @@ def get_density_from_cloud(sample_composition, mp_token=""): ) -def compute_mu_using_xraydb( - sample_composition, energy, sample_mass_density=None, packing_fraction=None -): +def compute_mu_using_xraydb(sample_composition, energy, sample_mass_density): """Compute the attenuation coefficient (mu) using the XrayDB database. - Computes mu based on the sample composition and energy. - User should provide a sample mass density or a packing fraction. - If neither density nor packing fraction is specified, - or if both are specified, a ValueError will be raised. - Reference: https://xraypy.github.io/XrayDB/python.html#xraydb.material_mu. + Computes mu based on the sample composition, X-ray energy, and + sample mass density. + + Reference: + https://xraypy.github.io/XrayDB/python.html#xraydb.material_mu Parameters ---------- sample_composition : str The chemical formula of the material. energy : float - The energy of the incident x-rays in keV. - sample_mass_density : float, ``optional`` - The mass density of the packed powder/sample in g/cm*3. - Default is None. - packing_fraction : float, ``optional`` - The fraction of sample in the capillary (between 0 and 1). - Specify either sample_mass_density or packing_fraction but not both. - Default is None. + The energy of the incident X-rays in keV. + sample_mass_density : float + The mass density of the sample in g/cm^3. Returns ------- mu : float - The attenuation coefficient mu in mm^{-1}. + The attenuation coefficient μ in mm⁻¹. """ - if (sample_mass_density is None and packing_fraction is None) or ( - sample_mass_density is not None and packing_fraction is not None - ): - raise ValueError( - "You must specify either sample_mass_density or packing_fraction, " - "but not both. " - "Please rerun specifying only one." - ) - if packing_fraction is not None: - sample_mass_density = ( - get_density_from_cloud(sample_composition) * packing_fraction - ) energy_eV = energy * 1000 mu = ( material_mu( From 6300e2274c9c7a49782ab5ff3bfa03a2527a039e Mon Sep 17 00:00:00 2001 From: Caden Myers Date: Sun, 21 Dec 2025 13:26:34 -0600 Subject: [PATCH 2/3] remove the bad test --- tests/test_tools.py | 35 ----------------------------------- 1 file changed, 35 deletions(-) diff --git a/tests/test_tools.py b/tests/test_tools.py index 6be3870..18c30fe 100644 --- a/tests/test_tools.py +++ b/tests/test_tools.py @@ -9,7 +9,6 @@ from diffpy.utils.tools import ( _extend_z_and_convolve, check_and_build_global_config, - compute_mu_using_xraydb, compute_mud, get_package_info, get_user_info, @@ -270,40 +269,6 @@ def test_get_package_info(monkeypatch, inputs, expected): assert actual_metadata == expected -@pytest.mark.parametrize( - "inputs", - [ - # Test when the function has invalid inputs - ( # C1: Both mass density and packing fraction are provided, - # expect ValueError exception - { - "sample_composition": "SiO2", - "energy": 10, - "sample_mass_density": 2.65, - "packing_fraction": 1, - } - ), - ( # C2: None of mass density or packing fraction are provided, - # expect ValueError exception - { - "sample_composition": "SiO2", - "energy": 10, - } - ), - ], -) -def test_compute_mu_using_xraydb_bad(inputs): - with pytest.raises( - ValueError, - match=( - "You must specify either sample_mass_density or " - "packing_fraction, but not both. " - "Please rerun specifying only one." - ), - ): - compute_mu_using_xraydb(**inputs) - - def test_compute_mud(tmp_path): diameter, slit_width, z0, I0, mud, slope = 1, 0.1, 0, 1e5, 3, 0 z_data = np.linspace(-1, 1, 50) From d41a81755afe1398a577c367e21cf59b040beb00 Mon Sep 17 00:00:00 2001 From: Caden Myers Date: Sun, 21 Dec 2025 13:28:35 -0600 Subject: [PATCH 3/3] news --- news/rm-packing-fraction.rst | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 news/rm-packing-fraction.rst diff --git a/news/rm-packing-fraction.rst b/news/rm-packing-fraction.rst new file mode 100644 index 0000000..70bccad --- /dev/null +++ b/news/rm-packing-fraction.rst @@ -0,0 +1,23 @@ +**Added:** + +* + +**Changed:** + +* + +**Deprecated:** + +* + +**Removed:** + +* Removed API that calculates mu from packing fraction. + +**Fixed:** + +* + +**Security:** + +*