ó
Þ.Wc           @` 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.3+.
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(    (    s0   lib/python2.7/site-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(    (    s0   lib/python2.7/site-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 rX | St
 | j j ƒ  ƒ } | s | d j t t f k rœ t d ƒ ‚ n  | d j } | t t f k rÈ | d } n | t k	 rã t d ƒ ‚ n  | j d | ƒ Sn  y |  j } Wn t k
 rn X| d k	 r'| Sy |  j } Wn t k
 rGn Xt | ƒ St |  t j ƒ rq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' ƒ rBt( t' |  ƒ d
 ƒ } | d k	 rët | ƒ } q‡t( |  d ƒ } | d k	 rt | ƒ } q‡t( |  d ƒ } | d k	 r‡t | ƒ } q‡nE t |  t) ƒ s‡t( t' |  ƒ d
 d ƒ } | d k	 r‡t | ƒ } q‡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    s   invalid method signaturei   s   invalid argument typet
   parameterss,   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   Nonet   tupleR   t   valuest   kindt   _VAR_KEYWORDt   _KEYWORD_ONLYt
   ValueErrort   _POSITIONAL_OR_KEYWORDt   _POSITIONAL_ONLYt   _VAR_POSITIONALt   replacet   __signature__R   t   __wrapped__t   FunctionTypeR   t   from_functiont	   functoolst   partialt   funcR   t   itemst   argst   keywordst   bind_partialt	   argumentst   TrueR   t   popR   R   R   t   BuiltinFunctionType(   t   objt   sigt   paramsR.   t   wrappedt
   new_paramst   partial_argst   partial_keywordst   bat   ext   msgt   arg_namet	   arg_valuet   paramt   callt   newt   init(    (    s0   lib/python2.7/site-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__(    (    (    s0   lib/python2.7/site-packages/funcsigs/__init__.pyRU   ¾   s   t   _emptyc           B` s   e  Z RS(    (   R   R   (    (    (    s0   lib/python2.7/site-packages/funcsigs/__init__.pyRW   Â   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   selfR>   t   kwargsRE   (    (    s0   lib/python2.7/site-packages/funcsigs/__init__.pyR!   Ç   s    c         C` s   |  j  S(   N(   RZ   (   R[   (    (    s0   lib/python2.7/site-packages/funcsigs/__init__.pyt   __str__Ì   s    c         C` s   d j  |  j ƒ S(   Ns   <_ParameterKind: {0!r}>(   R&   RZ   (   R[   (    (    s0   lib/python2.7/site-packages/funcsigs/__init__.pyt   __repr__Ï   s    (   R   R   R!   R]   R^   (    (    (    s0   lib/python2.7/site-packages/funcsigs/__init__.pyRX   Æ   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`.
    RZ   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(   R3   R2   R4   R0   R/   R1   Rd   RW   R&   Re   Rf   R+   RZ   t   strt   ret   matcht   IR   (   R[   R   R.   R   R   R   RN   (    (    s0   lib/python2.7/site-packages/funcsigs/__init__.pyR"   ø   s(    				%	c         C` s   |  j  S(   N(   RZ   (   R[   (    (    s0   lib/python2.7/site-packages/funcsigs/__init__.pyR     s    c         C` s   |  j  S(   N(   Re   (   R[   (    (    s0   lib/python2.7/site-packages/funcsigs/__init__.pyR     s    c         C` s   |  j  S(   N(   Rf   (   R[   (    (    s0   lib/python2.7/site-packages/funcsigs/__init__.pyR     s    c         C` s   |  j  S(   N(   Rd   (   R[   (    (    s0   lib/python2.7/site-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   (   RU   RZ   Rd   Rf   Re   R   R   (   R[   R   R.   R   R   R   (    (    s0   lib/python2.7/site-packages/funcsigs/__init__.pyR5   %  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.   RZ   R3   R+   R&   Rf   RW   R   Re   R   R4   R/   (   R[   R.   t	   formatted(    (    s0   lib/python2.7/site-packages/funcsigs/__init__.pyR]   ;  s     				c         C` s"   d j  |  j j t |  ƒ |  j ƒ S(   Ns   <{0} at {1:#x} {2!r}>(   R&   t	   __class__R   t   idR   (   R[   (    (    s0   lib/python2.7/site-packages/funcsigs/__init__.pyR^   S  s    c         C` s%   d j  |  j j ƒ } t | ƒ ‚ d  S(   Ns   unhashable type: '{0}'(   R&   Rn   R   R%   (   R[   RN   (    (    s0   lib/python2.7/site-packages/funcsigs/__init__.pyt   __hash__W  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   RZ   Rd   Re   Rf   (   R[   t   other(    (    s0   lib/python2.7/site-packages/funcsigs/__init__.pyt   __eq__[  s
    c         C` s   |  j  | ƒ S(   N(   Rs   (   R[   Rr   (    (    s0   lib/python2.7/site-packages/funcsigs/__init__.pyt   __ne__b  s    (   RZ   Rd   Re   Rf   R   (   R   R   RV   t	   __slots__R3   R_   R2   R`   R4   Ra   R0   Rb   R/   Rc   RW   t   emptyt   FalseR"   t   propertyR   R   R   R.   RU   R5   R]   R^   Rp   Rs   Rt   (    (    (    s0   lib/python2.7/site-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(   RA   t
   _signature(   R[   R   RA   (    (    s0   lib/python2.7/site-packages/funcsigs/__init__.pyR"   w  s    	c         C` s   |  j  S(   N(   Ry   (   R[   (    (    s0   lib/python2.7/site-packages/funcsigs/__init__.pyR   {  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   R=   R.   R/   R0   R   RA   t   KeyErrorR4   t   extendt   appendR,   (   R[   R>   t
   param_nameRQ   t   arg(    (    s0   lib/python2.7/site-packages/funcsigs/__init__.pyR>     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   R=   R.   R/   R0   R   RB   RA   Rz   t   update(   R[   R\   t   kwargs_startedR}   RQ   R~   (    (    s0   lib/python2.7/site-packages/funcsigs/__init__.pyR\   ›  s(    			c         C` s%   d j  |  j j ƒ } t | ƒ ‚ d  S(   Ns   unhashable type: '{0}'(   R&   Rn   R   R%   (   R[   RN   (    (    s0   lib/python2.7/site-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   RA   (   R[   Rr   (    (    s0   lib/python2.7/site-packages/funcsigs/__init__.pyRs   ¾  s    c         C` s   |  j  | ƒ S(   N(   Rs   (   R[   Rr   (    (    s0   lib/python2.7/site-packages/funcsigs/__init__.pyRt   Ã  s    (   R   R   RV   R"   Rx   R   R>   R\   Rp   Rs   Rt   (    (    (    s0   lib/python2.7/site-packages/funcsigs/__init__.pyR   f  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   .0RQ   (    (    s0   lib/python2.7/site-packages/funcsigs/__init__.pys	   <genexpr>  s   N(   R+   R   R3   t	   enumerateR.   R&   R1   R   Rg   R5   R‚   R   (   R[   R   t   return_annotationt   __validate_parameters__RG   t   top_kindt   idxRQ   R.   RN   R   (    (    s0   lib/python2.7/site-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'   R8   R%   R&   t   _parameter_clst   __code__t   co_argcountt   co_varnamesR,   R   t   __defaults__R+   t   lent   getRW   R|   R2   R„   t   co_flagsR4   R0   R/   Rw   (   R   R<   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(    (    s0   lib/python2.7/site-packages/funcsigs/__init__.pyR9     sd    					


	c         C` s<   y t  j |  j ƒ SWn! t k
 r7 t |  j j ƒ  ƒ SXd  S(   N(   R'   t   MappingProxyTypeR‚   R   R   R=   (   R[   (    (    s0   lib/python2.7/site-packages/funcsigs/__init__.pyR   T  s    c         C` s   |  j  S(   N(   R   (   R[   (    (    s0   lib/python2.7/site-packages/funcsigs/__init__.pyR…   [  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…   (   RU   R   R-   R   R   (   R[   R   R…   (    (    s0   lib/python2.7/site-packages/funcsigs/__init__.pyR5   _  s    c         C` s%   d j  |  j j ƒ } t | ƒ ‚ d  S(   Ns   unhashable type: '{0}'(   R&   Rn   R   R%   (   R[   RN   (    (    s0   lib/python2.7/site-packages/funcsigs/__init__.pyRp   n  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ˆ   RQ   (    (    s0   lib/python2.7/site-packages/funcsigs/__init__.pys	   <genexpr>x  s   (   Rq   R   R   R…   R’   R   Rw   t   dictR„   t   keysR=   R.   R0   Rz   RB   (   R[   Rr   t   other_positionsRˆ   R}   RQ   t   other_paramt	   other_idx(    (    s0   lib/python2.7/site-packages/funcsigs/__init__.pyRs   r  s,    	(c         C` s   |  j  | ƒ S(   N(   Rs   (   R[   Rr   (    (    s0   lib/python2.7/site-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 %r(    N(   R   t   iterR   R-   R=   R   R   RB   t   nextt   StopIterationR.   R4   R   R3   R&   R%   R/   RW   R0   R{   R,   R+   t	   itertoolst   chainRC   Rz   t   _bound_arguments_cls(   R[   R>   R\   R;   RA   R   t   parameters_ext   arg_valsR}   RQ   t   arg_valRN   R-   t   kwargs_param(    (    s0   lib/python2.7/site-packages/funcsigs/__init__.pyt   _bind“  s    							c          O` s   |  d j  |  d | ƒ 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.
        i    i   (   R²   (   R>   R\   (    (    s0   lib/python2.7/site-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.
        R;   (   R²   RB   (   R[   R>   R\   (    (    s0   lib/python2.7/site-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}(   RB   R„   R   R-   Rg   R.   R4   Rw   R0   R|   R&   t   joinR…   RW   R   (	   R[   t   resultt   render_kw_only_separatorRˆ   RQ   Rm   R.   t   renderedt   anno(    (    s0   lib/python2.7/site-packages/funcsigs/__init__.pyR]   !  s     "			(   R   R‚   N(   R   R   RV   Ru   R   R   R   R­   RW   Rv   R+   RB   R"   t   classmethodR9   Rx   R   R…   RU   R5   Rp   Rs   Rt   Rw   R²   R³   R@   R]   (    (    (    s0   lib/python2.7/site-packages/funcsigs/__init__.pyR   Ç  s$   %I			€		((   RV   t
   __future__R    R   R   R«   R:   Rh   R'   t   collectionsR   t   ImportErrort   ordereddictt   funcsigs.versionR   t   __all__R   R    t   _WrapperDescriptort   allt   _MethodWrapperRD   R   R+   R   R   R   t   objectRU   RW   RY   RX   R3   R2   R4   R0   R/   R   R   R   (    (    (    s0   lib/python2.7/site-packages/funcsigs/__init__.pyt   <module>   s<   		‡Œa