code: def expand_env_variables(lines_enum):
      # type: (ReqFileLines) -> ReqFileLines
      
      for line_number, line in lines_enum:
          for env_var, var_name in ENV_VAR_RE.findall(line):
              value = os.getenv(var_name)
              if not value:
                  continue
  
              line = line.replace(env_var, value)
  
          yield line_number, line
docs: Replace all environment variables that can be retrieved via `os.getenv`.
  
      The only allowed format for environment variables defined in the
      requirement file is `${MY_VARIABLE_1}` to ensure two things:
  
      1. Strings that contain a `$` aren't accidentally (partially) expanded.
      2. Ensure consistency across platforms for requirement files.
  
      These points are the result of a discusssion on the `github pull
      request #3514 <https://github.com/pypa/pip/pull/3514>`_.
  
      Valid characters in variable names follow the `POSIX standard
      <http://pubs.opengroup.org/onlinepubs/9699919799/>`_ and are limited
      to uppercase letter, digits and the `_` (underscore).