Ejemplo n.º 1
0
    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()
Ejemplo n.º 2
0
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 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
Ejemplo n.º 4
0
    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()
Ejemplo n.º 5
0
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_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)
Ejemplo n.º 7
0
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'])]
Ejemplo n.º 8
0
 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}
Ejemplo n.º 9
0
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']))
Ejemplo n.º 10
0
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']))