B
    ½ÞZÛ  ã               @   sZ   d dl Z d dlmZmZmZmZmZmZ ddlT dd„ Z	dd„ Z
d	d
„ ZedkrVeƒ  dS )é    N)ÚPYQT_VERSION_STRÚQDirÚQFileÚ	QFileInfoÚ	QIODeviceÚQTextStreamé   )Ú*c               C   s   t j d¡ d S )NaØ  Usage:
    pylupdate5 [options] project-file
    pylupdate5 [options] source-files -ts ts-files

Options:
    -help  Display this information and exit
    -version
           Display the version of pylupdate5 and exit
    -verbose
           Explain what is being done
    -noobsolete
           Drop all obsolete strings
    -tr-function name
           name() may be used instead of tr()
    -translate-function name
           name() may be used instead of translate()
)ÚsysÚstderrÚwrite© r   r   ú3lib/python3.7/site-packages/PyQt5/pylupdate_main.pyÚ
printUsage   s    r   c       
      C   s†   t ƒ }xz|D ]r}| |¡}tƒ }tƒ }	| |¡ |r>| |¡ t|| |	|||ƒ |r\|	 ¡  |	 ¡  |	 |¡st	j
 d| ¡ qW d S )Nz#pylupdate5 error: Cannot save '%s'
)r   ZrelativeFilePathÚMetaTranslatorÚloadÚsetCodecÚmergeZstripObsoleteMessagesZstripEmptyContextsZsaver
   r   r   )
Ú
fetchedTorÚtsFileNamesÚ
codecForTrÚ
noObsoleteÚverboseÚdirÚtÚfnZtorÚoutr   r   r   ÚupdateTsFiles/   s    




r   c           
   C   sú  d} t ƒ }d}d}g }g }d}d}d}d}	d}
d}d }d }x"tjdd … D ]}|dkrJd}
qJW ttjƒ}d}xV||k rÄtj| }|d7 }|dkr¤tƒ  t d¡ |d	krÆtj d
t ¡ t d¡ |dkrÔd}qp|dkrâd}qp|dkrðd}qp|dkr.||krtj d¡ t d¡ tj| }|d7 }qp|dkrl||krXtj d¡ t d¡ tj| }|d7 }qp|	d7 }	d}|sÆt	|ƒ}| 
tj¡s®tj d| ¡ t d¡ t|ƒ}| ¡ }| ¡  |
rt ¡ }t t|ƒ ¡ ¡ t ƒ }d}d}g }g }xÎt|ƒ ¡ D ]¾\}}x²| d¡D ]¤}|dkrPtt ¡  |¡|| d|||ƒ d}np|dkrt| t ¡  |¡¡ d}nL|dkrŽ|}| |¡ n2|dkrž|}n"|dkrtt ¡  |¡|| dƒ qW q
W t|||||ƒ |sôtj d| ¡ nt|ƒdkrtj d| ¡ t |¡ qp|r€| ¡   d¡rnt|ƒ}| !¡ rP| "¡ r\| |¡ ntj d| ¡ ntj d| ¡ qpt|ƒ}| #¡ dkr°t| ¡ || d|||ƒ qpt| ¡ || dƒ qpW |
sÜt|||||ƒ |	dkrötƒ  t d¡ d S )Nz@defaultÚ Fr   Tr   z-tsz-helpz-versionzpylupdate5 v%s
z-noobsoletez-verbosez-tr-functionz,pylupdate5 error: missing -tr-function name
é   z-translate-functionz3pylupdate5 error: missing -translate-function name
z(pylupdate5 error: Cannot open file '%s'
ú ZSOURCESZTRANSLATIONS)ZCODECZDEFAULTCODECZ
CODECFORTRZCODECFORSRCZFORMSz@pylupdate5 warning: File '%s' does not look like a project file
zEpylupdate5 warning: Met no 'TRANSLATIONS' entry in project file '%s'
z.tsz8pylupdate5 warning: For some reason, I cannot save '%s'
z0pylupdate5 error: File '%s' lacks .ts extension
)ÚpyZpyw)$r   r
   ÚargvÚlenr   Úexitr   r   r   r   Úopenr   ZReadOnlyr   ZreadAllÚcloser   ZcurrentPathZ
setCurrentr   ÚpathZproFileTagMapÚitemsÚsplitZ
fetchtr_pyZcurrentZabsoluteFilePathÚappendr   Z
fetchtr_uir   ÚlowerÚendswithÚexistsZ
isWritableÚsuffix)ZdefaultContextr   r   ZcodecForSourcer   ZuiFileNamesr   r   ZmetSomethingZnumFilesZstandardSyntaxZ	metTsFlagZtr_funcZtranslate_funcÚargZargcÚiZfullTextÚfr   ZoldDirÚkeyÚvalueZfir   r   r   ÚmainG   sö    

























r4   Ú__main__)r
   ZPyQt5.QtCorer   r   r   r   r   r   Z	pylupdater   r   r4   Ú__name__r   r   r   r   Ú<module>   s     (