/usr/local/lib/python3.6/site-packages/dill/__pycache__
NameSizeModeActions
detect.cpython-36.pyc86530644editdlrm
info.cpython-36.pyc104980644editdlrm
objtypes.cpython-36.pyc5050644editdlrm
pointers.cpython-36.pyc34060644editdlrm
settings.cpython-36.pyc3970644editdlrm
source.cpython-36.pyc267190644editdlrm
temp.cpython-36.pyc73020644editdlrm
_dill.cpython-36.pyc423680644editdlrm
_objects.cpython-36.pyc141340644editdlrm
__diff.cpython-36.pyc58540644editdlrm
__init__.cpython-36.pyc35310644editdlrm
Edit: /usr/local/lib/python3.6/site-packages/dill/__pycache__/detect.cpython-36.pyc (8653B)
3 8%Eg..@sdZddlZddlmZmZmZmZmZddlm Z m Z m Z m Z m Z ddlmZddlmZdd d d d d dddddddddgZd'ddZddZd(ddZdd Zd)ddZdd Zd*ddZd+d dZd,d!dZd"dZd-d#dZd.d$d Zd/d%d Zd0d&d Z dS)1z= Methods for detecting objects leading to pickling failures. N)ismethod isfunction istracebackisframeiscode)parent referenceatparentschildren)_trace)PY3baditems badobjectsbadtypescodeerrorsfreevars getmodule globalvars nestedcode nestedglobals outermostreferredglobalsreferrednestedtracevarnamesFcCsjddlm}|||}|s | r$|Str.d}nd}t|}ddlm}||dd}|t|jkrf|Sd S) zget the module of the objectr)rbuiltins __builtin__r)getnameT)forceN)inspectrr __import__sourcer varskeys)object _filenamer!Zgetmodmodulerr namer+5/usr/local/lib/python3.6/site-packages/dill/detect.pyrs     cstr?szoutermost..) rr__func__ __globals__ritemsim_func func_globals iteritemsr$r-join)funcZ_globalsr-lineslnumZ_localsr*r0r+)rr,r#s6      TcCsjt|}t|sgSt}xF|jD]<}|dkr0q"t|}|r"|j||r"|tt|ddO}q"Wt|S)zAget the code objects for any nested functions (e.g. in a closure)NT)recurse)rrset co_constsaddrlist)r9r<nestedcor+r+r,rHs  cCsftrd}d}nd}d}t|r(t||}t|r:t||}t|rH|j}t|rV|j}t|rb|SdS)z~get the code object for the given function or method NOTE: use dill.source.getsource(CODEOBJ) to get the source code r2__code__r5 func_codeN) rrgetattrrrtb_framerf_coder)r9r5rDr+r+r,rUs   c Cstrd}d}nd}d}ddl}t}xt||D]}x|j|D]}t||d}t||d|krl|j|q@t||d|kr|j|q@t|dd|kr|j|q@t|dr@||kr@|j|q@Wq0Wt|S) aJget functions defined inside of func (e.g. inner functions in a closure) NOTE: results may differ if the function has been executed or not. If len(nestedcode(func)) > len(referrednested(func)), try calling func(). If possible, python builds code objects, but delays building functions until func() is called. rCr2rDr5rNrGco_code) rgcr=rZ get_referrersrEr?hasattrr@) r9r<Zatt1Zatt0rIfuncsrBr0_r+r+r,rhs&    cCsptrd}d}d}n d}d}d}t|r0t||}t|rTt||pDf}t||j}niStddt||DS) zgget objects defined in enclosing code that are referred to by func returns a dict of {name:object}r2rC __closure__r5rD func_closurecss|]\}}||jfVqdS)N) cell_contents)r/r*cr+r+r,r1szfreevars..)rrrEr co_freevarsdictzip)r9r5rDrNZclosuresr+r+r,rs c Cst|}|dkrtSddlm}t}|d}tj|WdQRXx>|jjD].}d|krT|jdd jdd}|j |qTWx8t |d t D]&}|r|rt |r|j t|d d qWt|S) z.get the names of any globals found within funcNr)capturestdoutZ_GLOBAL()rr>T)r<)rr@temprTr=disgetvalue splitlinessplitr?rEtuplerupdater)r9r<rTnamesoutliner*rBr+r+r,rs  cCst|||jS)z@get the names of objects in the global scope referred to by func)rr&)r9r<builtinr+r+r,rsc strd}d}d}d}nd}d}d}d}t|r8t||}t|r |rVtttjni|t}}x.)rrrErr%rsumcopyr=rrOr_co_namesrgetrco_namerR) r9r<rcr5rDr6rNZ orig_funcr0Z_varskeyZ nested_funcr+)rdr,rsP          cCs t|}t|sfS|j|jfS)ztget names of variables defined by func returns a tuple (local vars, local vars referrenced by nested functions))rr co_varnames co_cellvars)r9r+r+r,rscsdt|ds$ddt|dfDSt|ddr8|jn|}gfdd|DddDS) z'get items in object that fail to pickle__iter__cSsg|]}|dk r|qS)Nr+)r/jr+r+r, szbaditems..rvaluesNcs(g|] }|krjt|dqS)r)appendr)r/i)_objexactsafer+r,roscSsg|]}|dk r|qS)Nr+)r/rnr+r+r,ros)rJrrErp)r0rtrur+)rsrtrur,rs  csFddlms$r dSStfddtDS)zget objects that fail to pickler)picklesNc3s<|]4}t|s|tt|dfVqdS)rN)rEr)r/attr)depthrtr0rvrur+r,r1 szbadobjects..)dillrvrRdir)r0rxrtrur+)rxrtr0rvrur,rs  csJddlms(r dStStfddtDS)z)get types for objects that fail to pickler)rvNc3s<|]4}t|s|tt|dfVqdS)rN)rEr)r/rw)rxrtr0rvrur+r,r1szbadtypes..)ryrvtyperRrz)r0rxrtrur+)rxrtr0rvrur,rs  c Csddlm}m}|syP||}|r:||ks:td||ft|t|ksbtdt|t|fdStk rddl}|jdSXi}xpt|D]d} yt || } Wn.tk rddl}|jd|| <wYnX|| ||st | |d|||| <qW|S)z*get errors for objects that fail to pickler)rvrfz$Unpickling produces %s instead of %sNr) ryrvrfAssertionErrorr{ Exceptionsysexc_inforzrEr) r0rxrtrurvrfZpikr~_dictrwZ_attrr+r+r,rs0  )NF)T)T)T)TF)TF)FF)rFF)rFF)rFF)!__doc__rZr"rrrrrZpointersrr r r r Z_dillr rr__all__rrrrrrrrrrrrrrr+r+r+r, s,      %  &   :