For each of the below:

* Please, no extra newlines between things.  Within a method or function anywhere in Python, there should be maximally one between each functional line -- and usually you only put those in to logically separate parts of your method (say, a newline between the actions invoked and its return value, or between groups of operations acting on distinct parts of the problem).
* Please, no tabs :-(
* After each comment marker (`#`), just two spaces -- no tabs -- before the comment. (And, you probably don't need most of the comments -- the parser entry itself is verbose enough that you probably don't need to call out which is for the password, which is for the username, etc, whereas the section about 'Lost Mode' probably does merit your comment.
* Please don't call `sys.exit` directly, and instead raise an exception of some sort (it might be best to use the built-in [`RuntimeError`](https://docs.python.org/2/library/exceptions.html#exceptions.RuntimeError)).

This is, though, looking much, much better; thanks for putting up with my anal retentiveness :smile:.