MCPcopy Index your code
hub / github.com/python/cpython / zstopen

Method zstopen

Lib/tarfile.py:2067–2099  ·  view source on GitHub ↗

Open zstd compressed tar archive name for reading or writing. Appending is not allowed.

(cls, name, mode="r", fileobj=None, level=None, options=None,
                zstd_dict=None, **kwargs)

Source from the content-addressed store, hash-verified

2065
2066 @classmethod
2067 def zstopen(cls, name, mode="r", fileobj=None, level=None, options=None,
2068 zstd_dict=None, **kwargs):
2069 """Open zstd compressed tar archive name for reading or writing.
2070 Appending is not allowed.
2071 """
2072 if mode not in ("r", "w", "x"):
2073 raise ValueError("mode must be 'r', 'w' or 'x'")
2074
2075 try:
2076 from compression.zstd import ZstdFile, ZstdError
2077 except ImportError:
2078 raise CompressionError("compression.zstd module is not available") from None
2079
2080 fileobj = ZstdFile(
2081 fileobj or name,
2082 mode,
2083 level=level,
2084 options=options,
2085 zstd_dict=zstd_dict
2086 )
2087
2088 try:
2089 t = cls.taropen(name, mode, fileobj, **kwargs)
2090 except (ZstdError, EOFError) as e:
2091 fileobj.close()
2092 if mode == 'r':
2093 raise ReadError("not a zstd file") from e
2094 raise
2095 except Exception:
2096 fileobj.close()
2097 raise
2098 t._extfileobj = False
2099 return t
2100
2101 # All *open() methods are registered here.
2102 OPEN_METH = {

Callers

nothing calls this directly

Calls 5

closeMethod · 0.95
ZstdFileClass · 0.90
CompressionErrorClass · 0.85
taropenMethod · 0.80
ReadErrorClass · 0.70

Tested by

no test coverage detected