Source code for atsim.potentials.tools.potable._query_actions
import itertools
from ...config import Configuration, ConfigParser
import sys
def _list_section(cp, section):
outlist = []
raw_cp = cp.raw_config_parser
for k in raw_cp[section]:
v = raw_cp[section][k]
k = "{section}:{key}".format(section = section, key = k)
ov = (k,v)
outlist.append(ov)
return outlist
def _list_pair(cp):
return _list_section(cp, "Pair")
def _list_potential_form(cp):
return _list_section(cp, "Potential-Form")
def _list_tabulation(cp):
return _list_section(cp, "Tabulation")
def _list_eam_dens(cp):
return _list_section(cp, "EAM-Density")
def _list_eam_embed(cp):
return _list_section(cp, "EAM-Embed")
def _parse_raw(cp, orphan_sections):
outlist = []
for s in orphan_sections:
entries = _list_section(cp, s)
outlist.extend(entries)
return outlist
def _list_items(cp):
items = []
parsed_sections = cp.parsed_sections
if "pair" in parsed_sections:
pair_items = _list_pair(cp)
items.extend(pair_items)
if "potential_form" in parsed_sections:
pf_items = _list_potential_form(cp)
items.extend(pf_items)
if "tabulation" in parsed_sections:
tab_items = _list_tabulation(cp)
items.extend(tab_items)
if "eam_embed" in parsed_sections:
embed_items = _list_eam_embed(cp)
items.extend(embed_items)
if ("eam_density" in parsed_sections) or ("eam_density_fs" in parsed_sections):
eam_dens_items = _list_eam_dens(cp)
items.extend(eam_dens_items)
orphan_sections = cp.orphan_sections
raw_items = _parse_raw(cp, orphan_sections)
items.extend(raw_items)
return items
def _list_item_labels(cp):
items = _list_items(cp)
outlist = [k for (k,v) in items]
return outlist
def _list_plot_item_labels(cp):
items = list(itertools.chain(
_list_pair(cp),
_list_eam_dens(cp),
_list_eam_embed(cp)
))
outlist = [k for (k,v) in items]
return outlist
def _item_value(cp, key):
section, section_key = key.split(":",1)
v = cp.raw_config_parser[section][section_key]
return v
[docs]def action_list_items(cp):
items = _list_items(cp)
for k, v in items:
outline = "{}={}\n".format(k,v)
sys.stdout.write(outline)
[docs]def action_list_item_labels(cp):
items = _list_items(cp)
for k, v in items:
outline = "{}\n".format(k)
sys.stdout.write(outline)
[docs]def action_item_value(cp, key):
v = _item_value(cp, key)
outline = "{}\n".format(v)
sys.stdout.write(outline)