def update(self,data={},name=None,removeLocals=False): """Add a dictionary to the Config object. The data, if specified, should be a valid Python dict. If no name is specified, the data are added to the top dictionary and will become attributes. If a name is specified, the data are added to the named attribute, which should be a dictionary. If the name does not specify a dictionary, an empty one is created, deleting the existing attribute. If a name is specified, but no data, the effect is to add a new empty dictionary (section) with that name. If removeLocals is set, keys starting with '_' are removed from the data before updating the dictionary and not included in the config. This behaviour can be changed by setting removeLocals to false. """ if removeLocals: for k in list(data.keys()): if k[0] == '_': del data[k] if name: if name not in self or not isinstance(self[name], dict): self[name] = Dict() self[name].update(data) else: Dict.update(self, data)
def readDatabase(self,filename,*args,**kargs): """Import all records from a database file. For now, it can only read databases using flatkeydb. args and kargs can be used to specify arguments for the FlatDB constructor. """ mat = FlatDB(*args,**kargs) mat.readFile(filename) for k, v in mat.items(): self[k] = Dict(v)
def setCamera(self,**kargs): """Set the camera position and direction. This takes two (optional) keyword parameters: - `position=`: specify a list of 3 coordinates. The camera will be positioned at that place, and be looking at the origin. This should be set to a proper distance from the scene to get a decent result on first display. - `upvector=`: specify a list of 3 components of a vector indicating the upwards direction of the camera. The default is [0.,1.,0.]. """ self._camera = Dict(kargs)