code: def envcontext(patch, _env=None):
      
      env = os.environ if _env is None else _env
      before = env.copy()
  
      for k, v in patch:
          if v is UNSET:
              env.pop(k, None)
          elif isinstance(v, tuple):
              env[k] = format_env(v, before)
          else:
              env[k] = v
  
      try:
          yield
      finally:
          env.clear()
          env.update(before)
docs: In this context, `os.environ` is modified according to `patch`.
  
      `patch` is an iterable of 2-tuples (key, value):
          `key`: string
          `value`:
              - string: `environ[key] == value` inside the context.
              - UNSET: `key not in environ` inside the context.
              - template: A template is a tuple of strings and Var which will be
                replaced with the previous environment