code: def join(self, ToMerge, keycols=None, nullvals=None, 
               renamer=None, returnrenaming=False, selfname=None, Names=None):
          
  
          if isinstance(ToMerge,np.ndarray):
              ToMerge = [ToMerge]
  
          if isinstance(ToMerge,dict):
              assert selfname not in ToMerge.keys(), \
               ('Can\'t use "', selfname + '" for name of one of the things to '  
                'merge, since it is the same name as the self object.')
              if selfname == None:
                  try:
                      selfname = self.name
                  except AttributeError:
                      selfname = 'self'
              ToMerge.update({selfname:self})
          else:
              ToMerge = [self] + ToMerge
  
          return tab_join(ToMerge, keycols=keycols, nullvals=nullvals, 
                     renamer=renamer, returnrenaming=returnrenaming, Names=Names)
docs: Wrapper for spreadsheet.join, but handles coloring attributes.
  
          The `selfname` argument allows naming of `self` to be used if `ToMerge` 
          is a dictionary.
  
          **See also:** :func:`tabular.spreadsheet.join`, :func:`tab_join`