save_all
- sherpa.astro.ui.save_all(outfile=None, clobber: bool = False, auto_load: bool = True) None
Save the information about the current session to a text file.
This differs to the
savecommand in that the output is human readable. Three consequences are:numeric values may not be recorded to their full precision
data sets are not included in the file
some settings and values may not be recorded (such as header information).
Changed in version 4.18.0: Handling of PHA data has been improved, and the output now defaults to not including automatically-loaded ancillary files (such as background and responses). Set the
auto_loadflag to False to add these commands back to the save file (and match previous versions).Changed in version 4.17.0: The file will now contain a
set_default_idcall if the default identifier has been changed.Changed in version 4.16.0: Any set_psf calls are now included in the output file. The filter is no longer included if it does not exclude any data, and the code tries to recreate manually-created datasets (e.g. use of
dataspace1dorload_arrays), but not all situations are handled. XSPEC table models are now correctly restored.- Parameters:
outfile (str or file-like, optional) – If given, the output is written to this file, and the
clobberparameter controls what happens if the file already exists.outfilecan be a filename string or a file handle (or file-like object, such asStringIO) to write to. If not set then the standard output is used.clobber (bool, optional) – If
outfileis a filename, then this flag controls whether an existing file can be overwritten (True) orysif it raises an exception (False, the default setting).auto_load (bool, optional) – If set to
Falsethen automatically-loaded PHA files, such as backgrounds, ARFS, and RMFs, will be included in the output withload_arf,load_rmf, andload_bkgcalls.
- Raises:
sherpa.utils.err.IOErr – If
outfilealready exists andclobberisFalse.
See also
Notes
This command will create a series of commands that restores the current Sherpa set up. It does not save the original set of commands used, and not all Sherpa settings are saved. Items not fully restored include:
data changed from the version on disk - e.g. by calls to
set_counts- will not be restored correctly,any optional keywords to commands such as
load_data,user models may not be restored correctly,
and only a subset of Sherpa commands are saved.
The
savecommand can also be used for storing a Sherpa session and avoids some of these issues. However, it is not recommended if the session is likely to be restored with newer versions of Sherpa. It is suggested that the output of both should be checked when the output may be used long term.Using the output of
save_alldepends on what interpreter is being used. If it is IPython then the%runcommand can be used. So, ifsave_all("save.out")was used then the output file can be loaded with:%run -i save.out
When using the Python interactive environment the following can be used:
exec(open(“save.out”).read())
Examples
Write the current Sherpa session to the screen:
>>> save_all()
Save the session to the file ‘fit.sherpa’, overwriting it if it already exists:
>>> save_all('fit.sherpa', clobber=True)
Write the contents to a StringIO object:
>>> from io import StringIO >>> store = StringIO() >>> save_all(store) >>> print(store.getvalue()) import numpy from sherpa.astro.ui import * ...
The two files should re-create the same session but restore2.py will include lines such as load_arf and load_bkg that are not necessary, as Sherpa will load them due to the ANCRFILE, BACKFILE, and RESPFILE keywords in the PHA file(s).
>>> save_all("restore1.py") >>> save_all("restore2.py", auto_load=False)