Skip to content

Commit

Permalink
parser: add FORCE_LZFSE flag
Browse files Browse the repository at this point in the history
for anyone who'd prefer to use the `lzfse` library over `apple-compress` (which is not recommended)
  • Loading branch information
m1stadev committed Apr 22, 2024
1 parent dfc2a0f commit 351b931
Showing 1 changed file with 13 additions and 10 deletions.
23 changes: 13 additions & 10 deletions pyimg4/parser.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
from os import getenv
from sys import platform
from typing import Any, List, Optional, Tuple, Union
from zlib import adler32
Expand All @@ -9,7 +10,18 @@
from .errors import CompressionError, UnexpectedDataError, UnexpectedTagError
from .types import Compression, KeybagType, Payload

if platform == 'darwin':
FORCE_LZFSE = getenv('PYIMG4_FORCE_LZFSE', None) is not None

if platform != 'darwin' or FORCE_LZFSE is True:
import lzfse

def _lzfse_compress(data: bytes) -> bytes:
return lzfse.compress(data)

def _lzfse_decompress(data: bytes, _: Optional[int] = None) -> bytes:
return lzfse.decompress(data)

else:
import apple_compress

def _lzfse_compress(data: bytes) -> bytes:
Expand All @@ -24,15 +36,6 @@ def _lzfse_decompress(data: bytes, decmp_size: Optional[int] = None) -> bytes:
decmp_size=decmp_size,
)

else:
import lzfse

def _lzfse_compress(data: bytes) -> bytes:
return lzfse.compress(data)

def _lzfse_decompress(data: bytes, _: Optional[int] = None) -> bytes:
return lzfse.decompress(data)


class _PyIMG4:
def __init__(self, data: Optional[bytes] = None) -> None:
Expand Down

0 comments on commit 351b931

Please sign in to comment.