if PY2:
text_type = unicode
- #string_types = (str, unicode)
- #unichr = unichr
- integer_types = (int, long)
else:
text_type = str
- #string_types = (str,)
- #unichr = chr
- integer_types = (int, )
if PY2:
- int2byte = chr
def byte2int(bs):
return ord(bs[0])
def indexbytes(buf, i):
def iterbytes(buf):
return (ord(byte) for byte in buf)
else:
- int2byte = operator.methodcaller("to_bytes", 1, "big")
byte2int = operator.itemgetter(0)
indexbytes = operator.getitem
iterbytes = iter
if PY2:
- keys = lambda d: d.iterkeys()
- values = lambda d: d.itervalues()
items = lambda d: d.iteritems()
else:
- keys = lambda d: d.keys()
- values = lambda d: d.values()
items = lambda d: d.items()
from dulwich._py3_compat import (
byte2int,
indexbytes,
- integer_types,
iterbytes,
items,
text_type,
for name, entry in sorted(items(entries), key=key_func):
mode, hexsha = entry
# Stricter type checks than normal to mirror checks in the C version.
- if not isinstance(mode, integer_types):
- raise TypeError('Expected integer/long for mode, got %r' % mode)
mode = int(mode)
if not isinstance(hexsha, bytes):
raise TypeError('Expected bytes for SHA, got %r' % hexsha)
from dulwich._py3_compat import (
iterbytes,
items,
- keys,
)
peeled_refs = {}
else:
f.write(b'# pack-refs with: peeled\n')
- for refname in sorted(keys(packed_refs)):
+ for refname in sorted(packed_refs.keys()):
f.write(git_line(packed_refs[refname], refname))
if refname in peeled_refs:
f.write(b'^' + peeled_refs[refname] + b'\n')