mirror of
https://github.com/facebook/sapling.git
synced 2024-10-10 16:57:49 +03:00
cc33c003c2
Summary: `lz4.block` needs to be imported explicitly before being able to use `lz4.block.compress`. We didn't notice this because we're using an old version of `python-lz4`. Reviewed By: DurhamG Differential Revision: D6879877 fbshipit-source-id: 37e8fdc00386bef3733753f925ad308f42e5a740
29 lines
907 B
Python
29 lines
907 B
Python
from __future__ import absolute_import
|
|
from mercurial import error
|
|
from mercurial.i18n import _
|
|
|
|
import lz4
|
|
|
|
def missing(*args, **kwargs):
|
|
raise error.Abort(_('remotefilelog extension requires lz4 support'))
|
|
|
|
lz4compress = lzcompresshc = lz4decompress = missing
|
|
|
|
try:
|
|
# newer python-lz4 has these functions deprecated as top-level ones,
|
|
# so we are trying to import from lz4.block first
|
|
import lz4.block
|
|
def _compressHC(*args, **kwargs):
|
|
return lz4.block.compress(*args, mode='high_compression', **kwargs)
|
|
lzcompresshc = _compressHC
|
|
lz4compress = lz4.block.compress
|
|
lz4decompress = lz4.block.decompress
|
|
except (AttributeError, ImportError):
|
|
# ImportError is possible due to DemandImport
|
|
try:
|
|
lzcompresshc = lz4.compressHC
|
|
lz4compress = lz4.compress
|
|
lz4decompress = lz4.decompress
|
|
except (AttributeError, ImportError):
|
|
pass
|