Skip to content

Commit c68f981

Browse files
committed
chore: remove comments and use public function to load models
1 parent 6112cdd commit c68f981

5 files changed

Lines changed: 24 additions & 40 deletions

File tree

news/fix-sasmodels.rst

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
**Changed:**
66

7-
* Refactored code utilizing sasmodels to use the new sasview api.
7+
* <news item>
88

99
**Deprecated:**
1010

@@ -16,7 +16,7 @@
1616

1717
**Fixed:**
1818

19-
* <news item>
19+
* Refactored code utilizing sasmodels to use the new sasview api.
2020

2121
**Security:**
2222

src/diffpy/srfit/sas/sasparser.py

Lines changed: 7 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -101,17 +101,13 @@ def parseFile(self, filename):
101101
Raises IOError if the file cannot be read
102102
Raises ParseError if the file cannot be parsed
103103
"""
104-
import sasdata.dataloader.loader as ld
104+
import sasdata.dataloader.loader as sas_dataloader
105105

106-
Loader = ld.Loader
106+
Loader = sas_dataloader.Loader
107107
loader = Loader()
108108

109-
# Convert Path object to string if needed
110-
if not isinstance(filename, str):
111-
filename = str(filename)
112-
113109
try:
114-
data = loader.load(filename)
110+
data = loader.load(str(filename))
115111
except RuntimeError as e:
116112
raise ParseError(e)
117113
except ValueError as e:
@@ -122,16 +118,10 @@ def parseFile(self, filename):
122118
self._meta["filename"] = filename
123119
self._meta["datainfo"] = data
124120

125-
# Handle case where loader returns a list of data objects
126-
if isinstance(data, list):
127-
# If it's a list, iterate through each data object
128-
for data_obj in data:
129-
self._banks.append(
130-
[data_obj.x, data_obj.y, data_obj.dx, data_obj.dy]
131-
)
132-
else:
133-
# If it's a single data object, use it directly
134-
self._banks.append([data.x, data.y, data.dx, data.dy])
121+
for data_obj in data:
122+
self._banks.append(
123+
[data_obj.x, data_obj.y, data_obj.dx, data_obj.dy]
124+
)
135125
self.selectBank(0)
136126
return
137127

src/diffpy/srfit/sas/sasprofile.py

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -82,15 +82,7 @@ def __init__(self, datainfo):
8282
datainfo
8383
The DataInfo object this wraps.
8484
"""
85-
# Handle case where datainfo is a list (new sasdata behavior)
86-
if isinstance(datainfo, list):
87-
if len(datainfo) == 0:
88-
raise ValueError("Empty datainfo list provided")
89-
# Use the first data object if it's a list
90-
self._datainfo = datainfo[0]
91-
else:
92-
# Single datainfo object (legacy behavior)
93-
self._datainfo = datainfo
85+
self._datainfo = datainfo[0]
9486
Profile.__init__(self)
9587

9688
self._xobs = self._datainfo.x

tests/test_characteristicfunctions.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,12 @@
1818

1919
import numpy
2020
import pytest
21-
22-
# Use the updated SasView model API to load models
23-
from sasmodels.sasview_model import _make_standard_model
21+
from sasmodels.sasview_model import find_model, load_standard_models
2422

2523
import diffpy.srfit.pdf.characteristicfunctions as cf
2624

25+
load_standard_models()
26+
2727
# # Global variables to be assigned in setUp
2828
# cf = None
2929
# Fixme: remove this code if imports don't break on testing
@@ -36,7 +36,7 @@ def testSphere(sas_available):
3636
pytest.skip("sas package not available")
3737
radius = 25
3838
# Calculate sphere cf from SphereModel
39-
SphereModel = _make_standard_model("sphere")
39+
SphereModel = find_model("sphere")
4040
model = SphereModel()
4141
model.setParam("radius", radius)
4242
ff = cf.SASCF("sphere", model)
@@ -58,7 +58,7 @@ def testSpheroid(sas_available):
5858
prad = 20.9
5959
erad = 33.114
6060
# Calculate cf from EllipsoidModel
61-
EllipsoidModel = _make_standard_model("ellipsoid")
61+
EllipsoidModel = find_model("ellipsoid")
6262
model = EllipsoidModel()
6363
model.setParam("radius_polar", prad)
6464
model.setParam("radius_equatorial", erad)
@@ -81,7 +81,7 @@ def testShell(sas_available):
8181
radius = 19.2
8282
thickness = 7.8
8383
# Calculate cf from VesicleModel
84-
VesicleModel = _make_standard_model("vesicle")
84+
VesicleModel = find_model("vesicle")
8585
model = VesicleModel()
8686
model.setParam("radius", radius)
8787
model.setParam("thickness", thickness)
@@ -105,7 +105,7 @@ def testCylinder(sas_available):
105105
radius = 100
106106
length = 30
107107

108-
CylinderModel = _make_standard_model("cylinder")
108+
CylinderModel = find_model("cylinder")
109109
model = CylinderModel()
110110
model.setParam("radius", radius)
111111
model.setParam("length", length)

tests/test_sas.py

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,12 @@
1818
import pytest
1919

2020
# Use the updated SasView model API to load models
21-
from sasmodels.sasview_model import _make_standard_model
21+
from sasmodels.sasview_model import find_model, load_standard_models
2222

2323
from diffpy.srfit.sas import SASGenerator, SASParser, SASProfile
2424

25+
load_standard_models()
26+
2527
# ----------------------------------------------------------------------------
2628
# FIXME: adjust sensitivity of the pytest.approx statements when ready to test
2729
# with sasview installed.
@@ -115,7 +117,7 @@ def testParser(sas_available, datafile):
115117
def test_generator(sas_available):
116118
if not sas_available:
117119
pytest.skip("sas package not available")
118-
SphereModel = _make_standard_model("sphere")
120+
SphereModel = find_model("sphere")
119121
model = SphereModel()
120122
gen = SASGenerator("sphere", model)
121123
for pname in model.params:
@@ -142,14 +144,14 @@ def test_generator(sas_available):
142144
def testGenerator2(sas_available, datafile):
143145
if not sas_available:
144146
pytest.skip("sas package not available")
145-
EllipsoidModel = _make_standard_model("ellipsoid")
147+
EllipsoidModel = find_model("ellipsoid")
146148
model = EllipsoidModel()
147149
gen = SASGenerator("ellipsoid", model)
148150

149151
# Load the data using SAS tools
150-
import sasdata.dataloader.loader as ld
152+
import sasdata.dataloader.loader as sas_dataloader
151153

152-
Loader = ld.Loader
154+
Loader = sas_dataloader.Loader
153155
loader = Loader()
154156
data = datafile("sas_ellipsoid_testdata.txt")
155157
datainfo = loader.load(str(data))

0 commit comments

Comments
 (0)