~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/groupcompress.py

Change settings to a dict. That way the attributes are still named.

Show diffs side-by-side

added added

removed removed

Lines of Context:
804
804
 
805
805
class _CommonGroupCompressor(object):
806
806
 
807
 
    def __init__(self):
 
807
    def __init__(self, settings=None):
808
808
        """Create a GroupCompressor."""
809
809
        self.chunks = []
810
810
        self._last = None
813
813
        self.labels_deltas = {}
814
814
        self._delta_index = None # Set by the children
815
815
        self._block = GroupCompressBlock()
 
816
        if settings is None:
 
817
            self._settings = {}
 
818
        else:
 
819
            self._settings = settings
816
820
 
817
821
    def compress(self, key, bytes, expected_sha, nostore_sha=None, soft=False):
818
822
        """Compress lines with label key.
933
937
 
934
938
class PythonGroupCompressor(_CommonGroupCompressor):
935
939
 
936
 
    def __init__(self, max_bytes_to_index=None):
 
940
    def __init__(self, settings=None):
937
941
        """Create a GroupCompressor.
938
942
 
939
943
        Used only if the pyrex version is not available.
940
944
        """
941
 
        super(PythonGroupCompressor, self).__init__()
 
945
        super(PythonGroupCompressor, self).__init__(settings)
942
946
        self._delta_index = LinesDeltaIndex([])
943
947
        # The actual content is managed by LinesDeltaIndex
944
948
        self.chunks = self._delta_index.lines
993
997
    """
994
998
 
995
999
    def __init__(self, settings=None):
996
 
        super(PyrexGroupCompressor, self).__init__()
997
 
        if settings is None:
998
 
            max_bytes_to_index = \
999
 
                GroupCompressVersionedFiles._DEFAULT_MAX_BYTES_TO_INDEX
1000
 
        else:
1001
 
            (max_bytes_to_index,) = settings
 
1000
        super(PyrexGroupCompressor, self).__init__(settings)
 
1001
        max_bytes_to_index = self._settings.get('max_bytes_to_index', 0)
1002
1002
        self._delta_index = DeltaIndex(max_bytes_to_index=max_bytes_to_index)
1003
1003
 
1004
1004
    def _compress(self, key, bytes, max_delta_size, soft=False):
1216
1216
    # versus running out of memory trying to track everything. The default max
1217
1217
    # gives 100% sampling of a 1MB file.
1218
1218
    _DEFAULT_MAX_BYTES_TO_INDEX = 1024 * 1024
1219
 
    _DEFAULT_COMPRESSOR_SETTINGS = (_DEFAULT_MAX_BYTES_TO_INDEX,)
 
1219
    _DEFAULT_COMPRESSOR_SETTINGS = {'max_bytes_to_index':
 
1220
                                     _DEFAULT_MAX_BYTES_TO_INDEX}
1220
1221
 
1221
1222
    def __init__(self, index, access, delta=True, _unadded_refs=None,
1222
1223
                 _group_cache=None):
1690
1691
            if val is None:
1691
1692
                val = self._DEFAULT_MAX_BYTES_TO_INDEX
1692
1693
            self._max_bytes_to_index = val
1693
 
        return (self._max_bytes_to_index,)
 
1694
        return {'max_bytes_to_index': self._max_bytes_to_index}
1694
1695
 
1695
1696
    def _make_group_compressor(self):
1696
1697
        return GroupCompressor(self._get_compressor_settings())