Actually, it would be best if Reaction.from_text() didn't take any arguments, so that the reaction was completely specified from the table. (This would open the door to having a generic "reaction" command that just interprets such tables, and provided arguments to tweak the various reagents.) To do this, I would need to change the table syntax to allow the solvent to be specified (or left out).
I just thought of a nice way to do this: identify the solvent by specifying its volume as to <total reaction volume>. The advantages of the syntax are that it is totally self contained, is consistent with the way people actually write out reactions, and doesn't make the user calculate the volume of the solvent manually (which is error-prone). A drawback is that it's not backwards compatible with the current syntax (so I'd have to update my protocols).
Actually, it would be best if
Reaction.from_text()
didn't take any arguments, so that the reaction was completely specified from the table. (This would open the door to having a generic "reaction" command that just interprets such tables, and provided arguments to tweak the various reagents.) To do this, I would need to change the table syntax to allow the solvent to be specified (or left out).I just thought of a nice way to do this: identify the solvent by specifying its volume as
to <total reaction volume>
. The advantages of the syntax are that it is totally self contained, is consistent with the way people actually write out reactions, and doesn't make the user calculate the volume of the solvent manually (which is error-prone). A drawback is that it's not backwards compatible with the current syntax (so I'd have to update my protocols).