Your IP : 3.148.231.77
�
��f�c@s�dZdddddgZiZddd�Zdd�ZyeWnek
rXYnXdd �Zeeee�d
d�Z dZ
dd�Zdd�Zdd�Z
iZiZiZdd�Zdd�Zdd�ZdS(u�Helper to provide extensibility for pickle.
This is only useful to add pickle support for extension types defined in
C, not for instances of user-defined classes.
upickleuconstructoru
add_extensionuremove_extensionuclear_extension_cachecCsBt|�std��n|t|<|dk r>t|�ndS(Nu$reduction functions must be callable(ucallableu TypeErrorudispatch_tableuNoneuconstructor(uob_typeupickle_functionuconstructor_ob((u,/opt/alt/python33/lib64/python3.3/copyreg.pyupickles
cCst|�std��ndS(Nuconstructors must be callable(ucallableu TypeError(uobject((u,/opt/alt/python33/lib64/python3.3/copyreg.pyuconstructorscCst|j|jffS(N(ucomplexurealuimag(uc((u,/opt/alt/python33/lib64/python3.3/copyreg.pyupickle_complex"supickle_complexcCsY|tkrtj|�}n7|j||�}|jtjkrU|j||�n|S(N(uobjectu__new__u__init__(uclsubaseustateuobj((u,/opt/alt/python33/lib64/python3.3/copyreg.pyu_reconstructor)su_reconstructorii cCs=|dkst�x;|jjD]'}t|d�r|jt@rPqqWt}|tkred}n1||jkr�td|j ��n||�}|j||f}y
|j
}Wn[tk
rt|dd�r�td��ny
|j
}Wntk
r
d}YnXYn
X|�}|r/t||fSt|fSdS(Niu __flags__ucan't pickle %s objectsu __slots__uNa class that defines __slots__ without defining __getstate__ cannot be pickled(uAssertionErroru __class__u__mro__uhasattru __flags__u _HEAPTYPEuobjectuNoneu TypeErroru__name__u__getstate__uAttributeErrorugetattru__dict__u_reconstructor(uselfuprotoubaseustateuargsugetstateudict((u,/opt/alt/python33/lib64/python3.3/copyreg.pyu
_reduce_ex6s0
u
_reduce_excGs|j||�S(N(u__new__(uclsuargs((u,/opt/alt/python33/lib64/python3.3/copyreg.pyu
__newobj__Wsu
__newobj__c Cs|jjd�}|dk r"|Sg}t|d�s:n�x�|jD]�}d|jkrD|jd}t|t�r�|f}nxl|D]a}|dkr�q�q�|jd�r�|jd�r�|j d|j
|f�q�|j |�q�WqDqDWy
||_WnYnX|S( u�Return a list of slot names for a given class.
This needs to find slots defined by the class and its bases, so we
can't simply return the __slots__ attribute. We must walk down
the Method Resolution Order and concatenate the __slots__ of each
class found there. (This assumes classes don't modify their
__slots__ attribute to misrepresent their slots after the class is
defined.)
u
__slotnames__u __slots__u__dict__u__weakref__u__u_%s%sN(u__dict__u__weakref__(u__dict__ugetuNoneuhasattru__mro__u
isinstanceustru
startswithuendswithuappendu__name__u
__slotnames__(uclsunamesucuslotsuname((u,/opt/alt/python33/lib64/python3.3/copyreg.pyu
_slotnamesZs,
u
_slotnamescCs�t|�}d|ko#dkns7td��n||f}tj|�|krqtj|�|krqdS|tkr�td|t|f��n|tkr�td|t|f��n|t|<|t|<dS(uRegister an extension code.ii���ucode out of rangeNu)key %s is already registered with code %su$code %s is already in use for key %s(uintu
ValueErroru_extension_registryugetu_inverted_registry(umoduleunameucodeukey((u,/opt/alt/python33/lib64/python3.3/copyreg.pyu
add_extension�s
cCsw||f}tj|�|ks6tj|�|krOtd||f��nt|=t|=|tkrst|=ndS(u0Unregister an extension code. For testing only.u%key %s is not registered with code %sN(u_extension_registryugetu_inverted_registryu
ValueErroru_extension_cache(umoduleunameucodeukey((u,/opt/alt/python33/lib64/python3.3/copyreg.pyuremove_extension�scCstj�dS(N(u_extension_cacheuclear(((u,/opt/alt/python33/lib64/python3.3/copyreg.pyuclear_extension_cache�sNi(u__doc__u__all__udispatch_tableuNoneupickleuconstructorucomplexu NameErrorupickle_complexu_reconstructoru _HEAPTYPEu
_reduce_exu
__newobj__u
_slotnamesu_extension_registryu_inverted_registryu_extension_cacheu
add_extensionuremove_extensionuclear_extension_cache(((u,/opt/alt/python33/lib64/python3.3/copyreg.pyu<module>s,
!8
?>