parameters: (self, other)
return_statement: return True
docstring: Determine if filter A (self) is a subset of filter B (other).
          Returns True if A is a subset of B, False if A is not a subset of B,
          and None if we can't tell for sure.
docstring_summary: Determine if filter A (self) is a subset of filter B (other).
          Returns True if A is a subset of B, False if A is not a subset of B,
          and None if we can't tell for sure.
docstring_tokens: Determine if filter A ( self ) is a subset of filter B ( other ) . Returns True if A is a subset of B False if A is not a subset of B and None if we can t tell for sure .
function: def IsSubset(self, other):
      """ Determine if filter A (self) is a subset of filter B (other).
          Returns True if A is a subset of B, False if A is not a subset of B,
          and None if we can't tell for sure.
      """
      # We don't handle filters with wildcards in this test.
      if self.contains_wildcards or other.contains_wildcards:
        return None
  
      # Disabled categories get into a trace if and only if they are contained in
      # the 'disabled' set. Return False if A's disabled set is not a subset of
      # B's disabled set.
      if not self.disabled_by_default_categories <= \
         other.disabled_by_default_categories:
        return False
  
      # If A defines more or different synthetic delays than B, then A is not a
      # subset.
      if not self.synthetic_delays <= other.synthetic_delays:
        return False
  
      if self.included_categories and other.included_categories:
        # A and B have explicit include lists. If A includes something that B
        # doesn't, return False.
        if not self.included_categories <= other.included_categories:
          return False
      elif self.included_categories:
        # Only A has an explicit include list. If A includes something that B
        # excludes, return False.
        if self.included_categories.intersection(other.excluded_categories):
          return False
      elif other.included_categories:
        # Only B has an explicit include list. We don't know which categories are
        # contained in the default list, so return None.
        return None
      else:
        # None of the filter have explicit include list. If B excludes categories
        # that A doesn't exclude, return False.
        if not other.excluded_categories <= self.excluded_categories:
          return False
  
      return True
function_tokens: def IsSubset ( self , other ) : # We don't handle filters with wildcards in this test. if self . contains_wildcards or other . contains_wildcards : return None # Disabled categories get into a trace if and only if they are contained in # the 'disabled' set. Return False if A's disabled set is not a subset of # B's disabled set. if not self . disabled_by_default_categories <= other . disabled_by_default_categories : return False # If A defines more or different synthetic delays than B, then A is not a # subset. if not self . synthetic_delays <= other . synthetic_delays : return False if self . included_categories and other . included_categories : # A and B have explicit include lists. If A includes something that B # doesn't, return False. if not self . included_categories <= other . included_categories : return False elif self . included_categories : # Only A has an explicit include list. If A includes something that B # excludes, return False. if self . included_categories . intersection ( other . excluded_categories ) : return False elif other . included_categories : # Only B has an explicit include list. We don't know which categories are # contained in the default list, so return None. return None else : # None of the filter have explicit include list. If B excludes categories # that A doesn't exclude, return False. if not other . excluded_categories <= self . excluded_categories : return False return True