code: def env_set(context):
      
      env_set = context['env'].get('set', None)
  
      exists = False
      if env_set:
          logger.debug("started")
  
          for k, v in env_set.items():
              logger.debug(f"setting ${k} to context[{v}]")
              os.environ[k] = context.get_formatted_string(v)
  
          logger.info(f"set {len(env_set)} $ENVs from context.")
          exists = True
  
          logger.debug("done")
  
      return exists
docs: Set $ENVs to specified string. from the pypyr context.
  
      Args:
          context: is dictionary-like. context is mandatory.
                   context['env']['set'] must exist. It's a dictionary.
                   Values are strings to write to $ENV.
                   Keys are the names of the $ENV values to which to write.
  
      For example, say input context is:
          key1: value1
          key2: value2
          key3: value3
          env:
              set:
                  MYVAR1: {key1}
                  MYVAR2: before_{key3}_after
                  MYVAR3: arbtexthere
  
      This will result in the following $ENVs:
      $MYVAR1 = value1
      $MYVAR2 = before_value3_after
      $MYVAR3 = arbtexthere
  
      Note that the $ENVs are not persisted system-wide, they only exist for
      pypyr sub-processes, and as such for the following steps during this pypyr
      pipeline execution. If you set an $ENV here, don't expect to see it in your
      system environment variables after the pipeline finishes running.