/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar

« back to all changes in this revision

Viewing changes to breezy/bzr/btree_index.py

  • Committer: Jelmer Vernooij
  • Date: 2020-07-05 12:50:01 UTC
  • mfrom: (7490.40.46 work)
  • mto: (7490.40.48 work)
  • mto: This revision was merged to the branch mainline in revision 7519.
  • Revision ID: jelmer@jelmer.uk-20200705125001-7s3vo0p55szbbws7
Merge lp:brz/3.1.

Show diffs side-by-side

added added

removed removed

Lines of Context:
17
17
 
18
18
"""B+Tree indices"""
19
19
 
20
 
from io import BytesIO
 
20
from __future__ import absolute_import, division
21
21
 
22
22
from ..lazy_import import lazy_import
23
23
lazy_import(globals(), """
41
41
    index,
42
42
    )
43
43
from .index import _OPTION_NODE_REFS, _OPTION_KEY_ELEMENTS, _OPTION_LEN
 
44
from ..sixish import (
 
45
    BytesIO,
 
46
    map,
 
47
    range,
 
48
    viewitems,
 
49
    viewvalues,
 
50
    )
44
51
 
45
52
 
46
53
_BTSIGNATURE = b"B+Tree Graph Index 2\n"
555
562
        if self._nodes_by_key is None:
556
563
            nodes_by_key = {}
557
564
            if self.reference_lists:
558
 
                for key, (references, value) in self._nodes.items():
 
565
                for key, (references, value) in viewitems(self._nodes):
559
566
                    key_dict = nodes_by_key
560
567
                    for subkey in key[:-1]:
561
568
                        key_dict = key_dict.setdefault(subkey, {})
562
569
                    key_dict[key[-1]] = key, value, references
563
570
            else:
564
 
                for key, (references, value) in self._nodes.items():
 
571
                for key, (references, value) in viewitems(self._nodes):
565
572
                    key_dict = nodes_by_key
566
573
                    for subkey in key[:-1]:
567
574
                        key_dict = key_dict.setdefault(subkey, {})
963
970
    def _cache_leaf_values(self, nodes):
964
971
        """Cache directly from key => value, skipping the btree."""
965
972
        if self._leaf_value_cache is not None:
966
 
            for node in nodes.values():
 
973
            for node in viewvalues(nodes):
967
974
                for key, value in node.all_items():
968
975
                    if key in self._leaf_value_cache:
969
976
                        # Don't add the rest of the keys, we've seen this node