code: def using_env(self, env, clean=True, silent=True, filename=None):
          
          try:
              self.setenv(env, clean=clean, silent=silent, filename=filename)
              self.logger.debug("In env: %s", env)
              yield
          finally:
              if env.lower() != self.ENV_FOR_DYNACONF.lower():
                  del self.loaded_envs[-1]
              self.logger.debug("Out env: %s", env)
              self.setenv(self.current_env, clean=clean, filename=filename)
docs: This context manager allows the contextual use of a different env
          Example of settings.toml::
  
              [development]
              message = 'This is in dev'
              [other]
              message = 'this is in other env'
  
          Program::
  
              >>> from dynaconf import settings
              >>> print settings.MESSAGE
              'This is in dev'
              >>> with settings.using_env('OTHER'):
              ...    print settings.MESSAGE
              'this is in other env'
  
          :param env: Upper case name of env without any _
          :param clean: If preloaded vars should be cleaned
          :param silent: Silence errors
          :param filename: Custom filename to load (optional)
          :return: context