diff --git a/remotefilelog/lz4wrapper.py b/remotefilelog/lz4wrapper.py --- a/remotefilelog/lz4wrapper.py +++ b/remotefilelog/lz4wrapper.py @@ -1,26 +1,29 @@ from mercurial import error from mercurial.i18n import _ -import lz4 +from mercurial import demandimport +demandimport.ignore.extend(['pkgutil', 'pkg_resources', '__main__']) 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 - 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 +with demandimport.deactivated(): + import lz4 + try: - lzcompresshc = lz4.compressHC - lz4compress = lz4.compress - lz4decompress = lz4.decompress - except (AttributeError, ImportError): - pass + # newer python-lz4 has these functions deprecated as top-level ones, + # so we are trying to import from lz4.block first + 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: + try: + lzcompresshc = lz4.compressHC + lz4compress = lz4.compress + lz4decompress = lz4.decompress + except AttributeError: + pass