Why does rdkit's `AllChem.ReactionFromSmarts.RunReactants` return a tuple of tuples? In rdkit, the function AllChem.ReactionFromSmarts.RunReactants returns a tuple of tuples. Does anyone know what the two dimensions are for? From the (admittedly few) examples I've seen, the inner tuples are always just one molecule.

The docstring says,  

RunReactants( (ChemicalReaction)arg1, (tuple)arg2) -&gt; object :
apply the reaction to a sequence of reactant molecules and 
return the products as a tuple of tuples


example:

from rdkit import rdBase, Chem
from rdkit.Chem import AllChem, Draw
rxn = AllChem.ReactionFromSmarts('[c:1][c:2][c:3]&gt;&gt;[c:1][c:2]([F])[c:3]')
m = Chem.MolFromSmiles('c1ccccc1')
ps = rxn.RunReactants((m,))

((&lt;rdkit.Chem.rdchem.Mol at 0x10be03818&gt;,),
 (&lt;rdkit.Chem.rdchem.Mol at 0x10bef92f0&gt;,),
 (&lt;rdkit.Chem.rdchem.Mol at 0x10bef9a28&gt;,),
 (&lt;rdkit.Chem.rdchem.Mol at 0x10bef99d0&gt;,),
 (&lt;rdkit.Chem.rdchem.Mol at 0x10bef9768&gt;,),
 (&lt;rdkit.Chem.rdchem.Mol at 0x10bef9920&gt;,),
 (&lt;rdkit.Chem.rdchem.Mol at 0x10bef96b8&gt;,),
 (&lt;rdkit.Chem.rdchem.Mol at 0x10bef98c8&gt;,),
 (&lt;rdkit.Chem.rdchem.Mol at 0x10bef95b0&gt;,),
 (&lt;rdkit.Chem.rdchem.Mol at 0x10bef9710&gt;,),
 (&lt;rdkit.Chem.rdchem.Mol at 0x10bef9558&gt;,),
 (&lt;rdkit.Chem.rdchem.Mol at 0x10bef9ad8&gt;,))


The reason I ask is that I want to put the products into a pandas dataframe (already accomplished) and label the columns and indices according to the intended scheme.
From a tutorial I wrote on SMARTS reactions in rdkit:


  The output is a tuple of tuples. The inner tuples are there because even reactions that take only a single input molecule can result in multiple output molecules (e.g. hydrolysis). The outer tuples are there because rdkit applies your reaction incidence of the appropriate motifs in the input molecule, even if it occurs more than once.


The examples in the tutorial illustrate both cases where a single application of the reaction rule creates multiple molecules (the inner tuple(s) would have length > 1), and also cases where a reaction rule can be applied more than once to a molecule, which would lead to the outer tuples having length > 1.