@@ -181,6 +181,17 @@ def __rtruediv__(self, other):
181181 divided .on_q [1 ] = other .on_q [1 ] / self .on_q [1 ]
182182 return divided
183183
184+ @property
185+ def all_arrays (self ):
186+ return self ._all_arrays
187+
188+ @all_arrays .setter
189+ def all_arrays (self , value ):
190+ raise AttributeError (
191+ "Direct modification of attribute 'all_arrays' is not allowed."
192+ "Please use 'insert_scattering_quantity' to modify `all_arrays`."
193+ )
194+
184195 def set_angles_from_list (self , angles_list ):
185196 self .angles = angles_list
186197 self .n_steps = len (angles_list ) - 1.0
@@ -259,25 +270,25 @@ def get_angle_index(self, angle):
259270 raise IndexError (f"WARNING: no angle { angle } found in angles list" )
260271
261272 def _set_xarrays (self , xarray , xtype ):
262- self .all_arrays = np .empty (shape = (len (xarray ), 4 ))
273+ self ._all_arrays = np .empty (shape = (len (xarray ), 4 ))
263274 if xtype .lower () in QQUANTITIES :
264- self .all_arrays [:, 1 ] = xarray
265- self .all_arrays [:, 2 ] = q_to_tth (xarray , self .wavelength )
266- self .all_arrays [:, 3 ] = q_to_d (xarray )
275+ self ._all_arrays [:, 1 ] = xarray
276+ self ._all_arrays [:, 2 ] = q_to_tth (xarray , self .wavelength )
277+ self ._all_arrays [:, 3 ] = q_to_d (xarray )
267278 elif xtype .lower () in ANGLEQUANTITIES :
268- self .all_arrays [:, 2 ] = xarray
269- self .all_arrays [:, 1 ] = tth_to_q (xarray , self .wavelength )
270- self .all_arrays [:, 3 ] = tth_to_d (xarray , self .wavelength )
279+ self ._all_arrays [:, 2 ] = xarray
280+ self ._all_arrays [:, 1 ] = tth_to_q (xarray , self .wavelength )
281+ self ._all_arrays [:, 3 ] = tth_to_d (xarray , self .wavelength )
271282 elif xtype .lower () in DQUANTITIES :
272- self .all_arrays [:, 3 ] = xarray
273- self .all_arrays [:, 1 ] = d_to_q (xarray )
274- self .all_arrays [:, 2 ] = d_to_tth (xarray , self .wavelength )
275- self .qmin = np .nanmin (self .all_arrays [:, 1 ], initial = np .inf )
276- self .qmax = np .nanmax (self .all_arrays [:, 1 ], initial = 0.0 )
277- self .tthmin = np .nanmin (self .all_arrays [:, 2 ], initial = np .inf )
278- self .tthmax = np .nanmax (self .all_arrays [:, 2 ], initial = 0.0 )
279- self .dmin = np .nanmin (self .all_arrays [:, 3 ], initial = np .inf )
280- self .dmax = np .nanmax (self .all_arrays [:, 3 ], initial = 0.0 )
283+ self ._all_arrays [:, 3 ] = xarray
284+ self ._all_arrays [:, 1 ] = d_to_q (xarray )
285+ self ._all_arrays [:, 2 ] = d_to_tth (xarray , self .wavelength )
286+ self .qmin = np .nanmin (self ._all_arrays [:, 1 ], initial = np .inf )
287+ self .qmax = np .nanmax (self ._all_arrays [:, 1 ], initial = 0.0 )
288+ self .tthmin = np .nanmin (self ._all_arrays [:, 2 ], initial = np .inf )
289+ self .tthmax = np .nanmax (self ._all_arrays [:, 2 ], initial = 0.0 )
290+ self .dmin = np .nanmin (self ._all_arrays [:, 3 ], initial = np .inf )
291+ self .dmax = np .nanmax (self ._all_arrays [:, 3 ], initial = 0.0 )
281292
282293 def insert_scattering_quantity (
283294 self ,
@@ -309,7 +320,7 @@ def insert_scattering_quantity(
309320
310321 """
311322 self ._set_xarrays (xarray , xtype )
312- self .all_arrays [:, 0 ] = yarray
323+ self ._all_arrays [:, 0 ] = yarray
313324 self .input_xtype = xtype
314325 # only update these optional values if non-empty quantities are passed to avoid overwriting
315326 # valid data inadvertently
0 commit comments