robocup_knowledge
knowledge_loader.py
Go to the documentation of this file.
1 from __future__ import print_function
2 
3 
4 # Resolve the environment variable $ROBOT_ENV
5 def load_knowledge(knowledge_item, print_knowledge=False):
6  import os, imp
7  _robot_env = os.environ.get('ROBOT_ENV')
8 
9  if not _robot_env:
10  raise KeyError("robocup_knowledge - load(): ROBOT_ENV environment variable is not set!")
11 
12  # Look for the correct knowledge file
13  try:
14  _knowledge_path = os.path.dirname(os.path.realpath(__file__)) + "/environments/%s/%s.py" % (_robot_env, knowledge_item)
15  knowledge = imp.load_source(knowledge_item, _knowledge_path)
16 
17  knowledge_attrs = [attr for attr in dir(knowledge) if not callable(attr) and not attr.startswith("__")]
18 
19  if print_knowledge:
20  print("=====================================")
21  print("== KNOWLEDGE ==")
22  print("=====================================")
23  for attr in knowledge_attrs:
24  print("==> %s = %s" % (attr, str(getattr(knowledge, attr))))
25  print("=====================================")
26 
27  return knowledge
28 
29  except Exception as e:
30  raise RuntimeError("Knowledge item '%s' for environment '%s' is incorrect at path '%s'! [Error = %s]"%(knowledge_item, _robot_env, _knowledge_path, e))
robocup_knowledge.knowledge_loader.load_knowledge
def load_knowledge(knowledge_item, print_knowledge=False)
Definition: knowledge_loader.py:5