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