Skip to content

Commit 87bb552

Browse files
author
Joshua Thomas Przyborowski
authored
Add files via upload
1 parent 7cefb0e commit 87bb552

1 file changed

Lines changed: 26 additions & 44 deletions

File tree

pycatfile.py

Lines changed: 26 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -225,6 +225,16 @@ def get_importing_script_path():
225225
return os.path.abspath(filename)
226226
return None
227227

228+
def get_default_threads():
229+
"""Returns the number of CPU threads available, or 1 if unavailable."""
230+
try:
231+
cpu_threads = os.cpu_count()
232+
return cpu_threads if cpu_threads is not None else 1
233+
except AttributeError:
234+
# os.cpu_count() might not be available in some environments
235+
return 1
236+
237+
228238
__use_pysftp__ = False
229239
__use_alt_format__ = False
230240
__use_env_file__ = True
@@ -3349,47 +3359,24 @@ def UncompressFile(infile, formatspecs=__file_format_dict__, mode="rb"):
33493359
mode = "w"
33503360
try:
33513361
if(compresscheck == "gzip" and compresscheck in compressionsupport):
3352-
try:
3353-
filefp = gzip.open(infile, mode, encoding="UTF-8")
3354-
except (ValueError, TypeError) as e:
3355-
filefp = gzip.open(infile, mode)
3362+
filefp = gzip.open(infile, mode)
33563363
if(compresscheck == "bzip2" and compresscheck in compressionsupport):
3357-
try:
3358-
filefp = bz2.open(infile, mode, encoding="UTF-8")
3359-
except (ValueError, TypeError) as e:
3360-
filefp = bz2.open(infile, mode)
3364+
filefp = bz2.open(infile, mode)
33613365
if(compresscheck == "zstd" and compresscheck in compressionsupport):
3362-
try:
3363-
filefp = zstandard.open(infile, mode, encoding="UTF-8")
3364-
except (ValueError, TypeError) as e:
3365-
filefp = zstandard.open(infile, mode)
3366+
decompressor = zstandard.ZstdDecompressor(threads=get_default_threads())
3367+
filefp = decompressor.open(infile, mode)
33663368
if(compresscheck == "lz4" and compresscheck in compressionsupport):
3367-
try:
3368-
filefp = lz4.frame.open(infile, mode, encoding="UTF-8")
3369-
except (ValueError, TypeError) as e:
3370-
filefp = lz4.frame.open(infile, mode)
3369+
filefp = lz4.frame.open(infile, mode)
33713370
if((compresscheck == "lzo" or compresscheck == "lzop") and compresscheck in compressionsupport):
3372-
try:
3373-
filefp = lzo.open(infile, mode, encoding="UTF-8")
3374-
except (ValueError, TypeError) as e:
3375-
filefp = lzo.open(infile, mode)
3371+
filefp = lzo.open(infile, mode)
33763372
if((compresscheck == "lzma" or compresscheck == "xz") and compresscheck in compressionsupport):
3377-
try:
3378-
filefp = lzma.open(infile, mode, encoding="UTF-8")
3379-
except (ValueError, TypeError) as e:
3380-
filefp = lzma.open(infile, mode)
3373+
filefp = lzma.open(infile, mode)
33813374
if(compresscheck == "zlib" and compresscheck in compressionsupport):
33823375
filefp = ZlibFile(infile, mode=mode)
33833376
if(compresscheck == "catfile" or compresscheck == formatspecs['format_lower']):
3384-
try:
3385-
filefp = open(infile, mode, encoding="UTF-8")
3386-
except (ValueError, TypeError) as e:
3387-
filefp = open(infile, mode)
3377+
filefp = open(infile, mode)
33883378
if(not compresscheck):
3389-
try:
3390-
filefp = open(infile, mode, encoding="UTF-8")
3391-
except (ValueError, TypeError) as e:
3392-
filefp = open(infile, mode)
3379+
filefp = open(infile, mode)
33933380
except FileNotFoundError:
33943381
return False
33953382
try:
@@ -3406,11 +3393,8 @@ def UncompressString(infile):
34063393
if(compresscheck == "bzip2" and compresscheck in compressionsupport):
34073394
fileuz = BzipDecompressData(infile)
34083395
if(compresscheck == "zstd" and compresscheck in compressionsupport):
3409-
try:
3410-
import zstandard
3411-
except ImportError:
3412-
return False
3413-
fileuz = zstandard.decompress(infile)
3396+
decompressor = zstandard.ZstdDecompressor(threads=get_default_threads())
3397+
fileuz = decompressor.decompress(infile)
34143398
if(compresscheck == "lz4" and compresscheck in compressionsupport):
34153399
fileuz = lz4.frame.decompress(infile)
34163400
if((compresscheck == "lzo" or compresscheck == "lzop") and compresscheck in compressionsupport):
@@ -3571,10 +3555,11 @@ def CompressArchiveFile(fp, compression="auto", compressionlevel=None, formatspe
35713555
if(compression == "zstd" and compression in compressionsupport):
35723556
catfp = BytesIO()
35733557
if(compressionlevel is None):
3574-
compressionlevel = 10
3558+
compressionlevel = 9
35753559
else:
35763560
compressionlevel = int(compressionlevel)
3577-
catfp.write(zstandard.compress(fp.read(), level=compressionlevel))
3561+
compressor = zstandard.ZstdCompressor(compressionlevel, threads=get_default_threads())
3562+
catfp.write(compressor.compress(fp.read()))
35783563
if(compression == "lzma" and compression in compressionsupport):
35793564
catfp = BytesIO()
35803565
if(compressionlevel is None):
@@ -3617,10 +3602,8 @@ def CompressOpenFile(outfile, compressionenable=True, compressionlevel=None):
36173602
return False
36183603
fbasename = os.path.splitext(outfile)[0]
36193604
fextname = os.path.splitext(outfile)[1]
3620-
if(compressionlevel is None and fextname != ".zst"):
3605+
if(compressionlevel is None):
36213606
compressionlevel = 9
3622-
elif(compressionlevel is None and fextname == ".zst"):
3623-
compressionlevel = 10
36243607
else:
36253608
compressionlevel = int(compressionlevel)
36263609
if(sys.version_info[0] == 2):
@@ -3636,7 +3619,7 @@ def CompressOpenFile(outfile, compressionenable=True, compressionlevel=None):
36363619
outfp = bz2.open(outfile, mode, compressionlevel)
36373620
elif(fextname == ".zst" and "zstandard" in compressionsupport):
36383621
outfp = zstandard.open(
3639-
outfile, mode, zstandard.ZstdCompressor(level=compressionlevel))
3622+
outfile, mode, zstandard.ZstdCompressor(level=compressionlevel, threads=get_default_threads()))
36403623
elif(fextname == ".xz" and "xz" in compressionsupport):
36413624
try:
36423625
outfp = lzma.open(outfile, mode, format=lzma.FORMAT_XZ, filters=[{"id": lzma.FILTER_LZMA2, "preset": compressionlevel}])
@@ -8480,7 +8463,6 @@ def ZipFileListFiles(infile, verbose=False, returnfp=False):
84808463
try:
84818464
zipfp = zipfile.ZipFile(infile, "r", allowZip64=True)
84828465
except FileNotFoundError:
8483-
print(6)
84848466
return False
84858467
lcfi = 0
84868468
returnval = {}

0 commit comments

Comments
 (0)