Can `p.returncode` ever be `None`? or is that avoided by `p.communicate`?