GIc$@sddklZddkZddkZddkZddkZddkZddkZddkl Z ddk l Z l Z l Z ddklZlZlZlZddkZddkZddkZddkZddklZddklZlZlZlZddklZlZl Z l!Z!l"Z"dd k#l$Z$dd k%l&Z&dd k'l(Z(l)Z)dd k*l+Z+l,Z,l-Z-l.Z.l/Z/dd k0l1Z1l2Z2ye3Wn#e4j oddk5l3Z3nXei6dei7Z8ei6dei7Z9ei6dei7Z:ei6dei7Z;dddddddddddg Z<defdYZ=e=Z>d Z?d!Z@ed"d#ZAed$d#ZBed%d#ZCed&d#ZDed'd#ZEed"d(ZFed"d)ZGd*fd+YZHeHZId,eJfd-YZKd.eJfd/YZLd0eJfd1YZMd2ZNd3eJfd4YZOd5ZPd6eJfd7YZQd8ZRd9ZSd:ZTd;ZUd<ZVeWd=ZXeWd>ZYd?ZZd@Z[dAZ\dBZ]dCZ^dDZ_dEZ`dFZadGZbdHZcdIZddJZedKZfdeJfdLYZgdeJfdMYZheheg_iegeh_jdNZkekeil_mdOeJfdPYZndQeJfdRYZodSeJfdTYZpdUeJfdVYZqdS(Wi(tStringION(t BaseCookie(t parsedate_tzt mktime_tzt formatdate(tdatetimetdatet timedeltattzinfo(tEnvironHeaders(t MultiDicttUnicodeMultiDicttNestedMultiDicttNoVars(tAnyETagtNoETagt ETagMatchertIfRanget NoIfRange(t HeaderDict(tstatus_reasons(t CacheControltserialize_cache_control(tAcceptt MIMEAcceptt NilAcceptt MIMENilAccepttNoAccept(tRanget ContentRange(tsorteds;\s*charset=([^;]*)s^[a-z]+:s(([a-z0-9]+)=(?:"([^"]*)"|([a-z0-9_.-]*))s^[a-z0-9_.-]+$tRequesttResponsetUTCtdaytweekthourtminutetsecondtmonthtyeart html_escapet_UTCcBs,eZdZdZdZdZRS(cCs tdS(Ni(R(tselftdt((s2/usr/lib/python2.6/site-packages/webob/__init__.pytdst$scCs tdS(Ni(R(R+R,((s2/usr/lib/python2.6/site-packages/webob/__init__.pyt utcoffset&scCsdS(NR!((R+R,((s2/usr/lib/python2.6/site-packages/webob/__init__.pyttzname(scCsdS(NR!((R+((s2/usr/lib/python2.6/site-packages/webob/__init__.pyt__repr__*s(t__name__t __module__R-R.R/R0(((s2/usr/lib/python2.6/site-packages/webob/__init__.pyR*#s   cCs|djodSt|do |iSt|tp0t|dot|}qmt|}nti|t }t|to|i dd}n|S(s9HTML-escape a string or object This converts any non-string objects passed into it to strings (actually, using ``unicode()``). All values returned are non-unicode strings (using ``&#num;`` entities for all non-ASCII characters). None is treated specially, and returns the empty string. tt__html__t __unicode__tasciitxmlcharrefreplaceN( tNonethasattrR4t isinstancet basestringtunicodetstrtcgitescapetTruetencode(ts((s2/usr/lib/python2.6/site-packages/webob/__init__.pyR)/s  cCs|i|idddS(s3 Converts a timedelta instance to seconds. ii<(tsecondstdays(ttd((s2/usr/lib/python2.6/site-packages/webob/__init__.pyttimedelta_to_secondsGsRDitweeksthourstminutesRCiimt _NoDefaultcBseZdZRS(cCsdS(Ns (No Default)((R+((s2/usr/lib/python2.6/site-packages/webob/__init__.pyR0Ws(R1R2R0(((s2/usr/lib/python2.6/site-packages/webob/__init__.pyRJVstenviron_gettercBsPeZdZddeedddZddZdZdZdZ RS(s5For delegating an attribute to a key in self.environ.R3c Cs||_||_||_||_||_d}|io|d7}n|io|d7}n|d|i7}|t|i|7}|o|dti|7}n||_dS(NtGetss and setss and deletess! the %r key from the environment.s ( tkeytdefaulttdefault_factorytsettablet deletablet_rfc_referencettextwraptdedentt__doc__( R+RMRNRORPRQtdoct rfc_sectiont docstring((s2/usr/lib/python2.6/site-packages/webob/__init__.pyt__init__^s       cCsg|djo|S|i|ijo4|io|i}|i|i<|S|iSn|i|iS(N(R8RMtenvironRORN(R+tobjttypetval((s2/usr/lib/python2.6/site-packages/webob/__init__.pyt__get__qs   cCsj|iptd|in|djo(|i|ijo|i|i=qfn||i|i(RM(R+((s2/usr/lib/python2.6/site-packages/webob/__init__.pyR0sN( R1R2RUR8R@RYR^RaRbR0(((s2/usr/lib/python2.6/site-packages/webob/__init__.pyRK[s   t header_gettercBsMeZdZdeedddZddZdZdZdZ RS(s7For delegating an attribute to a header in self.headerscCs||_||_||_||_d}|io|d7}n|io|d7}n|d|i7}|t|i|7}|o|dti|7}n||_dS(NRLs and setss and deletess they header %s from the headerss (theaderRNRPRQRRRSRTRU(R+RdRNRPRQRVRWRX((s2/usr/lib/python2.6/site-packages/webob/__init__.pyRYs      cCs?|djo|S|i|ijo|iS|i|iSdS(N(R8RdtheadersRN(R+R[R\((s2/usr/lib/python2.6/site-packages/webob/__init__.pyR^s  cCs|iptd|in|djo(|i|ijo|i|i=qn4t|to|id}n||i|i(Rd(R+((s2/usr/lib/python2.6/site-packages/webob/__init__.pyR0sN( R1R2RUR8R@RYR^RaRbR0(((s2/usr/lib/python2.6/site-packages/webob/__init__.pyRcs  t set_via_callcBs;eZddZddZdZdZdZRS(cCs||_||_dS(N(tfunct adapt_args(R+RgRh((s2/usr/lib/python2.6/site-packages/webob/__init__.pyRYs cCs|i|ii||S(N(t __class__RgR^(R+R[R\((s2/usr/lib/python2.6/site-packages/webob/__init__.pyR^scCsh|idjo|fh}}n.|i|}|djodS|\}}|i|||dS(N(RhR8Rg(R+R[R`targstkwtresult((s2/usr/lib/python2.6/site-packages/webob/__init__.pyRas  cCs d|iS(Nsset_via_call(%r)(Rg(R+((s2/usr/lib/python2.6/site-packages/webob/__init__.pyR0scOs|i||S(N(Rg(R+RjRk((s2/usr/lib/python2.6/site-packages/webob/__init__.pyt__call__sN(R1R2R8RYR^RaR0Rm(((s2/usr/lib/python2.6/site-packages/webob/__init__.pyRfs    cCs;|tjodS|tjo dhfS|fhfSdS(Ni(i(tFalseR8R@(R`((s2/usr/lib/python2.6/site-packages/webob/__init__.pyt_adapt_cache_expiress    t convertercBsGeZdZddddZddZdZdZdZRS(sF Wraps a decorator, and applies conversion for that decorator cCs||_||_||_||_||_|ipd}|d7}|o||d7}n|d||f7}|o|dti|7}n||_dS(NR3s Converts it as a t.s %r and %r.s (t decoratortgetter_convertertsetter_convertert convert_nametconverter_argsRURSRT(R+RrRsRtRuRVRvRX((s2/usr/lib/python2.6/site-packages/webob/__init__.pyRYs      cCs:|djo|S|ii||}|i||iS(N(R8RrR^RsRv(R+R[R\R`((s2/usr/lib/python2.6/site-packages/webob/__init__.pyR^s cCs,|i||i}|ii||dS(N(RtRvRrRa(R+R[R`((s2/usr/lib/python2.6/site-packages/webob/__init__.pyRascCs|ii|dS(N(RrRb(R+R[((s2/usr/lib/python2.6/site-packages/webob/__init__.pyRbscCs2|iod|i}nd}d|i|fS(Ns %sR3s(RuRr(R+tname((s2/usr/lib/python2.6/site-packages/webob/__init__.pyR0s N(( R1R2RUR8RYR^RaRbR0(((s2/usr/lib/python2.6/site-packages/webob/__init__.pyRps    cCsp|pdS|idd}d||f}|ido |diidd}nd |||fS( NR3Rqis<http://www.w3.org/Protocols/rfc2616/rfc2616-sec%s.html#sec%stHTTP_it_t-s4 For more information on %s see `section %s <%s>`_.(tsplitt startswithttitletreplace(Rdtsectiont major_sectiontlink((s2/usr/lib/python2.6/site-packages/webob/__init__.pyRRs  tdeprecated_propertycBsJeZdZedZddZdZdZdZ dZ RS(s@ Wraps a decorator, with a deprecation warning or error cCs(||_||_||_||_dS(N(Rrtattrtmessagetwarning(R+RrRRR((s2/usr/lib/python2.6/site-packages/webob/__init__.pyRYs   cCs/|djo|S|i|ii||S(N(R8twarnRrR^(R+R[R\((s2/usr/lib/python2.6/site-packages/webob/__init__.pyR^s  cCs!|i|ii||dS(N(RRrRa(R+R[R`((s2/usr/lib/python2.6/site-packages/webob/__init__.pyRas cCs|i|ii|dS(N(RRrRb(R+R[((s2/usr/lib/python2.6/site-packages/webob/__init__.pyRb s cCsd|i|ifS(Ns(RRr(R+((s2/usr/lib/python2.6/site-packages/webob/__init__.pyR0$scCsT|ip td|i|ifn'tid|i|iftdddS(Ns"The attribute %s is deprecated: %st stackleveli(RtDeprecationWarningRRtwarningsR(R+((s2/usr/lib/python2.6/site-packages/webob/__init__.pyR)s N( R1R2RUR@RYR8R^RaRbR0R(((s2/usr/lib/python2.6/site-packages/webob/__init__.pyR s     cCsi|pdSt|}|djodS|ddjo|d d}nt|}ti|tS(Nii i(i(R8RRRt fromtimestampR!(R`tt((s2/usr/lib/python2.6/site-packages/webob/__init__.pyt _parse_date3s   cCs|djodSt|to|id}nt|to|St|toti|}nt|ttfo|i }nt|t t i fot i|}nt|tttfptd|nt|S(NR6sHYou must pass in a datetime, date, time tuple, or integer object, not %r(R8R:R<RAR=RRtnowRt timetuplettuplettimet struct_timetcalendarttimegmtfloattinttlongt ValueErrorR(R,((s2/usr/lib/python2.6/site-packages/webob/__init__.pyt_serialize_date@s  cCs|djodSt|to|id}nt|toti|}nt|ttfo|i}nt i d|S(NR6s%a, %d-%b-%Y %H:%M:%S GMT( R8R:R<RARRRRRRtstrftime(R,((s2/usr/lib/python2.6/site-packages/webob/__init__.pyt_serialize_cookie_dateRs cCsY|pdSyt|}Wntj onXtd|}ti|St|S(s9 like _parse_date, but also handle delta seconds RCN(R8RRRRRR(R`tdelta((s2/usr/lib/python2.6/site-packages/webob/__init__.pyt_parse_date_delta]scCsK| o|djodSt|ttfott|St|S(Ni(R8R:RRR=R(R`((s2/usr/lib/python2.6/site-packages/webob/__init__.pyt_serialize_date_deltals cCsa|djo d}n|i}|p|otStSn|djotSti|SdS(NR3t*(R8tstripRRRtparse(R`RN((s2/usr/lib/python2.6/site-packages/webob/__init__.pyt _parse_etagss    cCs=|djodS|tjo|odSdSnt|S(NR(R8RR=(R`RN((s2/usr/lib/python2.6/site-packages/webob/__init__.pyt_serialize_etags  cCs|ptSti|SdS(N(RRR(R`((s2/usr/lib/python2.6/site-packages/webob/__init__.pyt_parse_if_rangescCs^|djo|St|ttfo t|St|tpt|}n|pdS(N(R8R:RRRR=(R`((s2/usr/lib/python2.6/site-packages/webob/__init__.pyt_serialize_if_ranges  cCs|pdSti|S(N(R8RR(R`((s2/usr/lib/python2.6/site-packages/webob/__init__.pyt _parse_rangescCsyt|ttfo:t|djotd|nt|g}n|djodSt|}|pdS(NisEIf setting .range to a list or tuple, it must be of length 2 (not %r)(R:tlistRtlenRRR8R=(R`((s2/usr/lib/python2.6/site-packages/webob/__init__.pyt_serialize_ranges  cCs)|djp |djodSt|S(NR3(R8R(R`((s2/usr/lib/python2.6/site-packages/webob/__init__.pyt _parse_intscCsH|djp |djodSyt|SWntj odSXdS(NR3(R8RR(R`((s2/usr/lib/python2.6/site-packages/webob/__init__.pyt_parse_int_safes cCs|djodSt|S(N(R8R=(R`((s2/usr/lib/python2.6/site-packages/webob/__init__.pyt_serialize_ints cCs(| p|i odSti|S(N(RR8RR(R`((s2/usr/lib/python2.6/site-packages/webob/__init__.pyt_parse_content_rangescCs|djodSt|ttfout|djotd|nt|djo|\}}d}n|\}}}t|||}nt|i}|pdS|S(NiisMWhen setting content_range to a list/tuple, it must be length 2 or 3 (not %r)(ii( R8R:RRRRRR=R(R`tbegintendtlength((s2/usr/lib/python2.6/site-packages/webob/__init__.pyt_serialize_content_ranges    cCsi|djodS|i}|pdSg}|idD]$}|io||iq>q>~S(Nt,(R8RR{(R`t_[1]tv((s2/usr/lib/python2.6/site-packages/webob/__init__.pyt _parse_lists  cCsW|pdSt|tot|}nt|to|Sditt|S(Ns, (R8R:R<R=tjointmap(R`((s2/usr/lib/python2.6/site-packages/webob/__init__.pyt_serialize_listscCs|p ||S|||S(N((R`t header_namet AcceptClasstNilClass((s2/usr/lib/python2.6/site-packages/webob/__init__.pyt _parse_accepts cCsl| pt||odSt|tttfo|||}nt|i}|pdS|S(N(R:R8RRtdictR=R(R`RRR((s2/usr/lib/python2.6/site-packages/webob/__init__.pyt_serialize_acceptsc BsUeZdzZdZeZd{ZdzdzeeedZ gdZ dZ dZ dZ dZd Zee eed e iZed Zed Zed ZedZedddZeedddeedZedddzZedddzZedZedZ eede!edZ"dzZ#dZ$dZ%ee$e%d e$iZ&dZ'ee'd e'iZ'dZ(ee(d e(iZ(dZ)ee)d e)iZ)d Z*ee*d e*iZ*d!Z+ee+d e+iZ+d"Z,ee,d e,iZ,ed#Z-d$Z.d%Z/d&Z0d'Z1d(Z2ee0e1e2d e0iZ3d)Z4d*Z5d+Z6ee4e5e6e4iZ7d,Z8ee8d e8iZ8d-Z9d.Z:d/Z;ee9e:e;d e9iZ<d0Z=d1Z>d2Z?ee=e>e?d e=iZ@d3ZAeeAd eAiZAeBeAd4d5ZCd6ZDeeDd eDiZDeBeDd7d8ZEd9ZFeeFd eFiZFeBeFd:d;ZGd<ZHeeHd eHiZHeBeHd=d>ZId?ZJeeJd eJiZJd@ZKeeKd eKiZKeLiMdAZNdBZOeeOd eOiZOdCZPeePd ePiZPdDZQdEZRdFZSdGZTeUeUeUeUdHZVeedIddJeWeXdKdLdMeYeZfZ[eedNddOeWeXdPdLdQe\e]fZ^eedRddSeWeXdPdLdTe\e_fZ`eedUddVeWeXdPdLdWe\e]fZadXZbdYZcdZZdeebecedd ebiZeeed[dd\efegd]Zheed^dd_eiejd`dLeUfZkeedaddbefegd]Zleedcdddeiejd`dLefZmeededdfeneodgZpeedhddiefegd]Zqeedjddke!edZredlddmZseednddoeteudpZvedqddrZwewZxedsddtZyduZzdvZ{edwZ|dzZ}edxZ~dzdzdzdyZeeZRS(|tstricti ic Ks |dj otdn|djotdn|i}||d<|tj o||d The full request URL, including QUERY_STRING RR(RRZR(R+R((s2/usr/lib/python2.6/site-packages/webob/__init__.pyRs cCsK|o+|i}|idp|d7}q;n |i}ti||S(s Resolve other_url relative to the request URL. If ``to_application`` is True, then resolve it relative to the URL with only SCRIPT_NAME t/(RtendswithRturlparseturljoin(R+t other_urltto_applicationR((s2/usr/lib/python2.6/site-packages/webob/__init__.pyt relative_urls   cCs|i}|pdSx.|ido|id7_|d}qWd|jo|i|7_d|_|S|idd\}}d||_|i|7_|SdS(s> 'Pops' off the next segment of PATH_INFO, pushing it onto SCRIPT_NAME, and returning the popped segment. Returns None if there is nothing left on PATH_INFO. Does not return ``''`` when there's an empty segment (like ``/path//path``); these segments are just ignored. RiR3N(RR8R|RR{(R+Rtsegment((s2/usr/lib/python2.6/site-packages/webob/__init__.pyt path_info_pops    cCs8|i}|pdS|id}|idddS(s Returns the next segment on PATH_INFO, or None if there is no next segment. Doesn't modify the environment. RiiN(RR8tlstripR{(R+R((s2/usr/lib/python2.6/site-packages/webob/__init__.pytpath_info_peeks  cCs]d|ijo |idSd|ijo|iddSh}d|f|id<|SdS(s Return any *named* variables matched in the URL. Takes values from ``environ['wsgiorg.routing_args']``. Systems like ``routes`` set this value. s paste.urlvarsswsgiorg.routing_argsiN((RZ(R+Rl((s2/usr/lib/python2.6/site-packages/webob/__init__.pyt _urlvars__gets cCsy|i}d|jo4|dd|f|dHost name provided in HTTP_HOST, with fall-back to SERVER_NAMERs%(SERVER_NAME)s:%(SERVER_PORT)sN(RZ(R+((s2/usr/lib/python2.6/site-packages/webob/__init__.pyt _host__get8s cCs||idscCs"d|ijo|id=ndS(NR(RZ(R+((s2/usr/lib/python2.6/site-packages/webob/__init__.pyt _host__del@scCsyt|iidd}Wntj odSX|ii|}t|ido|iidng|i}|o=t ||jo*t i }|i ||idn t |}||id<|S(s9 Return the content of the request body. RRR3tseekis wsgi.input(RRZRRt body_filetreadR9Rtrequest_body_tempfile_limitRttempfilet TemporaryFiletwriteR(R+Rtcttempfile_limittfileobj((s2/usr/lib/python2.6/site-packages/webob/__init__.pyt _body__getEs     cCst|djo |`dSt|tptdt|nt|}||_tt||i dt FieldStorageR@R tfrom_fieldstoraget FakeCGIBodytupdate_environ(R+tenvtvarsRR(t fs_environtfs((s2/usr/lib/python2.6/site-packages/webob/__init__.pytstr_POSTms:             t str_postvarssuse str_POST insteadcCsB|i}|io+t|d|id|id|i}n|S(sD Like ``.str_POST``, but may decode values and keys tencodingterrorst decode_keys(R2RR RR(R+R/((s2/usr/lib/python2.6/site-packages/webob/__init__.pyR"s    tpostvarssuse POST insteadcCs|i}|idd}d|jo&|d\}}||jo|Sn|p t}n"tti|dtdt}||f|d<|S(s` Return a MultiDict containing all the variables from the QUERY_STRING. RR3swebob._parsed_query_varsR&tstrict_parsing(RZRR R>t parse_qslR@Rn(R+R.tsourceR/R((s2/usr/lib/python2.6/site-packages/webob/__init__.pytstr_GETs        t str_queryvarssuse str_GET insteadcCsB|i}|io+t|d|id|id|i}n|S(sC Like ``.str_GET``, but may decode values and keys R4R5R6(R;RR RR(R+R/((s2/usr/lib/python2.6/site-packages/webob/__init__.pytGETs    t queryvarssuse GET insteadcCst|i|iS(sy A dictionary-like object containing both the parameters from the query string and request body. (R R;R2(R+((s2/usr/lib/python2.6/site-packages/webob/__init__.pyt str_paramsscCsB|i}|io+t|d|id|id|i}n|S(sF Like ``.str_params``, but may decode values and keys R4R5R6(R?RR RR(R+tparams((s2/usr/lib/python2.6/site-packages/webob/__init__.pyR@s    s"(.*)"c Cs|i}|idd}d|jo&|d\}}||jo|Snh}|ott}|i|x[|D]O}||i}|ii|}|dj o|id}n|||`_) tHTTP_CACHE_CONTROLR3swebob._cache_controlR\trequestN(NN(RZRR8RR(R+R.R`t cache_headert cache_obj((s2/usr/lib/python2.6/site-packages/webob/__init__.pyt_cache_control__gets cCs|i}|p d}nt|tot|dd}nct|to*t|}||d<||f|d(RiR1tabstidR'R(R+tmsg((s2/usr/lib/python2.6/site-packages/webob/__init__.pyR0s "cCs|i}|i}|t|}d|ijo|i|idR?R@tretcompileRCRIRGR)RLRNRJR@R]RRRRtacceptRRtaccept_charsetRtaccept_encodingtaccept_languageReRgRht cache_controlRRRRRtif_matchtif_modified_sincet if_none_matchRRtif_rangetif_unmodified_sincet max_forwardstpragmaRRtrangetreferertreferrert user_agentR0RwRRRRt classmethod(((s2/usr/lib/python2.6/site-packages/webob/__init__.pyRs.                                -                  )          # Wc BseZdZdZdZdZeZdldldldldldle dZ dZ dZ dZ dZd Zeeed eiZd Zd Zeeed eiZd ZdZdZeeeed eiZdZdZdZeeeed eiZdZdZdZeeeed eiZ dZ!dZ"dZ#ee!e"e#d e!iZ$dZ%dZ&ee%e&d e%iZ'dZ(dZ)dZ*ee(e)e*d e(iZ+dZ,dZ-ee,d e-d e,iZ.d!Z/d"Z0d#Z1d$Z2ee0e1e2d e0iZ3d%Z4d&Z5d'Z6ee4e5e6d e4iZ7d(dld)dldledldldld* Z8d)dld+Z9d,Z:d-Z;d.Z<d/Z=ee;e<e=d e;iZ>e?d0d1d2Z@eAe?d3d1d4eBeCd5ZDeAe?d6d1d7eEeFd8ZGdlZHd9ZId:ZJd;ZKd<ZLeeIeJeKd eIiZMd=d>ZNeOeNePZQe?d?d1d@ZRdAdBZSdCZTeAe?dDd1dEeEeFd8ZUe?dFd1dGZVe?dHd1dGZWeAe?dId1dJeXeYdKZZeAe?dLd1dMe[eCd5Z\eAe?dNd1dOe]e^dPZ_e?dQd1dRZ`dleedSZaeAe?dTd1dUe]e^dPZbeAe?dVd1dWe]e^dPZce?dXd1dYZdeAe?dZd1d[eeefd\Zge?d]d1d^ZheAe?d_d1d`eEeFd8ZidaZjdbZkdcZleejekeld ejiZmddZndeZodfZpeeneoepd eniZqdgZrdmZsdjZtdkZuRS(ns$ Represents a WSGI response s text/htmlsUTF-8Rc Ks[|djo|djo d}qEn|dj otdn|djo d|_n ||_|djo g|_n ||_d|_|dj o?t|do|i|_||_ q||_d|_ nd|_|_ |djo |i }nd} d|jo|i d} n}|i or|djoe|oZ|djp@|i dp0|i dp |i d o|id o |i } qn|o| o|d | 7}n|io| o | |_n|i o!|o|iid |fn|tjo|i|_n ||_|dj o||_d|_nt|to0| djotd n|i| }n||_|djo&|iidtt|fntt||id(RiR1RqRrRx(R+((s2/usr/lib/python2.6/site-packages/webob/__init__.pyR0s cCsQ|iddig}|iD]\}}|d||fq~d|iS(Ns s%s: %ss (RxRRR(R+RRwR`((s2/usr/lib/python2.6/site-packages/webob/__init__.pyRwsc CsZ|idj o |i}n |ig}|idtd|id|id|d|iS(sMakes a copy of the responseR(RxRRRN(RR8RRiRnRRR(R+R((s2/usr/lib/python2.6/site-packages/webob/__init__.pyR)s     cCs|iS(s# The status string (R(R+((s2/usr/lib/python2.6/site-packages/webob/__init__.pyt _status__getscCst|tot|}nt|tptdt|nd|jo(t|}t|}|d|7}n||_dS(Ns3You must set status to a string or integer (not %s)t (R:RR=RR\RR(R+R`tcodetreason((s2/usr/lib/python2.6/site-packages/webob/__init__.pyt _status__sets   RVcCst|iidS(s* The status as an integer i(RRxR{(R+((s2/usr/lib/python2.6/site-packages/webob/__init__.pyt_status_int__getscCs ||_dS(N(Rx(R+R`((s2/usr/lib/python2.6/site-packages/webob/__init__.pyt_status_int__setscCs|iS(s. The list of response headers (R(R+((s2/usr/lib/python2.6/site-packages/webob/__init__.pyt_headerlist__getscCsVd|_t|tp0t|do|i}nt|}n||_dS(NRu(R8RR:RR9RuR(R+R`((s2/usr/lib/python2.6/site-packages/webob/__init__.pyt_headerlist__sets  cCs g|_dS(N(R(R+((s2/usr/lib/python2.6/site-packages/webob/__init__.pyt_headerlist__del%scCsF|iid}|pdSti|}|o|idSdS(s; Get/set the charset (in the Content-Type) s content-typeiN(ReRR8t _CHARSET_RERRE(R+RdRD((s2/usr/lib/python2.6/site-packages/webob/__init__.pyt _charset__get*scCs|djo |`dSy|iid}Wntj otdnXti|}|o"||i ||i }n|d|7}||id`_. tlocationN(ReR8RRRbRRR(R+Rtbase_uri((s2/usr/lib/python2.6/site-packages/webob/__init__.pyt_location__getbs   cCs|djo |`dSt|to|id}nti|p0|idj oti |ii |}q{n||i d`_) s cache-controlR3t updates_toR\tresponseN( ReRt_cache_control_objR8RRt_update_cache_controlRt propertiesRR(R+R`tnew_obj((s2/usr/lib/python2.6/site-packages/webob/__init__.pyRes!cCs|p d}nt|tot|d}nt|tot|}nt|to8|idjo||id(treprR/RRiR1RqRr(R+tinner((s2/usr/lib/python2.6/site-packages/webob/__init__.pyR0 s  cCs$||}d|d<||d(R(R+((s2/usr/lib/python2.6/site-packages/webob/__init__.pyR0 scCstddS(Ns Response bodies cannot be closed(tNotImplementedError(R+((s2/usr/lib/python2.6/site-packages/webob/__init__.pyR~! scCsdS(N((R+((s2/usr/lib/python2.6/site-packages/webob/__init__.pytflush% scCst|to<|iidj o|i|ii}qLtdnt|tptdt|nt|ii t p6|ii }|o|g|i_ qg|i_ n|ii i |dS(NsHYou can only write unicode to Response.body_file if charset has been sets6You can only write str to a Response.body_file, not %s(R:R<RRR8RARR=R\RRRRRW(R+RBR((s2/usr/lib/python2.6/site-packages/webob/__init__.pyR( s  cCs"x|D]}|i|qWdS(N(R(R+tseqtitem((s2/usr/lib/python2.6/site-packages/webob/__init__.pyt writelines< scCs |iiS(sL The encoding of the file (inherited from response.charset) (RR(R+((s2/usr/lib/python2.6/site-packages/webob/__init__.pyR4B sRVtwb(R1R2RYR0R~RYRR\RntclosedR4RRUR(((s2/usr/lib/python2.6/site-packages/webob/__init__.pyR s       R>cBs)eZdZdZdZdZRS(s< Wraps an app_iter, returning just a range of bytes cCs||_t||_||_|djo d|_n|||_|o d|_n d|_t|do|i|_ndS(NiiR~( RRTt app_iteratorRR8Rt_servedR9R~(R+RRR;((s2/usr/lib/python2.6/site-packages/webob/__init__.pyRYQ s       cCs|S(N((R+((s2/usr/lib/python2.6/site-packages/webob/__init__.pyRUc scCs+|idjo}d}|i}xk|ii}|t|7}||}|djod|_Pq"|djo||_|| Sq"n|i}|djo tn|ii}|djo|S|it||jo*|it||}d|_|| S|it|7_|S(Nii(R`R8RR_RPRRt StopIteration(R+tskippedRtchunktextraR((s2/usr/lib/python2.6/site-packages/webob/__init__.pyRPf s2            (R1R2RURYRURP(((s2/usr/lib/python2.6/site-packages/webob/__init__.pyR>L s  R5cBs5eZdZddZdZdZdZRS(sAn empty WSGI response. An iterator that immediately stops. Optionally provides a close method to close an underlying app_iter it replaces. cCs+|o t|do|i|_ndS(NR~(R9R~(R+R((s2/usr/lib/python2.6/site-packages/webob/__init__.pyRY scCs|S(N((R+((s2/usr/lib/python2.6/site-packages/webob/__init__.pyRU scCsdS(Ni((R+((s2/usr/lib/python2.6/site-packages/webob/__init__.pyt__len__ scCs tdS(N(Ra(R+((s2/usr/lib/python2.6/site-packages/webob/__init__.pyRP sN(R1R2RUR8RYRUReRP(((s2/usr/lib/python2.6/site-packages/webob/__init__.pyR5 s    (rt cStringIORRR>RRRRStCookieRtrfc822RRRRRRRRRRRtwebob.datastructR twebob.multidictR R R R t webob.etagRRRRRtwebob.headerdictRtwebob.statusreasonsRtwebob.cachecontrolRRtwebob.acceptparseRRRRRtwebob.byterangeRRRt NameErrort webob.compatRtIRRRRt__all__R*R!R)RFR"R#R$R%R&R'R(RJRRRKRcRfRoRpRRRRRRRRR@RRRRRRRRRRRRRRRRR RR,RIR*R0R,RR>R5(((s2/usr/lib/python2.6/site-packages/webob/__init__.pyts      "    "(('    20 ( '             ;   B47