code: def outputs(self_):
          
          outputs = {}
          for cls in classlist(self_.cls):
              for name in dir(cls):
                  method = getattr(self_.self_or_cls, name)
                  dinfo = getattr(method, '_dinfo', {})
                  if 'outputs' not in dinfo:
                      continue
                  for override, otype, idx in dinfo['outputs']:
                      if override is not None:
                          name = override
                      outputs[name] = (otype, method, idx)
          return outputs
docs: Returns a mapping between any declared outputs and a tuple
          of the declared Parameter type, the output method, and the
          index into the output if multiple outputs are returned.