In python we designate internal function/ private methonds with an underscore at the beginning. Should these functions be documented with docstrings(is it required?)? (the formal documentation i mean, not the one helping the code-reader to understand the code) What is common practice for this?

Lo, I quote from PEP 8, the wise words of which should be considered law. Upon this very topic, PEP 8 saith:

  • Write docstrings for all public modules, functions, classes, and
    methods. Docstrings are not necessary for non-public methods, but you
    should have a comment that describes what the method does. This comment
    should appear after the “def” line.