Saving and Loading
TyphosSuite
objects can be stored for later use. The devices that
were loaded into the suite via TyphosSuite.add_device()
will be added
once again assuming that they are stored in a happi
database.
- TyphosSuite.save()[source]
Save suite settings to a file using
typhos.utils.save_suite()
.A
QFileDialog
will be used to query the user for the desired location of the created Python fileThe template will be of the form:
import sys import typhos.cli devices = {devices} def create_suite(cfg=None): return typhos.cli.create_suite(devices, cfg=cfg) if __name__ == '__main__': typhos.cli.typhos_cli(devices + sys.argv[1:])
There are two major ways to use this created file:
Execute the Python file from the command line. This will route the call through the standard
typhos.cli
meaning all options described there are also available.
$ python saved_suite.py
The
create_suite
method generated in the saved file can be used to re-create theTyphosSuite
in an already running Python process. Typhos provides theload_suite()
function to import the provided Python file and execute the storedcreate_suite
method. This is useful if you want to use the file to embed a savedTyphosSuite
inside another PyQt window for instance, or load multiple suites at once.
from qtpy.QtWidgets import QApplication
from typhos import load_suite
app = QApplication([])
saved_suite = load_suite('saved_suite.py')
saved_suite.show()
app.exec_()
Note
The saved file only stores a reference to the devices loaded into the
TyphosSuite
by name. It is assumed that these devices will be available
under the same name via the configured happi
database when
load_suite
is called. If the device has a different name in the database
or you have configured a different happi
database to be used your
devices will not be loaded properly.