o ,]!@sdZddlmZddlmZmZmZmZmZddl m Z dZ dddd d d d d de dde de ddddZ dddddddddZ dZdZd Zd!Zd"Zd#Zd$Zd%Zd&Zd'Zd(d)Zd*d+ZGd,d-d-ejZd.S)/z Fixer for complicated imports ) fixer_base)NameString FromImportNewlineCommatouch_import_top)TACTIVEALLANCHORARCBASELINEBEVELBOTHBOTTOMBROWSEBUTTCASCADECENTERCHAR CHECKBUTTONCHORDCOMMANDCURRENTDISABLEDDOTBOXEENDEW EXCEPTIONEXTENDEDFALSEFIRSTFLATGROOVEHIDDEN HORIZONTALINSERTINSIDELASTLEFTMITERMOVETOMULTIPLENNENONONENORMALNSNSEWNUMERICNWOFFONOUTSIDEPAGESPIESLICE PROJECTING RADIOBUTTONRAISEDREADABLERIDGERIGHTROUNDSSCROLLSESEL SEL_FIRSTSEL_LAST SEPARATORSINGLESOLIDSUNKENSW StringTypesTOPTRUE TclVersion TkVersion UNDERLINEUNITSVERTICALWWORDWRITABLEXYYES wantobjects)"AbstractBasicAuthHandlerAbstractDigestAuthHandlerAbstractHTTPHandler BaseHandlerCacheFTPHandler FTPHandler FileHandlerHTTPBasicAuthHandlerHTTPCookieProcessorHTTPDefaultErrorHandlerHTTPDigestAuthHandler HTTPErrorHTTPErrorProcessor HTTPHandlerHTTPPasswordMgrHTTPPasswordMgrWithDefaultRealmHTTPRedirectHandler HTTPSHandlerOpenerDirectorProxyBasicAuthHandlerProxyDigestAuthHandler ProxyHandlerRequestStringIOURLErrorUnknownHandler addinfourl build_openerinstall_openerparse_http_listparse_keqv_list randombytes request_hosturlopen)ContentTooShortErrorFancyURLopener URLopenerbasejoin ftperrors getproxiesgetproxies_environment localhost pathname2urlquote quote_plus splitattr splithost splitnport splitpasswd splitport splitquerysplittag splittype splituser splitvaluethishostunquote unquote_plusunwrap url2pathname urlcleanup urlencoder urlretrieve)parse_qs parse_qsl urldefragurljoinurlparseurlsplit urlunparse urlunsplit)ndbmgnudumb)erroropen)whichdb)BaseHTTPRequestHandler HTTPServer)CGIHTTPRequestHandler)SimpleHTTPRequestHandler) FileDialogLoadFileDialogSaveFileDialog dialogstatestest) DirectoryOpenSaveAs_Dialog askdirectory askopenfileaskopenfilenameaskopenfilenames askopenfiles asksaveasfileasksaveasfilename) SimpleDialog)askfloat askinteger askstringDialog)CGIXMLRPCRequestHandlerSimpleXMLRPCDispatcherSimpleXMLRPCRequestHandlerSimpleXMLRPCServerlist_public_methodsremove_duplicatesresolve_dotted_attribute)DocCGIXMLRPCRequestHandlerDocXMLRPCRequestHandlerDocXMLRPCServer ServerHTMLDocXMLRPCDocGenerator)urllib2urllibrdbmanydbmrBaseHTTPServer CGIHTTPServerSimpleHTTPServerr tkFileDialogrtkSimpleDialogrr)rr)rrr)rr)rrr)rr)rr)rr)zurllib.requestz urllib.errorz urllib.parsez dbm.__init__z http.serverztkinter.filedialogztkinter.simpledialogz xmlrpc.serverz name='%s'z attr='%s'z using='%s'z$dotted_name=dotted_name< %s '.' %s >z?pow=power< %s trailer< '.' %s > trailer< '.' using=any > any* >z-pow=power< %s trailer< '.' using=any > any* >zfrom_import=import_from< 'from' %s 'import' (import_as_name< using=any 'as' renamed=any> | in_list=import_as_names< using=any* > | using='*' | using=NAME) >zSname_import=import_name< 'import' (%s | in_list=dotted_as_names< imp_list=any* >) >z8name_import_rename=dotted_as_name< %s 'as' renamed=any >zfrom_import_rename=import_from< 'from' %s 'import' (%s | import_as_name< %s 'as' renamed=any > | in_list=import_as_names< any* (%s | import_as_name< %s 'as' renamed=any >) any* >) >cCsNddtD}dddd|D}|d7}|ddd|Dd7}|S)zI Builds a pattern for all toplevel names (urllib, http, etc) cSsg|]}|dqS).)split.0modrB/usr/lib/python3/dist-packages/libpasteurize/fixes/fix_imports2.py sz*all_modules_subpattern..z( z | cSs(g|]}tt|dt|dfqS)r) dotted_name simple_name simple_attrrrrrrs   cSs$g|]}|ddkrt|dqS)r__init__r)rrrrrrs$z ))MAPPINGjoin)names_dot_attrsretrrrall_modules_subpatterns  rc csttV|D]B\}}|d\}}t|}t|}t||f}t|Vt||fV|dkr>t|Vt |Vt |Vt |||||fVq dS)z mapping1: A dict mapping py3k modules to all possible py2k replacements mapping2: A dict mapping py2k modules to the things they do This builds a HUGE pattern to match all ways that things can be imported rrN) from_importritemsrrrr name_import power_twoname power_onenamename_import_renamefrom_import_rename) mapping1mapping2py3kpy2knameattrs_names_attrd_namerrrbuild_import_patterns      rc@s(eZdZdZdeeeZddZ dS) FixImports2z | cCstdd|dS)Nfuturestandard_libraryr)selfnoderesultsrrr transformszFixImports2.transformN) __name__ __module__ __qualname__ run_orderrrr PY2MODULESPATTERNrrrrrrs rN)__doc__lib2to3rlib2to3.fixer_utilrrrrrlibfuturize.fixer_utilr TK_BASE_NAMESrrrr simple_usingrrrrrrrrrBaseFixrrrrrsV    =