So, I have an object with the member `monitor_df`, and it is typed through the parameter that is assigned to it during the `__init__()`
It is typed as `Optional[pd.DataFrame]`, so it can be either `None` (the default) or be a `pd.DataFrame`.
Later I have this code:
Notice that the code interpreter can not resolve the `to_html()` method. When I put my cursor on the that method, the problem reported in the message bar on the bottom left of PyCharm is "Cannot find reference 'to_html' in 'None'."
So, ok, the interpreter is using the `None` instead of the `pd.DataFrame` interpretation of the type of the variable.
However, in the line above it, a parallel construct calls `self.monitor_df.to_string()` without complaint, a method I believe is not implemented on `None` but implemented on `pd.DataFrame`.
Why is the `self.monitor_df` being interpreted to having one type on the first line and a different one on the following line of code?