So a bit of context: the goal is to make read_smiles more strict about what it finds chemically valid smiles.
After some discussion with dr. Corbet and dr. Broekman I've decided that finding a valence for d- and f-block elements is a fool's errant, and the meaning of valency is vague in these cases anyway. So for these cases we make no assumptions about possible valencies, and don't check it.
The s- and p-block elements however, follow the octet rule decently well. This leaves hypervalency, which I approximate by promoting sp-electron pairs to higher orbitals. Strictly chemically incorrect, but seems to produce the right answer (in most cases?)
So a bit of context: the goal is to make read_smiles more strict about what it finds chemically valid smiles. After some discussion with dr. Corbet and dr. Broekman I've decided that finding a valence for d- and f-block elements is a fool's errant, and the meaning of valency is vague in these cases anyway. So for these cases we make no assumptions about possible valencies, and don't check it. The s- and p-block elements however, follow the octet rule decently well. This leaves hypervalency, which I approximate by promoting sp-electron pairs to higher orbitals. Strictly chemically incorrect, but seems to produce the right answer (in most cases?)