@francoishernandez ran into another question. So I made the changes above and reinstalled OpenNMT-py into my virtual environment and it worked… so thanks for that.
Regarding the assert… it seems that when the translate() function is called, the caller is setting src_feats to {} (i.e. empty dict) rather than None or leaving the param out of the call. So my question is… should I add the assert so that both None and {} are permitted?