Mercurial > public > mercurial-scm > hg
comparison mercurial/pure/parsers.py @ 43574:02802fa87b74
revlog: deprecate direct `nodemap` access
Now that all in-core user have been updated to the new API, we can deprecated
direct access to nodemap.
Differential Revision: https://phab.mercurial-scm.org/D7362
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Sat, 09 Nov 2019 13:23:55 +0100 |
parents | b56de57c45ce |
children | c207c46a86b9 |
comparison
equal
deleted
inserted
replaced
43573:d3df05bab081 | 43574:02802fa87b74 |
---|---|
45 def offset_type(offset, type): | 45 def offset_type(offset, type): |
46 return int(int(offset) << 16 | type) | 46 return int(int(offset) << 16 | type) |
47 | 47 |
48 | 48 |
49 class BaseIndexObject(object): | 49 class BaseIndexObject(object): |
50 @property | |
51 def nodemap(self): | |
52 msg = "index.nodemap is deprecated, " "use index.[has_node|rev|get_rev]" | |
53 util.nouideprecwarn(msg, b'5.3', stacklevel=2) | |
54 return self._nodemap | |
55 | |
50 @util.propertycache | 56 @util.propertycache |
51 def nodemap(self): | 57 def _nodemap(self): |
52 nodemap = revlogutils.NodeMap({nullid: nullrev}) | 58 nodemap = revlogutils.NodeMap({nullid: nullrev}) |
53 for r in range(0, len(self)): | 59 for r in range(0, len(self)): |
54 n = self[r][7] | 60 n = self[r][7] |
55 nodemap[n] = r | 61 nodemap[n] = r |
56 return nodemap | 62 return nodemap |
57 | 63 |
58 def has_node(self, node): | 64 def has_node(self, node): |
59 """return True if the node exist in the index""" | 65 """return True if the node exist in the index""" |
60 return node in self.nodemap | 66 return node in self._nodemap |
61 | 67 |
62 def rev(self, node): | 68 def rev(self, node): |
63 """return a revision for a node | 69 """return a revision for a node |
64 | 70 |
65 If the node is unknown, raise a RevlogError""" | 71 If the node is unknown, raise a RevlogError""" |
66 return self.nodemap[node] | 72 return self._nodemap[node] |
67 | 73 |
68 def get_rev(self, node): | 74 def get_rev(self, node): |
69 """return a revision for a node | 75 """return a revision for a node |
70 | 76 |
71 If the node is unknown, return None""" | 77 If the node is unknown, return None""" |
72 return self.nodemap.get(node) | 78 return self._nodemap.get(node) |
73 | 79 |
74 def _stripnodes(self, start): | 80 def _stripnodes(self, start): |
75 if 'nodemap' in vars(self): | 81 if '_nodemap' in vars(self): |
76 for r in range(start, len(self)): | 82 for r in range(start, len(self)): |
77 n = self[r][7] | 83 n = self[r][7] |
78 del self.nodemap[n] | 84 del self._nodemap[n] |
79 | 85 |
80 def clearcaches(self): | 86 def clearcaches(self): |
81 self.__dict__.pop('nodemap', None) | 87 self.__dict__.pop('_nodemap', None) |
82 | 88 |
83 def __len__(self): | 89 def __len__(self): |
84 return self._lgt + len(self._extra) | 90 return self._lgt + len(self._extra) |
85 | 91 |
86 def append(self, tup): | 92 def append(self, tup): |
87 if 'nodemap' in vars(self): | 93 if '_nodemap' in vars(self): |
88 self.nodemap[tup[7]] = len(self) | 94 self._nodemap[tup[7]] = len(self) |
89 self._extra.append(tup) | 95 self._extra.append(tup) |
90 | 96 |
91 def _check_index(self, i): | 97 def _check_index(self, i): |
92 if not isinstance(i, int): | 98 if not isinstance(i, int): |
93 raise TypeError(b"expecting int indexes") | 99 raise TypeError(b"expecting int indexes") |