m DMc@stdZdklZlZdklZdklZlZlZdk l Z dk l Z dk l Z dklZdklZd klZlZd kZd klZd klZd kZd kZd kZd kZd kZd kZd kZd k Z d k!Z!d k"Z"ei#d Z$dddgZ%defdYZ&defdYZ'defdYZ(d S(s This file is part of the web2py Web Framework Copyrighted by Massimo Di Pierro License: LGPLv3 (http://www.gnu.org/licenses/lgpl.html) Contains the classes for the global used variables: - Request - Response - Session (sStoragesList(s run_view_in(sstreamersstream_file_or_304_or_206sDEFAULT_CHUNK_SIZE(shandler(s contenttype(s xmlescape(sHTTP(sup(sjsons custom_jsonN(s web2py_uuid(sglobal_settingss^([\w\-]+/)?[\w\-\.]+$tRequesttResponsetSessioncBs)tZdZdZdZdZRS(s< defines the request object and the default values of its members - env: environment variables, by gluon.main.wsgibase() - cookies - get_vars - post_vars - vars - folder - application - function - args - extension - now: datetime.datetime.today() - restful() cCst|_t|_ti|_t|_t|_t|_ d|_ d|_ d|_ t|_d|_tii|_t|_dS(N(tStoragetselftwsgitenvtCookiet SimpleCookietcookiestget_varst post_varstvarstNonetfoldert applicationtfunctiontListtargst extensiontdatetimetnowtFalset is_restful(R((t7/home/camdpams_www/Products_Activation/gluon/globals.pyt__init__As          cCsAd|i|iidd|iidtf|_|iS(Ns %s/%s.%s.%st:t_s%Y-%m-%d.%H-%M-%S(RRtclienttreplaceRtstrftimet web2py_uuidtuuid(R((Rt compute_uuidPs:cCs|d}|S(Ncs.|d}|i|_|i|_|S(Nc s>t_|ii}t|ioAd|idjo-|idi dd\|id<|_ n|ddddgjot dd n|i |d}|pt dd ny||i|iSWn_tj oS} ti\}}}tti|djot dd q:| nXdS( Nt.iitGETtPOSTtDELETEtPUTisinvalid methodsmethod not supportedsinvalid arguments(tTrueRRt_selfRtrequest_methodtmethodtlenRtrsplitRtHTTPt_actiontgetR t rest_actionR t TypeErrortetsystexc_infotexc_typet exc_valuet exc_tracebackt tracebackt extract_tb( R.R(tatbR7R5R6R*R0R2(R(RtfZs   $-(tactionRR<t__doc__t__name__(R=RR<((RRtwrapperYs  (RR@(RR@((RtrestfulXs (R?t __module__R>RR!RA(((RR.s   cBs_tZdZdZedZdZeedZ eedZ edZ dZ RS(s defines the response object and the default values of its members response.write( ) can be used to write in the output html cCsd|_t|_ti|_d|_t i |_ g|_ d|_ t|_g|_g|_d|_d|_d|_d|_d|_dS(NitcCs|S(N(R<(R<((Rts(RtstatusRtheaderst cStringIOtStringIOtbodyR t session_idRRR tpostprocessingtflashtmetatmenutfilest_varst_callert_view_environmentt_custom_committ_custom_rollback(R((RRys            cCs;|p|iit|n|iit|dS(N(tescapeRRItwritetstrtdatat xmlescape(RRXRU((RRVscOst|djo tdnt|djo|d|d}|_nt|djo,t|dto|dh}|_nt|djo@t|ddo,t |di o|dh}|_nPt|djo,t|dt od|d}|_ndh}|_|ii ||ii |i|oudk}|i|i}}|i||_|_t|i|ii}|ii|||_|_nt|i|ii}|S(Nis9Response.render can be called with two arguments, at mostiitread(R+R:t SyntaxErrortviewRRPt isinstanceRWthasattrtcallableRZtdictR tupdateR;RRRGRItobodytoviewRHt run_view_intgetvaluetpagetclose(RR:R;RGRfRcRbR\((Rtrenders0 ';'    c Cs?t|ttfo#t|d|d|d|int |do |i }nd }g}|iD]}||iqj~}|o$d|jot||id.*?)\.(?P.*?)\..*ttabletfields Content-Typesattachment; filename=%ssContent-DispositionRiRj(RttcRjRR-RktretcompiletmatchtitemstgroupttR<tdbR~tretrieveRoRltIOErrorRRFt attachmentRi( RRjRRiRR~RRkRlR<RoRR((Rtdownloads$   cCst|d|ptS(Ntdefault(tjsonRXRt custom_json(RRXR((RRscCst|||S(s assuming:: def add(a, b): return a+b if a controller function "func":: return response.xmlrpc(request, [add]) the controller will be able to handle xmlrpc requests for the add function. Example:: import xmlrpclib connection = xmlrpclib.ServerProxy('http://hostname/app/contr/func') print connection.add(3, 4) N(thandlerRjRtmethods(RRjR((Rtxmlrpcs( R?RBR>RR'RVRhtDEFAULT_CHUNK_SIZER RlRRR(((RRrs    ) cBswtZdZedeeeedZdZddZdZ edZ dZ d Z d Z d ZRS( sQ defines the session object and the default values of its members (None) tweb2py_sessionc  Cs(|tjo d}n|i||p |i}nd|i|_ |p!t i tjp|t i jodSnt |_|iidd}|i |ijod|i|i i|_ti|io.tiit|i|d|i|_qd|_n|ioyt|id|_ti |iti!t|_"|i#t$i%|i|ii&d|ii'd d i'd d} |o|| jo t*d nWq|i+|d|_qXn|ipt,}d ||f|_|o)||i} d| |if|_ntiit|i|d|i|_t|_qnFt i tj ot i i/|nt|_0|io|i+|nt1i i2o ||_3n||ijo |}nt }|d|}|i8|d} | djo|i:||i;dddt |i;ddd|i;ddd|i<|i;dd|i;ddd|i;ddd|} ny|i|i i}|i'd\}} |djo t*dn|| i@|jiA} tC| djp| di?| jo t*dnt$iD| diE}|i#|Wn(t*j od}t,} h}nX|i | || f|_Fd || f|_|i|i|i R R'RRRRRRRRRR(((RR s s     ()R>tstorageRRt compileappRdR|RnRRRRtthtmlRYthttpR-t fileutilsRt serializersRRRtutilsRRRRRRGRRRRuR3R8RRt__all__RRR(RR-RGRRRR|RnRdRtRRRRRRRRRRRRR3RRRR8RRRYRu((Rt?s6                   D