Haha, so I left this here because I wanted to hear from more experienced python people about the wisdom of using exceptions as flow control in non-exceptional circumstances. I have heard arguments that the above is in keeping with the concept of easier to ask forgiveness than permission, but it certainly seems awkward to me.

Doing it non-exception could look something like this:
 ```python
# set key to none above the parser
if key is not None:
    vectors.append((msg, md, key))
else:
    vectors.append((msg, md))
```

so I can go ahead and change it. :)