'with_context([context][, **overrides]) -> records
Returns a new version of this recordset attached to an extended
context.
The extended context is either the provided ``context`` in which
``overrides`` are merged or the *current* context in which
``overrides`` are merged e.g.::
# current context is {\'key1\': True}
r2 = records.with_context({}, key2=True)
# -> r2._context is {\'key2\': True}
r2 = records.with_context(key2=True)
# -> r2._context is {\'key1\': True, \'key2\': True}
.. note:
The returned recordset has the same prefetch object as ``self``.'

def with_context(self, *args, **kwargs):

    context = dict((args[0] if args else self._context), **kwargs)
    return self.with_env(self.env(context=context))
