Maybe allow users to specify return types in docstrings and parse those? Like this:

class Ball(object):
...
def getPosition(self):
"""
@returns Point
Gives the current position of the ball.
"""
return self.position
...

That way, the difficulty of parsing a dynamically typed language is lessened, and users can still benefit from the added code completion feature. If they dont specify the @returns thing, then there will just be no code completion for it.