Save settings: Difference between revisions

From PyMOLWiki
Jump to navigation Jump to search
(Created page with "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 ...")
 
No edit summary
 
(3 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{Infobox script-repo
|type      = Python Module
|filename  = save_settings.py
|author    = [[User:Speleo3|Thomas Holder]]
|license  = BSD-2-Clause
}}
[[save_settings]] is a prototype implementation to save all settings with non-default values to a file.
[[save_settings]] is a prototype implementation to save all settings with non-default values to a file.


Line 8: Line 15:


  save_settings [ filename ]
  save_settings [ filename ]
== The Script ==
<source lang="python">
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)
</source>


== See Also ==
== See Also ==
Line 60: Line 21:


[[Category:Settings]]
[[Category:Settings]]
[[Category:Script_Library]]
[[Category:UI_Scripts]]
[[Category:Pymol-script-repo]]

Latest revision as of 10:04, 23 February 2012

Type Python Module
Download save_settings.py
Author(s) Thomas Holder
License BSD-2-Clause
This code has been put under version control in the project Pymol-script-repo

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 ]

See Also