Text this: Static Analysis of Python Programs using Abstract Interpretation: An Application to Tensor Shape Analysis