U
    ñad\  ã                   @   sÊ   d dl Z d dlmZ e ¡  d dlmZ d dlmZmZm	Z	 G dd„ deƒZ
dd„ Zed	krÆzee jd
d… ƒZeeƒ W nJ ek
rÄ   e  ¡ \ZZZe j eeƒd ¡ e j d¡ ed
ƒ Y nX dS )é    N)Úqconfig)Úisdir)ÚOptionParserÚBadOptionErrorÚAmbiguousOptionErrorc                   @   s   e Zd ZdZdd„ ZdS )ÚPassThroughOptionParserzH
    An unknown option pass-through implementation of OptionParser.
    c              	   C   sP   |rLzt  | |||¡ W q  ttfk
rH   t ¡ d }| |j¡ Y q X q d S )Né   )r   Ú_process_argsr   r   ÚsysÚexc_infoÚappendZopt_str)ÚselfZlargsZrargsÚvaluesÚ	exc_value© r   úopt/quast-5.2.0/icarus.pyr	      s    z%PassThroughOptionParser._process_argsN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r	   r   r   r   r   r      s   r   c                 C   sä  t j d¡ t j d¡ t j d¡ t j d¡ t j d¡ | sbt j d¡ t j d¡ t  d¡ tƒ }|jdddd	g d
 |jddddd
 |jdddd |jddddd
 |jdddd |jdddd |jdddd |jdddd |jdddd | | ¡\}}|jr,t j d¡ t  d¡ t|j	ƒdkrDd|_
n6t|j	ƒdkrzd|j	d kstt|j	d ƒrzd|_
|j
rždd l}|j}t j d¡ ndd l}|j}t j d¡ t j d¡ t j d ¡ t j d¡ || ƒS )!NÚ
z3Icarus: visualizer for de novo assembly evaluation
z6Icarus is embedded into QUAST and MetaQUAST pipelines
zNPlease run ./quast.py -h or ./metaquast.py -h to see the full list of options
r   z-Rz--referenceÚ	referencer   )ÚdestÚactionÚdefaultz--fastÚ	no_icarusÚ
store_trueFz	--no-html)r   r   z--unique-mappingÚuse_metaquastz--max-ref-numberz--references-listz
--blast-dbz--test-no-refz	--test-svZstore_falsezCPlease remove --fast and --no-html from options and restart Icarus
r   Tú,z7Icarus will run metaquast.py (for metagenomic dataset)
z8Icarus will run quast.py (for single-genome evaluation)
z;Icarus main menu will be saved to <output_dir>/icarus.html
z=Icarus viewers will be saved to <output_dir>/icarus_viewers/
)r
   ÚstderrÚwriteÚexitr   Z
add_optionÚ
parse_argsr   Úlenr   r   r   Ú	metaquastÚmainÚquast)ÚargsÚparserZoptsZl_argsr$   Zquast_fnr&   r   r   r   r%      sN    

 r%   Ú__main__r   r   zexception caught!
)r
   Z
quast_libsr   Zcheck_python_versionÚos.pathr   Zoptparser   r   r   r   r%   r   ÚargvZreturn_coder!   Ú	Exceptionr   Ú_r   r   r    Ústrr   r   r   r   Ú<module>
   s   0