ó
Ý#´Rc           @` sÜ  d  Z  d d l m Z m Z m Z d d l Z d d l Z d d l Z d d l Z y d d l	 m
 Z
 Wn! e k
 r‰ d d l m
 Z
 n Xd d l m Z d d d d	 g Z e e j ƒ Z e e j ƒ Z e e e j f Z d d
 „ Z d „  Z d „  Z d e f d „  ƒ  YZ d e f d „  ƒ  YZ d e f d „  ƒ  YZ e d d d ƒZ  e d d d ƒZ! e d d d ƒZ" e d d d ƒZ# e d d d ƒZ$ d e f d „  ƒ  YZ% d e f d „  ƒ  YZ& d e f d „  ƒ  YZ' d S(    s¯   Function signature objects for callables

Back port of Python 3.3's function signature tools from the inspect module,
modified to be compatible with Python 2.6, 2.7 and 3.2+.
i    (   t   absolute_importt   divisiont   print_functionN(   t   OrderedDict(   t   __version__t   BoundArgumentst	   Parametert	   Signaturet	   signaturec         C` sJ   t  |  t ƒ r@ |  j d d | f k r. |  j S|  j d |  j St |  ƒ S(   Nt   builtinst   __builtin__t   .(   t
   isinstancet   typet
   __module__t   __name__t   repr(   t
   annotationt   base_module(    (    s5   /usr/lib/python2.7/dist-packages/funcsigs/__init__.pyt   formatannotation   s
    c         G` sr   yF |  t  k r d  St |  | ƒ } x  | D] } t | | | ƒ } q) WWn t k
 rZ d  SXt | t ƒ sn | Sd  S(   N(   R   t   getattrt   AttributeErrorR   t   _NonUserDefinedCallables(   t   clst   method_namet   nestedt   metht   name(    (    s5   /usr/lib/python2.7/dist-packages/funcsigs/__init__.pyt   _get_user_defined_method'   s    c         C` sÜ  t  |  ƒ s$ t d j |  ƒ ƒ ‚ n  t |  t j ƒ rÓ t |  j ƒ } |  j d k r­ | j
 r¦ | j
 j ƒ  d j d t ƒ } | j d | f t | j
 j ƒ  ƒ d ƒ S| SqÓ | j d t | j
 j ƒ  ƒ d ƒ Sn  y |  j } Wn t k
 ró n X| d k	 r| Sy |  j } Wn t k
 r$n Xt | ƒ St |  t j ƒ rNt j |  ƒ St |  t j ƒ rƒt |  j ƒ } t | j
 j ƒ  ƒ } |  j pd } |  j pŸi  } y | j | | Ž  } Wn. t k
 rè} d j |  ƒ }	 t |	 ƒ ‚ n Xx | j j ƒ  D]p \ }
 } | |
 } |
 | k r:| j d | d t ƒ | |
 <qù| j  t! t" f k rù| j# rù| j$ |
 ƒ qùqùW| j d | j ƒ  ƒ Sd } t |  t% ƒ rt& t% |  ƒ d	 ƒ } | d k	 rÈt | ƒ } qdt& |  d
 ƒ } | d k	 ròt | ƒ } qdt& |  d ƒ } | d k	 rdt | ƒ } qdnE t |  t' ƒ sdt& t% |  ƒ d	 d ƒ } | d k	 rdt | ƒ } qdn  | d k	 r“| j d t | j
 j ƒ  ƒ d ƒ St |  t j( ƒ rÃd j |  ƒ }	 t |	 ƒ ‚ n  t d j |  ƒ ƒ ‚ d S(   s/   Get a signature object for the passed callable.s   {0!r} is not a callable objecti    t   kindt
   parametersi   s,   partial object {0!r} has incorrect argumentst   defaultt   _partial_kwargt   __call__t   __new__t   __init__t   im_funcs-   no signature found for builtin function {0!r}s,   callable {0!r} is not supported by signatureN(    ()   t   callablet	   TypeErrort   formatR   t   typest
   MethodTypeR   t   __func__t   __self__t   NoneR   t   valuest   replacet   _POSITIONAL_ONLYt   tuplet   __signature__R   t   __wrapped__t   FunctionTypeR   t   from_functiont	   functoolst   partialt   funcR   t   itemst   argst   keywordst   bind_partialt
   ValueErrort	   argumentst   TrueR   t   _VAR_KEYWORDt   _VAR_POSITIONALR    t   popR   R   R   t   BuiltinFunctionType(   t   objt   sigt   firstt   wrappedt
   new_paramst   partial_argst   partial_keywordst   bat   ext   msgt   arg_namet	   arg_valuet   paramt   callt   newt   init(    (    s5   /usr/lib/python2.7/dist-packages/funcsigs/__init__.pyR   7   s‚    			!&


#t   _voidc           B` s   e  Z d  Z RS(   s0   A private marker - used in Parameter & Signature(   R   R   t   __doc__(    (    (    s5   /usr/lib/python2.7/dist-packages/funcsigs/__init__.pyRS   ³   s   t   _emptyc           B` s   e  Z RS(    (   R   R   (    (    (    s5   /usr/lib/python2.7/dist-packages/funcsigs/__init__.pyRU   ·   s   t   _ParameterKindc           B` s#   e  Z d  „  Z d „  Z d „  Z RS(   c         O` s#   t  j |  | Œ } | d | _ | S(   NR   (   t   intR"   t   _name(   t   selfR9   t   kwargsRC   (    (    s5   /usr/lib/python2.7/dist-packages/funcsigs/__init__.pyR"   ¼   s    c         C` s   |  j  S(   N(   RX   (   RY   (    (    s5   /usr/lib/python2.7/dist-packages/funcsigs/__init__.pyt   __str__Á   s    c         C` s   d j  |  j ƒ S(   Ns   <_ParameterKind: {0!r}>(   R'   RX   (   RY   (    (    s5   /usr/lib/python2.7/dist-packages/funcsigs/__init__.pyt   __repr__Ä   s    (   R   R   R"   R[   R\   (    (    (    s5   /usr/lib/python2.7/dist-packages/funcsigs/__init__.pyRV   »   s   		R   t   POSITIONAL_ONLYi   t   POSITIONAL_OR_KEYWORDi   t   VAR_POSITIONALi   t   KEYWORD_ONLYi   t   VAR_KEYWORDc           B` sË   e  Z d  Z d Z e Z e Z e Z	 e
 Z e Z e Z e e e d „ Z e d „  ƒ Z e d „  ƒ Z e d	 „  ƒ Z e d
 „  ƒ Z e e e e e d „ Z d „  Z d „  Z d „  Z d „  Z d „  Z RS(   sÖ  Represents a parameter in a function signature.

    Has the following public attributes:

    * name : str
        The name of the parameter as a string.
    * default : object
        The default value for the parameter if specified.  If the
        parameter has no default value, this attribute is not set.
    * annotation
        The annotation for the parameter if specified.  If the
        parameter has no annotation, this attribute is not set.
    * kind : str
        Describes how argument values are bound to the parameter.
        Possible values: `Parameter.POSITIONAL_ONLY`,
        `Parameter.POSITIONAL_OR_KEYWORD`, `Parameter.VAR_POSITIONAL`,
        `Parameter.KEYWORD_ONLY`, `Parameter.VAR_KEYWORD`.
    RX   t   _kindt   _defaultt   _annotationR    c         C` s  | t  t t t t f k r* t d ƒ ‚ n  | |  _ | t k	 rr | t t f k rr d j | ƒ } t | ƒ ‚ qr n  | |  _	 | |  _
 | d  k r· | t  k r« t d ƒ ‚ n  | |  _ nX t | ƒ } | t  k rt j d | t j ƒ rd j | ƒ } t | ƒ ‚ n  | |  _ | |  _ d  S(   Ns,   invalid value for 'Parameter.kind' attributes)   {0} parameters cannot have default valuess<   None is not a valid name for a non-positional-only parameters
   [a-z_]\w*$s#   {0!r} is not a valid parameter name(   R/   t   _POSITIONAL_OR_KEYWORDR@   t   _KEYWORD_ONLYR?   R<   Rb   RU   R'   Rc   Rd   R,   RX   t   strt   ret   matcht   IR    (   RY   R   R   R   R   R    RL   (    (    s5   /usr/lib/python2.7/dist-packages/funcsigs/__init__.pyR#   í   s(    				%	c         C` s   |  j  S(   N(   RX   (   RY   (    (    s5   /usr/lib/python2.7/dist-packages/funcsigs/__init__.pyR   
  s    c         C` s   |  j  S(   N(   Rc   (   RY   (    (    s5   /usr/lib/python2.7/dist-packages/funcsigs/__init__.pyR     s    c         C` s   |  j  S(   N(   Rd   (   RY   (    (    s5   /usr/lib/python2.7/dist-packages/funcsigs/__init__.pyR     s    c         C` s   |  j  S(   N(   Rb   (   RY   (    (    s5   /usr/lib/python2.7/dist-packages/funcsigs/__init__.pyR     s    c      	   C` s   | t  k r |  j } n  | t  k r0 |  j } n  | t  k rH |  j } n  | t  k r` |  j } n  | t  k rx |  j } n  t |  ƒ | | d | d | d | ƒS(   s+   Creates a customized copy of the Parameter.R   R   R    (   RS   RX   Rb   Rd   Rc   R    R   (   RY   R   R   R   R   R    (    (    s5   /usr/lib/python2.7/dist-packages/funcsigs/__init__.pyR.     s    c         C` sÕ   |  j  } |  j } | t k rE | d  k r3 d } n  d j | ƒ } n  |  j t k	 rr d j | t |  j ƒ ƒ } n  |  j t k	 rŸ d j | t	 |  j ƒ ƒ } n  | t
 k r¸ d | } n | t k rÑ d | } n  | S(   Nt    s   <{0}>s   {0}:{1}s   {0}={1}t   *s   **(   R   RX   R/   R,   R'   Rd   RU   R   Rc   R   R@   R?   (   RY   R   t	   formatted(    (    s5   /usr/lib/python2.7/dist-packages/funcsigs/__init__.pyR[   0  s     				c         C` s"   d j  |  j j t |  ƒ |  j ƒ S(   Ns   <{0} at {1:#x} {2!r}>(   R'   t	   __class__R   t   idR   (   RY   (    (    s5   /usr/lib/python2.7/dist-packages/funcsigs/__init__.pyR\   H  s    c         C` s%   d j  |  j j ƒ } t | ƒ ‚ d  S(   Ns   unhashable type: '{0}'(   R'   Rn   R   R&   (   RY   RL   (    (    s5   /usr/lib/python2.7/dist-packages/funcsigs/__init__.pyt   __hash__L  s    c         C` sX   t  | j t ƒ oW |  j | j k oW |  j | j k oW |  j | j k oW |  j | j k S(   N(   t
   issubclassRn   R   RX   Rb   Rc   Rd   (   RY   t   other(    (    s5   /usr/lib/python2.7/dist-packages/funcsigs/__init__.pyt   __eq__P  s
    c         C` s   |  j  | ƒ S(   N(   Rs   (   RY   Rr   (    (    s5   /usr/lib/python2.7/dist-packages/funcsigs/__init__.pyt   __ne__W  s    (   s   _names   _kinds   _defaults   _annotations   _partial_kwarg(   R   R   RT   t	   __slots__R/   R]   Re   R^   R@   R_   Rf   R`   R?   Ra   RU   t   emptyt   FalseR#   t   propertyR   R   R   R   RS   R.   R[   R\   Rp   Rs   Rt   (    (    (    s5   /usr/lib/python2.7/dist-packages/funcsigs/__init__.pyR   Ï   s*   					c           B` s_   e  Z d  Z d „  Z e d „  ƒ Z e d „  ƒ Z e d „  ƒ Z d „  Z d „  Z	 d „  Z
 RS(   s  Result of `Signature.bind` call.  Holds the mapping of arguments
    to the function's parameters.

    Has the following public attributes:

    * arguments : OrderedDict
        An ordered mutable mapping of parameters' names to arguments' values.
        Does not contain arguments' default values.
    * signature : Signature
        The Signature object that created this instance.
    * args : tuple
        Tuple of positional arguments values.
    * kwargs : dict
        Dict of keyword arguments values.
    c         C` s   | |  _  | |  _ d  S(   N(   R=   t
   _signature(   RY   R   R=   (    (    s5   /usr/lib/python2.7/dist-packages/funcsigs/__init__.pyR#   l  s    	c         C` s   |  j  S(   N(   Ry   (   RY   (    (    s5   /usr/lib/python2.7/dist-packages/funcsigs/__init__.pyR   p  s    c         C` s§   g  } x” |  j  j j ƒ  D]€ \ } } | j t t f k sC | j rG Pn  y |  j | } Wn t k
 rl Pq X| j t	 k rŒ | j
 | ƒ q | j | ƒ q Wt | ƒ S(   N(   Ry   R   R8   R   R?   Rf   R    R=   t   KeyErrorR@   t   extendt   appendR0   (   RY   R9   t
   param_nameRO   t   arg(    (    s5   /usr/lib/python2.7/dist-packages/funcsigs/__init__.pyR9   t  s    	c         C` sØ   i  } t  } xÅ |  j j j ƒ  D]± \ } } | sv | j t t f k sO | j rX t } qv | |  j	 k rv t } q qv n  | s‚ q n  y |  j	 | } Wn t
 k
 r¦ q X| j t k rÆ | j | ƒ q | | | <q W| S(   N(   Rw   Ry   R   R8   R   R?   Rf   R    R>   R=   Rz   t   update(   RY   RZ   t   kwargs_startedR}   RO   R~   (    (    s5   /usr/lib/python2.7/dist-packages/funcsigs/__init__.pyRZ     s(    			c         C` s%   d j  |  j j ƒ } t | ƒ ‚ d  S(   Ns   unhashable type: '{0}'(   R'   Rn   R   R&   (   RY   RL   (    (    s5   /usr/lib/python2.7/dist-packages/funcsigs/__init__.pyRp   ¯  s    c         C` s4   t  | j t ƒ o3 |  j | j k o3 |  j | j k S(   N(   Rq   Rn   R   R   R=   (   RY   Rr   (    (    s5   /usr/lib/python2.7/dist-packages/funcsigs/__init__.pyRs   ³  s    c         C` s   |  j  | ƒ S(   N(   Rs   (   RY   Rr   (    (    s5   /usr/lib/python2.7/dist-packages/funcsigs/__init__.pyRt   ¸  s    (   R   R   RT   R#   Rx   R   R9   RZ   Rp   Rs   Rt   (    (    (    s5   /usr/lib/python2.7/dist-packages/funcsigs/__init__.pyR   [  s   			c           B` s¶   e  Z d  Z d Z e Z e Z e Z	 d e e d „ Z e d „  ƒ Z e d „  ƒ Z e d „  ƒ Z e e d „ Z d „  Z d	 „  Z d
 „  Z e d „ Z d „  Z d „  Z d „  Z RS(   s  A Signature object represents the overall signature of a function.
    It stores a Parameter object for each parameter accepted by the
    function, as well as information specific to the function itself.

    A Signature object has the following public attributes and methods:

    * parameters : OrderedDict
        An ordered mapping of parameters' names to the corresponding
        Parameter objects (keyword-only arguments are in the same order
        as listed in `code.co_varnames`).
    * return_annotation : object
        The annotation for the return type of the function if specified.
        If the function has no annotation for its return type, this
        attribute is not set.
    * bind(*args, **kwargs) -> BoundArguments
        Creates a mapping from positional and keyword arguments to
        parameters.
    * bind_partial(*args, **kwargs) -> BoundArguments
        Creates a partial mapping from positional and keyword arguments
        to parameters (simulating 'functools.partial' behavior.)
    t   _return_annotationt   _parametersc         C` s(  | d k r t ƒ  } nú | rü t ƒ  } t } xâ t | ƒ D]» \ } } | j } | | k  r… d }	 |	 j | | j ƒ }	 t |	 ƒ ‚ n | } | j }
 |
 d k rÁ t | ƒ }
 | j	 d |
 ƒ } n  |
 | k rë d j |
 ƒ }	 t |	 ƒ ‚ n  | | |
 <q: Wn t d „  | Dƒ ƒ } | |  _
 | |  _ d S(   s„   Constructs Signature from the given list of Parameter
        objects and 'return_annotation'.  All arguments are optional.
        s%   wrong parameter order: {0} before {1}R   s   duplicate parameter name: {0!r}c         s` s   |  ] } | j  | f Vq d  S(   N(   R   (   t   .0RO   (    (    s5   /usr/lib/python2.7/dist-packages/funcsigs/__init__.pys	   <genexpr>ú  s   N(   R,   R   R/   t	   enumerateR   R'   R<   R   Rg   R.   R‚   R   (   RY   R   t   return_annotationt   __validate_parameters__t   paramst   top_kindt   idxRO   R   RL   R   (    (    s5   /usr/lib/python2.7/dist-packages/funcsigs/__init__.pyR#   Ú  s0    					c         C` sÊ  t  | t j ƒ s* t d j | ƒ ƒ ‚ n  |  j } | j } | j } | j } t	 | |  ƒ } t
 | d d ƒ } | | | | !} t
 | d i  ƒ }	 | j }
 t
 | d d ƒ } |
 rÃ t |
 ƒ } n d } g  } | | } xC | |  D]7 } |	 j | t ƒ } | j | | d | d t ƒƒ qä WxY t | | ƒ D]G \ } } |	 j | t ƒ } | j | | d | d t d |
 | ƒƒ q0W| j d	 @rÊ| | | } |	 j | t ƒ } | j | | d | d t ƒƒ n  xl | D]d } t } | d k	 rþ| j | t ƒ } n  |	 j | t ƒ } | j | | d | d t d | ƒƒ qÑW| j d
 @r¨| | } | j d	 @rj| d 7} n  | | } |	 j | t ƒ } | j | | d | d t ƒƒ n  |  | d |	 j d t ƒ d t ƒS(   s2   Constructs Signature for the given python functions   {0!r} is not a Python functiont   co_kwonlyargcounti    t   __annotations__t   __kwdefaults__R   R   R   i   i   i   R…   t   returnR†   N(   R   R(   R3   R&   R'   t   _parameter_clst   __code__t   co_argcountt   co_varnamesR0   R   t   __defaults__R,   t   lent   getRU   R|   Re   R„   t   co_flagsR@   Rf   R?   Rw   (   R   R7   R   t	   func_codet	   pos_countt	   arg_namest
   positionalt   keyword_only_countt   keyword_onlyt   annotationst   defaultst
   kwdefaultst   pos_default_countR   t   non_default_countR   R   t   offsetR   t   index(    (    s5   /usr/lib/python2.7/dist-packages/funcsigs/__init__.pyR4      sd    					


	c         C` s<   y t  j |  j ƒ SWn! t k
 r7 t |  j j ƒ  ƒ SXd  S(   N(   R(   t   MappingProxyTypeR‚   R   R   R8   (   RY   (    (    s5   /usr/lib/python2.7/dist-packages/funcsigs/__init__.pyR   I  s    c         C` s   |  j  S(   N(   R   (   RY   (    (    s5   /usr/lib/python2.7/dist-packages/funcsigs/__init__.pyR…   P  s    c         C` sL   | t  k r |  j j ƒ  } n  | t  k r6 |  j } n  t |  ƒ | d | ƒS(   s   Creates a customized copy of the Signature.
        Pass 'parameters' and/or 'return_annotation' arguments
        to override them in the new copy.
        R…   (   RS   R   R-   R   R   (   RY   R   R…   (    (    s5   /usr/lib/python2.7/dist-packages/funcsigs/__init__.pyR.   T  s    c         C` s%   d j  |  j j ƒ } t | ƒ ‚ d  S(   Ns   unhashable type: '{0}'(   R'   Rn   R   R&   (   RY   RL   (    (    s5   /usr/lib/python2.7/dist-packages/funcsigs/__init__.pyRp   c  s    c         C` s-  t  t | ƒ t ƒ sF |  j | j k sF t |  j ƒ t | j ƒ k rJ t St d „  t | j j	 ƒ  ƒ Dƒ ƒ } x· t |  j j
 ƒ  ƒ D]  \ } \ } } | j t k rß y | j | } Wn t k
 rË t SX| | k r%t Sq… y | | } Wn t k
 rt SX| | k s!| | j | k r… t Sq… Wt S(   Nc         s` s!   |  ] \ } } | | f Vq d  S(   N(    (   Rƒ   R‰   RO   (    (    s5   /usr/lib/python2.7/dist-packages/funcsigs/__init__.pys	   <genexpr>m  s   (   Rq   R   R   R…   R“   R   Rw   t   dictR„   t   keysR8   R   Rf   Rz   R>   (   RY   Rr   t   other_positionsR‰   R}   RO   t   other_paramt	   other_idx(    (    s5   /usr/lib/python2.7/dist-packages/funcsigs/__init__.pyRs   g  s,    	(c         C` s   |  j  | ƒ S(   N(   Rs   (   RY   Rr   (    (    s5   /usr/lib/python2.7/dist-packages/funcsigs/__init__.pyRt   …  s    c         C` s‘  t  ƒ  } t |  j j ƒ  ƒ } d } t | ƒ } | r~ xE |  j j ƒ  D]1 \ } }	 |	 j rF | | k rF |	 j | | <qF qF Wn  xêt rjy t | ƒ }
 Wnt	 k
 rœy t | ƒ }	 Wn t	 k
 rË PqgX|	 j
 t k rß Pqg|	 j | k r4|	 j
 t k r'd } | j d |	 j ƒ } t | ƒ ‚ n  |	 f } Pqg|	 j
 t k sR|	 j t k	 r_|	 f } Pqg| rr|	 f } Pqgd } | j d |	 j ƒ } t | ƒ ‚ q Xy t | ƒ }	 Wn t	 k
 rÌt d ƒ ‚ q X|	 j
 t t f k rñt d ƒ ‚ n  |	 j
 t k r-|
 g } | j | ƒ t | ƒ | |	 j <Pn  |	 j | k rZt d j d |	 j ƒ ƒ ‚ n  |
 | |	 j <q Wd } xÜ t j | | ƒ D]È }	 |	 j
 t k r·t d j d |	 j ƒ ƒ ‚ n  |	 j
 t k rÒ|	 } q„n  |	 j } y | j | ƒ }
 WnQ t k
 rA| rL|	 j
 t k rL|	 j t k rLt d j d | ƒ ƒ ‚ qLq„X|
 | | <q„W| r| d k	 rr| | | j <qt d ƒ ‚ n  |  j |  | ƒ S(	   s$   Private method.  Don't use directly.sA   {arg!r} parameter is positional only, but was passed as a keywordR~   s'   {arg!r} parameter lacking default values   too many positional argumentss$   multiple values for argument {arg!r}s   too many keyword arguments(    N(   R   t   iterR   R-   R8   R    R   R>   t   nextt   StopIterationR   R@   R   R/   R'   R&   R?   RU   Rf   R{   R0   R,   t	   itertoolst   chainRA   Rz   t   _bound_arguments_cls(   RY   R9   RZ   R6   R=   R   t   parameters_ext   arg_valsR}   RO   t   arg_valRL   R-   t   kwargs_param(    (    s5   /usr/lib/python2.7/dist-packages/funcsigs/__init__.pyt   _bindˆ  s    							c         O` s   |  j  | | ƒ S(   s¹   Get a BoundArguments object, that maps the passed `args`
        and `kwargs` to the function's signature.  Raises `TypeError`
        if the passed arguments can not be bound.
        (   R³   (   RY   R9   RZ   (    (    s5   /usr/lib/python2.7/dist-packages/funcsigs/__init__.pyt   bind  s    c         O` s   |  j  | | d t ƒS(   sÂ   Get a BoundArguments object, that partially maps the
        passed `args` and `kwargs` to the function's signature.
        Raises `TypeError` if the passed arguments can not be bound.
        R6   (   R³   R>   (   RY   R9   RZ   (    (    s5   /usr/lib/python2.7/dist-packages/funcsigs/__init__.pyR;     s    c   	      C` sá   g  } t  } x‚ t |  j j ƒ  ƒ D]k \ } } t | ƒ } | j } | t k rX t } n( | t k r€ | r€ | j	 d ƒ t } n  | j	 | ƒ q" Wd j
 d j | ƒ ƒ } |  j t k	 rÝ t |  j ƒ } | d j
 | ƒ 7} n  | S(   NRl   s   ({0})s   , s    -> {0}(   R>   R„   R   R-   Rg   R   R@   Rw   Rf   R|   R'   t   joinR…   RU   R   (	   RY   t   resultt   render_kw_only_separatorR‰   RO   Rm   R   t   renderedt   anno(    (    s5   /usr/lib/python2.7/dist-packages/funcsigs/__init__.pyR[     s     "			(   s   _return_annotations   _parametersN(   R   R   RT   Ru   R   RŽ   R   R®   RU   Rv   R,   R>   R#   t   classmethodR4   Rx   R   R…   RS   R.   Rp   Rs   Rt   Rw   R³   R´   R;   R[   (    (    (    s5   /usr/lib/python2.7/dist-packages/funcsigs/__init__.pyR   ¼  s$   %I			€		((   RT   t
   __future__R    R   R   R¬   R5   Rh   R(   t   collectionsR   t   ImportErrort   funcsigs.odictt   funcsigs.versionR   t   __all__R   R!   t   _WrapperDescriptort   allt   _MethodWrapperRB   R   R,   R   R   R   t   objectRS   RU   RW   RV   R/   Re   R@   Rf   R?   R   R   R   (    (    (    s5   /usr/lib/python2.7/dist-packages/funcsigs/__init__.pyt   <module>   s<   		|Œa