mercurial/wireprotoframing.py
changeset 48913 f254fc73d956
parent 48900 5ed68dc64948
child 48946 642e31cb55f0
equal deleted inserted replaced
48912:a0674e916fb6 48913:f254fc73d956
   120 ARGUMENT_RECORD_HEADER = struct.Struct('<HH')
   120 ARGUMENT_RECORD_HEADER = struct.Struct('<HH')
   121 
   121 
   122 
   122 
   123 def humanflags(mapping, value):
   123 def humanflags(mapping, value):
   124     """Convert a numeric flags value to a human value, using a mapping table."""
   124     """Convert a numeric flags value to a human value, using a mapping table."""
   125     namemap = {v: k for k, v in pycompat.iteritems(mapping)}
   125     namemap = {v: k for k, v in mapping.items()}
   126     flags = []
   126     flags = []
   127     val = 1
   127     val = 1
   128     while value >= val:
   128     while value >= val:
   129         if value & val:
   129         if value & val:
   130             flags.append(namemap.get(val, b'<unknown 0x%02x>' % val))
   130             flags.append(namemap.get(val, b'<unknown 0x%02x>' % val))
   157     payload = attr.ib()
   157     payload = attr.ib()
   158 
   158 
   159     @encoding.strmethod
   159     @encoding.strmethod
   160     def __repr__(self):
   160     def __repr__(self):
   161         typename = b'<unknown 0x%02x>' % self.typeid
   161         typename = b'<unknown 0x%02x>' % self.typeid
   162         for name, value in pycompat.iteritems(FRAME_TYPES):
   162         for name, value in FRAME_TYPES.items():
   163             if value == self.typeid:
   163             if value == self.typeid:
   164                 typename = name
   164                 typename = name
   165                 break
   165                 break
   166 
   166 
   167         return (
   167         return (