def __init__(self, filename, world_type="", name="", owner="", uid=None, engine=None, version=WORLD_VERSION): """Create a new MicroPsi simulation environment. Arguments: filename: the path and filename of the world data name (optional): the name of the environment owner (optional): the user that created this environment uid (optional): unique handle of the world; if none is given, it will be generated """ self.logger = logging.getLogger('world_logger') # persistent data self.data = { "version": WORLD_VERSION, # used to check compatibility of the world data "objects": {}, "agents": {}, "current_step": 0 } folder = self.__module__.split('.') folder.pop() folder = '.'.join(folder) self.supported_worldadapters = { cls.__name__: cls for cls in tools.itersubclasses(worldadapter.WorldAdapter, folder=folder) if cls.__name__ in self.supported_worldadapters } self.supported_worldobjects = { cls.__name__: cls for cls in tools.itersubclasses(worldobject.WorldObject, folder=folder) if cls.__name__ not in self.supported_worldadapters } # freaky hack. self.supported_worldobjects.pop('WorldAdapter', None) self.supported_worldobjects['Default'] = worldobject.WorldObject self.uid = uid or generate_uid() self.owner = owner self.name = name or os.path.basename(filename) self.filename = filename self.agents = {} self.objects = {} #self.the_image = None self.load()
def get_available_world_types(): """Returns the names of the available world types""" import importlib from micropsi_core.world.world import World return [cls.__name__ for cls in tools.itersubclasses(vars()['World'])] for cls in tools.itersubclasses(World): if 'minecraft' in cls.__name__.toLower(): try: import spock except: # requirement not satisfied, ignore continue available_worlds.append(cls.__name__) return available_worlds
def __init__(self, filename, world_type="", name="", owner="", uid=None, engine=None, version=WORLD_VERSION, config={}): """Create a new MicroPsi world environment. Arguments: filename: the path and filename of the world data name (optional): the name of the environment owner (optional): the user that created this environment uid (optional): unique handle of the world; if none is given, it will be generated """ self.logger = logging.getLogger('world_logger') # persistent data self.data = { "version": WORLD_VERSION, # used to check compatibility of the world data "objects": {}, "agents": {}, "current_step": 0, "config": config } folder = self.__module__.split('.') folder.pop() folder = '.'.join(folder) self.supported_worldadapters = { cls.__name__:cls for cls in tools.itersubclasses(worldadapter.WorldAdapter, folder=folder) if cls.__name__ in self.supported_worldadapters } self.supported_worldobjects = { cls.__name__:cls for cls in tools.itersubclasses(worldobject.WorldObject, folder=folder) if cls.__name__ not in self.supported_worldadapters} # freaky hack. self.supported_worldobjects.pop('WorldAdapter', None) self.supported_worldobjects['Default'] = worldobject.WorldObject self.uid = uid or generate_uid() self.owner = owner self.name = name or os.path.basename(filename) self.filename = filename self.agents = {} self.objects = {} # self.the_image = None self.load()
def get_world_class_from_name(world_type): """Returns the class from a world type, if it is known""" from micropsi_core.world.world import World worldclasses = {cls.__name__: cls for cls in tools.itersubclasses(World)} return worldclasses.get(world_type, World)
def get_available_world_types(): """Returns the names of the available world types""" from micropsi_core.world.world import World return [cls.__name__ for cls in tools.itersubclasses(vars()['World'])]
def get_supported_worldadapters(cls): folder = cls.__module__.split('.') folder.pop() folder = '.'.join(folder) return {wacls.__name__: wacls for wacls in tools.itersubclasses(worldadapter.WorldAdapter, folder=folder) if wacls.__name__ in cls.supported_worldadapters}
def get_available_world_types(): """Returns a mapping of the available world type names to their classes""" import importlib from micropsi_core.world.world import World return dict((cls.__name__, cls) for cls in tools.itersubclasses(vars()['World']))
def get_available_world_types(): """Returns a mapping of the available world type names to their classes""" import importlib from micropsi_core.world.world import World return dict( (cls.__name__, cls) for cls in tools.itersubclasses(vars()['World']))