| 
									
										
										
										
											2009-06-10 10:58:09 +09:00
										 |  |  | # coding: utf-8 | 
					
						
							| 
									
										
										
										
											2019-05-12 14:44:32 +02:00
										 |  |  | from ._version import version | 
					
						
							|  |  |  | from .exceptions import * | 
					
						
							| 
									
										
										
										
											2019-12-05 18:29:15 +09:00
										 |  |  | from .ext import ExtType, Timestamp | 
					
						
							| 
									
										
										
										
											2013-01-28 12:27:24 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-11-28 20:23:34 +09:00
										 |  |  | import os | 
					
						
							|  |  |  | import sys | 
					
						
							| 
									
										
										
										
											2013-10-21 00:59:22 +09:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-10-17 11:29:36 +09:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-12-05 18:50:13 +09:00
										 |  |  | if os.environ.get("MSGPACK_PUREPYTHON") or sys.version_info[0] == 2: | 
					
						
							| 
									
										
										
										
											2019-05-12 14:44:32 +02:00
										 |  |  |     from .fallback import Packer, unpackb, Unpacker | 
					
						
							| 
									
										
										
										
											2013-01-29 14:47:16 +09:00
										 |  |  | else: | 
					
						
							|  |  |  |     try: | 
					
						
							| 
									
										
										
										
											2019-05-12 14:44:32 +02:00
										 |  |  |         from ._cmsgpack import Packer, unpackb, Unpacker | 
					
						
							| 
									
										
										
										
											2013-01-29 14:47:16 +09:00
										 |  |  |     except ImportError: | 
					
						
							| 
									
										
										
										
											2019-05-12 14:44:32 +02:00
										 |  |  |         from .fallback import Packer, unpackb, Unpacker | 
					
						
							| 
									
										
										
										
											2009-06-10 10:58:09 +09:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-10-17 08:44:25 +09:00
										 |  |  | 
 | 
					
						
							|  |  |  | def pack(o, stream, **kwargs): | 
					
						
							|  |  |  |     """
 | 
					
						
							|  |  |  |     Pack object `o` and write it to `stream` | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     See :class:`Packer` for options. | 
					
						
							|  |  |  |     """
 | 
					
						
							|  |  |  |     packer = Packer(**kwargs) | 
					
						
							|  |  |  |     stream.write(packer.pack(o)) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-10-20 20:28:32 +09:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-10-17 08:44:25 +09:00
										 |  |  | def packb(o, **kwargs): | 
					
						
							|  |  |  |     """
 | 
					
						
							|  |  |  |     Pack object `o` and return packed bytes | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     See :class:`Packer` for options. | 
					
						
							|  |  |  |     """
 | 
					
						
							|  |  |  |     return Packer(**kwargs).pack(o) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-02-23 15:41:21 +09:00
										 |  |  | 
 | 
					
						
							|  |  |  | def unpack(stream, **kwargs): | 
					
						
							|  |  |  |     """
 | 
					
						
							|  |  |  |     Unpack an object from `stream`. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     Raises `ExtraData` when `stream` contains extra bytes. | 
					
						
							|  |  |  |     See :class:`Unpacker` for options. | 
					
						
							|  |  |  |     """
 | 
					
						
							|  |  |  |     data = stream.read() | 
					
						
							|  |  |  |     return unpackb(data, **kwargs) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-06-15 17:51:24 +09:00
										 |  |  | # alias for compatibility to simplejson/marshal/pickle. | 
					
						
							|  |  |  | load = unpack | 
					
						
							|  |  |  | loads = unpackb | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | dump = pack | 
					
						
							|  |  |  | dumps = packb |