parameters: (dataSource, idCol, smiCol, fingerprinter=Chem.RDKFingerprint,
                             reportFreq=10, maxMols=-1, **fpArgs)
return_statement: return res
docstring: fpArgs are passed as keyword arguments to the fingerprinter
  
    Returns a list of 2-tuples: (ID,fp)
docstring_summary: fpArgs are passed as keyword arguments to the fingerprinter
docstring_tokens: fpArgs are passed as keyword arguments to the fingerprinter
function: def FingerprintsFromSmiles(dataSource, idCol, smiCol, fingerprinter=Chem.RDKFingerprint,
                             reportFreq=10, maxMols=-1, **fpArgs):
    """ fpArgs are passed as keyword arguments to the fingerprinter
  
    Returns a list of 2-tuples: (ID,fp)
  
    """
    res = []
    nDone = 0
    for entry in dataSource:
      ID, smi = str(entry[idCol]), str(entry[smiCol])
      mol = Chem.MolFromSmiles(smi)
      if mol is not None:
        fp = FingerprintMol(mol, fingerprinter, **fpArgs)
        res.append((ID, fp))
        nDone += 1
        if reportFreq > 0 and not nDone % reportFreq:
          message(f'Done {nDone} molecules\n')
        if maxMols > 0 and nDone >= maxMols:
          break
      else:
        error(f'Problems parsing SMILES: {smi}\n')
    return res
function_tokens: def FingerprintsFromSmiles ( dataSource , idCol , smiCol , fingerprinter = Chem . RDKFingerprint , reportFreq = 10 , maxMols = - 1 , * * fpArgs ) : res = [ ] nDone = 0 for entry in dataSource : ID , smi = str ( entry [ idCol ] ) , str ( entry [ smiCol ] ) mol = Chem . MolFromSmiles ( smi ) if mol is not None : fp = FingerprintMol ( mol , fingerprinter , * * fpArgs ) res . append ( ( ID , fp ) ) nDone += 1 if reportFreq > 0 and not nDone % reportFreq : message ( f'Done {nDone} molecules\n' ) if maxMols > 0 and nDone >= maxMols : break else : error ( f'Problems parsing SMILES: {smi}\n' ) return res