U
    ËZj„!  ã                   @   sÐ   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 ded ed 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(d)„ Zd*d+„ ZG d,d-„ d-ejƒZd.S )/z
Fixer for complicated imports
é    )Ú
fixer_base)ÚNameÚStringÚ
FromImportÚNewlineÚComma©Útouch_import_top)TZACTIVEZALLZANCHORZARCZBASELINEZBEVELZBOTHZBOTTOMZBROWSEZBUTTZCASCADEZCENTERZCHARZCHECKBUTTONZCHORDZCOMMANDZCURRENTZDISABLEDZDOTBOXÚEÚENDZEWZ	EXCEPTIONZEXTENDEDÚFALSEZFIRSTZFLATZGROOVEZHIDDENZ
HORIZONTALZINSERTZINSIDEZLASTZLEFTZMITERZMOVETOZMULTIPLEÚNZNEÚNOÚNONEZNORMALZNSZNSEWZNUMERICZNWZOFFÚONZOUTSIDEZPAGESZPIESLICEZ
PROJECTINGZRADIOBUTTONZRAISEDZREADABLEZRIDGEZRIGHTZROUNDÚSZSCROLLZSEZSELZ	SEL_FIRSTZSEL_LASTZ	SEPARATORZSINGLEZSOLIDZSUNKENZSWZStringTypesZTOPÚTRUEZ
TclVersionZ	TkVersionZ	UNDERLINEÚUNITSZVERTICALÚWZWORDZWRITABLEÚXÚYZYESZ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_listZrandombytesÚrequest_hostÚurlopen)ÚContentTooShortErrorÚFancyURLopenerÚ	URLopenerZ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Ú	urlencoder7   Úurlretrieve)Úparse_qsÚ	parse_qslÚ	urldefragÚurljoinÚurlparseÚurlsplitÚ
urlunparseÚ
urlunsplit)ZndbmZgnuÚdumb)ÚerrorÚopen)Úwhichdb)ZBaseHTTPRequestHandlerZ
HTTPServer)ÚCGIHTTPRequestHandler)ÚSimpleHTTPRequestHandler)Ú
FileDialogÚLoadFileDialogÚSaveFileDialogZdialogstatesÚtest)Z	DirectoryZOpenZSaveAsZ_DialogZaskdirectoryZaskopenfileZaskopenfilenameZaskopenfilenamesZaskopenfilesZasksaveasfileZasksaveasfilename)ÚSimpleDialog)ZaskfloatZ
askintegerZ	askstringÚDialog)ZCGIXMLRPCRequestHandlerZSimpleXMLRPCDispatcherZSimpleXMLRPCRequestHandlerÚSimpleXMLRPCServerZlist_public_methodsZremove_duplicatesZresolve_dotted_attribute)ÚDocCGIXMLRPCRequestHandlerÚDocXMLRPCRequestHandlerÚDocXMLRPCServerÚServerHTMLDocÚXMLRPCDocGenerator)Úurllib2ÚurllibrX   ÚdbmÚanydbmr_   ÚBaseHTTPServerÚCGIHTTPServerÚSimpleHTTPServerrb   ÚtkFileDialogrf   ÚtkSimpleDialogrh   rk   )rn   ro   )rn   ro   rX   )rq   r_   )rs   rt   rr   )ru   rb   )rv   rf   )rk   rh   )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* >zœfrom_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 >zµfrom_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                  C   sN   dd„ t D ƒ} dd dd„ | D ƒ¡ }|d7 }|d dd„ | D ƒ¡d 7 }|S )zI
    Builds a pattern for all toplevel names
    (urllib, http, etc)
    c                 S   s   g | ]}|  d ¡‘qS )Ú.)Úsplit©Ú.0Úmod© r|   úc/var/www/html/TRUCKING_PROJECT/venv/lib/python3.8/site-packages/libpasteurize/fixes/fix_imports2.pyÚ
<listcomp>‰   s     z*all_modules_subpattern.<locals>.<listcomp>z( z | c                 S   s(   g | ] }t t|d   t|d  f ‘qS )r   é   )Údotted_nameÚsimple_nameÚsimple_attrry   r|   r|   r}   r~   Š   s   ÿ
ÿc                 S   s$   g | ]}|d  dkrt |d  ‘qS )r   Ú__init__r   )r�   ry   r|   r|   r}   r~   �   s      z ))ÚMAPPINGÚjoin)Znames_dot_attrsÚretr|   r|   r}   Úall_modules_subpattern„   s    ÿ
r‡   c           	      c   sž   t tƒ  V  |  ¡ D ]„\}}| d¡\}}t| }t| }t||f }t| V  t||f V  |dkrzt| V  t	| V  t
| V  t|||||f V  q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
    rw   rƒ   N)Úfrom_importr‡   Úitemsrx   r�   r‚   r€   Úname_importÚpower_twonameÚpower_onenameÚname_import_renameÚfrom_import_rename)	Zmapping1Zmapping2Zpy3kZpy2kÚnameÚattrZs_nameZs_attrZd_namer|   r|   r}   Úbuild_import_pattern‘   s    



r‘   c                   @   s(   e Zd ZdZd eeeƒ¡Zdd„ Z	dS )ÚFixImports2é   z | 
c                 C   s   t dd|ƒ d S )NÚfutureZstandard_libraryr   )ÚselfÚnodeÚresultsr|   r|   r}   Ú	transform­   s    zFixImports2.transformN)
Ú__name__Ú
__module__Ú__qualname__Z	run_orderr…   r‘   r„   Ú
PY2MODULESZPATTERNr˜   r|   r|   r|   r}   r’   §   s   r’   N)Ú__doc__Zlib2to3r   Zlib2to3.fixer_utilr   r   r   r   r   Zlibfuturize.fixer_utilr	   ZTK_BASE_NAMESrœ   r„   r�   r‚   Zsimple_usingr€   r‹   rŒ   rˆ   rŠ   r�   rŽ   r‡   r‘   ZBaseFixr’   r|   r|   r|   r}   Ú<module>   sT   
É=ñ