
@K7]c           @` s  d  d l  m Z m Z m Z m Z d  d l Z d  d l m Z d  d l Z d  d l	 m	 Z	 d  d l
 Z
 d  d l m Z d  d l Z d  d l m Z m Z m Z m Z m Z m Z m Z m Z 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 m Z d  d	 l  m! Z! d  d l" Z" d  d
 l# m$ Z$ m% Z% d  d l& m& Z& d  d l' Z' d  d l( m) Z) d  d l* m+ Z+ d  d l, m- Z- d  d l. m/ Z/ d  d l0 Z0 d  d l1 m2 Z2 d  d l3 Z3 d  d l4 Z4 d  d l5 Z6 d  d l7 m8 Z8 m9 Z9 d  d l7 m: Z: m; Z; d  d l< m= Z= d  d l> m? Z? d  d l@ mA ZA d d lB mC ZC mD ZD d d lC mE ZE mF ZF mG ZG mH ZH d d lC mI ZI mJ ZJ mK ZK mL ZL d d lC mM ZM d d lC mN ZN d d lD mO ZO mP ZP mQ ZQ mR ZR dx ZS eP eT  ZU d e; f d      YZV y d  d! lW mX ZX mY ZY Wn eZ k
 ri d" d" 6d# d# 6d# d$ 6d# d% 6d# d& 6d' d' 6d( d( 6d( d) 6d* d* 6d+ d+ 6d, d, 6d- d. 6d/ d/ 6d0 d0 6d1 d1 6d2 d3 6d4 d5 6ZX e[ eX  ZY e[ eX j\    Z] n Xd  a^ d a` d6 aa g  ab i  ac ed e d7  re je   d k re je   n d Zf e jg d8 k r;eh d9 ef  Zf n  dy Zi d< Zj y  d  d= lk ml Zl mm Zm mn Zn Wn- eZ k
 rd  d= lo ml Zl mm Zm mn Zn n Xd ep ep d ep eq d>  Zr d?   Zs ep d d ef ep ep d d eq d ep d@  Zt dA   Zu dB   Zv d Zw d Zx dC Zy dD Zz dz Z{ db   Z| dc   Z} dd   Z~ ep ep de  Z df   Z dg   Z dh   Z di   Z dj   Z dk   Z dl   Z dm   Z dn   Z do   Z dp   Z d d d dq  Z i  dr  Z ds   Z d dt  Z du   Z dv e f dw     YZ d S({   i    (   t   absolute_importt   divisiont   print_functiont   unicode_literalsN(   t   OrderedDict(   t   datetime(   t   Number(	   t   abspatht   basenamet   getmtimet   getsizet   isdirt   isfilet   joint   splitextt   dirname(   t
   gettempdir(   t   uuid4(   t   ensure_binary(   t   Environmentt   PackageLoader(   t   tqdm(   t   ConstructorError(   t   ParserError(   t   ScannerError(   t   ReaderError(   t   partial(   t   ProcessPoolExecutort   as_completed(   t   Futuret   Executor(   t   Lock(   t
   SubdirData(   t   Channeli   (   t   conda_interfacet   utils(   t	   MatchSpect   VersionOrdert   human_bytest   context(   t
   CondaErrort   CondaHTTPErrort	   get_indext   url_path(   t   TemporaryDirectory(   t   Resolve(   t   globt
   get_loggert   FileNotFoundErrort   JSONDecodeErroru   .condau   .tar.bz2t   DummyExecutorc           B` s&   e  Z d    Z d   Z e d  Z RS(   c         C` s   t  |  _ t   |  _ d  S(   N(   t   Falset	   _shutdownR   t   _shutdownLock(   t   self(    (    s0   lib/python2.7/site-packages/conda_build/index.pyt   __init__G   s    	c      	   O` s|   |  j  m |  j r" t d   n  t   } y | | |   } Wn  t k
 r` } | j |  n X| j |  | SWd  QXd  S(   Nu*   cannot schedule new futures after shutdown(   R5   R4   t   RuntimeErrorR   t   BaseExceptiont   set_exceptiont
   set_result(   R6   t   fnt   argst   kwargst   ft   resultt   e(    (    s0   lib/python2.7/site-packages/conda_build/index.pyt   submitK   s    
		c         C` s   |  j   t |  _ Wd  QXd  S(   N(   R5   t   TrueR4   (   R6   t   wait(    (    s0   lib/python2.7/site-packages/conda_build/index.pyt   shutdownZ   s    
(   t   __name__t
   __module__R7   RB   RC   RE   (    (    (    s0   lib/python2.7/site-packages/conda_build/index.pyR2   F   s   		(   t   NAMESPACES_MAPt   NAMESPACE_PACKAGE_NAMESu   pythonu   ru   r-baseu   mro-baseu   mro-base_implu   erlangu   javau   openjdku   juliau   latexu   luau   jsu   nodejsu   perlu   phpu   rubyu   m2u   m2-baseu   m2w64u   msys2-conda-epochu    u	   cpu_countu   win32i=   i   i  u   .lock(   t   concatt   concatvt   groupbyc         K` s  d }	 t  t j |   } | s0 t |  } n  t j j | |  d  }
 t j j |
  ro t j j |
  }	 n  | s t j j |
  s t	 |  k s |	 t
 k s t | k rt  |  } t j j t g } | r t t j t j d | } nC | rt t j t j d | } n t t j t j d d | } |   Jt j j |  rt |  } g  | D] } | d k ry| n | ^ qa} | | k r| j d |  qn  t | |   t | d | |  d k rt j }  n  y/ t d | d	 | d
 t d t j d |   a WnW t  k
 rdd | k r7| j! d  n  t d | d	 | d
 t d t j d |   a n Xd   t j"   D } i  } x| D]} | j# d k r| j$ } t j% r| j& d  } na t j j' | j$  r"t j j( t j j t j j) | j$   r"t j j t j j) | j$  } n  t j j | | j* d  } d } d } t j j |  rxw | | k  ry3 t+ | d   } t, j- |  t. | j* <Wd  QXPWq^t/ t0 f k
 rt1 j2 d  | d 7} q^Xq^WqnD t j sy! t j3 | j4 d  t. | j* <Wqt  k
 rqqXn  | j4 t j5 k rt. j6 | j*  r| j6 d i   } | j7 t. | j*  | | d <qqW| t. d <Wd  QXt j j |
  a
 |  a	 | a n  t t
 t. f S(   Ni    u   repodata.jsont   loggersi   u   localt   verboseu   noarcht   channel_urlst   prependt	   use_localt	   use_cachet   platformu   defaultsc         S` s   h  |  ] } | j   q S(    (   t   channel(   t   .0t   rec(    (    s0   lib/python2.7/site-packages/conda_build/index.pys	   <setcomp>   s   	 u   fileu   /u   channeldata.jsonu   r+g?u   /channeldata.jsonu   packages(8   t   listR#   t   ensure_listR   t   ost   pathR   R   R	   t   local_subdirt   local_index_timestampt   cached_channelst   LoggingContextt   default_loggersRF   R   t   loggingt   DEBUGt   WARNt   CRITICALR   R+   t   insertt   _ensure_valid_channelt   update_indexR"   t   subdirR*   R3   R'   t   offlinet   cached_indexR)   t   removet   valuest   schemet   locationt   on_wint   lstript   isabst   existst   sept   namet   opent   jsont   loadt   channel_datat   IOErrorR1   t   timet   sleept   download_channeldatat   base_urlt   default_channelst   gett   update(   Rg   t   bldpkgs_dirt   output_foldert   clear_cachet   omit_defaultsRO   t   debugRN   R>   t   mtimet
   index_filet   urlsRM   t   log_contextt
   local_patht   urlt   expanded_channelst   superchannelRT   Rm   t   channeldata_filet   retryt   max_retriesR?   t   packages(    (    s0   lib/python2.7/site-packages/conda_build/index.pyt   get_build_index   s    
+				*!	!
$	c         C` sR   xK | d h D]= } t  j j |  |  } t  j j |  s t  j |  q q Wd  S(   Nu   noarch(   RY   RZ   R   R   t   makedirs(   t   local_folderRg   t   folderRZ   (    (    s0   lib/python2.7/site-packages/conda_build/index.pyRe     s    c         C` s   t  j j |   \ } } | t j k rq |	 r= t j d  n  t | d | d | d | d | d | d | d |
 St |  | d	 | d | d
 | d | j	 d | d | d | d | d |
  S(   u  
    If dir_path contains a directory named 'noarch', the path tree therein is treated
    as though it's a full channel, with a level of subdirs, each subdir having an update
    to repodata.json.  The full channel will also have a channeldata.json file.

    If dir_path does not contain a directory named 'noarch', but instead contains at least
    one '*.tar.bz2' file, the directory is assumed to be a standard subdir, and only repodata.json
    information will be updated.

    u   The update_index function has changed to index all subdirs at once.  You're pointing it at a single subdir.  Please update your code to point it at the channel root, rather than a subdir.t	   check_md5t   channel_namet   threadsRN   t   progresst   hotfix_source_repot   current_index_versionst   subdirst   deep_integrity_checkR   t   patch_generator(
   RY   RZ   t   splitR#   t   DEFAULT_SUBDIRSt   logt   warnRf   t   ChannelIndext   index(   t   dir_pathR   R   R   R   RN   R   R   R   R   R   R   t	   base_pathR   (    (    s0   lib/python2.7/site-packages/conda_build/index.pyRf     s    c         C` s6  |  j  d  r |  d } n t   } xH |  j  d g   D]4 } y | j t |  j  Wq8 t k
 rk q8 Xq8 W| t @} t |  d k r t | j	   } n d } | |  d <|  j  d  rd |  d k r|  d j
 d d  \ } } | | k r|  d |  d <| |  d <qn  | |  j  d |  d  |  d f S(	   Nu	   namespaceu   dependsi   u   globalu   namespace_in_nameu   -u   nameu   name_in_channel(   R~   t   sett   addR$   Rs   R(   RI   t   lenRH   t   popR   (   t   infot	   namespacet   depends_namest   spect   spacest   namespace_prefixt   reduced_name(    (    s0   lib/python2.7/site-packages/conda_build/index.pyt   _determine_namespace*  s&    	

 c         C` s)   t  |   }  |  d k r% |  d }  n  |  S(   NIA:   i  (   t   int(   t	   timestamp(    (    s0   lib/python2.7/site-packages/conda_build/index.pyt   _make_secondsD  s    u   repodata.jsonu   repodata_from_packages.jsonu   descriptionu   dev_urlu   doc_urlu   doc_source_urlu   homeu   licenseu   reference_packageu
   source_urlu   source_git_urlu   source_git_tagu   source_git_revu   summaryu   versionu   subdirsu   icon_urlu	   icon_hashu   run_exportsu   binary_prefixu   text_prefixu
   activate.du   deactivate.du   pre_linku	   post_linku
   pre_unlinku   tagsu   identifiersu   keywordsu   recipe_originu   commitsc         C` so   | |  k rk y$ |  | j    j d d  |  | <Wqk t k
 rg |  | d j    j d d  |  | <qk Xn  d  S(   Nu   
u    i    (   t   stript   replacet   AttributeError(   t   recordt
   field_name(    (    s0   lib/python2.7/site-packages/conda_build/index.pyt   _clear_newline_charss  s
    $c         C` s  | j  d g   t j | j d i   | j d i   d t d t d   | j d i   j   D } t j | j d i   | d t d t t j | j d i   | j d i   d t d t x | j d d  D] } x| d D]t } | j d  r| d k r| j d d	  } n  | | | k r t | | | d
 <| | | d j	 d  q q Wq Wx | j d d  D]w } xn d D]f } | j d  r| d k r| j d d	  } n  | | j
 | d   } | r~| d j	 |  q~q~WqqW| d j   | S(   Nu   removedu   packagest   merget   add_missing_keysc         S` s+   i  |  ]! \ } } | | j  d  d   q S(   u   .tar.bz2u   .conda(   R   (   RU   t   kt   v(    (    s0   lib/python2.7/site-packages/conda_build/index.pys
   <dictcomp>  s   	 u   packages.condau   revokeu   .tar.bz2u   .condau   revokedu   dependsu   package_has_been_revokedu   remove(    (   u   packagesu   packages.conda(    (   u   packagesu   packages.conda(   t
   setdefaultR#   t   merge_or_update_dictR~   R3   t   itemst   endswithR   RC   t   appendR   t   Nonet   sort(   Rg   t   repodatat   instructionst   new_pkg_fixesR<   t   keyt   popped(    (    s0   lib/python2.7/site-packages/conda_build/index.pyt   _apply_instructions|  s0    -"!-$c          C` sg   d   }  d   } t  d t d d   } t | j d <|  | j d <| | j d <t | _ t | _ | S(	   Nc         S` s\   t  |  t  rO |  d k r( |  d }  n  t j |   j d t j d   }  n  |  j |  S(   NIA:   i  t   tzinfou   UTC(   t
   isinstanceR   R   t   utcfromtimestampR   t   pytzt   timezonet   strftime(   t   dtt	   dt_format(    (    s0   lib/python2.7/site-packages/conda_build/index.pyt   _filter_strftime  s
    'c         [` s   | r| d j  |  g } | j d j  |    | g  | j   D] \ } } d j  | |  ^ q> 7} d j  d j |  |   S|  Sd  S(   Nu
   href="{0}"u	   alt="{0}"u	   {0}="{1}"u   <a {0}>{1}</a>u    (   t   formatR   R   R   (   t   textt   linkR>   t   kwargs_listR   R   (    (    s0   lib/python2.7/site-packages/conda_build/index.pyt   _filter_add_href  s    5t   loaderu   conda_buildu	   templatesu   human_bytesu   strftimeu   add_href(   R   R   R&   t   filtersRC   t   trim_blockst   lstrip_blocks(   R   R   t   environment(    (    s0   lib/python2.7/site-packages/conda_build/index.pyt   _get_jinja2_environment  s    					c         C` s   t  t   t t     } | s0 t |  } n  t | d  * } | j |  | re | j d  n  Wd  QXt |   r t j	 |  t j	 |   k r t
 j |  t Sn  t j | |   t S(   Nu   wbs   
(   R   R   t   strR   R   Rt   t   writeR   R#   t   md5_fileRY   t   unlinkR3   t   move_with_fallbackRC   (   RZ   t   contentt   write_newline_endt   content_is_binaryt	   temp_patht   fh(    (    s0   lib/python2.7/site-packages/conda_build/index.pyt   _maybe_write  s    c         C` sH   t  |  } |  j |  r> |  t |   }  |  j d  }  n  |  } | S(   Nu   _(   R   R   R   t   rstrip(   t   buildt   build_numbert   build_number_as_stringt   build_string(    (    s0   lib/python2.7/site-packages/conda_build/index.pyt   _make_build_string  s    c         C` s   |  r d d g } x t  |   D] } | j d |  xn t  |  |  D]\ } | j d |  | j d  \ } } | d j | d  } | rG | d j |  qG qG Wq W| j d  | j d	  t j d
 j |   n  d S(   uI  
    The following dependencies do not exist in the channel and are not declared
    as external dependencies:

    dependency1:
        - subdir/fn1.tar.bz2
        - subdir/fn2.tar.bz2
    dependency2:
        - subdir/fn3.tar.bz2
        - subdir/fn4.tar.bz2

    The associated packages are being removed from the index.
    u?   WARNING: The following dependencies do not exist in the channelu2       and are not declared as external dependencies:u     %su       - %su   /u   packagesu   removedu9   The associated packages are being removed from the index.u    u   
N(   t   sortedR   R   R   R   R   R   R   (   t   missing_dependenciest   patched_repodatat   buildert   dep_namet	   subdir_fnRg   R<   R   (    (    s0   lib/python2.7/site-packages/conda_build/index.pyt   _warn_on_missing_dependencies  s    	c         C` s  i t  d 6t  d 6t  d 6t  d 6t  d 6t  d 6t  d 6} t j j |   r|t |   " } t j |  j d g   } Wd  QXx | D] } | j d	  r | j d
  d k r t | d <q | j d
  d k r t | d <q n  xB d D]: } | j |  r | d j	 d |  r t | | <q q WxQ d D]I } | j |  r(t
 j
 | d d |  r(t | | j d d  <q(q(Wq Wn  t | d   } t j | |  Wd  QXd  S(   Nu   binary_prefixu   text_prefixu
   activate.du   deactivate.du   pre_linku	   post_linku
   pre_unlinku   pathsu   prefix_placeholderu	   file_modeu   binaryu   textu   _pathu   etc/conda/%su   pre-linku	   post-linku
   pre-unlinku	   */.*-%s.*u   -u   _u   w(   u
   activate.du   deactivate.d(   u   pre-linku	   post-linku
   pre-unlink(   R3   RY   RZ   t   lexistsRt   Ru   Rv   R~   RC   t
   startswitht   fnmatchR   t   dump(   t   paths_cache_patht   post_install_cache_patht   post_install_details_jsonR?   t   pathsR   t   patR   (    (    s0   lib/python2.7/site-packages/conda_build/index.pyt   _cache_post_install_details  s(    !'*$c   	      C` s  d } x? | D]7 } t  j j |  |  } t  j j |  r> Pn  d  } q Wi  } | r t |  : } y t j |  } Wn t t	 t
 t f k
 r n XWd  QXn  y t j |  } Wn9 t k
 r | j d i   j d  t j |  } n Xt | d   } | j |  Wd  QX| S(   Nu   info/recipe/meta.yaml.renderedu   info/recipe/meta.yamlu   info/meta.yamlu   requirementsu   buildu   w(   u   info/recipe/meta.yaml.renderedu   info/recipe/meta.yamlu   info/meta.yaml(   RY   RZ   R   R   R   Rt   t   yamlt	   safe_loadR   R   R   R   Ru   t   dumpst	   TypeErrorR~   R   R   (	   t   tmpdirt   recipe_cache_patht   recipe_path_search_orderRZ   t   recipe_patht   recipe_jsonR?   t   recipe_json_strR   (    (    s0   lib/python2.7/site-packages/conda_build/index.pyt   _cache_recipe  s.      
c         C` s   i  } y: t  t j j |  d d    } t j |  } Wd  QXWn| t t f k
 r y: t  t j j |  d d    } t j	 |  } Wd  QXWq t t f k
 r t
 j d |   q Xn Xt  | d   } t j | |  Wd  QXd  S(   Nu   infou   run_exports.jsonu   run_exports.yamlu'   %s has no run_exports file (this is OK)u   w(   Rt   RY   RZ   R   Ru   Rv   Rx   R0   R  R  R   R   R   (   R  t   run_exports_cache_patht   run_exportsR?   R   (    (    s0   lib/python2.7/site-packages/conda_build/index.pyt   _cache_run_exports1  s    !!c         C` s   | j  d i   j  d  } | r t j j |  d d |  } t j j |  si t j j |  d d  } n  t j j |  r | t |  d 7} t j | |  q n  d  S(   Nu   appu   iconu   infou   recipeu   icon.pngi(   R~   RY   RZ   R   R   R   R#   R   (   R  R
  t   icon_cache_patht   app_icon_patht	   icon_path(    (    s0   lib/python2.7/site-packages/conda_build/index.pyt   _cache_icon@  s    c      
   C` sk   t    } | j d  } | j d d |  p- d | f d | d t j   j d t j d   d	 |  } | S(
   Nu   subdir-index.html.j2t   titleu   %s/%su    R   t   current_timeR   u   UTCt   extra_paths(   R   t   get_templatet   renderR   t   utcnowR   R   R   (   R   Rg   t   repodata_packagesR  R   t   templatet   rendered_html(    (    s0   lib/python2.7/site-packages/conda_build/index.pyt   _make_subdir_index_htmlP  s    		!	c         C` sc   t    } | j d  } | j d |  d | d d | d d t j   j d t j d	    } | S(
   Nu   channeldata-index.html.j2R  R   u   packagesR   u   subdirsR  R   u   UTC(   R   R  R  R   R  R   R   R   (   R   t   channeldataR   R  R  (    (    s0   lib/python2.7/site-packages/conda_build/index.pyt   _make_channeldata_index_html\  s    		

$c   	      C` s   t  j d d d g d |  } | j   j d  d k r t  j d d d d	 g d |  } g  } xp | j d  j   j   D]P } | j d
  \ } } } } | j i | d 6t |  d 6| d 6| d 6 q| Wn  | S(   Nu   gitu	   rev-parseu   --is-inside-work-treet   cwdu   utf-8u   trueu   logu   --pretty=format:'%h|%ad|%an|%s'u   --date=unixu   |u   hashu	   timestampu   authoru   description(   t
   subprocesst   check_outputR   t   decodet
   splitlinesR   R   R   (	   RZ   t   is_repot   outputt   commitst   linet   _hasht   _timet   _authort   _desc(    (    s0   lib/python2.7/site-packages/conda_build/index.pyt   _get_source_repo_git_infoh  s    "c         C` sA   t  j j |  d |  } t  j j |  r= t j | |  n  d  S(   Nu   info(   RY   RZ   R   R   R#   R   (   R  t   info_fnt
   cache_patht	   info_path(    (    s0   lib/python2.7/site-packages/conda_build/index.pyt   _cache_info_filev  s    c         C` sb   |  } x  t  D] } | j | d  } q Wt t   t |  j | d  g  } | t t |   S(   Nu    (   t   CONDA_TARBALL_EXTENSIONSR   R   t   nextt   iter(   R<   t   cache_fnt   extt	   other_ext(    (    s0   lib/python2.7/site-packages/conda_build/index.pyt   _alternate_file_extension|  s
    %c         C` sb  i  } i  } | r t  |  z } t j |  } t j |  } xR | j   D]D \ } }	 | j d  rt |	 | | <qL | j d  rL |	 | | <qL qL WWd  QXn  | s i i |  d 6t j d 6t j d 6d 6| d 6| d 6} n  t d	 |   }
 t	 |
  } | j
 t j |   t | _ | t	 j |
 j d
 t  <d   | pB| j D } t | d |
 f } | S(   Nu   .tar.bz2u   .condau   subdiru   archu   platformu   infou   packagesu   packages.condau+   https://conda.anaconda.org/dummy-channel/%st   with_credentialsc         S` s   i  |  ] } | |  q S(    (    (   RU   t   prec(    (    s0   lib/python2.7/site-packages/conda_build/index.pys
   <dictcomp>  s   	 t   channels(   Rt   Ru   Rv   R   R   R'   t	   arch_nameRS   R!   R    t   _process_raw_repodata_strR  RC   t   _loadedt   _cache_R   t   _package_recordsR-   (   Rg   t	   file_patht   precsR   R   t   conda_packagest   fit   recsR   R   RT   t   sdR   t   r(    (    s0   lib/python2.7/site-packages/conda_build/index.pyt   _get_resolve_object  s6    
	c   
      C` s  i  } x |  j  j   D] \ } } | | k r g  } x | | D]R } |  j t d | | f   d j } | j |  j t d | | f    q? Wn3 |  j  | d j } |  j t d | | f   } | | | <q Wg  | j   D] } | D] }	 |	 ^ q q S(   Nu   %s=%si    (   t   groupsR   t   find_matchesR$   t   versiont   extendRk   (
   RG  t   pinsRI  t   g_namet   g_recst   matchest   pinRK  t   groupt   pkg(    (    s0   lib/python2.7/site-packages/conda_build/index.pyt   _get_newest_versions  s    &-c      
   C` s4  t  j |  j  } t   } x |  j j   D] \ } } x | D] } x | j D] } | | k rf qN n  t |  } |  j |  s | j |  }	 |	 r |	 d j }
 t | j	 | j
 g    t | j t d | j
 |
 f    B| | j
 <q n  | j |  qN Wq> Wq+ Wg  | j   D] } | D] } | ^ q!qS(   uZ   For each package in new_r, if any deps are not satisfiable, backfill them from original_r.i    u   %s=%s(   t   copyt   deepcopyRI  R   R   t   dependsR$   RJ  RK  R~   Rs   R   Rk   (   t   new_rt
   original_rt   expanded_groupst
   seen_specsRN  RO  t   g_rect   dep_spect   msRP  RK  RR  RS  (    (    s0   lib/python2.7/site-packages/conda_build/index.pyt   _add_missing_deps  s     	6c         C` s0  i  } | p i  } x | j  j   D] \ } } | j  | d j } t | j t d | | f    } | | k r xa | | D]R } | j t d | | f   d j } | j | j t d | | f    q~ Wn  | | | <q" Wt |  d g  | j   D] }	 |	 D] }
 |
 ^ qq } t t	 | |   S(   uH  Captures only the newest versions of software in the resolve object.

    For things where more than one version is supported simultaneously (like Python),
    pass pins as a dictionary, with the key being the package name, and the value being
    a list of supported versions.  For example:

    {'python': ["2.7", "3.6"]}
    i    u   %s=%sRB  (
   RI  R   RK  R   RJ  R$   R   RH  Rk   R_  (   Rg   RG  RM  RI  RN  RO  RK  RP  t	   pin_valueRR  RS  RX  (    (    s0   lib/python2.7/site-packages/conda_build/index.pyt   _shard_newest_packages  s    	%&-8c   
      ` s$  t  |  d   } t |  | |  }   f d   t   j    t d d g  D } i  } i  } x | D] } | j j d  r   d | j | | j <| j j d d  }	   d j |	 i   j d  | | j d <qi | j j d  ri   d | j | | j <qi qi W| | d <| | d <| S(	   NR   c         ` s   i  |  ] }   | |  q S(    (    (   RU   R   (   R   (    s0   lib/python2.7/site-packages/conda_build/index.pys
   <dictcomp>  s   	 u   packagesu   packages.condau   .condau   .tar.bz2u   md5u   legacy_bz2_md5(   RH  Ra  R   t   keysR<   R   R   R~   (
   Rg   R   RM  RG  t	   keep_pkgst   new_repodataR   RC  t   keep_pkgt   counterpart(    (   R   s0   lib/python2.7/site-packages/conda_build/index.pyt   _build_current_repodata  s    2-

R   c           B` s   e  Z d e e e d   Z d e e d d  Z e e d  Z d   Z e e	 d  Z
 e e d   Z e d    Z e d    Z d   Z d	   Z d
   Z d   Z d   Z d   Z d d  Z d   Z d   Z d d  Z RS(   c         C` ss   t  |  |  _ | p' t | j d   |  _ | |  _ | sN t j j d k rW t	   n	 t
 |  |  _ | |  _ d  S(   Nu   /i   (   R   t   channel_rootR   R   R   t   _subdirst   syst   version_infot   majorR2   R   t   thread_executorR   (   R6   Rh  R   R   R   R   R   (    (    s0   lib/python2.7/site-packages/conda_build/index.pyR7     s    	!c         ` sV  | r t  j } n	 t  j } t j | d t g   j s t   f d   t j	   j
  D  } t j d |  t | d h B   _ } n# t t   j  d h B   _ } t j t j   j
  g d d pi  }	 t j j   j
 d  }
 t j j |
  r2t |
   } t j |  }	 Wd  QXn  t d t |  d	 | pN| d
 t  } x| D]} | j d |  | j   t d d d	 | p| d
 t  y} | j d  | j   t   j
 |    j | d | d | } | j d  | j     j | | t  | j d  | j     j  | | |  \ } } | j d  | j     j | | t!  | j d  | j   t" | | d | } | j d  | j     j | | d d | j d  | j     j# | |  | j d  | j     j$ |	 | |  Wd  QXqdWWd  QX  j% |	    j& |	  Wd  QXWd  QXd  S(   NRM   c         3` s<   |  ]2 } | t  j k r t t   j |   r | Vq d  S(   N(   R#   R   R   R   Rh  (   RU   Rg   (   R6   (    s0   lib/python2.7/site-packages/conda_build/index.pys	   <genexpr>  s    u   found subdirs %su   noarcht   timeouti  u   channeldata.jsont   totalt   disablet   leaveu
   Subdir: %si   u   Gathering repodataRN   R   u   Writing pre-patch repodatau   Applying patch instructionsu   Writing patched repodatau    Building current_repodata subsetRM  u   Writing current_repodata subsett   json_filenameu   current_repodata.jsonu   Writing subdir index HTMLu   Updating channeldata('   R`   Ra   t   ERRORR#   R^   RF   Ri  R   RY   t   listdirRh  R   R   R   R   t   try_acquire_lockst   get_lockRZ   R   R   Rt   Ru   Rv   R   R   R3   t   set_descriptionR   Re   t   index_subdirt   _write_repodatat   REPODATA_FROM_PKGS_JSON_FNt   _patch_repodatat   REPODATA_JSON_FNRg  t   _write_subdir_index_htmlt   _update_channeldatat   _write_channeldata_index_htmlt   _write_channeldata(   R6   R   R   RN   R   R   t   levelt   detected_subdirsR   Rw   R   R?   t   tRg   t   t2t   repodata_from_packagesR   t   patch_instructionst   current_repodata(    (   R6   s0   lib/python2.7/site-packages/conda_build/index.pyR     sf    		(#%+
%




	


#c   !      ` s  t   j   }  j   t  | t  } | rH t j d |  n  d   t j |  D } y. t |   } t	 j
 |  p i  } Wd  QXWn t t f k
 r i  } n X| j d i   }	 | j d i   }
 t |	  t |
  B} t  | d d  } y. t |   } t	 j
 |  pi  } Wd  QXWn i  } n X| j   } z
| | } | | } t | j d g    } | | 8}  j  | | | d | d	 | } t | | | |   | | } x$ | D] } | | k r| | =qqW f d
   | j d i   j   D }  f d   | j d i   j   D } x  D] } | | k p]| | k sBt j  j  | |  \ } } | | k r| j |  q| j d  r| | | <q| | | <qBqBWt t | |   } x0t t d d d | p| d t D]	  t     f d   | D  } t d d  d t |  d | pS| d t   } x t |  D] } | j   \ } } } } | ro| ro| j d |  | j    i t! |  d 6| d 6| | <| r| j d  r| | | <q| | | <qqoqoWWd  QXqWi | d 6| d 6i  d 6d 6t" d 6t t# |   d 6}  Wd  | | k rt | d   } t	 j$ | |  Wd  QXn  X|  S(   Nu   Building repodata for %sc         S` s4   h  |  ]* } | j  d   s* | j  d  r |  q S(   u   .condau   .tar.bz2(   R   (   RU   R<   (    (    s0   lib/python2.7/site-packages/conda_build/index.pys	   <setcomp>W  s   	 u   packagesu   packages.condau   .cacheu	   stat.jsonu   removedRN   R   c         ` s+   i  |  ]! \ } } |   k r | |  q S(    (    (   RU   R   R   (   t   unchanged_set(    s0   lib/python2.7/site-packages/conda_build/index.pys
   <dictcomp>  s   	 c         ` s+   i  |  ]! \ } } |   k r | |  q S(    (    (   RU   R   R   (   R  (    s0   lib/python2.7/site-packages/conda_build/index.pys
   <dictcomp>  s   	 u   .tar.bz2t   descu   File formatRp  Rq  c         3` s?   |  ]5 } | j     r  j j t j  j  |  Vq d  S(   N(   R   Rm  RB   R   t   _extract_to_cacheRh  (   RU   R<   (   t   conda_formatR6   Rg   (    s0   lib/python2.7/site-packages/conda_build/index.pys	   <genexpr>  s   u   hash & extract packages for %sRo  u   Updated: %su   mtimeu   sizeu   .condau   subdiru   infou   repodata_versionu   w(%   R   Rh  t   _ensure_dirsRz  R   R   RY   Rt  Rt   Ru   Rv   t   EnvironmentErrorR1   R~   R   RU  t   _calculate_update_setR   R   R   t   _load_index_from_cacheR   R   t   tupleRK   R   R2  R3   R   R   R@   Rw  R   R   t   REPODATA_VERSIONRW   R   (!   R6   Rg   RN   R   t   subdir_patht   repodata_json_patht   fns_in_subdirR   t   old_repodatat   old_repodata_packagest   old_repodata_conda_packagest   old_repodata_fnst   stat_cache_patht
   stat_cachet   stat_cache_originalt   add_sett
   remove_sett
   ignore_sett
   update_sett   removed_setR<   t   new_repodata_packagest   new_repodata_conda_packagesR   RV   t   hash_extract_sett   futuresR  t   futureR   t   sizet
   index_jsonRd  (    (   R  R6   Rg   R  s0   lib/python2.7/site-packages/conda_build/index.pyRx  M  s    
	




((!%
c         C` s   d   } t  |  j | d  } | |  | t  | d   | t  | d   | t  | d   | t  | d   | t  | d   | t  | d   | t  | d	   | t  |  j d
   | t  | d   d  S(   Nc         S` s   t  |   p t j |   S(   N(   R   RY   R   (   RZ   (    (    s0   lib/python2.7/site-packages/conda_build/index.pyt   <lambda>  t    u   .cacheu   indexu   aboutu   pathsu   recipeu   run_exportsu   post_installu   iconu   iconsu
   recipe_log(   R   Rh  (   R6   Rg   t   ensureR/  (    (    s0   lib/python2.7/site-packages/conda_build/index.pyR    s    	
c         C` s   | | @} t  |  j |  } t   }	 x t t |  d d d | pG | d t D] }
 |
 | k rs |	 j |
  qQ t j t  | |
   } t	 | j
  t	 | |
 d  k s | j | |
 d k rQ |	 j |
  qQ qQ W|	 S(   NR  u   Finding updated filesRp  Rq  u   mtimeu   size(   R   Rh  R   R   R4  R3   R   RY   t   statR   t   st_mtimet   st_size(   R6   Rg   R  R  R  RN   R   t   candidate_fnsR  R  R<   t   stat_result(    (    s0   lib/python2.7/site-packages/conda_build/index.pyR    s    
	#c   "      C` s  t  |  |  } t |  } | } t j j  | |  } t j |  } | j }	 | j }
 | |
 |	 d  f } t  | d d | d  } t  | d d | d  } t  | d d | d  } t  | d d | d  } t  | d d | d  } t  | d d | d  } t  | d d	 |  } t j	 d
 |  t
 } t j j |  ret j j | j | |   ret } n  y| j d  rt j j |  rt |   } t j |  } Wd  QXnO| r| st j j |  rt    } t j j | d | d d t j j  | d d  } t j j |  s'| St |   } t j |  } Wd  QXt | d |  t | d |  t | d |  t | |  t | |  t | |  } t | | |  Wd  QXd d d d d d d d d d h
 } x| t |  @D] } | | =qWn | r| | | | | | | g } g  | D] } | j | |  ^ q+} xi t | |  D]X \ } } t j j |  rYy t j t j j |   Wn n Xt  j! | |  qYqYWt |   } t j |  } Wd  QXn$ t |   } t j |  } Wd  QX| j" t j j# |   t | d   }  t j$ | |   Wd  QX| |
 |	 | f } Wn t% j& j' t( j) t* t+ t, f k
 r}! | st- j. |  | | d t St j/ d |  t j/ t0 |!   n7 t1 k
 r}! t j/ d |  t j/ t0 |!   n X| S(    Nu   .cacheu   indexu   .jsonu   aboutu   pathsu   recipeu   run_exportsu   post_installu   iconu#   hashing, extracting, and caching %su   .condat   dest_dirt
   componentsu   infou
   index.jsonu
   about.jsonu
   paths.jsonu   recipe_log.jsonu   archu
   has_prefixu   mtimeu   platformu   ucsu   requires_featuresu   binstaru   target-tripletu   machineu   operatingsystemu   wt
   second_tryuF   Package %s appears to be corrupt.  Please remove it and re-download it(2   R   R8  RY   RZ   R  R  R  R   R   R   R3   Rq   R   RC   R   R   Rt   Ru   Rv   R,   t   conda_package_handlingt   apit   extractR1  R  R  R  R  R   t   zipR   R   R#   t	   copy_intoR   t   get_pkg_detailsR   t
   libarchivet	   exceptiont   ArchiveErrort   tarfilet	   ReadErrort   KeyErrort   EOFErrorR1   R   R  t   errorR   R0   ("   Rh  Rg   R<   R  R  t   alternate_cache_fnR5  t   abs_fnR  R  R   t   retvalt   index_cache_patht   about_cache_pathR   R  R  R   R  t   alternate_cacheR?   R  R  R   R
  t   filter_fieldsR   R   t   _t   bizarro_pathst   srct   destR   RA   (    (    s0   lib/python2.7/site-packages/conda_build/index.pyR    s    			" 	%c         C` sn   t  |  | d d | d  } y( t |   } t j |  } Wd  QXWn t t f k
 rc | } n X| | f S(   Nu   .cacheu   indexu   .json(   R   Rt   Ru   Rv   Rx   R1   (   Rh  Rg   R<   R  R  R   R  (    (    s0   lib/python2.7/site-packages/conda_build/index.pyR  b  s    
c         C` s  t  |  |  } y t t  | |   } Wn t k
 r< i  SXt  | d d | d  } t  | d d | d  } t  | d d | d  } t  | d d | d  } t  | d d | d  }	 t  | d d | d	  }
 t  | d d
 | d  } i  } x | | | |	 | f D]m } yJ t j j |  d k rWt |   } | j t j	 |   Wd  QXn  Wqt
 t t f k
 rtqXqWt |
  } | r/t |  d } | j d d  d } d | d | f } d | } t  |  d |  } t j |  } d | t |  f } | j d | d |  t j | |  n  | | d <| j d i   } y! | j d   | j   D  Wn t k
 rn Xt | d  t | d  y, t |   } t j	 |  | d <Wd  QXWn! t
 t f k
 ri  | d <n X| S(   Nu   .cacheu   indexu   .jsonu   aboutu   recipeu   run_exportsu   post_installu   iconu   .*u
   recipe_logi    iu   .i   u   %s.%su   nameu   icons/u   iconsu	   md5:%s:%st	   icon_hasht   icon_urlu   mtimeu   sourcec         S` s#   i  |  ] \ } } | d  |  q S(   u   source_(    (   RU   R   R   (    (    s0   lib/python2.7/site-packages/conda_build/index.pys
   <dictcomp>  s   	 u   descriptionu   summary(   R   R	   R0   RY   RZ   R
   Rt   R   Ru   Rv   t   OSErrorR  Rx   R.   R   t   rsplitR#   R   R   R~   R   R   R   (   Rh  Rg   R<   R  R   R  R  R  R  R   t   icon_cache_path_globt   recipe_log_patht   dataRZ   R   t   icon_cache_pathsR  t   icon_extt   channel_icon_fnR  t   icon_channel_patht   icon_md5R  t   source(    (    s0   lib/python2.7/site-packages/conda_build/index.pyt   _load_all_from_cachem  sZ    #

!c   	      C` s   t  |  j | |  } t j | d d d t j d d  j d  } t | | d t } | r | d } t j	 |  } t | | d	 t n  | S(
   Nt   indenti   t	   sort_keysu   ':'u   ': 'u   utf-8R   u   .bz2R   (
   R   Rh  Ru   R  RC   R   t   encodeR   t   bz2t   compress(	   R6   Rg   R   Rr  R  t   new_repodata_binaryt   write_resultt   repodata_bz2_patht   bz2_content(    (    s0   lib/python2.7/site-packages/conda_build/index.pyRy    s    0
c   	      ` s   | d } t    j |  }   f d   } t   } | | t  | t   | | t  | t d   | | t  | t   | | t  | t d   | | t  | d   t   j | | |  } t  | d  } t | |  S(   Nu   packagesc         ` so   t  t   j |   rk i t |  d 6t t |   d 6t j |  d 6t j |  d 6|  t	 |  <n  d  S(   Nu   sizeu	   timestampu   sha256u   md5(
   R   R   Rh  R
   R   R	   R#   t   sha256_checksumR   R   (   R  RZ   (   R6   (    s0   lib/python2.7/site-packages/conda_build/index.pyt   _add_extra_path  s    u   .bz2u   patch_instructions.jsonu
   index.html(   R   Rh  R   R|  Rz  R  R   R   (	   R6   Rg   R   R  R  R  R  R  t
   index_path(    (   R6   s0   lib/python2.7/site-packages/conda_build/index.pyR}    s    
		c         C` s5   t  |  j |  } t |  j d  } t | |  d  S(   Nu
   index.html(   R  R   R   Rh  R   (   R6   R  R  R  (    (    s0   lib/python2.7/site-packages/conda_build/index.pyR    s    c         ` s  | d   | d } t    j    t  d   | j   D  } | j   } | j   f d   | D  | j d i      f d   } g  } t d   | j    }	 x |	 j   D] \ }
 } |
  k s  |
 j d  r=x t d   |  j   D]: } t t	 t
 | d	 d
   d t   } | | |  q Wq t t	 t
 | d	 d   d t   } | | |  q Wd   } g  g  } } | rt |   \ } } n  t   f d   | D  } xt | |  D]\ } } | j   } | r| j |  | d }  j | i   } | j d d  } | j d d  } t |  t |  k }  j | i    | <x( d, D]  } |  | | | | |  quWx: d- D]2 } t | j |  | j |  f   | | <qWt
 t t  | j d( g    g     | d( <| j d i   } | j d  } | rF| j d  | | <n  |  | d <t t | j d) d*  | j | i   j d) d*     | d) <qqW| j i t d+ 6t
 t t  | j d( g    g    d( 6 d 6 d  S(.   Nu   packagesu   packages.condac         s` s   |  ] } | d   d Vq d S(   iu   .tar.bz2N(    (   RU   R   (    (    s0   lib/python2.7/site-packages/conda_build/index.pys	   <genexpr>  s    c         ` s   i  |  ] }   | |  q S(    (    (   RU   R   (   t   legacy_packages(    s0   lib/python2.7/site-packages/conda_build/index.pys
   <dictcomp>  s   	 c         ` s   | d } | d }   j  | i   j  d i   } |   k s    j  | i   j  d g   k s   j  | i   j  d d  t | j  d d   k  s | r | d | k r |  j |  n  d  S(   Ni   u   nameu   run_exportsu   subdirsu	   timestampi    u   version(   R~   R   R   (   RI  t	   candidatet   pkg_dictt   pkg_nameR  (   t   package_dataRg   (    s0   lib/python2.7/site-packages/conda_build/index.pyt   _append_group  s    

$c         S` s   |  d d S(   Ni   u   name(    (   t   x(    (    s0   lib/python2.7/site-packages/conda_build/index.pyR    R  u   run_exportsc         S` s   |  d d S(   Ni   u   version(    (   R  (    (    s0   lib/python2.7/site-packages/conda_build/index.pyR    R  R   c         S` s   |  d j  d d  S(   Ni   u	   timestampi    (   R~   (   R  (    (    s0   lib/python2.7/site-packages/conda_build/index.pyR    R  t   reversec         S` s   |  d j  d d  S(   Ni   u	   timestampi    (   R~   (   R  (    (    s0   lib/python2.7/site-packages/conda_build/index.pyR    R  c         S` sM   | j  |  r6 | s% | j  |  r6 | | |  | <n | j  |  |  | <d  S(   N(   R~   (   t   pdR  t   erect
   data_newerR   (    (    s0   lib/python2.7/site-packages/conda_build/index.pyt   _replace_if_newer_and_present  s    %c         3` s0   |  ]& }   j  j t j   j  |  Vq d  S(   N(   Rm  RB   R   R  Rh  (   RU   R<   (   R6   Rg   (    s0   lib/python2.7/site-packages/conda_build/index.pys	   <genexpr>   s   u   nameu   versionu   0u   descriptionu   dev_urlu   doc_urlu   doc_source_urlu   homeu   licenseu
   source_urlu   source_git_urlu   summaryu   icon_urlu	   icon_hashu   tagsu   identifiersu   keywordsu   recipe_originu   binary_prefixu   text_prefixu
   activate.du   deactivate.du   pre_linku	   post_linku
   pre_unlinku   subdirsu	   timestampi    u   channeldata_version(   u   descriptionu   dev_urlu   doc_urlu   doc_source_urlu   homeu   licenseu
   source_urlu   source_git_urlu   summaryu   icon_urlu	   icon_hashu   tagsu   identifiersu   keywordsu   recipe_originu   version(   u   binary_prefixu   text_prefixu
   activate.du   deactivate.du   pre_linku	   post_linku
   pre_unlink(   R   Rb  RU  R   R~   RL   R   Rk   R3  R4  R   RC   R  R  R@   R%   t   anyRW   R   t   maxt   CHANNELDATA_VERSION(   R6   Rw   R   Rg   RC  t   use_these_legacy_keyst   all_repodata_packagesR  RI  t   package_groupst	   groupnameRR  t   vgroupR  R  t   fnst   fn_dictsR  t   fn_dictR  R  Rs   R  t   data_vt   erec_vR  R   R  t   exports_from_this_version(    (   R  R  R6   Rg   s0   lib/python2.7/site-packages/conda_build/index.pyR~    sf    

,''	
 

03B	,c         C` s   x< | j  d i   j   D]" \ } } d | k r | d =q q Wt |  j d  } t j | d d d t j d d  } t | | t  d  S(	   Nu   packagesu   commitsu   channeldata.jsonR  i   R  u   ':'u   ': '(	   R~   R   R   Rh  Ru   R  RC   R   R   (   R6   R  t   _pkgR  t   channeldata_pathR   (    (    s0   lib/python2.7/site-packages/conda_build/index.pyR  *  s    %'c      
   C` s   i  } t    n } t j j | d | t j j | | d  } t j j |  ry t |   } t	 j
 |  } Wd  QXn  Wd  QX| S(   NR  u   patch_instructions.json(   R,   R  R  R  RY   RZ   R   R   Rt   Ru   Rv   (   R6   Rg   R   R   R  t   instructions_fileR?   (    (    s0   lib/python2.7/site-packages/conda_build/index.pyt    _load_patch_instructions_tarball3  s    c         C` s  | p t  |  j d  } t |  r t j d | | f  yE d d l m } m } | d |  } | |  } | j j	 |  Wn/ t
 k
 r d d  l }	 |	 j d |  } n X| j | |  }
 |
 j d d  d k r t d   n  |
 S| rt d	 j |    n  i  Sd  S(
   Nu   gen_patch.pyu   using patch generator %s for %si    (   t   spec_from_file_locationt   module_from_specu   a_bu   patch_instructions_versioni   u'   Incompatible patch instructions versionu   Specified metadata patch file '{}' does not exist.  Please try an absolute path, or examine your relative path carefully with respect to your cwd.(   R   Rh  R   R   R   t   importlib.utilR  R  R   t   exec_modulet   ImportErrort   impt   load_sourceR{  R~   R8   t
   ValueErrorR   (   R6   Rg   R   R   t   gen_patch_pathR  R  R   t   modR	  R   (    (    s0   lib/python2.7/site-packages/conda_build/index.pyt   _create_patch_instructions=  s&    	c         C` sP   t  j | d d d t j d d  } t |  j | d  } t | | t  d  S(   NR  i   R  u   ':'u   ': 'u   patch_instructions.json(   Ru   R  RC   R   R   Rh  R   (   R6   Rg   R   t	   new_patcht   patch_instructions_path(    (    s0   lib/python2.7/site-packages/conda_build/index.pyt   _write_patch_instructions[  s    'c         C` s   t  |  j | d  } t |  r t j d |  t |  A } t j |  } | j d d  d k rw t	 d   n  | SWd  QXn  i  S(   Nu   patch_instructions.jsonu   using patch instructions %su   patch_instructions_versioni    i   u'   Incompatible patch instructions version(
   R   Rh  R   R   R   Rt   Ru   Rv   R~   R8   (   R6   Rg   R  R   R   (    (    s0   lib/python2.7/site-packages/conda_build/index.pyt   _load_instructions`  s    c         ` s     r7 t    f d   t D  r7 |  j |    } n |  j | |    } | re |  j | |  n |  j |  } | j d d  d k r t d   n  t | | |  | f S(   Nc         3` s   |  ] }   j  |  Vq d  S(   N(   R   (   RU   R6  (   R   (    s0   lib/python2.7/site-packages/conda_build/index.pys	   <genexpr>l  s    u   patch_instructions_versioni    i   u'   Incompatible patch instructions version(	   R  R2  R  R  R  R  R~   R8   R   (   R6   Rg   R   R   R   (    (   R   s0   lib/python2.7/site-packages/conda_build/index.pyR{  k  s    "N(   RF   RG   R   t   MAX_THREADS_DEFAULTR3   R7   R   Rx  R  RC   R  t   staticmethodR  R  R  Ry  R}  R  R~  R  R  R  R  R  R{  (    (    (    s0   lib/python2.7/site-packages/conda_build/index.pyR     s*   		H	r9	
			Y			
		(   u   .condau   .tar.bz2i0*  (   u   descriptionu   dev_urlu   doc_urlu   doc_source_urlu   homeu   licenseu   reference_packageu
   source_urlu   source_git_urlu   source_git_tagu   source_git_revu   summaryu   versionu   subdirsu   icon_urlu	   icon_hashu   run_exportsu   binary_prefixu   text_prefixu
   activate.du   deactivate.du   pre_linku	   post_linku
   pre_unlinku   tagsu   identifiersu   keywordsu   recipe_originu   commits(   t
   __future__R    R   R   R   R  t   collectionsR   RU  R   Ru   t   numbersR   RY   t   os.pathR   R   R	   R
   R   R   R   R   R   R!  Rj  R  t   tempfileR   Ry   t   uuidR   t   conda.common.compatR   R   t   jinja2R   R   R   R  t   yaml.constructorR   t   yaml.parserR   t   yaml.scannerR   t   yaml.readerR   R   t	   functoolsR   R`   R  t   conda_package_handling.apiR  t   concurrent.futuresR   R   R   R   t	   threadingR   t   conda.core.subdir_dataR    t   conda.models.channelR!   R  R"   R#   R$   R%   R&   R'   R(   R)   R*   R+   R,   R-   R.   R/   R0   R1   R2  RF   R   R2   t   conda.base.constantsRH   RI   R  t	   frozensetRk   t
   NAMESPACESR\   R   Ri   R[   R]   Rw   t   hasattrt	   cpu_countR  RS   t   mint   LOCK_TIMEOUT_SECSt   LOCKFILE_NAMEt   cytoolz.itertoolzRJ   RK   RL   t   conda._vendor.toolz.itertoolzR3   RC   R   Re   Rf   R   R   R  R  R|  Rz  t   CHANNELDATA_FIELDSR   R   R   R   R   R   R  R  R  R  R  R  R-  R1  R8  RH  RT  R_  Ra  Rg  t   objectR   (    (    (    s0   lib/python2.7/site-packages/conda_build/index.pyt   <module>   s  "@"""	
3  r			
                            			!				"									"		