summaryrefslogtreecommitdiff
path: root/msgpack/__init__.py
diff options
context:
space:
mode:
authorINADA Naoki <songofacandy@gmail.com>2013-10-20 09:18:50 -0700
committerINADA Naoki <songofacandy@gmail.com>2013-10-20 09:18:50 -0700
commite802abebf18f0126aaad0c7bdf8ba0042cb4602d (patch)
tree67e86c2d28bce248448c8bb92ba196c1381c5d12 /msgpack/__init__.py
parentec0691fb2c7ca28eb4544b98dcb5e59933233997 (diff)
parentd84a403bc0bbbb36c4a5833e00269eef6c4a91ae (diff)
downloadmsgpack-python-e802abebf18f0126aaad0c7bdf8ba0042cb4602d.tar.gz
Merge pull request #79 from msgpack/newspec
[WIP] Newspec stage 2.
Diffstat (limited to 'msgpack/__init__.py')
-rw-r--r--msgpack/__init__.py14
1 files changed, 12 insertions, 2 deletions
diff --git a/msgpack/__init__.py b/msgpack/__init__.py
index 79107b6..a958025 100644
--- a/msgpack/__init__.py
+++ b/msgpack/__init__.py
@@ -4,7 +4,17 @@ from msgpack.exceptions import *
from collections import namedtuple
-ExtType = namedtuple('ExtType', 'code data')
+
+class ExtType(namedtuple('ExtType', 'code data')):
+ def __new__(cls, code, data):
+ if not isinstance(code, int):
+ raise TypeError("code must be int")
+ if not isinstance(data, bytes):
+ raise TypeError("data must be bytes")
+ if not 0 <= code <= 127:
+ raise ValueError("code must be 0~127")
+ return super(ExtType, cls).__new__(cls, code, data)
+
import os
if os.environ.get('MSGPACK_PUREPYTHON'):
@@ -26,6 +36,7 @@ def pack(o, stream, **kwargs):
packer = Packer(**kwargs)
stream.write(packer.pack(o))
+
def packb(o, **kwargs):
"""
Pack object `o` and return packed bytes
@@ -40,4 +51,3 @@ loads = unpackb
dump = pack
dumps = packb
-