ó
æNXc           @   sa   d  Z  d d l Z d d l m Z e rD d d l m Z d „  Z n d d l m Z d „  Z d S(   sñ   
    getargspec excerpted from:
    
    sphinx.util.inspect
    ~~~~~~~~~~~~~~~~~~~
    Helpers for inspecting Python modules.
    :copyright: Copyright 2007-2015 by the Sphinx team, see AUTHORS.
    :license: BSD, see LICENSE for details.
iÿÿÿÿN(   t   PY3(   t   partialc   	      C   sº  t  j |  ƒ r |  j }  n  t |  ƒ t k rl|  j } t | ƒ } t | d ƒ } t | d pb d
 ƒ } t | d ƒ } t | d pˆ i  ƒ } |  j	 r­ | t
 |  j	 ƒ } n  x‹ |  j p¼ d D]z } yC | j | ƒ t
 | ƒ } | | =y | | =Wn t k
 rn XWq½ t k
 r6| j | ƒ } | | =| | =q½ Xq½ Wt  j | | d | d t | ƒ | | | d ƒ Sx t |  d ƒ rŠ|  j }  qoWt  j |  ƒ s­t d	 |  ƒ ‚ n  t  j |  ƒ S(   s?   Like inspect.getargspec but supports functools.partial as well.i    i   i   i   i   i   i   t   __wrapped__s   %r is not a Python function(    (    (   t   inspectt   ismethodt   __func__t   typeR   t   funct
   getargspect   listt   dictt   argst   lent   keywordst   indext
   IndexErrort
   ValueErrort   FullArgSpect   tuplet   hasattrR   t
   isfunctiont	   TypeErrort   getfullargspec(	   R   t	   orig_funct   argspecR   t   defaultst   kwoargst   kwodefst   argt   i(    (    sR   /data/av2000/mvv/env_mvv/lib/python2.7/site-packages/traitlets/utils/getargspec.pyR      s>    		c   	      C   sw  t  j |  ƒ r |  j }  n  d d f } t |  ƒ t k r~ |  j } | d k rW i  } n  t |  j ƒ | j	 ƒ  f } |  j
 }  n  t  j |  ƒ s  t d |  ƒ ‚ n  t  j |  j ƒ \ } } } |  j } | d k rÙ g  } n t | ƒ } | d r | | d } n  | d raxT | d D]E } | j | ƒ t | ƒ } | | =y | | =Wqt k
 rYqXqWn  t  j | | | | ƒ S(   s?   Like inspect.getargspec but supports functools.partial as well.i    s   %r is not a Python functioni   (    N(   R   R   R   R   R   R   t   NoneR   R   t   keysR   R   R   t   getargst   __code__t   __defaults__R	   R   R   t   ArgSpec(	   R   t   partsR   R   t   varargst   varkwt   func_defaultsR   R   (    (    sR   /data/av2000/mvv/env_mvv/lib/python2.7/site-packages/traitlets/utils/getargspec.pyR   9   s6    				

(   t   __doc__R   t   ipython_genutils.py3compatR    t	   functoolsR   R   (    (    (    sR   /data/av2000/mvv/env_mvv/lib/python2.7/site-packages/traitlets/utils/getargspec.pyt   <module>
   s   #