in src/hpc/autoscale/cli.py [0:0]
def _setup_shell_locals(self, config: Dict) -> Dict:
ctx = DefaultContextHandler("[interactive-readonly]")
driver = self._driver(config)
dcalc, jobs_list = self._demand_calc(config, driver)
nodes_list = dcalc.node_mgr.get_nodes()
for node in nodes_list:
node.shellify()
nodes = partition_single(nodes_list, lambda n: n.name)
nodes.update(
partition_single(
[x for x in nodes_list if x.hostname], lambda n: n.hostname
)
)
jobs: Dict[str, Any]
try:
jobs = partition_single(jobs_list, lambda j: j.name)
except Exception:
jobs = partition(jobs_list, lambda j: j.name)
return {
"config": config,
"cli": self,
"ctx": ctx,
"demand_calc": dcalc,
"node_mgr": dcalc.node_mgr,
"jobs": ShellDict(jobs),
"nodes": ShellDict(nodes),
}