mercurial/obsolete.py
branchstable
changeset 49366 288de6f5d724
parent 49306 2e726c934fcd
child 49424 360c156e1f81
--- a/mercurial/obsolete.py	Thu Jun 16 15:15:03 2022 +0200
+++ b/mercurial/obsolete.py	Thu Jun 16 15:28:54 2022 +0200
@@ -67,9 +67,8 @@
 comment associated with each format for details.
 
 """
-from __future__ import absolute_import
 
-import errno
+import binascii
 import struct
 
 from .i18n import _
@@ -245,11 +244,11 @@
                     if len(p) != 20:
                         parents = None
                         break
-            except TypeError:
+            except binascii.Error:
                 # if content cannot be translated to nodeid drop the data.
                 parents = None
 
-        metadata = tuple(sorted(pycompat.iteritems(metadata)))
+        metadata = tuple(sorted(metadata.items()))
 
         yield (pre, sucs, flags, metadata, date, parents)
 
@@ -279,7 +278,7 @@
     """Return encoded metadata string to string mapping.
 
     Assume no ':' in key and no '\0' in both key and value."""
-    for key, value in pycompat.iteritems(meta):
+    for key, value in meta.items():
         if b':' in key or b'\0' in key:
             raise ValueError(b"':' and '\0' are forbidden in metadata key'")
         if b'\0' in value:
@@ -339,8 +338,6 @@
 _fm1nodesha256size = _calcsize(_fm1nodesha256)
 _fm1fsize = _calcsize(_fm1fixed)
 _fm1parentnone = 3
-_fm1parentshift = 14
-_fm1parentmask = _fm1parentnone << _fm1parentshift
 _fm1metapair = b'BB'
 _fm1metapairsize = _calcsize(_fm1metapair)
 
@@ -399,7 +396,7 @@
         off = o3 + metasize * nummeta
         metapairsize = unpack(b'>' + (metafmt * nummeta), data[o3:off])
         metadata = []
-        for idx in pycompat.xrange(0, len(metapairsize), 2):
+        for idx in range(0, len(metapairsize), 2):
             o1 = off + metapairsize[idx]
             o2 = o1 + metapairsize[idx + 1]
             metadata.append((data[off:o1], data[o1:o2]))
@@ -542,7 +539,7 @@
             )
 
 
-class obsstore(object):
+class obsstore:
     """Store obsolete markers
 
     Markers can be accessed with two mappings:
@@ -584,11 +581,10 @@
         if not self._cached('_all'):
             try:
                 return self.svfs.stat(b'obsstore').st_size > 1
-            except OSError as inst:
-                if inst.errno != errno.ENOENT:
-                    raise
+            except FileNotFoundError:
                 # just build an empty _all list if no obsstore exists, which
                 # avoids further stat() syscalls
+                pass
         return bool(self._all)
 
     __bool__ = __nonzero__
@@ -649,11 +645,9 @@
                 if len(succ) != 20:
                     raise ValueError(succ)
         if prec in succs:
-            raise ValueError(
-                'in-marker cycle with %s' % pycompat.sysstr(hex(prec))
-            )
+            raise ValueError('in-marker cycle with %s' % prec.hex())
 
-        metadata = tuple(sorted(pycompat.iteritems(metadata)))
+        metadata = tuple(sorted(metadata.items()))
         for k, v in metadata:
             try:
                 # might be better to reject non-ASCII keys