<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def install(args: List[str]) -> None: """`pip install` as a function. Accepts a list of pip arguments. .. code-block:: py Collecting numpy Downloading numpy-1.13.3-cp35-cp35m-manylinux1_x86_64.whl (16.9MB) 100% || 16.9MB 53kB/s Installing collected packages: numpy Successfully installed numpy-1.13.3 """

    with clean_pip_env():

        # if being invoked as a pyz, we must ensure we have access to our own
        # site-packages when subprocessing since there is no guarantee that pip
        # will be available
        subprocess_env = os.environ.copy()
        sitedir_index = _first_sitedir_index()
        _extend_python_path(subprocess_env, sys.path[sitedir_index:])

        process = subprocess.Popen(
            [sys.executable, "-m", "pip", "--disable-pip-version-check", "install"] + args,
            stdout=subprocess.PIPE,
            stderr=subprocess.STDOUT,
            env=subprocess_env,
        )

        for output in process.stdout:
            if output:
                click.echo(output.decode().rstrip())

        if process.wait() > 0:
            sys.exit(PIP_INSTALL_ERROR)