ó
á0]c           @  sr  d  d l  m Z d  d l Z d  d l Z d  d l Z d  d l m Z d  d l Z d  d l Z d  d l m	 Z	 m
 Z
 d  d l m Z d  d l m Z d  d l m Z m Z m Z d   Z d	   Z e j   e j d
 d d  d e e j d d d d e e j d d e e j d d e e j d d d d e j   e j d d d e  d          Z d S(   i˙˙˙˙(   t   print_functionN(   t   glob(   t   ProcessPoolExecutort   as_completed(   t   __version__(   t   Verify(   t   DummyExecutort   render_metadatat	   iter_cfgsc         C  s   g  } x~ t    D]s } t |  |  } | j d i   j d d  j   d k r | j | j t j d | d |  d | d t  q q W| S(	   Nt   buildt   skipt    t   truet   rendered_metat
   recipe_dirt   checks_to_ignoret   exit_on_error(	   R   R   t   gett   lowert   appendt   submitR   t   verify_recipet   False(   t   patht   executort   ignoret   futurest   cfgt   meta(    (    s/   lib/python2.7/site-packages/conda_verify/cli.pyt   _submit_verify_recipe   s    *	c         C  sc   |  d  f } y" t j d |  d | d t  } Wn. t t f k
 r^ } |  t |  g f } n X| S(   Nt   path_to_packageR   R   (   t   NoneR   t   verify_packageR   t   KeyErrort   OSErrort   str(   R   R   t   package_issuest   e(    (    s/   lib/python2.7/site-packages/conda_verify/cli.pyt   _submit_verify_package!   s    	t   pathst   nargst   types   --ignorei   s   --exitt   is_flags   --debugs
   --out-filet	   prog_names   conda-verifyt   versionc      
   C  s  | r | j  d  } n  i  } g  } g  } xW |  D]O } t t j j |   }	 |	 ss t d |  t j d  n  | j |	  q1 W| r t	 n t
   à }
 x | D]w } t j j | d  } t j j |  rì | j t | |
 |   q£ | j d  r£ | j |
 j t | |   q£ q£ WxT t j t |  d t |  d	 t D]+ } | j   \ } } | rF| | | <qFqFWWd
 QX| rşt | d  % } t j | |  t d |  Wd
 QXn° x­ | j   D] \ } } t d t |   t |  t d t |   x^ t |  D]P } y t | d t j Wqt k
 rat d j | j  d t j qXqWqÇW| r| rt j d  n  d
 S(   sÙ   conda-verify is a tool for validating conda packages and recipes.

    To validate a package:

    $  conda-verify path/to/package.tar.bz2

    To validate a recipe:

    $  conda-verify path/to/recipe_directory/
    t   ,s*   Error: path spec %s didn't match any filesi   s	   meta.yamls   .tar.bz2s   .tars   .condat   totalt   leaveNt   ws   saved to %st   -t   files>   Could not print message for error code {} due to unicode error(   s   .tar.bz2s   .tars   .conda(    t   splitR   t   osR   t
   expandusert   printt   syst   exitt   extendR   R   t   joint   isfileR   t   endswithR   R   R&   t   tqdmR   t   lenR   t   resultt   opent   jsont   dumpt   itemst   sortedt   stderrt   UnicodeEncodeErrort   formatt   code(   R'   R   R8   t   debugt   out_fileR$   R   t
   paths_globR   t
   glob_pathsR   t	   meta_filet   ft   issuest   check(    (    s/   lib/python2.7/site-packages/conda_verify/cli.pyt   cli,   sP    #.
(   t
   __future__R    RA   R4   R7   R   t   clickR=   t   concurrent.futuresR   R   t   conda_verifyR   t   conda_verify.verifyR   t   conda_verify.utilitiesR   R   R   R   R&   t   commandt   argumentR#   t   optiont   Truet   Patht   version_optionRQ   (    (    (    s/   lib/python2.7/site-packages/conda_verify/cli.pyt   <module>   s&   			