
    4pf!                         d Z ddlmZ ddlmZmZmZmZmZ ddl	m
Z
 dZdddd	d
ddddedz   dedz   edz   dddZdddddddddZdZdZd Zd!Zd"Zd#Zd$Zd%Zd&Zd'Zd( Zd) Z G d* d+ej                  Zd,S )-z
Fixer for complicated imports
    )
fixer_base)NameString
FromImportNewlineCommatouch_import_top)TACTIVEALLANCHORARCBASELINEBEVELBOTHBOTTOMBROWSEBUTTCASCADECENTERCHARCHECKBUTTONCHORDCOMMANDCURRENTDISABLEDDOTBOXEENDEW	EXCEPTIONEXTENDEDFALSEFIRSTFLATGROOVEHIDDEN
HORIZONTALINSERTINSIDELASTLEFTMITERMOVETOMULTIPLENNENONONENORMALNSNSEWNUMERICNWOFFONOUTSIDEPAGESPIESLICE
PROJECTINGRADIOBUTTONRAISEDREADABLERIDGERIGHTROUNDSSCROLLSESEL	SEL_FIRSTSEL_LAST	SEPARATORSINGLESOLIDSUNKENSWStringTypesTOPTRUE
TclVersion	TkVersion	UNDERLINEUNITSVERTICALWWORDWRITABLEXYYESwantobjects)"AbstractBasicAuthHandlerAbstractDigestAuthHandlerAbstractHTTPHandlerBaseHandlerCacheFTPHandler
FTPHandlerFileHandlerHTTPBasicAuthHandlerHTTPCookieProcessorHTTPDefaultErrorHandlerHTTPDigestAuthHandler	HTTPErrorHTTPErrorProcessorHTTPHandlerHTTPPasswordMgrHTTPPasswordMgrWithDefaultRealmHTTPRedirectHandlerHTTPSHandlerOpenerDirectorProxyBasicAuthHandlerProxyDigestAuthHandlerProxyHandlerRequestStringIOURLErrorUnknownHandler
addinfourlbuild_openerinstall_openerparse_http_listparse_keqv_listrandombytesrequest_hosturlopen)ContentTooShortErrorFancyURLopener	URLopenerbasejoin	ftperrors
getproxiesgetproxies_environment	localhostpathname2urlquote
quote_plus	splitattr	splithost
splitnportsplitpasswd	splitport
splitquerysplittag	splittype	splituser
splitvaluethishostunquoteunquote_plusunwrapurl2pathname
urlcleanup	urlencoder   urlretrieve)parse_qs	parse_qsl	urldefragurljoinurlparseurlsplit
urlunparse
urlunsplit)ndbmgnudumb)erroropen)whichdb)BaseHTTPRequestHandler
HTTPServer)CGIHTTPRequestHandler)SimpleHTTPRequestHandler)
FileDialogLoadFileDialogSaveFileDialogdialogstatestest)	DirectoryOpenSaveAs_Dialogaskdirectoryaskopenfileaskopenfilenameaskopenfilenamesaskopenfilesasksaveasfileasksaveasfilename)SimpleDialog)askfloat
askinteger	askstringDialog)CGIXMLRPCRequestHandlerSimpleXMLRPCDispatcherSimpleXMLRPCRequestHandlerSimpleXMLRPCServerlist_public_methodsremove_duplicatesresolve_dotted_attribute)DocCGIXMLRPCRequestHandlerDocXMLRPCRequestHandlerDocXMLRPCServerServerHTMLDocXMLRPCDocGenerator)urllib2urllibr   dbmanydbmr   BaseHTTPServerCGIHTTPServerSimpleHTTPServerr   tkFileDialogr   tkSimpleDialogr   r   )r   r   )r   r   r   )r   r   )r   r   r   )r   r   )r   r   )r   r   )zurllib.requestzurllib.errorzurllib.parsezdbm.__init__zhttp.serverztkinter.filedialogztkinter.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* >) >c                      d t           D             } dd                    d | D                       z   }|dz  }|d                    d | D                       dz   z  }|S )zI
    Builds a pattern for all toplevel names
    (urllib, http, etc)
    c                 8    g | ]}|                     d           S ).)split.0mods     `/var/www/html/nettyfy-visnx/env/lib/python3.11/site-packages/libpasteurize/fixes/fix_imports2.py
<listcomp>z*all_modules_subpattern.<locals>.<listcomp>   s"    :::3syy:::    z( z | c                 ^    g | ]*}t           t          |d          z  t          |d         z  fz  +S )r      )dotted_namesimple_namesimple_attrr   s     r   r   z*all_modules_subpattern.<locals>.<listcomp>   sQ     ` ` `HK  +kSV.D,73q6,B.D  D ` ` `r   c                 F    g | ]}|d          dk    t           |d         z  S )r   __init__r   )r   r   s     r   r   z*all_modules_subpattern.<locals>.<listcomp>   s1    ccc3SQRVWbMbMbs1v.MbMbMbr   z ))MAPPINGjoin)names_dot_attrsrets     r   all_modules_subpatternr      s    
 ;:':::O
&++ ` `O^` ` ` a a aC6MC6;;cc/cccddglllCJr   c              #     K   t           t                      z  V  |                                 D ]\  }}|                    d          \  }}t          |z  }t
          |z  }t          ||fz  }t          |z  V  t          ||fz  V  |dk    rt          |z  V  t          |z  V  t          |z  V  t          |||||fz  V  dS )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
    r   r   N)from_importr   itemsr   r   r   r   name_importpower_twonamepower_onenamename_import_renamefrom_import_rename)	mapping1mapping2py3kpy2knameattrs_names_attrd_names	            r   build_import_patternr     s      /11
2222nn&& L L
dZZ%%
d%%//V$$$$vv.....;((((6**** F++++ FFFFF#KKKKKKL Lr   c                   V    e Zd ZdZd                     eee                    Zd Z	dS )FixImports2   z | 
c                 (    t          dd|           d S )Nfuturestandard_libraryr	   )selfnoderesultss      r   	transformzFixImports2.transform   s    $7>>>>>r   N)
__name__
__module____qualname__	run_orderr   r  r   
PY2MODULESPATTERNr   r   r   r  r     sG        Imm00*EEFFG? ? ? ? ?r   r  N)__doc__lib2to3r   lib2to3.fixer_utilr   r   r   r   r   libfuturize.fixer_utilr
   TK_BASE_NAMESr  r   r   r   simple_usingr   r   r   r   r   r   r   r   r  BaseFixr  r  r   r   <module>r     s          G G G G G G G G G G G G G G 3 3 3 3 3 3! S	#J,%#<"-%0+ /, ,!K !. 1$ !$"/ 3G #G'/
$No: :
z ('4'J04; & 5R@ nd Q  N 
 
 
L L L,? ? ? ? ?*$ ? ? ? ? ?r   