def pythonista_install(install_path, repo=DEFAULT_REPO, branch=DEFAULT_BRANCH, launcher_path=None, zippath=None, verbose=False):
    """
    Download and install StaSh and other dependencies for pythonista.
    :param install_path: directory to install into
    :type install_path: str
    :param repo: name of user owning the github repo to download/install from
    :type repo: str
    :param branch: branch to download/install
    :type repo: str
    :param launcher_path: path to install launcher to
    :type launcher_path: str
    :param zippath: if not None, it specifies a path to a StaSh zipfile, otherwise download it from repo:branch
    :type zippath: str
    :param verbose: if True, print additional information
    :type verbose: bool
    """
    if zippath is None:
        zp = TEMP_ZIPFILE
        # download StaSh
        try:
            download_stash(repo=repo, branch=branch, outpath=zp, verbose=verbose)
        except:
            raise DownloadError("Unable to download StaSh from {}:{}".format(repo, branch))
    else:
        if verbose:
            print("Using '{}' as source.".format(zippath))
        zp = zippath
    try:
        # install StaSh
        install_from_zip(zp, install_path, launcher_path, verbose=verbose)
        # install pythonista tools installer
        # TODO: should this script realy install it?
        pti_path = os.path.join(install_path, "bin", "ptinstaller.py")
        install_pti(outpath=pti_path)
    finally:
        # cleanup
        if verbose:
            print("Cleaning up...")
        if os.path.exists(zp):
            os.remove(zp)
        remove_unwanted_files(install_path, reraise=False)

    Download and install StaSh and other dependencies for pythonista.
    :param install_path: directory to install into
    :type install_path: str
    :param repo: name of user owning the github repo to download/install from
    :type repo: str
    :param branch: branch to download/install
    :type repo: str
    :param launcher_path: path to install launcher to
    :type launcher_path: str
    :param zippath: if not None, it specifies a path to a StaSh zipfile, otherwise download it from repo:branch
    :type zippath: str
    :param verbose: if True, print additional information
    :type verbose: bool
    
getstash.py