a [dgb@sddlZddlZddlZddlZddlmZddlmZmZm Z m Z ddl mZgdZ GdddZ d d Zdd d ZdddZddZedS)N) StrictVersion) find_module PY_COMPILED PY_FROZEN PY_SOURCE)_imp)Requirerget_module_constantextract_constantc@sDeZdZdddZddZddZdd d Zdd d ZdddZdS)r NcCsF|dur|durt}|dur0||}|dur0d}|jt|`dS)N __version__)r__dict__updatelocalsself)rnamerequested_versionmoduleZhomepage attributeformatr.empty) contextlibcontextmanagerclosing)r$r.rrr maybe_closeTs  r2c Cszt||\}}\}}}} Wnty2YdS0t||tkr\|dt|} nX|tkrrt ||} nB|t krt ||d} n(t ||| } t | |dWdSWdn1s0Yt| ||S)Nexec)rr!r2rreadmarshalloadrrget_frozen_objectrcompileZ get_modulegetattrr ) rsymbolr#r"r$pathsuffixmodekindinfocodeZimportedrrrr _s    8r c Cs||jvrdSt|j|}d}d}d}|}t|D]H}|j} |j} | |kr\|j| }q8| |kr|| |kst| |kr||S|}q8dS)NZad)co_nameslistindexdisZBytecodeZopcodearg co_consts) rBr<r#Zname_idxZ STORE_NAMEZ STORE_GLOBALZ LOAD_CONSTconstZ byte_codeoprJrrrr |s  r cCs>tjdstjdkrdSd}|D]}t|=t|q"dS)NjavaZcli)r r )sysplatform startswithglobals__all__remove)Z incompatiblerrrr_update_globalss rU)r3N)r3)rOr7r/rIZdistutils.versionrrrrrrr rSr r2r r rUrrrrs  D  $