python observer pattern async