Save settings
Jump to navigation
Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
save_settings is a prototype implementation to save all settings with non-default values to a file.
By default settings will be stored to ~/.pymolrc-settings.py which is automatically recognised and loaded by PyMOL on startup. You have to manually delete the file if you no more want those settings to be loaded.
This answers a feature request on sourceforge.
Usage
save_settings [ filename ]
The Script
from pymol import cmd
def save_settings(filename='~/.pymolrc-settings.py', quiet=1):
'''
DESCRIPTION
Dumps all settings with non-default values to ~/.pymolrc-settings.py
Feature Request: Save settings for later use - ID: 1009951
https://sourceforge.net/tracker/?func=detail&aid=1009951&group_id=4546&atid=354546
'''
from pymol.setting import get_name_list
quiet = int(quiet)
if not filename.endswith('.py'):
print 'Error: filename must end with ".py"'
raise CmdException
# temporatily load default settings and remember them
cmd.reinitialize('store_defaults')
cmd.reinitialize('original_settings')
original = [(name, cmd.get(name)) for name in get_name_list()]
cmd.reinitialize('settings')
# dump to file
filename = cmd.exp_path(filename)
f = open(filename, 'w')
print >> f, '# AUTOGENERATED FILE'
print >> f, 'from pymol import cmd, invocation'
print >> f, 'if invocation.options.show_splash:'
print >> f, ' print "Loading settings from",', repr(filename)
count = 0
for name, o_value in original:
value = cmd.get(name)
if value != o_value:
print >> f, 'cmd.set("%s", %s)' % (name, repr(value))
if not quiet:
print 'set %s, %s # default: %s' % (name, value, o_value)
count += 1
f.close()
if not quiet:
print 'Dumped %d settings to %s' % (count, filename)
cmd.extend('save_settings', save_settings)