code: def rightjoin(left, right, key=None, lkey=None, rkey=None, missing=None,
                presorted=False, buffersize=None, tempdir=None, cache=True,
                lprefix=None, rprefix=None):
      
  
      # TODO don't read data twice (occurs if using natural key)
      lkey, rkey = keys_from_args(left, right, key, lkey, rkey)
      return JoinView(left, right, lkey=lkey, rkey=rkey,
                      presorted=presorted, leftouter=False, rightouter=True,
                      missing=missing, buffersize=buffersize,
                      tempdir=tempdir, cache=cache, lprefix=lprefix,
                      rprefix=rprefix)
docs: Perform a right outer join on the given tables. E.g.::
  
          >>> import petl as etl
          >>> table1 = [['id', 'colour'],
          ...           [1, 'blue'],
          ...           [2, 'red'],
          ...           [3, 'purple']]
          >>> table2 = [['id', 'shape'],
          ...           [1, 'circle'],
          ...           [3, 'square'],
          ...           [4, 'ellipse']]
          >>> table3 = etl.rightjoin(table1, table2, key='id')
          >>> table3
          +----+----------+-----------+
          | id | colour   | shape     |
          +====+==========+===========+
          |  1 | 'blue'   | 'circle'  |
          +----+----------+-----------+
          |  3 | 'purple' | 'square'  |
          +----+----------+-----------+
          |  4 | None     | 'ellipse' |
          +----+----------+-----------+
  
      If `presorted` is True, it is assumed that the data are already sorted by
      the given key, and the `buffersize`, `tempdir` and `cache` arguments are
      ignored. Otherwise, the data are sorted, see also the discussion of the
      `buffersize`, `tempdir` and `cache` arguments under the
      :func:`petl.transform.sorts.sort` function.
  
      Left and right tables with different key fields can be handled via the
      `lkey` and `rkey` arguments.