eradiate.kernel.UpdateMapTemplate#

class eradiate.kernel.UpdateMapTemplate(data=_Nothing.NOTHING)[source]#

Bases: UserDict

A dict-like structure which contains the structure of a Mitsuba scene parameter update map.

Entries are indexed by dot-separated paths which can then be expanded to a nested dictionary using the render() method.

clear() None.  Remove all items from D.#
get(k[, d]) D[k] if k in D, else d.  d defaults to None.#
items() a set-like object providing a view on D's items#
keep(keys)[source]#

Keep only parameters matching the given regular expression.

Parameters:

keys (str or list of str) – Regular expressions matching the parameters to keep.

Notes

This method mutates the parameter map.

keys() a set-like object providing a view on D's keys#
pop(k[, d]) v, remove specified key and return the corresponding value.#

If key is not found, d is returned if given, otherwise KeyError is raised.

popitem() (k, v), remove and return some (key, value) pair#

as a 2-tuple; but raise KeyError if D is empty.

remove(keys)[source]#

Remove all parameters matching the given regular expression.

Parameters:

keys (str or list of str) – Regular expressions matching the parameters to remove.

Notes

This method mutates the parameter map.

render(ctx, flags=Flags.ALL, drop=False)[source]#

Evaluate the parameter map for a set of arguments.

Parameters:
  • ctx (KernelContext) – A kernel dictionary context.

  • flags (ParamFlags) – Parameter flags. Only parameters with at least one of the specified will pass the filter.

  • drop (bool, optional) – If True, drop unused parameters. Parameters may be unused either because they were filtered out by the flags or because context information implied it.

Returns:

dict

Raises:
setdefault(k[, d]) D.get(k,d), also set D[k]=d if k not in D#
update([E, ]**F) None.  Update D from mapping/iterable E and F.#

If E present and has a .keys() method, does: for k in E: D[k] = E[k] If E present and lacks .keys() method, does: for (k, v) in E: D[k] = v In either case, this is followed by: for k, v in F.items(): D[k] = v

values() an object providing a view on D's values#