ó
K9•Qc        	   @   sÖ  d  Z  d d l Z d d l Z d d l Z d d l Z d d l Z d d d d d d d	 d
 d g	 Z e e	 ƒ  ƒ e e
 ƒ  ƒ k Z y d d l Z d „  Z Wn e k
 r¶ d „  Z n Xd „  Z e j d# k  rÞ e d „ Z n e d „ Z e e d ƒ re j Z e j Z n e Z e Z d d$ d „  ƒ  YZ d d% d „  ƒ  YZ d „  Z d „  Z e j d& k rpd d „ Z n d d „ Z e j d  d' k r›d „  Z n7 y d d  l m Z Wn e k
 rÈd! Z n Xd" „  Z d S((   sP   
This module contains fixups for using nose under different versions of Python.
iÿÿÿÿNt   make_instancemethodt
   cmp_to_keyt	   sort_listt	   ClassTypet   TypeTypet   UNICODE_STRINGSt   unbound_methodt   ismethodt   bytes_c         C   s   t  j |  j | | j ƒ S(   N(   t   newt   instancemethodt   im_funct	   __class__(   t   functiont   instance(    (    s2   /sys/lib/python2.7/site-packages/nose/pyversion.pyR       s    c         C   s   |  j  | | j ƒ S(   N(   t   __get__R   (   R   R   (    (    s2   /sys/lib/python2.7/site-packages/nose/pyversion.pyR       s    c            s    d t  f ‡  f d †  ƒ  Y} | S(   s,   Convert a cmp= function into a key= functiont   Keyc              s>   e  Z d  „  Z ‡  f d †  Z ‡  f d †  Z ‡  f d †  Z RS(   c         S   s   | |  _  d  S(   N(   t   obj(   t   selfR   (    (    s2   /sys/lib/python2.7/site-packages/nose/pyversion.pyt   __init__$   s    c            s   ˆ  |  j  | j  ƒ d k  S(   Ni    (   R   (   R   t   other(   t   mycmp(    s2   /sys/lib/python2.7/site-packages/nose/pyversion.pyt   __lt__&   s    c            s   ˆ  |  j  | j  ƒ d k S(   Ni    (   R   (   R   R   (   R   (    s2   /sys/lib/python2.7/site-packages/nose/pyversion.pyt   __gt__(   s    c            s   ˆ  |  j  | j  ƒ d k S(   Ni    (   R   (   R   R   (   R   (    s2   /sys/lib/python2.7/site-packages/nose/pyversion.pyt   __eq__*   s    (   t   __name__t
   __module__R   R   R   R   (    (   R   (    s2   /sys/lib/python2.7/site-packages/nose/pyversion.pyR   #   s   	(   t   object(   R   R   (    (   R   s2   /sys/lib/python2.7/site-packages/nose/pyversion.pyR   !   s    	i   i   c            s6   | r |  j  ‡  f d †  ƒ S|  j  ‡  f d †  ƒ Sd  S(   Nc            s   t  ˆ  | ƒ ˆ  |  ƒ ƒ S(   N(   t   cmp(   t   at   b(   t   key(    s2   /sys/lib/python2.7/site-packages/nose/pyversion.pyt   <lambda>3   s    c            s   t  ˆ  |  ƒ ˆ  | ƒ ƒ S(   N(   R   (   R   R   (   R   (    s2   /sys/lib/python2.7/site-packages/nose/pyversion.pyR    5   s    (   t   sort(   t   lR   t   reverse(    (   R   s2   /sys/lib/python2.7/site-packages/nose/pyversion.pyR   1   s    c         C   s   |  j  d | d | ƒ S(   NR   R#   (   R!   (   R"   R   R#   (    (    s2   /sys/lib/python2.7/site-packages/nose/pyversion.pyR   7   s    t   UnboundMethodc           B   s5   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z RS(   c         C   s.   | j  j ƒ  |  _  | |  _ t | ƒ |  _ d  S(   N(   t   __dict__t   copyt   _funct   UnboundSelft   __self__(   R   t   clst   func(    (    s2   /sys/lib/python2.7/site-packages/nose/pyversion.pyR   H   s    	c         C   s   |  j  j } | j } t j | } t | d d  ƒ } | d  k	 rU t j j	 | ƒ } n  t
 j j | ƒ | d | j |  j j f f S(   Nt   __file__s   %s.%s(   R)   R*   R   t   syst   modulest   getattrt   Nonet   ost   patht   abspatht   noset   utilt   srcR   R'   (   R   R*   t   modnamet   modulet   filename(    (    s2   /sys/lib/python2.7/site-packages/nose/pyversion.pyt   addressO   s    	c         O   s   |  j  | | Ž  S(   N(   R'   (   R   t   argst   kwargs(    (    s2   /sys/lib/python2.7/site-packages/nose/pyversion.pyt   __call__Y   s    c         C   s   t  |  j | ƒ S(   N(   R/   R'   (   R   t   attr(    (    s2   /sys/lib/python2.7/site-packages/nose/pyversion.pyt   __getattr__\   s    c         C   s   d |  j  j j |  j j f S(   Ns   <unbound method %s.%s>(   R)   R*   R   R'   (   R   (    (    s2   /sys/lib/python2.7/site-packages/nose/pyversion.pyt   __repr___   s    (   R   R   R   R:   R=   R?   R@   (    (    (    s2   /sys/lib/python2.7/site-packages/nose/pyversion.pyR$   G   s
   		
		R(   c           B   s   e  Z d  „  Z d „  Z RS(   c         C   s   | |  _  d  S(   N(   R*   (   R   R*   (    (    s2   /sys/lib/python2.7/site-packages/nose/pyversion.pyR   d   s    c         C   s'   | d k r |  j  St j |  | ƒ Sd  S(   NR   (   R*   R   t   __getattribute__(   R   R>   (    (    s2   /sys/lib/python2.7/site-packages/nose/pyversion.pyRA   i   s    (   R   R   R   RA   (    (    (    s2   /sys/lib/python2.7/site-packages/nose/pyversion.pyR(   c   s   	c         C   sK   t  j | ƒ r | St  j | ƒ s> t d t | ƒ f ƒ ‚ n  t |  | ƒ S(   Ns   %s is not a function(   t   inspectR   t
   isfunctiont	   TypeErrort   reprR$   (   R*   R+   (    (    s2   /sys/lib/python2.7/site-packages/nose/pyversion.pyR   o   s
    c         C   s   t  j |  ƒ p t |  t ƒ S(   N(   RB   R   t
   isinstanceR$   (   R   (    (    s2   /sys/lib/python2.7/site-packages/nose/pyversion.pyR   v   s    i   i    t   utf8c         C   s    t  |  t ƒ r |  St |  | ƒ S(   N(   RF   t   bytes(   t   st   encoding(    (    s2   /sys/lib/python2.7/site-packages/nose/pyversion.pyR   |   s    c         C   s
   t  |  ƒ S(   N(   t   str(   RI   RJ   (    (    s2   /sys/lib/python2.7/site-packages/nose/pyversion.pyR      s    i   c         C   s7   t  |  t ƒ r |  j }  n  t j |  ƒ p6 t j |  ƒ S(   N(   RF   R$   R'   RB   t   isgeneratorfunctiont   isgenerator(   t   o(    (    s2   /sys/lib/python2.7/site-packages/nose/pyversion.pyRM   †   s    (   t   CO_GENERATORi    c         C   s1   y |  j  j t @d k SWn t k
 r, t SXd  S(   Ni    (   t	   func_codet   co_flagsRO   t   AttributeErrort   False(   R+   (    (    s2   /sys/lib/python2.7/site-packages/nose/pyversion.pyRM   ‘   s    (   i   i   (    (    (   i   i    (   i   i   (   t   __doc__R-   R1   t   typesRB   t	   nose.utilR4   t   __all__t   typet   unicodeRK   R   R	   R    t   ImportErrorR   t   version_infoRS   R   t   hasattrR   R   R$   R(   R   R   R   R0   RM   t   compiler.constsRO   (    (    (    s2   /sys/lib/python2.7/site-packages/nose/pyversion.pyt   <module>   sJ   					
