ó
Ý²k^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 m	 Z	 m
 Z
 d  d l m Z d  d l Z d  d l m Z d d l m Z m 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 d d l m Z d d l  m! Z! d d l" m# Z# d d l$ m% Z% m& Z& m' Z' d d l( m) Z) m* Z* m+ Z+ m, Z, d d l- m. Z. d d l/ m0 Z0 m1 Z1 m2 Z2 m3 Z3 d d l4 m5 Z5 d d l6 m7 Z7 m8 Z8 m9 Z9 d d l: m; Z; m< Z< d d l= m> Z> m? Z? m@ Z@ d d lA mB ZB d d lC mD ZD d d lE mF ZF d d lG mH ZH d d lI mJ ZJ d d lK mL ZL d d lM mN ZN e
 eO ƒ ZP d  eQ f d! „  ƒ  YZR d" eQ f d# „  ƒ  YZS d$ „  ZT f  e5 d% „ ZU d S(&   i    (   t   absolute_importt   divisiont   print_functiont   unicode_literalsN(   t   exists(   t   DEBUGt	   getLogger(   t   join(   t   dedenti   (   t   get_reduced_indext   _supplement_index_with_system(   t   PrefixSetupt   UnlinkLinkTransaction(   t
   PrefixData(   t
   SubdirDatai   (   t
   CondaErrort   __version__(   t   memoizedproperty(   t   dals(   t
   IndexedSet(   t   concatt   concatvt   groupby(   t   DepsModifiert   UNKNOWN_CHANNELt   UpdateModifiert   REPODATA_FN(   t   context(   t	   iteritemst
   itervaluest   odictt	   text_type(   t   NULL(   t   Spinnert   dashlistt   time_recorder(   t   get_major_minor_versiont   paths_equal(   t   PackagesNotFoundErrort   SpecsConfigurationConflictErrort   UnsatisfiableError(   t   History(   t   Channel(   t
   NoarchType(   t	   MatchSpec(   t   PrefixGraph(   t   VersionOrder(   t   Resolvet   Solverc           B` s  e  Z d  Z d d d e e d „ Z e e e e e e e d „ Z e e e e e e e d „ Z e e e e e e d „ Z	 d „  Z
 d „  Z d „  Z e d e  ƒ d	 „  ƒ Z d
 „  Z e d e  ƒ d „  ƒ Z d „  Z d „  Z d „  Z e d e  ƒ d „  ƒ Z d „  Z d „  Z d „  Z RS(   uê   
    A high-level API to conda's solving logic. Three public methods are provided to access a
    solution in various forms.

      * :meth:`solve_final_state`
      * :meth:`solve_for_diff`
      * :meth:`solve_for_transaction`

    c         C` s  | |  _  t d „  | p t j Dƒ ƒ |  _ t d „  | p@ t j Dƒ ƒ |  _ t t j d „  | Dƒ ƒ ƒ |  _	 t d „  |  j	 Dƒ ƒ |  _
 t t j d „  | Dƒ ƒ ƒ |  _ t ƒ  |  _ | |  _ t d „  |  j Dƒ ƒ sá t ‚ | |  _ d |  _ d |  _ t |  _ i  |  _ d S(   u„  
        Args:
            prefix (str):
                The conda prefix / environment location for which the :class:`Solver`
                is being instantiated.
            channels (Sequence[:class:`Channel`]):
                A prioritized list of channels to use for the solution.
            subdirs (Sequence[str]):
                A prioritized list of subdirs to use for the solution.
            specs_to_add (Set[:class:`MatchSpec`]):
                The set of package specs to add to the prefix.
            specs_to_remove (Set[:class:`MatchSpec`]):
                The set of package specs to remove from the prefix.

        c         s` s   |  ] } t  | ƒ Vq d  S(   N(   R*   (   t   .0t   c(    (    s/   lib/python2.7/site-packages/conda/core/solve.pys	   <genexpr>E   s    c         s` s   |  ] } | Vq d  S(   N(    (   R1   t   s(    (    s/   lib/python2.7/site-packages/conda/core/solve.pys	   <genexpr>F   s    c         s` s   |  ] } | Vq d  S(   N(    (   R1   R3   (    (    s/   lib/python2.7/site-packages/conda/core/solve.pys	   <genexpr>G   s    c         s` s   |  ] } | j  Vq d  S(   N(   t   name(   R1   t   _(    (    s/   lib/python2.7/site-packages/conda/core/solve.pys	   <genexpr>H   s    c         s` s   |  ] } | Vq d  S(   N(    (   R1   R3   (    (    s/   lib/python2.7/site-packages/conda/core/solve.pys	   <genexpr>I   s    c         s` s   |  ] } | t  j k Vq d  S(   N(   R   t   known_subdirs(   R1   R3   (    (    s/   lib/python2.7/site-packages/conda/core/solve.pys	   <genexpr>M   s    N(   t   prefixR   R   t   channelst   tuplet   subdirst	   frozensetR,   t   merget   specs_to_addt   specs_to_add_namest   specs_to_removet   neutered_specst   _commandt   allt   AssertionErrort   _repodata_fnt   Nonet   _indext   _rt   Falset	   _preparedt   _pool_cache(   t   selfR7   R8   R:   R=   R?   t   repodata_fnt   command(    (    s/   lib/python2.7/site-packages/conda/core/solve.pyt   __init__3   s    	""""					c         C` s   |  j  t j k r' t j r' t ƒ  ‚ ne |  j | | | | | | | ƒ \ } }	 t |  j  | |	 |  j |  j |  j	 ƒ }
 |  j
 |	 ƒ t |
 ƒ Sd S(   u¢  Gives an UnlinkLinkTransaction instance that can be used to execute the solution
        on an environment.

        Args:
            deps_modifier (DepsModifier):
                See :meth:`solve_final_state`.
            prune (bool):
                See :meth:`solve_final_state`.
            ignore_pinned (bool):
                See :meth:`solve_final_state`.
            force_remove (bool):
                See :meth:`solve_final_state`.
            force_reinstall (bool):
                See :meth:`solve_for_diff`.
            should_retry_solve (bool):
                See :meth:`solve_final_state`.

        Returns:
            UnlinkLinkTransaction:

        N(   R7   R   t   root_prefixt   enable_private_envst   NotImplementedErrort   solve_for_diffR   R?   R=   R@   t   _notify_conda_outdatedR   (   RK   t   update_modifiert   deps_modifiert   prunet   ignore_pinnedt   force_removet   force_reinstallt   should_retry_solvet   unlink_precst
   link_precst   stp(    (    s/   lib/python2.7/site-packages/conda/core/solve.pyt   solve_for_transactionT   s    c         C` s   |  j  | | | | | | ƒ } t |  j | |  j | ƒ \ }	 }
 t d „  |	 ƒ j t ƒ } | rƒ t d t d „  | Dƒ ƒ ƒ ‚ n  |	 |
 f S(   u.  Gives the package references to remove from an environment, followed by
        the package references to add to an environment.

        Args:
            deps_modifier (DepsModifier):
                See :meth:`solve_final_state`.
            prune (bool):
                See :meth:`solve_final_state`.
            ignore_pinned (bool):
                See :meth:`solve_final_state`.
            force_remove (bool):
                See :meth:`solve_final_state`.
            force_reinstall (bool):
                For requested specs_to_add that are already satisfied in the environment,
                    instructs the solver to remove the package and spec from the environment,
                    and then add it back--possibly with the exact package instance modified,
                    depending on the spec exactness.
            should_retry_solve (bool):
                See :meth:`solve_final_state`.

        Returns:
            Tuple[PackageRef], Tuple[PackageRef]:
                A two-tuple of PackageRef sequences.  The first is the group of packages to
                remove from the environment, in sorted dependency order from leaves to roots.
                The second is the group of packages to add to the environment, in sorted
                dependency order from roots to leaves.

        c         S` s   |  j  S(   N(   t   is_unmanageable(   t   prec(    (    s/   lib/python2.7/site-packages/conda/core/solve.pyt   <lambda>¤   s    u&   Cannot unlink unmanageable packages:%sc         s` s   |  ] } | j  ƒ  Vq d  S(   N(   t	   record_id(   R1   R`   (    (    s/   lib/python2.7/site-packages/conda/core/solve.pys	   <genexpr>§   s    (	   t   solve_final_statet   diff_for_unlink_link_precsR7   R=   R   t   gett   Truet   RuntimeErrorR"   (   RK   RT   RU   RV   RW   RX   RY   RZ   t   final_precsR[   R\   t   unmanageable(    (    s/   lib/python2.7/site-packages/conda/core/solve.pyRR   ~   s    c      
   ` sŒ  | t  k r t j } n t t | ƒ j ƒ  ƒ } | t  k rH t j } n t t | ƒ j ƒ  ƒ } | t  k ru t j n | } | t  k r t j	 n | } t
 j d ˆ  j ˆ  j ˆ  j | ƒ t ˆ  d ƒ } | sú t ˆ  j | | | | | | ƒ } | ˆ  _ n$ ˆ  j } | | _ | | _ | | _ ˆ  j rt| rtˆ  j rBt ƒ  ‚ n  t ‡  f d †  | j Dƒ ƒ }	 t t |	 ƒ j ƒ S| t j k ràˆ  j rà| ràxI ˆ  j D]% }
 t | j j |
 ƒ d ƒ sžPqžqžWt t | j ƒ j ƒ Sn  | j s3t d ˆ  j  t j! ot j" o| t j# ƒ  ˆ  j$ | ƒ } Wd QXn  | rQ| t j% k rQd } n% ˆ  j  t& k rpd ˆ  j  } n d } t d	 t j! ot j" t j# d
 | ƒ“ˆ  j' | ƒ } ˆ  j( | ƒ } t) j) | j ƒ } ˆ  j* | j | j+ ƒ } ˆ  j, | ƒ } ˆ  j- | ƒ } ˆ  j* | j | j+ ƒ } | j t j. k rŠˆ  j/ | | | j0 j1 ƒ  ƒ } t2 | ƒ d k rŠx$ | D] }
 ˆ  j3 |
 | j ƒ qgWqŠn  | j4 rt5 | ƒ t5 | j ƒ t5 | j4 ƒ } g  | j D] } | j6 ^ qÃ} | j j7 g  | D]- } | j6 | j+ k rè| j6 | k rè| ^ qèƒ n  ˆ  j8 | ƒ } Wd QXt9 j: ƒ  t t | j ƒ j ƒ | _ t
 j d ˆ  j d j; d „  | j Dƒ ƒ ƒ | j S(   uÎ  Gives the final, solved state of the environment.

        Args:
            update_modifier (UpdateModifier):
                An optional flag directing how updates are handled regarding packages already
                existing in the environment.

            deps_modifier (DepsModifier):
                An optional flag indicating special solver handling for dependencies. The
                default solver behavior is to be as conservative as possible with dependency
                updates (in the case the dependency already exists in the environment), while
                still ensuring all dependencies are satisfied.  Options include
                * NO_DEPS
                * ONLY_DEPS
                * UPDATE_DEPS
                * UPDATE_DEPS_ONLY_DEPS
                * FREEZE_INSTALLED
            prune (bool):
                If ``True``, the solution will not contain packages that were
                previously brought into the environment as dependencies but are no longer
                required as dependencies and are not user-requested.
            ignore_pinned (bool):
                If ``True``, the solution will ignore pinned package configuration
                for the prefix.
            force_remove (bool):
                Forces removal of a package without removing packages that depend on it.
            should_retry_solve (bool):
                Indicates whether this solve will be retried. This allows us to control
                whether to call find_conflicts (slow) in ssc.r.solve

        Returns:
            Tuple[PackageRef]:
                In sorted dependency order from roots to leaves, the package references for
                the solved state of the environment.

        uF   solving prefix %s
  specs_to_remove: %s
  specs_to_add: %s
  prune: %su   sscc         3` s4   |  ]* ‰  t  ‡  f d  †  ˆ j Dƒ ƒ s ˆ  Vq d S(   c         3` s   |  ] } | j  ˆ  ƒ Vq d  S(   N(   t   match(   R1   t   spec(   R`   (    s/   lib/python2.7/site-packages/conda/core/solve.pys	   <genexpr>ô   s    N(   t   anyR?   (   R1   (   RK   (   R`   s/   lib/python2.7/site-packages/conda/core/solve.pys	   <genexpr>ó   s    u    Collecting package metadata (%s)Nu@   failed with initial frozen solve. Retrying with flexible solve.
uD   failed with repodata from %s, will retry with next repodata source.
u   failed
u   Solving environmentt   fail_messagei    u/   solved prefix %s
  solved_linked_dists:
    %s
u   
    c         s` s   |  ] } | j  ƒ  Vq d  S(   N(   t   dist_str(   R1   R`   (    (    s/   lib/python2.7/site-packages/conda/core/solve.pys	   <genexpr>5  s    (<   R    R   RT   R   R   t   lowerRU   R   RW   RX   t   logt   debugR7   R?   R=   t   hasattrt   SolverStateContainert   sscRZ   RQ   R9   t   solution_precsR   R-   t   grapht   SPECS_SATISFIED_SKIP_SOLVEt   nextt   prefix_datat   queryRE   t   rR!   RD   t	   verbosityt   quiett   jsont   _collect_all_metadatat   FREEZE_INSTALLEDR   t   _remove_specst
   _add_specst   copyt   get_request_package_in_solutiont	   specs_mapt   _find_inconsistent_packagest   _run_satt   UPDATE_SPECSt   get_constrained_packagest   indext   keyst   lent   determine_constricting_specst   add_back_mapt   setR4   t   extendt   _post_sat_handlingR#   t
   log_totalsR   (   RK   RT   RU   RV   RW   RX   RZ   t   retryingRt   t   solutionRk   Rm   Ru   t   pre_packagest   post_packagest   constrainedt   orphan_precsR5   t   solution_prec_names(    (   RK   s/   lib/python2.7/site-packages/conda/core/solve.pyRc   «   sŠ    &										&	1
	#c      
   ` sð  g  | D]' } | j  ˆ  j  k r t | j ƒ ^ q d } g  } x| D]} t ‡  f d †  | j Dƒ ƒ rE xÞ | j D]Ð } t | ƒ } | j  ˆ  j  k rt | j d  k	 rt | j j sÅ d | j j k rt d | j j k r+| j	 g  | j j
 D]7 }	 d |	 j k rê | j  t d | j  |	 f ƒ f ^ qê ƒ qD| j | j  | f ƒ qt qt WqE qE Wg  | D]" }
 |
 d j j | k rV|
 ^ qV} t | ƒ d k r”d  St d j d ˆ  j  ƒ ƒ x2 | D]* } t d	 j d
 | d d | d ƒ ƒ q´Wt d ƒ | S(   Ni    c         3` s$   |  ] } ˆ  j  | k r | Vq d  S(   N(   R4   (   R1   t   j(   Rk   (    s/   lib/python2.7/site-packages/conda/core/solve.pys	   <genexpr>>  s    u   <u   ,u   %s %si   u%   

Updating {spec} is constricted by 
Rk   u$   {package} -> requires {conflict_dep}t   packaget   conflict_depu°   
If you are sure you want an update of your package either try `conda update --all` or install a specific version of the package you want using `conda install <pkg>=<version>`
(   R4   R.   t   versionRl   t   dependsR,   RE   t   exact_valueRk   R   t   tupt   appendt
   matcher_voRŒ   t   printt   format(   RK   Rk   Ru   t   spt   highest_versiont   constrictingR`   t   dept   m_dept   vt   it   hard_constrictingt   const(    (   Rk   s/   lib/python2.7/site-packages/conda/core/solve.pyR   9  s0    +K$/
c   	      C` sÑ   i  } xÄ |  j  D]¹ } | j } g  | D]< } | j | k r& | j d  k	 r& | j t | j ƒ f ^ q& | | <| | j g  | j ƒ  D]? \ } } | | k rƒ | j d  k	 rƒ | j t | j ƒ f ^ qƒ ƒ q W| S(   N(   R=   R4   R   RE   t   strR   t   items(	   RK   Ru   R…   t   requested_packagest   pkgt   update_pkg_requestR«   t   kRª   (    (    s/   lib/python2.7/site-packages/conda/core/solve.pyR„   X  s    	@
>c         ` s­   t  ƒ  } d „  } | | ƒ s* | | ƒ r. | Sxx |  j D]m ‰  t d „  | ˆ  j Dƒ ƒ } | t ‡  f d †  | Dƒ ƒ k rƒ q8 q8 | | k r8 | t  ˆ  g ƒ B} q8 q8 W| S(   Nc         S` s7   x0 |  j  ƒ  D]" \ } } t | ƒ d k r t Sq Wt S(   Ni    (   R¯   RŒ   Rf   RH   (   R±   R³   Rª   (    (    s/   lib/python2.7/site-packages/conda/core/solve.pyt   empty_package_listj  s    c         s` s   |  ] } | d  Vq d S(   i   N(    (   R1   R«   (    (    s/   lib/python2.7/site-packages/conda/core/solve.pys	   <genexpr>t  s    c         3` s*   |  ]  } | j  ˆ  j  k r | j Vq d  S(   N(   R4   R   (   R1   R«   (   R±   (    s/   lib/python2.7/site-packages/conda/core/solve.pys	   <genexpr>u  s    (   R   R=   t   maxR4   (   RK   R•   R–   t
   index_keyst   update_constrainedR´   t   current_version(    (   R±   s/   lib/python2.7/site-packages/conda/core/solve.pyR‰   g  s    		"t   module_namec         C` s  | j  j | j ƒ xH d D]@ } | | j  k r | j j | d  ƒ r t | ƒ | j  | <q q Wxn | j j ƒ  D]] } | j s¥ t | j ƒ t	 j
 k s¥ | j d k rn | j  j i t | j ƒ | j 6ƒ qn qn Wt t |  j |  j t | j ƒ ƒ ƒ } |  j | ƒ \ } } | j | | ƒ | S(	   Nu   anacondau   condau   conda-buildu
   python.appu   console_shortcutu   powershell_shortcutu   pypi(   u   anacondau   condau   conda-buildu
   python.appu   console_shortcutu   powershell_shortcut(   R…   t   updatet   specs_from_history_mapRy   Re   RE   R,   t   iter_recordsR4   R   t   aggressive_update_packagest   subdirR   R   R?   R=   R   t   _preparet   set_repository_metadata(   RK   Rt   t   pkg_nameR`   t   prepared_specsRŠ   R{   (    (    s/   lib/python2.7/site-packages/conda/core/solve.pyR   |  s"    
$
*c         ` s´  |  j  r°d „  |  j  Dƒ } t t d „  | Dƒ ƒ ƒ } t | j t | j ƒ ƒ } g  ‰  g  } xS |  j  D]H } t j d | ƒ | j	 | ƒ } | r¤ ˆ  j
 | ƒ qi | j | ƒ qi Wt ‡  f d †  | Dƒ ƒ } | rü t t t d „  | Dƒ ƒ ƒ ƒ ‚ n  xœ ˆ  D]” }	 t |	 j pd ƒ | @}
 |
 r|	 j | j k r| j j |	 j t |	 j ƒ ƒ } | j j d d  ƒ | | j | j <q| j j |	 j d  ƒ qWt | j ƒ | _ n  | S(   Nc         s` s!   |  ] } d  | k r | Vq d S(   u   track_featuresN(    (   R1   Rk   (    (    s/   lib/python2.7/site-packages/conda/core/solve.pys	   <genexpr>ª  s    c         s` s   |  ] } | j  d  ƒ Vq d S(   u   track_featuresN(   t   get_raw_value(   R1   Rk   (    (    s/   lib/python2.7/site-packages/conda/core/solve.pys	   <genexpr>«  s   u*   using PrefixGraph to remove records for %sc         3` s1   |  ]' ‰  t  ‡  f d  †  ˆ Dƒ ƒ s ˆ  Vq d S(   c         3` s   |  ] } ˆ  j  | ƒ Vq d  S(   N(   Rj   (   R1   t   rec(   Rk   (    s/   lib/python2.7/site-packages/conda/core/solve.pys	   <genexpr>¿  s    N(   Rl   (   R1   (   t   all_removed_records(   Rk   s/   lib/python2.7/site-packages/conda/core/solve.pys	   <genexpr>¾  s    c         s` s   |  ] } t  | ƒ Vq d  S(   N(   R®   (   R1   R3   (    (    s/   lib/python2.7/site-packages/conda/core/solve.pys	   <genexpr>Ã  s    u   features(    (   R?   R   R   R-   Ru   R   R…   Rp   t   tracet   remove_specR   R¡   R9   R&   t   sortedt   featuresR4   R»   Re   R,   t   _match_componentst   popRE   Rv   (   RK   Rt   t   _track_fts_specst   feature_namesRv   t   no_removed_records_specsRk   t   removed_recordst   unmatched_specs_to_removeRÄ   t   rec_has_a_feature(    (   RÅ   s/   lib/python2.7/site-packages/conda/core/solve.pyR   £  s6    	"!c         ` ss  ˆ j  j ˆ j d ƒ \ } ‰  ˆ  rg t ‡ f d †  ˆ j Dƒ ƒ ˆ _ ˆ j  j ˆ j d	 ƒ \ } ‰  n  t j t ƒ r› t j d ˆ  r‘ t ˆ  ƒ n d ƒ n  ˆ  rot	 t
 d ƒ ƒ t	 t ˆ  ƒ ƒ x† ˆ  D]~ } ˆ j j | j d  ƒ } | | f ˆ j | j <t | j d | j ƒ  ƒˆ j | j <| j d k rÈ | rÈ | ˆ j d <qÈ qÈ Wt ‡  f d †  ˆ j Dƒ ƒ ˆ _ n  ˆ S(
   Nc         3` s$   |  ] } ˆ  j  j | | ƒ Vq d  S(   N(   RŠ   Re   (   R1   R³   (   Rt   (    s/   lib/python2.7/site-packages/conda/core/solve.pys	   <genexpr>à  s    u   inconsistent precs: %su   Noneu—   
            The environment is inconsistent, please check the package plan carefully
            The following packages are causing the inconsistency:t   targetu   pythonc         3` s!   |  ] } | ˆ  k r | Vq d  S(   N(    (   R1   R`   (   t   inconsistent_precs(    s/   lib/python2.7/site-packages/conda/core/solve.pys	   <genexpr>ö  s    (    (    (   R{   t   bad_installedRu   R9   Rp   t   isEnabledForR   Rq   R"   R£   R   R…   RË   R4   RE   RŽ   R,   Rn   (   RK   Rt   R5   R`   Rk   (    (   RÓ   Rt   s/   lib/python2.7/site-packages/conda/core/solve.pyR†   Ô  s&    "!	
%%c         C` sÄ   | j  | j ƒ } t } | r› | d } xp | j j j  | j g  ƒ D]P } | j | j k rf t } PqD | j | j k rD | j | j k rD t } PqD qD Wn  | rÀ t | j d | j d | j ƒS| S(   Ni    R   t   build_number(	   Re   R4   RH   R{   t   groupsR   Rf   RÖ   R,   (   RK   Rt   Rk   t   installed_poolt   installed_prect
   has_updateR`   (    (    s/   lib/python2.7/site-packages/conda/core/solve.pyt   _package_has_updatesú  s    
"c         C` sX   | j  s t S| j t j k r# t S| j } | | k oQ | | k pQ | | | k } | S(   N(   R»   RH   RT   R   R€   R4   (   RK   Rt   t   target_prect   conflict_specst   explicit_poolRØ   RÁ   t   no_conflict(    (    s/   lib/python2.7/site-packages/conda/core/solve.pyt   _should_freeze  s    		c      	   ` sÿ  t  d „  ˆ j j ƒ  ƒ ‰  ˆ j j ˆ j ƒ } ˆ j j t t d „  ˆ j j ƒ  Dƒ ƒ ƒ ˆ j ƒ pm t ƒ  } t	 d „  | Dƒ ƒ } xkt
 ˆ j ƒ D]Z\ } ‰ t ‡ f d †  ˆ j Dƒ ƒ } | r– t | ƒ d k rt t d ƒ | ˆ t d „  | Dƒ d d	 ƒf ƒ ‚ n  | d
 } | j r:| j ƒ  ˆ j | <qðt | ƒ t j k ret | ƒ ˆ j | <qðˆ j ˆ | | | ˆ  ƒ r–| j ƒ  ˆ j | <qð| ˆ j k rÎt ˆ j | d | j ƒ  ƒˆ j | <qðt | d | j ƒ  ƒˆ j | <q– q– Wt	 ƒ  ‰ xÏ ˆ j D]Ä } | j | k r| j ˆ j k rWˆ j rWt | d t ƒˆ j | j <qË| | j ˆ j j | g ƒ j | j t	 ƒ  ƒ @r¸t | d t ƒˆ j | j <ˆ j | j ƒ qËt  j! d | ƒ qqWˆ j" t# j$ k r|g  ˆ j j ƒ  D] } | j ˆ j k rñ| ^ qñ}	 xd |	 D]Y }
 |
 j | k rJ|
 j ƒ  ˆ j |
 j <qt |
 j d |
 j ƒ  d t% ƒˆ j |
 j <qWn  t  j& d ˆ j ƒ ˆ j" t# j' k rIˆ j rt( ‡ f d †  ˆ j Dƒ ƒ ˆ _ xw ˆ j j ƒ  D]; }
 |
 j) d k rÜˆ j j* i t |
 j ƒ |
 j 6ƒ qÜqÜWqAt( ‡ f d †  ˆ j j ƒ  Dƒ ƒ ˆ _ nø ˆ j" t# j+ k rA‡ ‡ f d †  ‰ t ‡  ‡ ‡ ‡ f d †  ˆ j Dƒ ƒ } ˆ j j t d „  ˆ j j, ƒ  Dƒ ƒ | ƒ } x{ | pÏd  D]j } | j ˆ j k rÐt | d t% ƒˆ j k sˆ j rÐ| j ˆ j k rÐt | j ƒ ˆ j | j <qÐqÐWn  t- d „  ˆ j Dƒ ƒ } t- d „  ˆ j Dƒ ƒ } | r­| r­ˆ j j d ƒ } ˆ j" t# j$ k } d | k rÌ| rÌ| j ƒ  ˆ j d <q­ˆ j j d t d ƒ ƒ } | j d ƒ st. | j/ ƒ d } t | d | ƒ} n  | f t ˆ j ƒ } ˆ j j | ˆ j ƒ rˆ j0 d k s{ˆ j1 t2 k rŽˆ j3 s{| rŽˆ j j4 | ƒ qt5 i  ƒ ‚ n  | ˆ j d <n  t j6 sòx9 t j D]+ ‰ ˆ j ˆ j k rÀˆ ˆ j ˆ j <qÀqÀWn  ˆ j j* ‡ f d †  ˆ j Dƒ ƒ d ˆ j k rût7 ˆ j8 t j9 ƒ rûˆ j j d ƒ } | rûd | j/ } t- d „  ˆ j Dƒ ƒ } ˆ j d } ˆ j j d i  ƒ j d ƒ } | s½t | d | ƒ} n  t j: rè| rèt d d | d d  ƒ} n  | ˆ j d <qûn  ˆ S(!   Nc         S` s   |  j  S(   N(   R4   (   t   x(    (    s/   lib/python2.7/site-packages/conda/core/solve.pyRa   '  s    c         s` s   |  ] } | j  ƒ  Vq d  S(   N(   t   to_match_spec(   R1   R5   (    (    s/   lib/python2.7/site-packages/conda/core/solve.pys	   <genexpr>.  s    c         s` s   |  ] } | j  Vq d  S(   N(   R4   (   R1   R5   (    (    s/   lib/python2.7/site-packages/conda/core/solve.pys	   <genexpr>0  s    c         3` s$   |  ] } ˆ  j  | ƒ r | Vq d  S(   N(   Rj   (   R1   R`   (   Rk   (    s/   lib/python2.7/site-packages/conda/core/solve.pys	   <genexpr>3  s    i   uò  
                    Conda encountered an error with your environment.  Please report an issue
                    at https://github.com/conda/conda/issues/new.  In your report, please include
                    the output of 'conda info' and 'conda list' for the active environment, along
                    with the command you invoked that resulted in this error.
                      pkg_name: %s
                      spec: %s
                      matches_for_spec: %s
                    c         s` s   |  ] } t  | ƒ Vq d  S(   N(   R   (   R1   R3   (    (    s/   lib/python2.7/site-packages/conda/core/solve.pys	   <genexpr>?  s    t   indenti   i    RÒ   t   optionaluF   pinned spec %s conflicts with explicit specs.  Overriding pinned spec.u   specs_map with targets: %sc         3` sh   |  ]^ } t  | ƒ j d  „  ˆ  j Dƒ k r= | t  | ƒ f n" t  | ƒ j ˆ  j t  | ƒ j f Vq d S(   c         s` s   |  ] } | j  Vq d  S(   N(   R4   (   R1   R5   (    (    s/   lib/python2.7/site-packages/conda/core/solve.pys	   <genexpr>w  s    N(   R,   R4   t   pinned_specsR…   (   R1   Rk   (   Rt   (    s/   lib/python2.7/site-packages/conda/core/solve.pys	   <genexpr>u  s   u   pypic         3` s\   |  ]R } | j  d  „  ˆ  j Dƒ k r= | j  t | j  ƒ f n | j  ˆ  j | j  f Vq d S(   c         s` s   |  ] } | j  Vq d  S(   N(   R4   (   R1   R5   (    (    s/   lib/python2.7/site-packages/conda/core/solve.pys	   <genexpr>‚  s    N(   R4   Rå   R,   R…   (   R1   R`   (   Rt   (    s/   lib/python2.7/site-packages/conda/core/solve.pys	   <genexpr>  s   c         ` sH   ˆ  j  ˆ k r8 t ‡  f d †  ˆ j Dƒ ƒ r8 ˆ j pG ˆ  j  ˆ j k S(   Nc         3` s!   |  ] } ˆ  j  | j  k Vq d  S(   N(   R4   (   R1   R5   (   Rá   (    s/   lib/python2.7/site-packages/conda/core/solve.pys	   <genexpr>Œ  s    (   R4   Rl   Rå   RW   R»   (   Rá   (   t   pin_overridesRt   (   Rá   s/   lib/python2.7/site-packages/conda/core/solve.pyRa   ‹  s   
c         3` s0   |  ]& } ˆ | ƒ s ˆ j  ˆ | ˆ  ƒ Vq d  S(   N(   RÛ   (   R1   R5   (   RØ   RK   t   skipRt   (    s/   lib/python2.7/site-packages/conda/core/solve.pys	   <genexpr>  s   c         s` s   |  ] } t  | ƒ Vq d  S(   N(   R,   (   R1   R5   (    (    s/   lib/python2.7/site-packages/conda/core/solve.pys	   <genexpr>“  s   c         s` s   |  ] } | j  d  k Vq d S(   u   pythonN(   R4   (   R1   R5   (    (    s/   lib/python2.7/site-packages/conda/core/solve.pys	   <genexpr>¡  s    c         s` s   |  ] } | j  d  k Vq d S(   u   pythonN(   R4   (   R1   R3   (    (    s/   lib/python2.7/site-packages/conda/core/solve.pys	   <genexpr>¢  s    u   pythonu   versionu   .*R   u   installc         3` s-   |  ]# } | j  ˆ  k r | j  | f Vq d  S(   N(   R4   (   R1   R3   (   Ræ   (    s/   lib/python2.7/site-packages/conda/core/solve.pys	   <genexpr>Ä  s    u   condau   >=%sc         s` s   |  ] } | j  d  k Vq d S(   u   condaN(   R4   (   R1   R3   (    (    s/   lib/python2.7/site-packages/conda/core/solve.pys	   <genexpr>Ì  s    (    (<   R   Ry   R¼   R{   t   _get_package_poolR=   t   get_conflicting_specsR9   R   R   R   R…   Ru   RŒ   R   R   R"   R_   Râ   R,   R   R½   Rà   R»   Rn   Rå   R4   R>   RW   RH   Re   t   addRp   t   warnRT   R   R€   Rf   Rq   t
   UPDATE_ALLR   R¾   Rº   Rˆ   t   valuesRl   R$   R   RA   RD   R   RZ   t   find_conflictsR(   t   offlineR%   R7   t   conda_prefixt   auto_update_condaRE   (   RK   Rt   RÞ   RÝ   RÁ   t   matches_for_specRÜ   R3   R5   t   precsR`   R=   t	   conflictst   conflictt   py_in_prefixt   py_requested_explicitlyt   python_prefix_rect   freeze_installedt   python_spect   pinned_versiont   spec_sett   conda_prefix_rect   version_reqt   conda_requested_explicitlyt
   conda_spect   conda_in_specs_to_add_version(    (   RØ   Ræ   RK   Rç   Rk   Rt   s/   lib/python2.7/site-packages/conda/core/solve.pyR‚     sÎ    (	&
		&	2	4/	-		#	#$c         ` s¼  t  t t ˆ j ƒ ˆ j ƒ ƒ } g  ˆ j j ƒ  D] } ˆ j j | ƒ s1 | ^ q1 } | rj t | ƒ ‚ n  t	 ˆ j j
 t | ƒ |  j ƒ pŽ g  ƒ } xÝ| rst } t j t ƒ rÕ t j d t d „  | Dƒ ƒ ƒ n  t	 t ˆ j ƒ ƒ ‰  t ‡  f d †  | ƒ } t ‡ f d †  | ƒ } | j t ƒ r²| j t d ƒ }	 | j t d ƒ }
 t	 |	 ƒ t	 |  j ƒ Bt	 |
 ƒ } t t d „  | Dƒ ƒ t d „  d „  |
 Dƒ Dƒ ƒ |  j ƒ ‚ n  x | D]… } | j r¹| j r¹t } | j | ƒ | j d ƒ rt | j d	 | j ƒ} n t | j ƒ } | j | ƒ | ˆ j | j <q¹q¹W| rot	 ˆ j j
 t | ƒ |  j ƒ ƒ } q— Pq— Wt j t ƒ r¬t j d
 t t d „  | Dƒ ƒ ƒ ƒ n  | s¼t  j! rõˆ j j" t | ƒ d |  j d ˆ j# d ˆ j$ ƒˆ _% n t& i  ƒ ‚ t ‡ f d †  ˆ j j' ƒ  Dƒ ƒ |  _( ˆ j) r¯xz t* ˆ j) ƒ D]f \ } \ } } | sBg  ˆ j% D] } | j | k rd| ^ qdˆ _% ˆ j% j+ | ƒ | j | ƒ qBqBWn  | ˆ _, ˆ S(   Nu   conflicting specs: %sc         s` s'   |  ] } | j  r | j  n | Vq d  S(   N(   RÒ   (   R1   R3   (    (    s/   lib/python2.7/site-packages/conda/core/solve.pys	   <genexpr>õ  s    c         ` s
   |  ˆ  k S(   N(    (   R3   (   t   specs_map_set(    s/   lib/python2.7/site-packages/conda/core/solve.pyRa   ú  s    c         ` s   t  |  d t ƒˆ  j k S(   NRä   (   R,   Rf   Rå   (   R3   (   Rt   (    s/   lib/python2.7/site-packages/conda/core/solve.pyRa   ÿ  s   c         s` s   |  ] } | j  ƒ  Vq d  S(   N(   t   __str__(   R1   R3   (    (    s/   lib/python2.7/site-packages/conda/core/solve.pys	   <genexpr>	  s    c         s` s   |  ] } | j  ƒ  Vq d  S(   N(   R  (   R1   R3   (    (    s/   lib/python2.7/site-packages/conda/core/solve.pys	   <genexpr>
  s    c         S` s   h  |  ] } | ’ q S(    (    (   R1   R3   (    (    s/   lib/python2.7/site-packages/conda/core/solve.pys	   <setcomp>
  s   	 u   versionR   u   final specs to add: %sc         s` s   |  ] } t  | ƒ Vq d  S(   N(   R   (   R1   R3   (    (    s/   lib/python2.7/site-packages/conda/core/solve.pys	   <genexpr>!  s    R=   t   history_specsRZ   c         3` sC   |  ]9 \ } } | ˆ  j  k r | j ˆ  j  | j k  r | Vq d  S(   N(   R»   t
   strictness(   R1   R³   Rª   (   Rt   (    s/   lib/python2.7/site-packages/conda/core/solve.pys	   <genexpr>/  s    	(    (    (-   R   R   R   R…   t   track_features_specsRí   R{   t   find_matchesR&   R   Ré   R9   R=   RH   Rp   RÕ   R   Rq   R"   R   Re   Rf   R'   RÈ   R7   RÒ   Rä   t   removeR,   R4   R   Rê   R   t   unsatisfiable_hintst   solveR»   RZ   Ru   R(   R¯   R@   RŽ   R   R¡   t   final_environment_specs(   RK   Rt   R  R3   t   absent_specst   conflicting_specst   specs_modifiedt   grouped_specst   conflicting_pinned_specst   in_specs_mapt   pinned_conflictst   in_specs_map_or_specs_to_addRk   t   neutered_specR4   R`   R5   (    (   R  Rt   s/   lib/python2.7/site-packages/conda/core/solve.pyR‡   ×  sr    4			 		(	".	c         ` s¦  ˆ j  } ˆ j t j k rÀ t ˆ j j ƒ  ƒ ‰  t ‡  f d †  |  j Dƒ ƒ } ˆ  | 8‰  t ‡ f d †  |  j	 Dƒ ƒ } t d „  | Dƒ ƒ ‰ t ‡ f d †  ˆ  Dƒ ƒ ‰  ˆ  | O‰  ˆ  ˆ _
 n¨ˆ j t j k rçˆ j t j k rçt ˆ j
 |  j	 ƒ } | j ƒ  } t |  j	 ƒ |  _	 xS | D]K } xB | j D]7 } t | ƒ } | j ˆ j k r.|  j	 j | ƒ q.q.WqWt |  j	 ƒ |  _	 t d „  |  j Dƒ ƒ ‰ t ‡ ‡ f d †  | Dƒ ƒ }	 t t t | j t d  |	 ƒ ƒ ƒ j ƒ ˆ _
 nˆ j t j k rht ˆ j
 ƒ } t ƒ  }
 xC |  j	 D]8 } | j | j ƒ } |
 j d „  | j | ƒ Dƒ ƒ qWd „  |
 Dƒ } x$ ˆ j D] } | j  | j d  ƒ qqWd	 | k rëˆ j j! d	 ƒ } d
 j" | j# j$ d
 ƒ d  ƒ d } t d d	 d | ƒ | d	 <n  | j d „  |  j	 Dƒ ƒ t t% | ƒ ƒ } | |  _	 |  j& d t j' d ˆ j d ˆ j( d ˆ j) d ˆ j* ƒ ˆ _
 t+ ˆ _( n  ˆ j( r¢t ˆ j
 | ƒ } | j( ƒ  t | j ƒ ˆ _
 n  ˆ S(   Nc         3` s1   |  ]' } ˆ  D] } | j  | ƒ r | Vq q d  S(   N(   Rj   (   R1   Rk   R`   (   t   _no_deps_solution(    s/   lib/python2.7/site-packages/conda/core/solve.pys	   <genexpr>N  s   
c         3` s4   |  ]* } ˆ  j  D] } | j | ƒ r | Vq q d  S(   N(   Ru   Rj   (   R1   Rk   R`   (   Rt   (    s/   lib/python2.7/site-packages/conda/core/solve.pys	   <genexpr>T  s   c         s` s   |  ] } | j  Vq d  S(   N(   R4   (   R1   R`   (    (    s/   lib/python2.7/site-packages/conda/core/solve.pys	   <genexpr>X  s    c         3` s$   |  ] } | j  ˆ  k r | Vq d  S(   N(   R4   (   R1   R`   (   t   remove_before_adding_back(    s/   lib/python2.7/site-packages/conda/core/solve.pys	   <genexpr>Y  s    c         s` s   |  ] } | j  Vq d  S(   N(   R4   (   R1   Rk   (    (    s/   lib/python2.7/site-packages/conda/core/solve.pys	   <genexpr>x  s    c         3` s6   |  ], } | j  ˆ  k r ˆ j j | j  d  ƒ Vq d  S(   N(   R4   Ry   Re   RE   (   R1   t   node(   t   specs_to_remove_namesRt   (    s/   lib/python2.7/site-packages/conda/core/solve.pys	   <genexpr>y  s    c         s` s   |  ] } | j  Vq d  S(   N(   R4   (   R1   t
   ancest_rec(    (    s/   lib/python2.7/site-packages/conda/core/solve.pys	   <genexpr>  s    c         S` s   i  |  ] } t  | ƒ | “ q S(    (   R,   (   R1   R4   (    (    s/   lib/python2.7/site-packages/conda/core/solve.pys
   <dictcomp>  s   	 u   pythonu   .i   u   .*R4   R   c         S` s   i  |  ] } | | j  “ q S(    (   R4   (   R1   Rk   (    (    s/   lib/python2.7/site-packages/conda/core/solve.pys
   <dictcomp>š  s   	 RT   RU   RV   RW   RX   (,   R  RU   R   t   NO_DEPSR   Ry   R¼   R   R?   R=   Ru   t	   ONLY_DEPSRT   R   t   UPDATE_DEPSR-   t+   remove_youngest_descendant_nodes_with_specsRž   R,   R4   R…   Rê   R;   R9   R   Rv   t   filterRE   t   get_node_by_nameRº   t   all_ancestorsRå   RË   Re   R   R   t   splitR   Rc   Rˆ   RV   RW   RX   RH   (   RK   Rt   R  t   only_remove_theset   only_add_theseRv   t   removed_nodesR`   R¨   t   add_backt   update_namesRk   R  R…   t
   python_rect   py_vert   new_specs_to_add(    (   R  R  R  Rt   s/   lib/python2.7/site-packages/conda/core/solve.pyR‘   C  sn    	

-
	$#							
c         ` s5  t  j s t  j r d  St t  j ƒ j d d  ƒ } | r1| j j } | t	 k rY d } n  t
 d | t f ƒ ‰  t |  j t  j ƒ r§ t ‡  f d †  | Dƒ ƒ r§ d  Sn  t t j ˆ  |  j |  j d |  j ƒd d „  ƒ} | r1| d j } | d k rÿ d	 n d
 } t t d ƒ t | | f d t j ƒq1n  d  S(   Nu   condau   defaultsu   %s::conda>%sc         3` s   |  ] } ˆ  j  | ƒ Vq d  S(   N(   Rj   (   R1   R`   (   t   conda_newer_spec(    s/   lib/python2.7/site-packages/conda/core/solve.pys	   <genexpr>¼  s    RL   t   keyc         S` s   t  |  j ƒ S(   N(   R.   R   (   Rá   (    (    s/   lib/python2.7/site-packages/conda/core/solve.pyRa   Â  s    iÿÿÿÿu   -c defaults u    u  

                ==> WARNING: A newer version of conda exists. <==
                  current version: %s
                  latest version: %s

                Please update conda by running

                    $ conda update -n base %sconda

                t   file(   R   t   notify_outdated_condaR}   R   Rð   Re   RE   t   channelt   canonical_nameR   R,   t   CONDA_VERSIONR%   R7   Rl   RÈ   R   t	   query_allR8   R:   RD   R   R£   R   t   syst   stderr(   RK   R\   t   current_conda_prefix_rect   channel_namet   conda_newer_precst   latest_versiont   add_channel(    (   R*  s/   lib/python2.7/site-packages/conda/core/solve.pyRS   ¯  s(    	
c         C` s=  |  j  r( | |  j k r( |  j |  j f St |  d ƒ rt |  j rt | |  _ t |  j ƒ t |  j d |  j ƒ|  _ n° t ƒ  } x< |  j	 D]1 } | j
 d ƒ } | r‡ | j t | ƒ ƒ q‡ q‡ W|  j j | ƒ t |  j |  j |  j | |  j ƒ } t | ƒ | |  _ | |  _ t | d |  j ƒ|  _ t |  _  |  j |  j f S(   Nu   _indexR8   u   channel(   RI   t   _prepared_specsRF   RG   Rr   R
   R/   R8   R   R=   t   get_exact_valueRê   R*   Rº   R	   R7   R:   RD   Rf   (   RK   RÂ   t   additional_channelsRk   R.  t   reduced_index(    (    s/   lib/python2.7/site-packages/conda/core/solve.pyR¿   ×  s(    		
			(    (    (    (   t   __name__t
   __module__t   __doc__R   R    RN   RH   R^   RR   Rc   R   R„   R‰   R#   R   R   R†   RÛ   Rà   R‚   R‡   R‘   RS   R¿   (    (    (    s/   lib/python2.7/site-packages/conda/core/solve.pyR0   (   s0   		 		(		+				'	1&			»l	l	(Rs   c           B` s_   e  Z d  „  Z e d „  ƒ Z e d „  ƒ Z e d „  ƒ Z e d „  ƒ Z d „  Z d „  Z	 RS(   c         C` s‹   | |  _  | |  _ | |  _ | |  _ | |  _ | |  _ | |  _ d  |  _ d  |  _	 t
 ƒ  |  _ t |  j j ƒ  ƒ |  _ i  |  _ d  |  _ d  S(   N(   RT   RU   RV   RW   RX   RZ   R7   RE   RŠ   R{   R   R…   R9   Ry   R¼   Ru   RŽ   R  (   RK   R7   RT   RU   RV   RW   RX   RZ   (    (    s/   lib/python2.7/site-packages/conda/core/solve.pyRN     s    
										c         C` s   t  |  j ƒ S(   N(   R   R7   (   RK   (    (    s/   lib/python2.7/site-packages/conda/core/solve.pyRy   $  s    c         C` s   t  |  j ƒ j ƒ  S(   N(   R)   R7   t   get_requested_specs_map(   RK   (    (    s/   lib/python2.7/site-packages/conda/core/solve.pyR»   (  s    c         C` s   t  d „  t j Dƒ ƒ S(   Nc         s` s   |  ] } t  | d  ƒ Vq d S(   u   @N(   R,   (   R1   Rá   (    (    s/   lib/python2.7/site-packages/conda/core/solve.pys	   <genexpr>.  s    (   R9   R   t   track_features(   RK   (    (    s/   lib/python2.7/site-packages/conda/core/solve.pyR  ,  s    c         C` s   |  j  r d St |  j ƒ S(   N(    (   RW   t   get_pinned_specsR7   (   RK   (    (    s/   lib/python2.7/site-packages/conda/core/solve.pyRå   0  s    c         C` s   | | |  _  |  _ d  S(   N(   RŠ   R{   (   RK   RŠ   R{   (    (    s/   lib/python2.7/site-packages/conda/core/solve.pyRÀ   4  s    c         C` s:   t  ƒ  |  _ t |  j j ƒ  ƒ |  _ i  |  _ d  |  _ d  S(   N(	   R   R…   R9   Ry   R¼   Ru   RŽ   RE   R  (   RK   (    (    s/   lib/python2.7/site-packages/conda/core/solve.pyt   working_state_reset7  s    	(
   R=  R>  RN   R   Ry   R»   R  Rå   RÀ   RC  (    (    (    s/   lib/python2.7/site-packages/conda/core/solve.pyRs   þ  s   	"	c         C` s~   t  |  d d ƒ } t | ƒ rX t | ƒ ) } d „  | j ƒ  j ƒ  j ƒ  Dƒ } Wd QXn d } t d „  t t j	 | ƒ Dƒ ƒ S(   u<   Find pinned specs from file and return a tuple of MatchSpec.u
   conda-metau   pinnedc         s` s1   |  ]' } | r | j  ƒ  j d  ƒ r | Vq d S(   u   #N(   t   stript
   startswith(   R1   R«   (    (    s/   lib/python2.7/site-packages/conda/core/solve.pys	   <genexpr>C  s    Nc         s` s!   |  ] } t  | d  t ƒVq d S(   Rä   N(   R,   Rf   (   R1   R3   (    (    s/   lib/python2.7/site-packages/conda/core/solve.pys	   <genexpr>H  s    (    (
   R   R   t   opent   readRD  t
   splitlinesR9   R   R   t   pinned_packages(   R7   t   pinfilet   ft	   from_file(    (    s/   lib/python2.7/site-packages/conda/core/solve.pyRB  >  s    +	c   	      ` sÌ  t  ˆ  t ƒ s t ‚ ˆ  ‰  t t t |  ƒ j ƒ  ƒ j ƒ ‰ | t k rQ t j	 n | } ˆ ˆ  ‰ ˆ  ˆ ‰ ‡ ‡ ‡ ‡ f d †  } | rÒ xF | D]; ‰ t
 ‡ f d †  ˆ  Dƒ d  ƒ ‰ ˆ sÁ t ‚ | ˆ ƒ q Wn  t d ƒ ‰ t
 ‡ f d †  ˆ Dƒ d  ƒ } t
 ‡ f d †  ˆ  Dƒ d  ƒ } t } | rz| rz| | j ƒ | | j ƒ k rzd „  ˆ  Dƒ } x | D] ‰ | ˆ ƒ qcWn  t t t ˆ d ‡ f d †  ƒƒ ƒ ‰ t t ˆ d ‡  f d	 †  ƒƒ ‰ ˆ ˆ f S(
   Nc         ` s-   ˆ  j  |  ƒ ˆ ˆ k r) ˆ j  |  ƒ n  d  S(   N(   Rê   (   RÄ   (   R\   R`   t   previous_recordsR[   (    s/   lib/python2.7/site-packages/conda/core/solve.pyt   _add_to_unlink_and_linkU  s    c         3` s$   |  ] } ˆ  j  | ƒ r | Vq d  S(   N(   Rj   (   R1   RÄ   (   Rk   (    s/   lib/python2.7/site-packages/conda/core/solve.pys	   <genexpr>^  s    u   pythonc         3` s$   |  ] } ˆ  j  | ƒ r | Vq d  S(   N(   Rj   (   R1   RÄ   (   Rú   (    s/   lib/python2.7/site-packages/conda/core/solve.pys	   <genexpr>d  s    c         3` s$   |  ] } ˆ  j  | ƒ r | Vq d  S(   N(   Rj   (   R1   RÄ   (   Rú   (    s/   lib/python2.7/site-packages/conda/core/solve.pys	   <genexpr>e  s    c         s` s'   |  ] } | j  t j k r | Vq d  S(   N(   t   noarchR+   t   python(   R1   t   p(    (    s/   lib/python2.7/site-packages/conda/core/solve.pys	   <genexpr>h  s    R+  c         ` s   ˆ  j  |  ƒ S(   N(   RŠ   (   Rá   (   RM  (    s/   lib/python2.7/site-packages/conda/core/solve.pyRa   m  s    c         ` s   ˆ  j  |  ƒ S(   N(   RŠ   (   Rá   (   Rh   (    s/   lib/python2.7/site-packages/conda/core/solve.pyRa   n  s    (   t
   isinstanceR   RC   R-   R   R¼   Rv   R    R   RY   Rx   RE   R,   R$   R   t   reversedRÈ   (	   R7   Rh   R=   RY   RN  t   prev_pythont   curr_pythont   gmmt   noarch_python_precs(    (   Rh   R\   R`   RM  Rú   Rk   R[   s/   lib/python2.7/site-packages/conda/core/solve.pyRd   L  s0    !

*!(V   t
   __future__R    R   R   R   Rƒ   t   genericpathR   t   loggingR   R   t   os.pathR   R2  t   textwrapR   RŠ   R	   R
   t   linkR   R   Ry   R   t   subdir_dataR   t    R   R   R0  t   _vendor.auxlib.decoratorsR   t   _vendor.auxlib.ishR   t   _vendor.boltons.setutilsR   t   _vendor.toolzR   R   R   t   base.constantsR   R   R   R   t   base.contextR   t   common.compatR   R   R   R   t   common.constantsR    t	   common.ioR!   R"   R#   t   common.pathR$   R%   t
   exceptionsR&   R'   R(   t   historyR)   t   models.channelR*   t   models.enumsR+   t   models.match_specR,   t   models.prefix_graphR-   t   models.versionR.   t   resolveR/   R=  Rp   t   objectR0   Rs   RB  Rd   (    (    (    s/   lib/python2.7/site-packages/conda/core/solve.pyt   <module>   sJ   """ÿ ÿ ÿ Ù@	