Are these versions different by a .1 patch level? This is crazy common in the wild.
        :param version_list:
        :return:

def almost_the_same_version(
        self, version_list
    ):  # type: (List[str]) -> Optional[str]
        """
        Are these versions different by a .1 patch level? This is crazy common in the wild.
        :param version_list:
        :return:
        """

        version_list = list(set(version_list))
        try:
            sem_ver_list = list(
                set([unicode(Version(x)) for x in version_list])
            )  # type: List[Version]
        except ValueError:
            # I hope htat was a bad semver
            return None

        # should be good sem vers from here
        if len(sem_ver_list) == 2:
            if (
                sem_ver_list[0] == unicode(Version(sem_ver_list[1]).next_patch())
                or unicode(Version(sem_ver_list[0]).next_patch()) == sem_ver_list[1]
            ):
                if sem_ver_list[0] > sem_ver_list[1]:
                    return unicode(sem_ver_list[0])
                return unicode(sem_ver_list[1])
        return None