def IsEquivalent(self, other):
    """Determines if 2 operating system artifacts are equivalent.

    This function compares the operating systems based in order of:
    * name derived from product
    * family and version
    * family

    Args:
      other (OperatingSystemArtifact): operating system artifact attribute
          container to compare with.

    Returns:
      bool: True if the operating systems are considered equivalent, False if
          the most specific criteria do no match, or no criteria are available.
    """
    if self.name and other.name:
      return self.name == other.name

    if self.name:
      self_family, self_version_tuple = self._FAMILY_AND_VERSION_PER_NAME.get(
          self.name, self._DEFAULT_FAMILY_AND_VERSION)
      return (
          self_family == other.family and
          self_version_tuple == other.version_tuple)

    if self.family and self.version:
      if other.name:
        other_family, other_version_tuple = (
            self._FAMILY_AND_VERSION_PER_NAME.get(
                other.name, self._DEFAULT_FAMILY_AND_VERSION))
      else:
        other_family = other.family
        other_version_tuple = other.version_tuple

      return (
          self.family == other_family and
          self.version_tuple == other_version_tuple)

    if self.family:
      if other.name:
        other_family, _ = self._FAMILY_AND_VERSION_PER_NAME.get(
            other.name, self._DEFAULT_FAMILY_AND_VERSION)
      else:
        other_family = other.family

      return self.family == other_family

    return False
def IsEquivalent ( self , other ) : if self . name and other . name : return self . name == other . name if self . name : self_family , self_version_tuple = self . _FAMILY_AND_VERSION_PER_NAME . get ( self . name , self . _DEFAULT_FAMILY_AND_VERSION ) return ( self_family == other . family and self_version_tuple == other . version_tuple ) if self . family and self . version : if other . name : other_family , other_version_tuple = ( self . _FAMILY_AND_VERSION_PER_NAME . get ( other . name , self . _DEFAULT_FAMILY_AND_VERSION ) ) else : other_family = other . family other_version_tuple = other . version_tuple return ( self . family == other_family and self . version_tuple == other_version_tuple ) if self . family : if other . name : other_family , _ = self . _FAMILY_AND_VERSION_PER_NAME . get ( other . name , self . _DEFAULT_FAMILY_AND_VERSION ) else : other_family = other . family return self . family == other_family return False
Determines if 2 operating system artifacts are equivalent.

    This function compares the operating systems based in order of:
    * name derived from product
    * family and version
    * family

    Args:
      other (OperatingSystemArtifact): operating system artifact attribute
          container to compare with.

    Returns:
      bool: True if the operating systems are considered equivalent, False if
          the most specific criteria do no match, or no criteria are available.