--- 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