Optional type-checking, data dependencies, and event notifications for Python