+ if s[0] == "internal":
+
+ import inspect
+ internal_agents = inspect.getmembers(sys.modules[__name__], inspect.isclass)
+ internal_agents = [x for x in internal_agents if issubclass(x[1], InternalAgent)]
+ internal_agents.remove(('InternalAgent', InternalAgent))
+
+ if len(s) != 2:
+ sys.stderr.write(sys.argv[0] + " : '@internal' should be followed by ':' and an agent name\n")
+ sys.stderr.write(sys.argv[0] + " : Choices are: " + str(map(lambda e : e[0], internal_agents)) + "\n")
+ return None
+
+ for a in internal_agents:
+ if s[1] == a[0]:
+ return a[1](name, colour)
+
+ sys.stderr.write(sys.argv[0] + " : Can't find an internal agent matching \"" + s[1] + "\"\n")
+ sys.stderr.write(sys.argv[0] + " : Choices are: " + str(map(lambda e : e[0], internal_agents)) + "\n")
+ return None
+