mň ‰%ÜGc@sidklZdkZdkZdkZdZdefd„ƒYZdd„ZdZd„Zd Z dS( (s spyceModuleNs3Error module provides error-handling functionality.terrorcBs€tZd„Zdd„Zd„Zd„Zd„Zd„Zd„Z d„Z d „Z d „Z d „Z d „Zd „ZRS(NcCs4d|_|iiƒ\}}||d„|_dS(NcCst|||ƒS(N(t spyceHandlertselft pageerrorDatat pageerrorType(RRR((t1/home/holguin2/public_html/spyce/modules/error.pyts(tNoneRt_errort_apit getPageErrorRRthandler(RRR((Rtstarts cCs7||_|iiƒ|_|o|i|ƒndS(N(ttheErrorRRR t getFilenamet _fromFileR (RR ((Rtfinishs cCs0t|ƒttƒjp d‚n||_dS(Nsparameter should be a function(ttypetfnRRR (RR((Rt setHandlers cCs6t|ƒtdƒjp d‚n|d„|_dS(Nts*parameter should be a string of spyce codecCst||dƒS(Ntstring(RRts(RR((RR s(RRRR (RR((RtsetStringHandlers cCs6t|ƒtdƒjp d‚n|d„|_dS(NRsparameter should be a filenamecCs t||ƒS(N(RRtf(RR((RR$s(RRRR (RR((RtsetFileHandler!s cCs|iS(N(RR (R((Rt getHandler%scCs |i S(N(RR(R((RtisError'scCs|io|iiSndS(N(RRtmsg(R((Rt getMessage)s cCs|io|iiSndS(N(RRR(R((RtgetType+s cCs|io |iSndS(N(RRR(R((RtgetFile-s cCs|io|iiSndS(N(RRt traceback(R((Rt getTraceback/s cCs|io|iiSndS(N(RRtstr(R((Rt getString1s cCs>|ipdSnd|iƒ|iƒ|iƒ|iƒfS(NRs'type: %s, string: %s, msg: %s, file: %s(RRRR#RR(R((Rt__repr__3s (t__name__t __module__R RRRRRRRRRRR!R#R$(((RRs            tfilec CsyZ|iidƒ}|iƒ|iƒ|iƒ|idƒ|i|ii ƒi ƒWnnXyId \}} |djo1ti||iiƒƒ} |ii| ƒ}n0|djod} |ii|ƒ}nd‚zŚ|iƒ}|iiƒ}x(|iƒD]}|i|||ƒq W|i|iiƒ|ii ƒƒ|iddddƒ} |i | _ |i!| _!|i"ƒWd|o|i#ƒ|i$|ƒnXWnZt%i&j oK}||_ | |_!||fdt(fjo‚q t)|t(dƒnXdS( Ntresponses text/htmlR'Rssunrecognized handler typeRi(NN(*t errorModuleR t getModuletresponseModuletcleart clearHeaderst clearFilterstsetContentTypet setReturnCodet getResponset RETURN_OKRRR'Rt spyceUtilturl2filet spyceCodeRt spyceFiletcodet spyceStringt newWrappert getModulestmodulestkeystnamet setModulet spyceInitt getRequestt _startModuleterrmodRRt spyceProcesst spyceDestroyt returnWrappertspyceExceptiontspyceRuntimeExceptiontetdefaultErrorTemplateR( R)R5RR7RHR=R+R;RR'RB((RR8sN         "     s [[.module name=transform]] [[transform.expr('html_encode')]] Spyce exception: [[=error.getMessage()]]

Spyce exception

File:[[=error.getFile()]]
Message:
[[=error.getMessage()]]
Stack: [[\ L = list(error.getTraceback()) L.reverse() ]] [[ for frame in L: { ]] [[=frame[0] ]]:[[=frame[1] ]], in [[=frame[2] ]]:
[[=frame[3] ]]
[[ } ]]
cCsžy5|iƒ|iƒ|idƒ|i|iƒWnnXd}zO|i dt f}|i ƒ}|i ||ƒ||idƒ_|iƒWd|o|iƒ|i|ƒnXdS(Ns text/htmlRR(t theResponseR,R-R/R0R2RRt theServert spyce_cachetserverErrorTemplatet spycecodeR9R?t theRequestR R*RRCRDRE(RKRORJR RNR((Rt serverHandler|s$     s‘ [[.module name=transform]] [[import string, spyceException if isinstance(error._error, spyceException.spyceNotFound): { ]] [[=error._error.file]] not found [[response.setReturnCode(response._api.getResponse().RETURN_NOT_FOUND)]] [[ } elif isinstance(error._error, spyceException.spyceForbidden): { ]] [[=error._error.file]] forbidden [[response.setReturnCode(response._api.getResponse().RETURN_FORBIDDEN)]] [[ } elif isinstance(error._error, spyceException.spyceSyntaxError): { ]]
  [[=transform.html_encode(`error._error`)]]
  
[[ } elif isinstance(error._error, spyceException.pythonSyntaxError): { ]]
  [[=transform.html_encode(`error._error`)]]
  
[[ } elif isinstance(error._error, SyntaxError): { ]]
  Syntax error at [[=error._error.filename]]:[[=error._error.lineno]] - 
    [[=transform.html_encode(error._error.text)]]    [[
      if not error._error.offset==None: {
        print ' '*error._error.offset+'^'
      }
    ]]
  
[[ } else: { raise error._error } ]] ( t spyceModuleRFR3tost__doc__RRRIRPRM( RFRQR3RIRPRRRMRRRS((Rt? s  ) )