parameters: (shells)
return_statement: return shell_list
docstring: Procedure applied to list to ShellInfo-s *shells* that returns
          another list of shells, one for every AM and exponent pair in the input
          list. Decontracts the shells.
docstring_summary: Procedure applied to list to ShellInfo-s *shells* that returns
          another list of shells, one for every AM and exponent pair in the input
          list. Decontracts the shells.
docstring_tokens: Procedure applied to list to ShellInfo - s * shells * that returns another list of shells one for every AM and exponent pair in the input list . Decontracts the shells .
function: def decontract(shells):
          """Procedure applied to list to ShellInfo-s *shells* that returns
          another list of shells, one for every AM and exponent pair in the input
          list. Decontracts the shells.
  
          """
          # vector of uncontracted shells to return
          shell_list = []
  
          # map of AM to a vector of exponents for duplicate basis functions check
          exp_map = collections.defaultdict(list)
  
          for shell in shells:
              am = shell.am()
              pure = shell.is_pure()
              nc = shell.ncenter()
              center = shell.center
              start = shell.start
  
              for prim in range(shell.nprimitive()):
                  exp = shell.exp(prim)
                  unique = True
                  for _exp in exp_map[am]:
                      if abs(exp - _exp) < 1.0e-6:
                          unique = False
                  if unique:
                      us = ShellInfo(am, [1.0], [exp],
                          'Pure' if pure else 'Cartesian',
                          nc, center, start, 'Unnormalized')
                      shell_list.append(us)
                      exp_map[am].append(exp)
  
          return shell_list
function_tokens: def decontract ( shells ) : # vector of uncontracted shells to return shell_list = [ ] # map of AM to a vector of exponents for duplicate basis functions check exp_map = collections . defaultdict ( list ) for shell in shells : am = shell . am ( ) pure = shell . is_pure ( ) nc = shell . ncenter ( ) center = shell . center start = shell . start for prim in range ( shell . nprimitive ( ) ) : exp = shell . exp ( prim ) unique = True for _exp in exp_map [ am ] : if abs ( exp - _exp ) < 1.0e-6 : unique = False if unique : us = ShellInfo ( am , [ 1.0 ] , [ exp ] , 'Pure' if pure else 'Cartesian' , nc , center , start , 'Unnormalized' ) shell_list . append ( us ) exp_map [ am ] . append ( exp ) return shell_list