10000 fix bugs. · popravich/msgpack-python@d84a403 · GitHub
[go: up one dir, main page]

Skip to content

Commit d84a403

Browse files
committed
fix bugs.
1 parent e3fee4d commit d84a403

File tree

2 files changed

+5
-17
lines changed

2 files changed

+5
-17
lines changed

msgpack/__init__.py

Lines changed: 4 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -2,30 +2,18 @@
22
from msgpack._version import version
33
from msgpack.exceptions import *
44

5+
from collections import namedtuple
56

6-
class ExtType(object):
7-
__slots__ = ('code', 'data')
87

9-
def __init__(self, code, data):
8+
class ExtType(namedtuple('ExtType', 'code data')):
9+
def __new__(cls, code, data):
1010
if not isinstance(code, int):
1111
raise TypeError("code must be int")
1212
if not isinstance(data, bytes):
1313
raise TypeError("data must be bytes")
1414
if not 0 <= code <= 127:
1515
raise ValueError("code must be 0~127")
16-
self.code = code
17-
self.data = data
18-
19-
def __eq__(self, other):
20-
if not isinstance(other, ExtType):
21-
return NotImplemented
22-
return self.code == other.code and self.data == other.data
23-
24-
def __hash__(self):
25-
return self.code ^ hash(self.data)
26-
27-
def __repr__(self):
28-
return "msgpack.ExtType(%r, %r)" % (self.code, self.data)
16+
return super(ExtType, cls).__new__(cls, code, data)
2917

3018

3119
import os

msgpack/_packer.pyx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -186,7 +186,7 @@ cdef class Packer(object):
186186
# This should be before Tuple because ExtType is namedtuple.
187187
longval = o.code
188188
rawval = o.data
189-
L = len(o[1])
189+
L = len(o.data)
190190
ret = msgpack_pack_ext(&self.pk, longval, L)
191191
ret = msgpack_pack_raw_body(&self.pk, rawval, L)
192192
elif PyTuple_Check(o) or PyList_Check(o):

0 commit comments

Comments
 (0)
0