def METHOD_NAME(self, instance, **kwds):
    options = kwds.pop('options', {})
    bname = options.get('block', None)
    #
    # Iterate over the model collecting variable data,
    # until the block is found.
    #
    block = None
    if block is None:
        block = instance
    else:
        for name, data in instance.component_map(Block, active=True).items():
            if name == bname:
                block = instance
    if block is None:
        raise RuntimeError("Missing block: " + bname)
    #
    # Generate the dual
    #
    instance_ = self._dualize(block)
    return instance_