comparison mercurial/context.py @ 33022:ce96efec8112

py3: add utility to forward __str__() to __bytes__() It calls unifromlocal() instead of sysstr() because __bytes__() may contain locale-dependent values such as paths.
author Yuya Nishihara <yuya@tcha.org>
date Sat, 24 Jun 2017 13:48:04 +0900
parents daccadd75760
children 873f638fd7db
comparison
equal deleted inserted replaced
33021:24c0a9a7fa86 33022:ce96efec8112
63 o._rev = nullrev 63 o._rev = nullrev
64 o._node = nullid 64 o._node = nullid
65 65
66 return o 66 return o
67 67
68 def __str__(self):
69 r = short(self.node())
70 if pycompat.ispy3:
71 return r.decode('ascii')
72 return r
73
74 def __bytes__(self): 68 def __bytes__(self):
75 return short(self.node()) 69 return short(self.node())
70
71 __str__ = encoding.strmethod(__bytes__)
76 72
77 def __int__(self): 73 def __int__(self):
78 return self.rev() 74 return self.rev()
79 75
80 def __repr__(self): 76 def __repr__(self):
708 # file is missing 704 # file is missing
709 return False 705 return False
710 706
711 __bool__ = __nonzero__ 707 __bool__ = __nonzero__
712 708
713 def __str__(self):
714 try:
715 return "%s@%s" % (self.path(), self._changectx)
716 except error.LookupError:
717 return "%s@???" % self.path()
718
719 def __bytes__(self): 709 def __bytes__(self):
720 try: 710 try:
721 return "%s@%s" % (self.path(), self._changectx) 711 return "%s@%s" % (self.path(), self._changectx)
722 except error.LookupError: 712 except error.LookupError:
723 return "%s@???" % self.path() 713 return "%s@???" % self.path()
714
715 __str__ = encoding.strmethod(__bytes__)
724 716
725 def __repr__(self): 717 def __repr__(self):
726 return "<%s %s>" % (type(self).__name__, str(self)) 718 return "<%s %s>" % (type(self).__name__, str(self))
727 719
728 def __hash__(self): 720 def __hash__(self):
1304 raise error.Abort(_('branch name not in UTF-8!')) 1296 raise error.Abort(_('branch name not in UTF-8!'))
1305 self._extra['branch'] = branch 1297 self._extra['branch'] = branch
1306 if self._extra['branch'] == '': 1298 if self._extra['branch'] == '':
1307 self._extra['branch'] = 'default' 1299 self._extra['branch'] = 'default'
1308 1300
1309 def __str__(self):
1310 return str(self._parents[0]) + r"+"
1311
1312 def __bytes__(self): 1301 def __bytes__(self):
1313 return bytes(self._parents[0]) + "+" 1302 return bytes(self._parents[0]) + "+"
1303
1304 __str__ = encoding.strmethod(__bytes__)
1314 1305
1315 def __nonzero__(self): 1306 def __nonzero__(self):
1316 return True 1307 return True
1317 1308
1318 __bool__ = __nonzero__ 1309 __bool__ = __nonzero__