code: def electron_shells_are_equal(shells1, shells2, compare_meta=False, rel_tol=0.0):
      '''
      Determine if a list of electron shells is the same as another
  
      The shells are compared approximately (exponents/coefficients are 
      within a tolerance)
  
      If compare_meta is True, the metadata is also compared for exact equality. 
      '''
  
      # Lists are equal if each is a subset of the other
      # Slow but effective
      if len(shells1) != len(shells2):
          return False
  
      return electron_shells_are_subset(shells1, shells2, compare_meta, rel_tol) and electron_shells_are_subset(
          shells2, shells1, compare_meta, rel_tolf electron_shells_are_equal(shells1, shells2, compare_meta=False, rel_tol=0.0):
      '''
      Determine if a list of electron shells is the same as another
  
      The shells are compared approximately (exponents/coefficients are 
      within a tolerance)
  
      If compare_meta is True, the metadata is also compared for exact equality. 
      '''
  
      # Lists are equal if each is a subset of the other
      # Slow but effective
      if len(shells1) != len(shells2):
          return False
  
      return electron_shells_are_subset(shells1, shells2, compare_meta, rel_tol) and electron_shells_are_subset(
          shells2, shells1, compare_meta, rel_tol)
docs: Determine if a list of electron shells is the same as another
  
      The shells are compared approximately (exponents/coefficients are 
      within a tolerance)
  
      If compare_meta is True, the metadata is also compared for exact equality.