equal
deleted
inserted
replaced
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 ( |