ó
>ò†[c           @  sE  d  Z  d d l m Z m Z d d l 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 l m Z d d	 l m Z d d
 l m Z e j d ƒ Z d „  Z i e	 d 6e d 6e d 6e d 6e d 6e j e j 6e d 6Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z  d „  Z! d S(   u1   
Package type detection and meta-data extraction
iÿÿÿÿ(   t   print_functiont   unicode_literalsN(   t   path(   t   inspect_conda_package(   t   conda_installer(   t   inspect_pypi_package(   t   inspect_r_package(   t   inspect_ipynb_package(   t   inspect_env_packageu   binstar.detectc         O  s+   i  i d d 6i t  j |  ƒ d 6i  d 6f S(   Nu    u   descriptionu   basenameu   attrs(   R   t   basename(   t   filenamet   fileobjt   argst   kwargs(    (    sZ   lib/python2.7/site-packages/anaconda_client-1.7.2-py2.7.egg/binstar_client/utils/detect.pyt   file_handler   s    u   condau   pypiu   ru   ipynbu   envu   filec         C  s@   t  j d ƒ |  j d ƒ s+ |  j d ƒ r/ t St  j d ƒ d  S(   Nu   Testing if environment file ..u   .ymlu   .yamlu   No environment file(   t   loggert   debugt   endswitht   True(   R
   (    (    sZ   lib/python2.7/site-packages/anaconda_client-1.7.2-py2.7.egg/binstar_client/utils/detect.pyt   is_environment$   s    c         C  s1   t  j d ƒ |  j d ƒ r  t St  j d ƒ d  S(   Nu   Testing if ipynb file ..u   .ipynbu   No ipynb file(   R   R   R   R   (   R
   (    (    sZ   lib/python2.7/site-packages/anaconda_client-1.7.2-py2.7.egg/binstar_client/utils/detect.pyt   is_ipynb+   s    c           sR   t  j d ƒ ‡  f d †  } ‡  f d †  } | ƒ  s= | ƒ  rA t St  j d ƒ d  S(   Nu   Testing if project ..c             s   ˆ  j  d ƒ S(   Nu   .py(   R   (    (   R
   (    sZ   lib/python2.7/site-packages/anaconda_client-1.7.2-py2.7.egg/binstar_client/utils/detect.pyt   is_python_file5   s    c             s   t  j ˆ  ƒ S(   N(   R   t   isdir(    (   R
   (    sZ   lib/python2.7/site-packages/anaconda_client-1.7.2-py2.7.egg/binstar_client/utils/detect.pyt   is_directory8   s    u   Not a project(   R   R   R   (   R
   R   R   (    (   R
   sZ   lib/python2.7/site-packages/anaconda_client-1.7.2-py2.7.egg/binstar_client/utils/detect.pyt
   is_project2   s    c         C  s¯   t  j d ƒ |  j d ƒ rž yL t j |  d d ƒ1 } x' | D] } | j d k r> Pq> q> Wt ‚ Wd  QXWn t k
 r‰ t  j d ƒ t SXt  j d ƒ t Sn  t  j d ƒ d  S(	   Nu   Testing if conda package ..u   .tar.bz2t   modeu   r|bz2u   info/index.jsonu;   Not conda  package no 'info/index.json' file in the tarballu   This is a conda packageu,   Not conda package (file ext is not .tar.bz2)(	   R   R   R   t   tarfilet   opent   namet   KeyErrort   FalseR   (   R
   t   tft   info(    (    sZ   lib/python2.7/site-packages/anaconda_client-1.7.2-py2.7.egg/binstar_client/utils/detect.pyt   is_conda@   s    c         C  s¨   t  j d ƒ |  j d ƒ r- t  j d ƒ t S|  j d ƒ sK |  j d ƒ r— t j |  ƒ 8 } t d „  | j ƒ  Dƒ ƒ r} t St  j d ƒ t SWd  QXn  t  j d ƒ d  S(	   Nu   Testing if pypi package ..u   .whlu   This is a pypi wheel packageu   .tar.gzu   .tgzc         s  s   |  ] } | j  d  ƒ Vq d S(   u	   /PKG-INFON(   R   (   t   .0R   (    (    sZ   lib/python2.7/site-packages/anaconda_client-1.7.2-py2.7.egg/binstar_client/utils/detect.pys	   <genexpr>[   s    u6   This not is a pypi package (no '/PKG-INFO' in tarball)u;   This not is a pypi package (expected .tgz, .tar.gz or .whl)(	   R   R   R   R   R   R   t   anyt   getnamesR   (   R
   R   (    (    sZ   lib/python2.7/site-packages/anaconda_client-1.7.2-py2.7.egg/binstar_client/utils/detect.pyt   is_pypiT   s    c         C  s    t  j d ƒ |  j d ƒ s+ |  j d ƒ r t j |  ƒ P } t d „  | j ƒ  Dƒ ƒ ry t d „  | j ƒ  Dƒ ƒ ry t St  j d ƒ Wd  QXn t  j d ƒ d  S(   Nu   Testing if R package ..u   .tar.gzu   .tgzc         s  s   |  ] } | j  d  ƒ Vq d S(   u   /DESCRIPTIONN(   R   (   R"   R   (    (    sZ   lib/python2.7/site-packages/anaconda_client-1.7.2-py2.7.egg/binstar_client/utils/detect.pys	   <genexpr>i   s    c         s  s   |  ] } | j  d  ƒ Vq d S(   u
   /NAMESPACEN(   R   (   R"   R   (    (    sZ   lib/python2.7/site-packages/anaconda_client-1.7.2-py2.7.egg/binstar_client/utils/detect.pys	   <genexpr>j   s    uF   This not is an R package (no '*/DESCRIPTION' and '*/NAMESPACE' files).u2   This not is an R package (expected .tgz, .tar.gz).(   R   R   R   R   R   R#   R$   R   (   R
   R   (    (    sZ   lib/python2.7/site-packages/anaconda_client-1.7.2-py2.7.egg/binstar_client/utils/detect.pyt   is_rd   s    c         C  s¥   t  |  t ƒ r' |  j d d d ƒ}  n  t |  ƒ r7 d St |  ƒ rG d St |  ƒ rW d St |  ƒ rg d St |  ƒ rw d St j	 |  ƒ r t j
 St |  ƒ r d	 Sd  Sd  S(
   Nu   utf-8t   errorsu   ignoreu   condau   pypiu   ru   ipynbu   envu   project(   t
   isinstancet   bytest   decodeR!   R%   R&   R   R   R   t   is_installert   PACKAGE_TYPER   t   None(   R
   (    (    sZ   lib/python2.7/site-packages/anaconda_client-1.7.2-py2.7.egg/binstar_client/utils/detect.pyt   detect_package_typer   s"    c      	   O  s3   t  | d ƒ  } t |  | | | | Ž SWd  QXd  S(   Nu   rb(   R   t	   detectors(   t   package_typeR
   R   R   R   (    (    sZ   lib/python2.7/site-packages/anaconda_client-1.7.2-py2.7.egg/binstar_client/utils/detect.pyt	   get_attrsˆ   s    ("   t   __doc__t
   __future__R    R   t   loggingR   t   osR   t$   binstar_client.inspect_package.condaR   t   binstar_client.inspect_packageR   t#   binstar_client.inspect_package.pypiR   t    binstar_client.inspect_package.rR   t$   binstar_client.inspect_package.ipynbR   t"   binstar_client.inspect_package.envR   t	   getLoggerR   R   t   inspect_packageR,   R/   R   R   R   R!   R%   R&   R.   R1   (    (    (    sZ   lib/python2.7/site-packages/anaconda_client-1.7.2-py2.7.egg/binstar_client/utils/detect.pyt   <module>   s8   	
							