Mercurial > hg
view hgext/remotefilelog/lz4wrapper.py @ 40495:3a333a582d7b
remotefilelog: import pruned-down remotefilelog extension from hg-experimental
This is remotefilelog as of my recent patches for compatibility with
current tip of hg, minus support for old versions of Mercurial and
some FB-specific features like their treemanifest extension and
fetching linkrev data from a patched phabricator. The file extutil.py
moved from hgext3rd to remotefilelog.
This is not yet ready to be landed, consider it a preview for
now. Planned changes include:
* replace lz4 with zstd
* rename some capabilities, requirements and wireproto commands to mark
them as experimental
* consolidate bits of shallowutil with related functions (eg readfile)
I'm certainly open to other (small) changes, but my rough mission is
to land this largely as-is so we can use it as a model of the
functionality we need going forward for lazy-fetching of file contents
from a server.
# no-check-commit because of a few foo_bar functions
Differential Revision: https://phab.mercurial-scm.org/D4782
author | Augie Fackler <augie@google.com> |
---|---|
date | Thu, 27 Sep 2018 13:03:19 -0400 |
parents | |
children |
line wrap: on
line source
from __future__ import absolute_import from mercurial.i18n import _ from mercurial import ( demandimport, error, util, ) if util.safehasattr(demandimport, 'IGNORES'): # Since 670eb4fa1b86 demandimport.IGNORES.update(['pkgutil', 'pkg_resources', '__main__']) else: demandimport.ignore.extend(['pkgutil', 'pkg_resources', '__main__']) def missing(*args, **kwargs): raise error.Abort(_('remotefilelog extension requires lz4 support')) lz4compress = lzcompresshc = lz4decompress = missing with demandimport.deactivated(): import lz4 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: try: lzcompresshc = lz4.compressHC lz4compress = lz4.compress lz4decompress = lz4.decompress except AttributeError: pass