This is a safeguard against decoy requirements when a user installs a package
        whose name coincides with the name of a folder in the cwd, e.g. install *alembic*
        when there is a folder called *alembic* in the working directory.

        In this case we first need to check that the given requirement is a valid
        URL, VCS requirement, or installable filesystem path before deciding to treat it
        as a file requirement over a named requirement.

def line_is_installable(self):
        # type: () -> bool
        """
        This is a safeguard against decoy requirements when a user installs a package
        whose name coincides with the name of a folder in the cwd, e.g. install *alembic*
        when there is a folder called *alembic* in the working directory.

        In this case we first need to check that the given requirement is a valid
        URL, VCS requirement, or installable filesystem path before deciding to treat it
        as a file requirement over a named requirement.
        """
        line = self.line
        if is_file_url(line):
            link = create_link(line)
            line = link.url_without_fragment
            line, _ = split_ref_from_uri(line)
        if (
            is_vcs(line)
            or (
                is_valid_url(line)
                and (not is_file_url(line) or is_installable_file(line))
            )
            or is_installable_file(line)
        ):
            return True
        return False