You have many abbreviated names and nested conditionals here, making it hard to understand at a glance what is happening.  It requires reading through all your docstrings for each and trying to figure out the context, parameters, and purpose.  That makes spotting bugs and maintaining the code much more difficult.  Could you please add some short comments explaining why (not what) each statement is doing?

This is why it's normally good to not abbreviate names, because it helps the code to be "self-documenting".  However I understand with this topic, the names could easily become quite long.   In this case, you will need to fill in more with comments, otherwise it's quickly becomes hard to read the code.