Grepset: Difference between revisions
Jump to navigation
Jump to search
(Modified script to format output according to max length of matched settings.) |
(prevent empty list argument for max()) |
||
Line 77: | Line 77: | ||
matches.append( (setting, cmd.get_setting_text(a, '', -1)) ) | matches.append( (setting, cmd.get_setting_text(a, '', -1)) ) | ||
# max length of the setting names that matched | # max length of the setting names that matched | ||
maxlen = max([len(s[0]) for s in matches]) | maxlen = max([len(s[0]) for s in matches] + [0]) | ||
fmt = "%%-%ds : %%s" % (maxlen,) | fmt = "%%-%ds : %%s" % (maxlen,) | ||
for setting in matches: | for setting in matches: |
Revision as of 06:03, 24 September 2010
Use this little script to explore PyMOL's myriad settings.
Usefull for newbies and those with not so good memory skills...
To use:
- put the script in a file called grepset.py
- from within PyMOL execute run grepset.py
- try it out, see examples below.
Example 1: grepset light
cartoon_highlight_color default dot_lighting on light [ -0.40000, -0.40000, -1.00000 ] mesh_lighting off two_sided_lighting off 5 settings matched
Example 2: grepset trans
cartoon_transparency 0.00000 ray_transparency_contrast 1.00000 ray_transparency_shadows 1 ray_transparency_spec_cut 0.90000 ray_transparency_specular 0.40000 sphere_transparency 0.00000 stick_transparency 0.00000 transparency 0.00000 transparency_mode 2 transparency_picking_mode 2 10 settings matched
Example 3: grepset ^trans
transparency 0.00000 transparency_mode 2 transparency_picking_mode 2 3 settings matched
The Script itself: grepset.py
from pymol import cmd
import re
import pymol.setting
def grepset(regexp=''):
'''
DESCRIPTION
"grepset" greps through the list of settings using a python
regular expression as defined in the 're' module.
It returns a list of settings/values matching the regexp.
No regexp returns every setting.
USAGE
grepset [regexp]
EXAMPLE
grepset line
grepset ray
grepset (^line|color$)
SEE ALSO
Python re module
'''
count = 0
regexp = re.compile(regexp)
matches = []
for a in pymol.setting.get_index_list():
setting = pymol.setting._get_name(a)
if regexp.search(setting):
count += 1
matches.append( (setting, cmd.get_setting_text(a, '', -1)) )
# max length of the setting names that matched
maxlen = max([len(s[0]) for s in matches] + [0])
fmt = "%%-%ds : %%s" % (maxlen,)
for setting in matches:
print fmt % setting
print '%d settings matched' % (count,)
cmd.set('text', 1)
cmd.extend('grepset', grepset)
Author: Ezequiel (Zac) Panepucci