As a long time pycharm user who recently switched to vscode, I have found pycharm's understanding of type annotations to be borderline broken.
def foo(value: Optional[str]) -> None:
print(value.replace("bar", "baz"))
mypy and vscode both point out this will fail when value is None, but my pycharm seems to think this is perfectly fine.