comparison mercurial/context.py @ 8157:77c5877a668c

context: use Python 2.4 decorator syntax
author Martin Geisler <mg@lazybytes.net>
date Fri, 24 Apr 2009 18:47:15 +0200
parents 127281884959
children dd8d5be57d65
comparison
equal deleted inserted replaced
8156:9fd0822c2ec3 8157:77c5877a668c
58 return not (self == other) 58 return not (self == other)
59 59
60 def __nonzero__(self): 60 def __nonzero__(self):
61 return self._rev != nullrev 61 return self._rev != nullrev
62 62
63 @propertycache
63 def _changeset(self): 64 def _changeset(self):
64 return self._repo.changelog.read(self.node()) 65 return self._repo.changelog.read(self.node())
65 _changeset = propertycache(_changeset) 66
66 67 @propertycache
67 def _manifest(self): 68 def _manifest(self):
68 return self._repo.manifest.read(self._changeset[0]) 69 return self._repo.manifest.read(self._changeset[0])
69 _manifest = propertycache(_manifest) 70
70 71 @propertycache
71 def _manifestdelta(self): 72 def _manifestdelta(self):
72 return self._repo.manifest.readdelta(self._changeset[0]) 73 return self._repo.manifest.readdelta(self._changeset[0])
73 _manifestdelta = propertycache(_manifestdelta) 74
74 75 @propertycache
75 def _parents(self): 76 def _parents(self):
76 p = self._repo.changelog.parentrevs(self._rev) 77 p = self._repo.changelog.parentrevs(self._rev)
77 if p[1] == nullrev: 78 if p[1] == nullrev:
78 p = p[:-1] 79 p = p[:-1]
79 return [changectx(self._repo, x) for x in p] 80 return [changectx(self._repo, x) for x in p]
80 _parents = propertycache(_parents)
81 81
82 def __contains__(self, key): 82 def __contains__(self, key):
83 return key in self._manifest 83 return key in self._manifest
84 84
85 def __getitem__(self, key): 85 def __getitem__(self, key):
199 if changectx is not None: 199 if changectx is not None:
200 self._changectx = changectx 200 self._changectx = changectx
201 if fileid is not None: 201 if fileid is not None:
202 self._fileid = fileid 202 self._fileid = fileid
203 203
204 @propertycache
204 def _changectx(self): 205 def _changectx(self):
205 return changectx(self._repo, self._changeid) 206 return changectx(self._repo, self._changeid)
206 _changectx = propertycache(_changectx) 207
207 208 @propertycache
208 def _filelog(self): 209 def _filelog(self):
209 return self._repo.file(self._path) 210 return self._repo.file(self._path)
210 _filelog = propertycache(_filelog) 211
211 212 @propertycache
212 def _changeid(self): 213 def _changeid(self):
213 if '_changectx' in self.__dict__: 214 if '_changectx' in self.__dict__:
214 return self._changectx.rev() 215 return self._changectx.rev()
215 else: 216 else:
216 return self._filelog.linkrev(self._filerev) 217 return self._filelog.linkrev(self._filerev)
217 _changeid = propertycache(_changeid) 218
218 219 @propertycache
219 def _filenode(self): 220 def _filenode(self):
220 if '_fileid' in self.__dict__: 221 if '_fileid' in self.__dict__:
221 return self._filelog.lookup(self._fileid) 222 return self._filelog.lookup(self._fileid)
222 else: 223 else:
223 return self._changectx.filenode(self._path) 224 return self._changectx.filenode(self._path)
224 _filenode = propertycache(_filenode) 225
225 226 @propertycache
226 def _filerev(self): 227 def _filerev(self):
227 return self._filelog.rev(self._filenode) 228 return self._filelog.rev(self._filenode)
228 _filerev = propertycache(_filerev) 229
229 230 @propertycache
230 def _repopath(self): 231 def _repopath(self):
231 return self._path 232 return self._path
232 _repopath = propertycache(_repopath)
233 233
234 def __nonzero__(self): 234 def __nonzero__(self):
235 try: 235 try:
236 self._filenode 236 self._filenode
237 return True 237 return True
513 return True 513 return True
514 514
515 def __contains__(self, key): 515 def __contains__(self, key):
516 return self._repo.dirstate[key] not in "?r" 516 return self._repo.dirstate[key] not in "?r"
517 517
518 @propertycache
518 def _manifest(self): 519 def _manifest(self):
519 """generate a manifest corresponding to the working directory""" 520 """generate a manifest corresponding to the working directory"""
520 521
521 man = self._parents[0].manifest().copy() 522 man = self._parents[0].manifest().copy()
522 copied = self._repo.dirstate.copies() 523 copied = self._repo.dirstate.copies()
534 for f in deleted + removed: 535 for f in deleted + removed:
535 if f in man: 536 if f in man:
536 del man[f] 537 del man[f]
537 538
538 return man 539 return man
539 _manifest = propertycache(_manifest) 540
540 541 @propertycache
541 def _status(self): 542 def _status(self):
542 return self._repo.status(unknown=True) 543 return self._repo.status(unknown=True)
543 _status = propertycache(_status) 544
544 545 @propertycache
545 def _user(self): 546 def _user(self):
546 return self._repo.ui.username() 547 return self._repo.ui.username()
547 _user = propertycache(_user) 548
548 549 @propertycache
549 def _date(self): 550 def _date(self):
550 return util.makedate() 551 return util.makedate()
551 _date = propertycache(_date) 552
552 553 @propertycache
553 def _parents(self): 554 def _parents(self):
554 p = self._repo.dirstate.parents() 555 p = self._repo.dirstate.parents()
555 if p[1] == nullid: 556 if p[1] == nullid:
556 p = p[:-1] 557 p = p[:-1]
557 self._parents = [changectx(self._repo, x) for x in p] 558 self._parents = [changectx(self._repo, x) for x in p]
558 return self._parents 559 return self._parents
559 _parents = propertycache(_parents)
560 560
561 def manifest(self): return self._manifest 561 def manifest(self): return self._manifest
562 562
563 def user(self): return self._user or self._repo.ui.username() 563 def user(self): return self._user or self._repo.ui.username()
564 def date(self): return self._date 564 def date(self): return self._date
629 if filelog: 629 if filelog:
630 self._filelog = filelog 630 self._filelog = filelog
631 if workingctx: 631 if workingctx:
632 self._changectx = workingctx 632 self._changectx = workingctx
633 633
634 @propertycache
634 def _changectx(self): 635 def _changectx(self):
635 return workingctx(self._repo) 636 return workingctx(self._repo)
636 _changectx = propertycache(_changectx) 637
637 638 @propertycache
638 def _repopath(self): 639 def _repopath(self):
639 return self._repo.dirstate.copied(self._path) or self._path 640 return self._repo.dirstate.copied(self._path) or self._path
640 _repopath = propertycache(_repopath) 641
641 642 @propertycache
642 def _filelog(self): 643 def _filelog(self):
643 return self._repo.file(self._repopath) 644 return self._repo.file(self._repopath)
644 _filelog = propertycache(_filelog)
645 645
646 def __nonzero__(self): 646 def __nonzero__(self):
647 return True 647 return True
648 648
649 def __str__(self): 649 def __str__(self):