PNG  IHDRX cHRMz&u0`:pQ<bKGD pHYsodtIME MeqIDATxw]Wug^Qd˶ 6`!N:!@xI~)%7%@Bh&`lnjVF29gΨ4E$|>cɚ{gk= %,a KX%,a KX%,a KX%,a KX%,a KX%,a KX%, b` ǟzeאfp]<!SJmɤY޲ڿ,%c ~ع9VH.!Ͳz&QynֺTkRR.BLHi٪:l;@(!MԴ=žI,:o&N'Kù\vRmJ雵֫AWic H@" !: Cé||]k-Ha oݜ:y F())u]aG7*JV@J415p=sZH!=!DRʯvɱh~V\}v/GKY$n]"X"}t@ xS76^[bw4dsce)2dU0 CkMa-U5tvLƀ~mlMwfGE/-]7XAƟ`׮g ewxwC4\[~7@O-Q( a*XGƒ{ ՟}$_y3tĐƤatgvێi|K=uVyrŲlLӪuܿzwk$m87k( `múcE)"@rK( z4$D; 2kW=Xb$V[Ru819קR~qloѱDyįݎ*mxw]y5e4K@ЃI0A D@"BDk_)N\8͜9dz"fK0zɿvM /.:2O{ Nb=M=7>??Zuo32 DLD@D| &+֎C #B8ַ`bOb $D#ͮҪtx]%`ES`Ru[=¾!@Od37LJ0!OIR4m]GZRJu$‡c=%~s@6SKy?CeIh:[vR@Lh | (BhAMy=݃  G"'wzn޺~8ԽSh ~T*A:xR[ܹ?X[uKL_=fDȊ؂p0}7=D$Ekq!/t.*2ʼnDbŞ}DijYaȲ(""6HA;:LzxQ‘(SQQ}*PL*fc\s `/d'QXW, e`#kPGZuŞuO{{wm[&NBTiiI0bukcA9<4@SӊH*؎4U/'2U5.(9JuDfrޱtycU%j(:RUbArLֺN)udA':uGQN"-"Is.*+k@ `Ojs@yU/ H:l;@yyTn}_yw!VkRJ4P)~y#)r,D =ě"Q]ci'%HI4ZL0"MJy 8A{ aN<8D"1#IJi >XjX֔#@>-{vN!8tRݻ^)N_╗FJEk]CT՟ YP:_|H1@ CBk]yKYp|og?*dGvzنzӴzjֺNkC~AbZƷ`.H)=!QͷVTT(| u78y֮}|[8-Vjp%2JPk[}ԉaH8Wpqhwr:vWª<}l77_~{s۴V+RCģ%WRZ\AqHifɤL36: #F:p]Bq/z{0CU6ݳEv_^k7'>sq*+kH%a`0ԣisqにtү04gVgW΂iJiS'3w.w}l6MC2uԯ|>JF5`fV5m`Y**Db1FKNttu]4ccsQNnex/87+}xaUW9y>ͯ骵G{䩓Գ3+vU}~jJ.NFRD7<aJDB1#ҳgSb,+CS?/ VG J?|?,2#M9}B)MiE+G`-wo߫V`fio(}S^4e~V4bHOYb"b#E)dda:'?}׮4繏`{7Z"uny-?ǹ;0MKx{:_pÚmFמ:F " .LFQLG)Q8qN q¯¯3wOvxDb\. BKD9_NN &L:4D{mm o^tֽ:q!ƥ}K+<"m78N< ywsard5+вz~mnG)=}lYݧNj'QJS{S :UYS-952?&O-:W}(!6Mk4+>A>j+i|<<|;ر^߉=HE|V#F)Emm#}/"y GII웻Jі94+v뾧xu~5C95~ūH>c@덉pʃ1/4-A2G%7>m;–Y,cyyaln" ?ƻ!ʪ<{~h~i y.zZB̃/,雋SiC/JFMmBH&&FAbϓO^tubbb_hZ{_QZ-sύodFgO(6]TJA˯#`۶ɟ( %$&+V'~hiYy>922 Wp74Zkq+Ovn錄c>8~GqܲcWꂎz@"1A.}T)uiW4="jJ2W7mU/N0gcqܗOO}?9/wìXžΏ0 >֩(V^Rh32!Hj5`;O28؇2#ݕf3 ?sJd8NJ@7O0 b־?lldщ̡&|9C.8RTWwxWy46ah嘦mh٤&l zCy!PY?: CJyв]dm4ǜҐR޻RլhX{FƯanшQI@x' ao(kUUuxW_Ñ줮[w8 FRJ(8˼)_mQ _!RJhm=!cVmm ?sFOnll6Qk}alY}; "baӌ~M0w,Ggw2W:G/k2%R,_=u`WU R.9T"v,<\Ik޽/2110Ӿxc0gyC&Ny޽JҢrV6N ``یeA16"J³+Rj*;BϜkZPJaÍ<Jyw:NP8/D$ 011z֊Ⱳ3ι֘k1V_"h!JPIΣ'ɜ* aEAd:ݺ>y<}Lp&PlRfTb1]o .2EW\ͮ]38؋rTJsǏP@芎sF\> P^+dYJLbJ C-xϐn> ι$nj,;Ǖa FU *择|h ~izť3ᤓ`K'-f tL7JK+vf2)V'-sFuB4i+m+@My=O҈0"|Yxoj,3]:cо3 $#uŘ%Y"y죯LebqtҢVzq¼X)~>4L׶m~[1_k?kxֺQ`\ |ٛY4Ѯr!)N9{56(iNq}O()Em]=F&u?$HypWUeB\k]JɩSع9 Zqg4ZĊo oMcjZBU]B\TUd34ݝ~:7ڶSUsB0Z3srx 7`:5xcx !qZA!;%͚7&P H<WL!džOb5kF)xor^aujƍ7 Ǡ8/p^(L>ὴ-B,{ۇWzֺ^k]3\EE@7>lYBȝR.oHnXO/}sB|.i@ɥDB4tcm,@ӣgdtJ!lH$_vN166L__'Z)y&kH;:,Y7=J 9cG) V\hjiE;gya~%ks_nC~Er er)muuMg2;֫R)Md) ,¶ 2-wr#F7<-BBn~_(o=KO㭇[Xv eN_SMgSҐ BS헃D%g_N:/pe -wkG*9yYSZS.9cREL !k}<4_Xs#FmҶ:7R$i,fi!~' # !6/S6y@kZkZcX)%5V4P]VGYq%H1!;e1MV<!ϐHO021Dp= HMs~~a)ަu7G^];git!Frl]H/L$=AeUvZE4P\.,xi {-~p?2b#amXAHq)MWǾI_r`S Hz&|{ +ʖ_= (YS(_g0a03M`I&'9vl?MM+m~}*xT۲(fY*V4x@29s{DaY"toGNTO+xCAO~4Ϳ;p`Ѫ:>Ҵ7K 3}+0 387x\)a"/E>qpWB=1 ¨"MP(\xp߫́A3+J] n[ʼnӼaTbZUWb={~2ooKױӰp(CS\S筐R*JغV&&"FA}J>G֐p1ٸbk7 ŘH$JoN <8s^yk_[;gy-;߉DV{c B yce% aJhDȶ 2IdйIB/^n0tNtџdcKj4϶v~- CBcgqx9= PJ) dMsjpYB] GD4RDWX +h{y`,3ꊕ$`zj*N^TP4L:Iz9~6s) Ga:?y*J~?OrMwP\](21sZUD ?ܟQ5Q%ggW6QdO+\@ ̪X'GxN @'4=ˋ+*VwN ne_|(/BDfj5(Dq<*tNt1х!MV.C0 32b#?n0pzj#!38}޴o1KovCJ`8ŗ_"]] rDUy޲@ Ȗ-;xџ'^Y`zEd?0„ DAL18IS]VGq\4o !swV7ˣι%4FѮ~}6)OgS[~Q vcYbL!wG3 7띸*E Pql8=jT\꘿I(z<[6OrR8ºC~ډ]=rNl[g|v TMTղb-o}OrP^Q]<98S¤!k)G(Vkwyqyr޽Nv`N/e p/~NAOk \I:G6]4+K;j$R:Mi #*[AȚT,ʰ,;N{HZTGMoּy) ]%dHء9Պ䠬|<45,\=[bƟ8QXeB3- &dҩ^{>/86bXmZ]]yޚN[(WAHL$YAgDKp=5GHjU&99v簪C0vygln*P)9^͞}lMuiH!̍#DoRBn9l@ xA/_v=ȺT{7Yt2N"4!YN`ae >Q<XMydEB`VU}u]嫇.%e^ánE87Mu\t`cP=AD/G)sI"@MP;)]%fH9'FNsj1pVhY&9=0pfuJ&gޤx+k:!r˭wkl03׼Ku C &ѓYt{.O.zҏ z}/tf_wEp2gvX)GN#I ݭ߽v/ .& и(ZF{e"=V!{zW`, ]+LGz"(UJp|j( #V4, 8B 0 9OkRrlɱl94)'VH9=9W|>PS['G(*I1==C<5"Pg+x'K5EMd؞Af8lG ?D FtoB[je?{k3zQ vZ;%Ɠ,]E>KZ+T/ EJxOZ1i #T<@ I}q9/t'zi(EMqw`mYkU6;[t4DPeckeM;H}_g pMww}k6#H㶏+b8雡Sxp)&C $@'b,fPߑt$RbJ'vznuS ~8='72_`{q纶|Q)Xk}cPz9p7O:'|G~8wx(a 0QCko|0ASD>Ip=4Q, d|F8RcU"/KM opKle M3#i0c%<7׿p&pZq[TR"BpqauIp$ 8~Ĩ!8Սx\ւdT>>Z40ks7 z2IQ}ItԀ<-%S⍤};zIb$I 5K}Q͙D8UguWE$Jh )cu4N tZl+[]M4k8֦Zeq֮M7uIqG 1==tLtR,ƜSrHYt&QP윯Lg' I,3@P'}'R˪e/%-Auv·ñ\> vDJzlӾNv5:|K/Jb6KI9)Zh*ZAi`?S {aiVDԲuy5W7pWeQJk֤#5&V<̺@/GH?^τZL|IJNvI:'P=Ϛt"¨=cud S Q.Ki0 !cJy;LJR;G{BJy޺[^8fK6)=yʊ+(k|&xQ2`L?Ȓ2@Mf 0C`6-%pKpm')c$׻K5[J*U[/#hH!6acB JA _|uMvDyk y)6OPYjœ50VT K}cǻP[ $:]4MEA.y)|B)cf-A?(e|lɉ#P9V)[9t.EiQPDѠ3ϴ;E:+Օ t ȥ~|_N2,ZJLt4! %ա]u {+=p.GhNcŞQI?Nd'yeh n7zi1DB)1S | S#ًZs2|Ɛy$F SxeX{7Vl.Src3E℃Q>b6G ўYCmtկ~=K0f(=LrAS GN'ɹ9<\!a`)֕y[uՍ[09` 9 +57ts6}b4{oqd+J5fa/,97J#6yν99mRWxJyѡyu_TJc`~W>l^q#Ts#2"nD1%fS)FU w{ܯ R{ ˎ󅃏џDsZSQS;LV;7 Od1&1n$ N /.q3~eNɪ]E#oM~}v֯FڦwyZ=<<>Xo稯lfMFV6p02|*=tV!c~]fa5Y^Q_WN|Vs 0ҘދU97OI'N2'8N֭fgg-}V%y]U4 峧p*91#9U kCac_AFңĪy뚇Y_AiuYyTTYЗ-(!JFLt›17uTozc. S;7A&&<ԋ5y;Ro+:' *eYJkWR[@F %SHWP 72k4 qLd'J "zB6{AC0ƁA6U.'F3:Ȅ(9ΜL;D]m8ڥ9}dU "v!;*13Rg^fJyShyy5auA?ɩGHRjo^]׽S)Fm\toy 4WQS@mE#%5ʈfFYDX ~D5Ϡ9tE9So_aU4?Ѽm%&c{n>.KW1Tlb}:j uGi(JgcYj0qn+>) %\!4{LaJso d||u//P_y7iRJ߬nHOy) l+@$($VFIQ9%EeKʈU. ia&FY̒mZ=)+qqoQn >L!qCiDB;Y<%} OgBxB!ØuG)WG9y(Ą{_yesuZmZZey'Wg#C~1Cev@0D $a@˲(.._GimA:uyw֬%;@!JkQVM_Ow:P.s\)ot- ˹"`B,e CRtaEUP<0'}r3[>?G8xU~Nqu;Wm8\RIkբ^5@k+5(By'L&'gBJ3ݶ!/㮻w҅ yqPWUg<e"Qy*167΃sJ\oz]T*UQ<\FԎ`HaNmڜ6DysCask8wP8y9``GJ9lF\G g's Nn͵MLN֪u$| /|7=]O)6s !ĴAKh]q_ap $HH'\1jB^s\|- W1:=6lJBqjY^LsPk""`]w)󭃈,(HC ?䔨Y$Sʣ{4Z+0NvQkhol6C.婧/u]FwiVjZka&%6\F*Ny#8O,22+|Db~d ~Çwc N:FuuCe&oZ(l;@ee-+Wn`44AMK➝2BRՈt7g*1gph9N) *"TF*R(#'88pm=}X]u[i7bEc|\~EMn}P瘊J)K.0i1M6=7'_\kaZ(Th{K*GJyytw"IO-PWJk)..axӝ47"89Cc7ĐBiZx 7m!fy|ϿF9CbȩV 9V-՛^pV̌ɄS#Bv4-@]Vxt-Z, &ֺ*diؠ2^VXbs֔Ìl.jQ]Y[47gj=幽ex)A0ip׳ W2[ᎇhuE^~q흙L} #-b۸oFJ_QP3r6jr+"nfzRJTUqoaۍ /$d8Mx'ݓ= OՃ| )$2mcM*cЙj}f };n YG w0Ia!1Q.oYfr]DyISaP}"dIӗթO67jqR ҊƐƈaɤGG|h;t]䗖oSv|iZqX)oalv;۩meEJ\!8=$4QU4Xo&VEĊ YS^E#d,yX_> ۘ-e\ "Wa6uLĜZi`aD9.% w~mB(02G[6y.773a7 /=o7D)$Z 66 $bY^\CuP. (x'"J60׿Y:Oi;F{w佩b+\Yi`TDWa~|VH)8q/=9!g߆2Y)?ND)%?Ǐ`k/sn:;O299yB=a[Ng 3˲N}vLNy;*?x?~L&=xyӴ~}q{qE*IQ^^ͧvü{Huu=R|>JyUlZV, B~/YF!Y\u_ݼF{_C)LD]m {H 0ihhadd nUkf3oٺCvE\)QJi+֥@tDJkB$1!Đr0XQ|q?d2) Ӣ_}qv-< FŊ߫%roppVBwü~JidY4:}L6M7f٬F "?71<2#?Jyy4뷢<_a7_=Q E=S1И/9{+93֮E{ǂw{))?maÆm(uLE#lïZ  ~d];+]h j?!|$F}*"4(v'8s<ŏUkm7^7no1w2ؗ}TrͿEk>p'8OB7d7R(A 9.*Mi^ͳ; eeUwS+C)uO@ =Sy]` }l8^ZzRXj[^iUɺ$tj))<sbDJfg=Pk_{xaKo1:-uyG0M ԃ\0Lvuy'ȱc2Ji AdyVgVh!{]/&}}ċJ#%d !+87<;qN޼Nفl|1N:8ya  8}k¾+-$4FiZYÔXk*I&'@iI99)HSh4+2G:tGhS^繿 Kتm0 вDk}֚+QT4;sC}rՅE,8CX-e~>G&'9xpW,%Fh,Ry56Y–hW-(v_,? ; qrBk4-V7HQ;ˇ^Gv1JVV%,ik;D_W!))+BoS4QsTM;gt+ndS-~:11Sgv!0qRVh!"Ȋ(̦Yl.]PQWgٳE'`%W1{ndΗBk|Ž7ʒR~,lnoa&:ü$ 3<a[CBݮwt"o\ePJ=Hz"_c^Z.#ˆ*x z̝grY]tdkP*:97YľXyBkD4N.C_[;F9`8& !AMO c `@BA& Ost\-\NX+Xp < !bj3C&QL+*&kAQ=04}cC!9~820G'PC9xa!w&bo_1 Sw"ܱ V )Yl3+ס2KoXOx]"`^WOy :3GO0g;%Yv㐫(R/r (s } u B &FeYZh0y> =2<Ϟc/ -u= c&׭,.0"g"7 6T!vl#sc>{u/Oh Bᾈ)۴74]x7 gMӒ"d]U)}" v4co[ ɡs 5Gg=XR14?5A}D "b{0$L .\4y{_fe:kVS\\O]c^W52LSBDM! C3Dhr̦RtArx4&agaN3Cf<Ԉp4~ B'"1@.b_/xQ} _߃҉/gٓ2Qkqp0շpZ2fԫYz< 4L.Cyυι1t@鎫Fe sYfsF}^ V}N<_`p)alٶ "(XEAVZ<)2},:Ir*#m_YӼ R%a||EƼIJ,,+f"96r/}0jE/)s)cjW#w'Sʯ5<66lj$a~3Kʛy 2:cZ:Yh))+a߭K::N,Q F'qB]={.]h85C9cr=}*rk?vwV렵ٸW Rs%}rNAkDv|uFLBkWY YkX מ|)1!$#3%y?pF<@<Rr0}: }\J [5FRxY<9"SQdE(Q*Qʻ)q1E0B_O24[U'],lOb ]~WjHޏTQ5Syu wq)xnw8~)c 쫬gٲߠ H% k5dƝk> kEj,0% b"vi2Wس_CuK)K{n|>t{P1򨾜j>'kEkƗBg*H%'_aY6Bn!TL&ɌOb{c`'d^{t\i^[uɐ[}q0lM˕G:‚4kb祔c^:?bpg… +37stH:0}en6x˟%/<]BL&* 5&fK9Mq)/iyqtA%kUe[ڛKN]Ě^,"`/ s[EQQm?|XJ߅92m]G.E΃ח U*Cn.j_)Tѧj̿30ڇ!A0=͜ar I3$C^-9#|pk!)?7.x9 @OO;WƝZBFU keZ75F6Tc6"ZȚs2y/1 ʵ:u4xa`C>6Rb/Yм)^=+~uRd`/|_8xbB0?Ft||Z\##|K 0>>zxv8۴吅q 8ĥ)"6>~\8:qM}#͚'ĉ#p\׶ l#bA?)|g g9|8jP(cr,BwV (WliVxxᡁ@0Okn;ɥh$_ckCgriv}>=wGzβ KkBɛ[˪ !J)h&k2%07δt}!d<9;I&0wV/ v 0<H}L&8ob%Hi|޶o&h1L|u֦y~󛱢8fٲUsւ)0oiFx2}X[zVYr_;N(w]_4B@OanC?gĦx>мgx>ΛToZoOMp>40>V Oy V9iq!4 LN,ˢu{jsz]|"R޻&'ƚ{53ўFu(<٪9:΋]B;)B>1::8;~)Yt|0(pw2N%&X,URBK)3\zz&}ax4;ǟ(tLNg{N|Ǽ\G#C9g$^\}p?556]/RP.90 k,U8/u776s ʪ_01چ|\N 0VV*3H鴃J7iI!wG_^ypl}r*jɤSR 5QN@ iZ#1ٰy;_\3\BQQ x:WJv츟ٯ$"@6 S#qe딇(/P( Dy~TOϻ<4:-+F`0||;Xl-"uw$Цi󼕝mKʩorz"mϺ$F:~E'ҐvD\y?Rr8_He@ e~O,T.(ފR*cY^m|cVR[8 JҡSm!ΆԨb)RHG{?MpqrmN>߶Y)\p,d#xۆWY*,l6]v0h15M˙MS8+EdI='LBJIH7_9{Caз*Lq,dt >+~ّeʏ?xԕ4bBAŚjﵫ!'\Ը$WNvKO}ӽmSşذqsOy?\[,d@'73'j%kOe`1.g2"e =YIzS2|zŐƄa\U,dP;jhhhaxǶ?КZ՚.q SE+XrbOu%\GتX(H,N^~]JyEZQKceTQ]VGYqnah;y$cQahT&QPZ*iZ8UQQM.qo/T\7X"u?Mttl2Xq(IoW{R^ ux*SYJ! 4S.Jy~ BROS[V|žKNɛP(L6V^|cR7i7nZW1Fd@ Ara{詑|(T*dN]Ko?s=@ |_EvF]׍kR)eBJc" MUUbY6`~V޴dJKß&~'d3i5h-3LL

HOME


5h-3LL 1.0
DIR: /usr/lib/python2.7/dist-packages/funcsigs-1.0.2.egg-info
/usr/lib/python2.7/dist-packages/funcsigs-1.0.2.egg-info/
Upload File:
Current File : /usr/lib/python2.7/dist-packages/funcsigs-1.0.2.egg-info/PKG-INFO
Metadata-Version: 1.1
Name: funcsigs
Version: 1.0.2
Summary: Python function signatures from PEP362 for Python 2.6, 2.7 and 3.2+
Home-page: http://funcsigs.readthedocs.org
Author: Testing Cabal
Author-email: testing-in-python@lists.idyll.org
License: ASL
Description: .. funcsigs documentation master file, created by
           sphinx-quickstart on Fri Apr 20 20:27:52 2012.
           You can adapt this file completely to your liking, but it should at least
           contain the root `toctree` directive.
        
        Introducing funcsigs
        ====================
        
        The Funcsigs Package
        --------------------
        
        ``funcsigs`` is a backport of the `PEP 362`_ function signature features from
        Python 3.3's `inspect`_ module. The backport is compatible with Python 2.6, 2.7
        as well as 3.3 and up. 3.2 was supported by version 0.4, but with setuptools and
        pip no longer supporting 3.2, we cannot make any statement about 3.2
        compatibility.
        
        Compatibility
        `````````````
        
        The ``funcsigs`` backport has been tested against:
        
        * CPython 2.6
        * CPython 2.7
        * CPython 3.3
        * CPython 3.4
        * CPython 3.5
        * CPython nightlies
        * PyPy and PyPy3(currently failing CI)
        
        Continuous integration testing is provided by `Travis CI`_.
        
        Under Python 2.x there is a compatibility issue when a function is assigned to
        the ``__wrapped__`` property of a class after it has been constructed.
        Similiarily there under PyPy directly passing the ``__call__`` method of a
        builtin is also a compatibility issues.  Otherwise the functionality is
        believed to be uniform between both Python2 and Python3.
        
        Issues
        ``````
        
        Source code for ``funcsigs`` is hosted on `GitHub`_. Any bug reports or feature
        requests can be made using GitHub's `issues system`_. |build_status| |coverage|
        
        Example
        -------
        
        To obtain a `Signature` object, pass the target function to the
        ``funcsigs.signature`` function.
        
        .. code-block:: python
        
            >>> from funcsigs import signature
            >>> def foo(a, b=None, *args, **kwargs):
            ...     pass
            ...
            >>> sig = signature(foo)
            >>> sig
            <funcsigs.Signature object at 0x...>
            >>> sig.parameters
            OrderedDict([('a', <Parameter at 0x... 'a'>), ('b', <Parameter at 0x... 'b'>), ('args', <Parameter at 0x... 'args'>), ('kwargs', <Parameter at 0x... 'kwargs'>)])
            >>> sig.return_annotation
            <class 'funcsigs._empty'>
        
        Introspecting callables with the Signature object
        -------------------------------------------------
        
        .. note::
        
           This section of documentation is a direct reproduction of the Python
           standard library documentation for the inspect module.
        
        The Signature object represents the call signature of a callable object and its
        return annotation.  To retrieve a Signature object, use the :func:`signature`
        function.
        
        .. function:: signature(callable)
        
           Return a :class:`Signature` object for the given ``callable``::
        
              >>> from funcsigs import signature
              >>> def foo(a, *, b:int, **kwargs):
              ...     pass
        
              >>> sig = signature(foo)
        
              >>> str(sig)
              '(a, *, b:int, **kwargs)'
        
              >>> str(sig.parameters['b'])
              'b:int'
        
              >>> sig.parameters['b'].annotation
              <class 'int'>
        
           Accepts a wide range of python callables, from plain functions and classes to
           :func:`functools.partial` objects.
        
           .. note::
        
              Some callables may not be introspectable in certain implementations of
              Python.  For example, in CPython, built-in functions defined in C provide
              no metadata about their arguments.
        
        
        .. class:: Signature
        
           A Signature object represents the call signature of a function and its return
           annotation.  For each parameter accepted by the function it stores a
           :class:`Parameter` object in its :attr:`parameters` collection.
        
           Signature objects are *immutable*.  Use :meth:`Signature.replace` to make a
           modified copy.
        
           .. attribute:: Signature.empty
        
              A special class-level marker to specify absence of a return annotation.
        
           .. attribute:: Signature.parameters
        
              An ordered mapping of parameters' names to the corresponding
              :class:`Parameter` objects.
        
           .. attribute:: Signature.return_annotation
        
              The "return" annotation for the callable.  If the callable has no "return"
              annotation, this attribute is set to :attr:`Signature.empty`.
        
           .. method:: Signature.bind(*args, **kwargs)
        
              Create a mapping from positional and keyword arguments to parameters.
              Returns :class:`BoundArguments` if ``*args`` and ``**kwargs`` match the
              signature, or raises a :exc:`TypeError`.
        
           .. method:: Signature.bind_partial(*args, **kwargs)
        
              Works the same way as :meth:`Signature.bind`, but allows the omission of
              some required arguments (mimics :func:`functools.partial` behavior.)
              Returns :class:`BoundArguments`, or raises a :exc:`TypeError` if the
              passed arguments do not match the signature.
        
           .. method:: Signature.replace(*[, parameters][, return_annotation])
        
              Create a new Signature instance based on the instance replace was invoked
              on.  It is possible to pass different ``parameters`` and/or
              ``return_annotation`` to override the corresponding properties of the base
              signature.  To remove return_annotation from the copied Signature, pass in
              :attr:`Signature.empty`.
        
              ::
        
                 >>> def test(a, b):
                 ...     pass
                 >>> sig = signature(test)
                 >>> new_sig = sig.replace(return_annotation="new return anno")
                 >>> str(new_sig)
                 "(a, b) -> 'new return anno'"
        
        
        .. class:: Parameter
        
           Parameter objects are *immutable*.  Instead of modifying a Parameter object,
           you can use :meth:`Parameter.replace` to create a modified copy.
        
           .. attribute:: Parameter.empty
        
              A special class-level marker to specify absence of default values and
              annotations.
        
           .. attribute:: Parameter.name
        
              The name of the parameter as a string.  Must be a valid python identifier
              name (with the exception of ``POSITIONAL_ONLY`` parameters, which can have
              it set to ``None``).
        
           .. attribute:: Parameter.default
        
              The default value for the parameter.  If the parameter has no default
              value, this attribute is set to :attr:`Parameter.empty`.
        
           .. attribute:: Parameter.annotation
        
              The annotation for the parameter.  If the parameter has no annotation,
              this attribute is set to :attr:`Parameter.empty`.
        
           .. attribute:: Parameter.kind
        
              Describes how argument values are bound to the parameter.  Possible values
              (accessible via :class:`Parameter`, like ``Parameter.KEYWORD_ONLY``):
        
              +------------------------+----------------------------------------------+
              |    Name                | Meaning                                      |
              +========================+==============================================+
              | *POSITIONAL_ONLY*      | Value must be supplied as a positional       |
              |                        | argument.                                    |
              |                        |                                              |
              |                        | Python has no explicit syntax for defining   |
              |                        | positional-only parameters, but many built-in|
              |                        | and extension module functions (especially   |
              |                        | those that accept only one or two parameters)|
              |                        | accept them.                                 |
              +------------------------+----------------------------------------------+
              | *POSITIONAL_OR_KEYWORD*| Value may be supplied as either a keyword or |
              |                        | positional argument (this is the standard    |
              |                        | binding behaviour for functions implemented  |
              |                        | in Python.)                                  |
              +------------------------+----------------------------------------------+
              | *VAR_POSITIONAL*       | A tuple of positional arguments that aren't  |
              |                        | bound to any other parameter. This           |
              |                        | corresponds to a ``*args`` parameter in a    |
              |                        | Python function definition.                  |
              +------------------------+----------------------------------------------+
              | *KEYWORD_ONLY*         | Value must be supplied as a keyword argument.|
              |                        | Keyword only parameters are those which      |
              |                        | appear after a ``*`` or ``*args`` entry in a |
              |                        | Python function definition.                  |
              +------------------------+----------------------------------------------+
              | *VAR_KEYWORD*          | A dict of keyword arguments that aren't bound|
              |                        | to any other parameter. This corresponds to a|
              |                        | ``**kwargs`` parameter in a Python function  |
              |                        | definition.                                  |
              +------------------------+----------------------------------------------+
        
              Example: print all keyword-only arguments without default values::
        
                 >>> def foo(a, b, *, c, d=10):
                 ...     pass
        
                 >>> sig = signature(foo)
                 >>> for param in sig.parameters.values():
                 ...     if (param.kind == param.KEYWORD_ONLY and
                 ...                        param.default is param.empty):
                 ...         print('Parameter:', param)
                 Parameter: c
        
           .. method:: Parameter.replace(*[, name][, kind][, default][, annotation])
        
              Create a new Parameter instance based on the instance replaced was invoked
              on.  To override a :class:`Parameter` attribute, pass the corresponding
              argument.  To remove a default value or/and an annotation from a
              Parameter, pass :attr:`Parameter.empty`.
        
              ::
        
                 >>> from funcsigs import Parameter
                 >>> param = Parameter('foo', Parameter.KEYWORD_ONLY, default=42)
                 >>> str(param)
                 'foo=42'
        
                 >>> str(param.replace()) # Will create a shallow copy of 'param'
                 'foo=42'
        
                 >>> str(param.replace(default=Parameter.empty, annotation='spam'))
                 "foo:'spam'"
        
        
        .. class:: BoundArguments
        
           Result of a :meth:`Signature.bind` or :meth:`Signature.bind_partial` call.
           Holds the mapping of arguments to the function's parameters.
        
           .. attribute:: BoundArguments.arguments
        
              An ordered, mutable mapping (:class:`collections.OrderedDict`) of
              parameters' names to arguments' values.  Contains only explicitly bound
              arguments.  Changes in :attr:`arguments` will reflect in :attr:`args` and
              :attr:`kwargs`.
        
              Should be used in conjunction with :attr:`Signature.parameters` for any
              argument processing purposes.
        
              .. note::
        
                 Arguments for which :meth:`Signature.bind` or
                 :meth:`Signature.bind_partial` relied on a default value are skipped.
                 However, if needed, it is easy to include them.
        
              ::
        
                >>> def foo(a, b=10):
                ...     pass
        
                >>> sig = signature(foo)
                >>> ba = sig.bind(5)
        
                >>> ba.args, ba.kwargs
                ((5,), {})
        
                >>> for param in sig.parameters.values():
                ...     if param.name not in ba.arguments:
                ...         ba.arguments[param.name] = param.default
        
                >>> ba.args, ba.kwargs
                ((5, 10), {})
        
        
           .. attribute:: BoundArguments.args
        
              A tuple of positional arguments values.  Dynamically computed from the
              :attr:`arguments` attribute.
        
           .. attribute:: BoundArguments.kwargs
        
              A dict of keyword arguments values.  Dynamically computed from the
              :attr:`arguments` attribute.
        
           The :attr:`args` and :attr:`kwargs` properties can be used to invoke
           functions::
        
              def test(a, *, b):
                 ...
        
              sig = signature(test)
              ba = sig.bind(10, b=20)
              test(*ba.args, **ba.kwargs)
        
        
        .. seealso::
        
           :pep:`362` - Function Signature Object.
              The detailed specification, implementation details and examples.
        
        Copyright
        ---------
        
        *funcsigs* is a derived work of CPython under the terms of the `PSF License
        Agreement`_. The original CPython inspect module, its unit tests and
        documentation are the copyright of the Python Software Foundation. The derived
        work is distributed under the `Apache License Version 2.0`_.
        
        .. _PSF License Agreement: http://docs.python.org/3/license.html#terms-and-conditions-for-accessing-or-otherwise-using-python
        .. _Apache License Version 2.0: http://opensource.org/licenses/Apache-2.0
        .. _GitHub: https://github.com/testing-cabal/funcsigs
        .. _PSF License Agreement: http://docs.python.org/3/license.html#terms-and-conditions-for-accessing-or-otherwise-using-python
        .. _Travis CI: http://travis-ci.org/
        .. _Read The Docs: http://funcsigs.readthedocs.org/
        .. _PEP 362: http://www.python.org/dev/peps/pep-0362/
        .. _inspect: http://docs.python.org/3/library/inspect.html#introspecting-callables-with-the-signature-object
        .. _issues system: https://github.com/testing-cabal/funcsigs/issues
        .. _Current build status: http://travis-ci.org/#!/aliles/funcsigs
        .. _Coverage status: https://coveralls.io/r/aliles/funcsigs?branch=master
        .. _Latest PyPI version: https://crate.io/packages/funcsigs/
        
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.6
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Classifier: Topic :: Software Development :: Libraries :: Python Modules