File: //usr/lib/python3.7/__pycache__/pickle.cpython-37.pyc
B
îÇ{aíá ã @ s d Z ddlmZ ddlmZ ddlmZmZmZ ddlm Z ddl
mZ ddlZddlm
Z
dd lmZmZ ddlZddlZddlZddlZd
ddd
dddddg ZeefZdZdddddddgZdZdZG dd
„ d
eƒZG dd„ deƒZG dd„ deƒZ G dd „ d eƒZ!ydd!l"m#Z# W n e$k
r2 dZ#Y nX d"Z%d#Z&d$Z'd%Z(d&Z)d'Z*d(Z+d)Z,d*Z-d+Z.d,Z/d-Z0d.Z1d/Z2d0Z3d1Z4d2Z5d3Z6d4Z7d5Z8d6Z9d7Z:d8Z;d9Z<d:Z=d;Z>d<Z?d=Z@d>ZAd?ZBd@ZCdAZDdBZEdCZFdDZGdEZHdFZIdGZJdHZKdIZLdJZMdKZNdLZOdMZPdNZQdOZRdPZSdQZTdRZUdSZVdTZWdUZXdVZYdWZZdXZ[eKeUeVeWgZ\dYZ]dZZ^d[Z_d\Z`d]Zad^Zbd_Zcd`ZddaZedbZfdcZgddZhe idedf„ ejƒ D ƒ¡ G dgdh„ dhƒZkG didj„ djƒZldkdl„ Zmdmdn„ Zndodp„ Zodqdr„ ZpG dsdt„ dtƒZqG dudv„ dvƒZrd–dwdxœdydz„Zsd—dwdxœd{d|„Ztdwd}d~dœd€d„Zudwd}d~dœd‚dƒ„Zvy0dd„lwmZmZm Z mxZxmyZymzZzm{Z{m|Z|m}Z} W n4 e$k
rb eqer ZxZyeseteuevf\ZzZ{Z|Z}Y nX d…d†„ Z~ed‡krddl€Z€e€jdˆd‰Z‚e‚jƒdŠe€ „d‹¡dŒddŽ e‚jƒddd‘d’d“ e‚jƒd”d‘d•d“ e‚ …¡ Z†e†j‡rÜe~ƒ n>e†jˆsîe‚ ‰¡ n,ddlŠZŠx"e†jˆD ]Z‹e|e‹ƒZŒeŠ ŠeŒ¡ qþW dS )˜a Create portable serialized representations of Python objects.
See module copyreg for a mechanism for registering custom picklers.
See module pickletools source for extensive comments.
Classes:
Pickler
Unpickler
Functions:
dump(object, file)
dumps(object) -> string
load(file) -> object
loads(string) -> object
Misc variables:
__version__
format_version
compatible_formats
é )ÚFunctionType)Údispatch_table)Ú_extension_registryÚ_inverted_registryÚ_extension_cache)Úislice)ÚpartialN)Úmaxsize)ÚpackÚunpackÚPickleErrorÚ
PicklingErrorÚUnpicklingErrorÚPicklerÚ UnpicklerÚdumpÚdumpsÚloadÚloadsz4.0z1.0z1.1z1.2z1.3z2.0z3.0é é c @ s e Zd ZdZdS )r z6A common base class for the other pickling exceptions.N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__© r r ú/usr/lib/python3.7/pickle.pyr @ s c @ s e Zd ZdZdS )r
z]This exception is raised when an unpicklable object is passed to the
dump() method.
N)r r r r r r r r r
D s c @ s e Zd ZdZdS )r a This exception is raised when there is a problem unpickling an object,
such as a security violation.
Note that other exceptions may also be raised during unpickling, including
(but not necessarily limited to) AttributeError, EOFError, ImportError,
and IndexError.
N)r r r r r r r r r K s c @ s e Zd Zdd„ ZdS )Ú_Stopc C s
|| _ d S )N)Úvalue)Úselfr r r r Ú__init__Y s z_Stop.__init__N)r r r r r r r r r X s r )ÚPyStringMapó (ó .ó 0ó 1ó 2ó Fó Ió Jó Kó Ló Mó Nó Pó Qó Ró Só Tó Uó Vó Xó aó bó có dó }ó eó gó hó ió jó ló ]ó oó pó qó ró só tó )ó uó Gs I01
s I00
ó €ó ó ‚ó ƒó „ó …ó †ó ‡ó ˆó ‰ó Šó ‹ó Bó Có Œó ó Žó ó ó ‘ó ’ó “ó ”ó •c C s g | ]}t d |¡r|‘qS )z[A-Z][A-Z0-9_]+$)ÚreÚmatch)Ú.0Úxr r r ú
<listcomp>µ s rg c @ sF e Zd ZdZdZdd„ Zdd„ Zdd„ Zdd
d„Zdd
„ Z dd„ Z
dS )Ú_Framerr i c C s || _ d | _d S )N)Ú
file_writeÚ
current_frame)r ri r r r r ½ s z_Framer.__init__c C s t ¡ | _d S )N)ÚioÚBytesIOrj )r r r r Ú
start_framingÁ s z_Framer.start_framingc C s* | j r&| j ¡ dkr&| jdd d | _ d S )Nr T)Úforce)rj ÚtellÚcommit_frame)r r r r Úend_framingÄ s z_Framer.end_framingFc C sf | j rb| j }| ¡ | jks|rb| ¡ }| j}t|ƒ| jkrP|ttdt|ƒƒ ƒ ||ƒ t
¡ | _ d S )Nz<Q)rj ro Ú_FRAME_SIZE_TARGETÚ getbufferri ÚlenÚ_FRAME_SIZE_MINÚFRAMEr
rk rl )r rn ÚfÚdataÚwriter r r rp É s z_Framer.commit_framec C s | j r| j |¡S | |¡S d S )N)rj ry ri )r rx r r r ry á s z
_Framer.writec C s, | j }| jr| jdd ||ƒ ||ƒ d S )NT)rn )ri rj rp )r ÚheaderZpayloadry r r r Úwrite_large_bytesç s
z_Framer.write_large_bytesN)F)r r r ru rr r rm rq rp ry r{ r r r r rh ¸ s
rh c @ s. e Zd Zd
dd„Zdd„ Zdd„ Zdd „ ZdS )Ú _UnframerNc C s || _ || _d | _d S )N)Ú file_readÚ
file_readlinerj )r r} r~ Z file_tellr r r r ù s z_Unframer.__init__c C sT | j rF| j |¡}|s.|dkr.d | _ | |¡S t|ƒ|k rBtdƒ‚|S | |¡S d S )Nr z$pickle exhausted before end of frame)rj Úreadr} rt r )r Únrx r r r r þ s
z_Unframer.readc C sF | j r:| j ¡ }|s"d | _ | ¡ S |d dkr6tdƒ‚|S | ¡ S d S )Néÿÿÿÿé
z$pickle exhausted before end of frame)rj Úreadliner~ r )r rx r r r rƒ s
z_Unframer.readlinec C s2 | j r| j ¡ dkrtdƒ‚t | |¡¡| _ d S )Nó z4beginning of a new frame before end of current frame)rj r r rk rl r} )r Ú
frame_sizer r r Ú
load_frame s z_Unframer.load_frame)N)r r r r r rƒ r† r r r r r| ÷ s
r| c C sn xd| d¡D ]V}|dkr(td || ¡ƒ‚y| }t| |ƒ} W q tk
r` td || ¡ƒd ‚Y qX qW | |fS )NÚ.z<locals>z&Can't get local attribute {!r} on {!r}z Can't get attribute {!r} on {!r})ÚsplitÚAttributeErrorÚformatÚgetattr)ÚobjÚnameZsubpathÚparentr r r Ú
_getattribute! s
r c C sz t | ddƒ}|dk r|S x\ttj ¡ ƒD ]J\}}|dks(|dkrBq(yt||ƒd | krZ|S W q( tk
rp Y q(X q(W dS )z$Find the module an object belong to.r NÚ__main__r )r‹ ÚlistÚsysÚmodulesÚitemsr r‰ )rŒ r Úmodule_nameÚmoduler r r Úwhichmodule. s
r— c C sh | dkrdS | ¡ d? d }| j|ddd}| dk rd|dkrd|d d krd|d
d@ dkrd|dd… }|S )
aÒ Encode a long to a two's complement little-endian binary string.
Note that 0 is a special case, returning an empty string, to save a
byte in the LONG1 pickling context.
>>> encode_long(0)
b''
>>> encode_long(255)
b'\xff\x00'
>>> encode_long(32767)
b'\xff\x7f'
>>> encode_long(-256)
b'\x00\xff'
>>> encode_long(-32768)
b'\x00\x80'
>>> encode_long(-128)
b'\x80'
>>> encode_long(127)
b'\x7f'
>>>
r r„ r é ÚlittleT)Ú byteorderÚsignedr éÿ éþÿÿÿé€ N)Ú
bit_lengthÚto_bytes)rf ÚnbytesÚresultr r r Úencode_long? s r£ c C s t j| dddS )a\ Decode a long from a two's complement little-endian binary string.
>>> decode_long(b'')
0
>>> decode_long(b"\xff\x00")
255
>>> decode_long(b"\xff\x7f")
32767
>>> decode_long(b"\x00\xff")
-256
>>> decode_long(b"\x00\x80")
-32768
>>> decode_long(b"\x80")
-128
>>> decode_long(b"\x7f")
127
r™ T)rš r› )ÚintÚ
from_bytes)rx r r r Údecode_long] s r¦ c @ sh e Zd Zd7ddœdd„Zdd„ Zdd „ Zd
d„ Zdd
„ Zdd„ Zd8dd„Z dd„ Z
dd„ Zd9dd„Zi Z
dd„ Zee
edƒ<