Open
Description
Right now TarFile.__init__
is defined as:
Lines 128 to 132 in c7e29ec
Which is not exactly right, because there's a case when name
and fileobj
are both None
at the same time. And this will lead to runtime errors:
>>> import tarfile
>>> tarfile.TarFile(None, fileobj=None)
Traceback (most recent call last):
File "<python-input-2>", line 1, in <module>
tarfile.TarFile(None, fileobj=None)
~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^
File "/Users/sobolev/Desktop/cpython/Lib/tarfile.py", line 1729, in __init__
fileobj = bltn_open(name, self._mode)
TypeError: expected str, bytes or os.PathLike object, not NoneType
Right now mypy does not raise any errors for this broken case: https://mypy-play.net/?mypy=latest&python=3.12&gist=7452d274249fafba1f8a16565d5486c6
We need either name
or fileobj
, they can be both None
at the same time. So, we need to add overloads.
There are several other methods that needs to be updated like open
and taropen
, maybe others.