You can do ncurses in Python too. (IIRC yast does just this)
Bash scripts are great for automation, but I think you tend to add so much complexity to them that you venture outside what is normally considered sane usage for shell scripts. In instances like these, your time would be better spent getting a bit more familiar with Python.
But that's just my opinion