def error(self, code, message = None): self.response.set_status(code, str(message)) if message is None: message = Response.http_status_message(code) self.view['message'] = message self.view['code'] = code self.render_view('system/error.html') raise PageError, (code, message)
def parsefunctiondoc(docstring): global types # create an ordered dictionary to hold information from the docstring docdict = collections.OrderedDict() # no docstring given if (docstring == None): docdict[ "Description" ] = "Unspecified" docdict[ "Arguments" ] = "Unspecified" docdict[ "Bindings" ] = "Unspecified" docdict[ "Returns" ] = "Unspecified" docdict[ "Errors" ] = "Unspecified" return docdict # split the docstring into lines and obtain the number of lines docstring = docstring.split("\n") docsize = len(docstring) # one-line docstring if (docsize == 1): docdict[ "Description" ] = docstring[0].strip() docdict[ "Arguments" ] = "Unspecified" docdict[ "Bindings" ] = "Unspecified" docdict[ "Returns" ] = "Unspecified" docdict[ "Errors" ] = "Unspecified" return docdict # obtain information about description docsize = docsize - 1 description = "" i = 0 while(i<docsize and (not (docstring[i].strip()).startswith("Args"))): description = description + str(docstring[i].strip()) + " " i = i + 1 if (description.strip() == ""): docdict[ "Description" ] = "Unspecified" else: docdict[ "Description" ] = description.strip() if (i == docsize): docdict[ "Arguments" ] = "Unspecified" docdict[ "Bindings" ] = "Unspecified" docdict[ "Returns" ] = "Unspecified" docdict[ "Errors" ] = "Unspecified" return docdict # obtain information about argument(s), including queries arguments = [] i = i + 1 while(i<docsize): argline = docstring[i].split(":") if (len(argline) == 1): break elif (len(argline) == 2): argtype = argline[1].strip() if (argtype == ""): argtype = "Unspecified" argdes = "Unspecified" else: argtype = argline[1].strip() argdes = argline[2].strip() if (argdes == ""): argdes = "Unspecified" argdict = collections.OrderedDict() argdict[ "Name" ] = argline[0].strip() argdict[ "Description" ] = argdes argdict[ "Type" ] = argtype if (argdict[ "Type" ] not in types): types.append(argdict[ "Type" ]) arguments.append(argdict) i = i + 1 if (arguments == []): docdict[ "Arguments" ] = "Unspecified" else: docdict[ "Arguments" ] = arguments if (i == docsize): docdict[ "Bindings" ] = "Unspecified" docdict[ "Returns" ] = "Unspecified" docdict[ "Errors" ] = "Unspecified" return docdict # obtain information about bindings while(i<docsize and (not (docstring[i].strip()).startswith("Bindings"))): description = description + str(docstring[i].strip()) + " " i = i + 1 if (i == docsize): docdict[ "Bindings" ] = "Unspecified" docdict[ "Returns" ] = "Unspecified" docdict[ "Errors" ] = "Unspecified" return docdict bindings = [] i = i + 1 while(i<docsize): bindline = docstring[i].split(":") if (len(bindline) == 1): break elif (len(bindline) == 2): bindtype = bindline[1].strip() if (bindtype == ""): bindtype = "Unspecified" binddes = "Unspecified" bindmode = "Unspecified" elif (len(bindline) == 3): binddes = bindline[2].strip() if (binddes == ""): binddes = "Unspecified" bindmode = "Unspecified" else: bindtype = bindline[1].strip() binddes = bindline[2].strip() bindmode = bindline[3].strip() if (bindmode == ""): bindmode = "Unspecified" binddict = collections.OrderedDict() binddict[ "ID" ] = bindline[0].strip() + "Binding" binddict[ "Mode" ] = bindmode binddict[ "Name" ] = bindline[0].strip() binddict[ "Description" ] = binddes binddict[ "Type" ] = bindtype if (binddict[ "Type" ] not in types): types.append(binddict[ "Type" ]) bindings.append(binddict) i = i + 1 if (bindings == []): docdict[ "Bindings" ] = "Unspecified" else: docdict[ "Bindings" ] = bindings if (i == docsize): docdict[ "Returns" ] = "Unspecified" docdict[ "Errors" ] = "Unspecified" return docdict while(i<docsize and (not (docstring[i].strip()).startswith("Returns"))): i = i+1 if (i == docsize): docdict[ "Returns" ] = "Unspecified" docdict[ "Errors" ] = "Unspecified" return docdict # obtain information about return type returns = [] i = i + 1 while(i<docsize): retline = docstring[i].split(":") if (len(retline) == 1): break else: rettype = retline[1].strip() retdes = retline[2].strip() if (retdes == ""): retdes = "Unspecified" retdict = collections.OrderedDict() retdict[ "Name" ] = retline[0].strip() retdict[ "Description" ] = retdes retdict[ "Type" ] = rettype if (retdict[ "Type" ] not in types): types.append(retdict[ "Type" ]) returns.append(retdict) i = i + 1 if (returns == []): docdict[ "Returns" ] = "Unspecified" else: docdict[ "Returns" ] = returns if (i == docsize): docdict[ "Errors" ] = "Unspecified" return docdict while(i<docsize and (not (docstring[i].strip()).startswith("Exceptions"))): i = i+1 if (i == docsize): docdict[ "Errors" ] = "Unspecified" return docdict # obtain information about errors, if given errors = [] i = i + 1 while(i<docsize): errdict = collections.OrderedDict() errline = docstring[i].split(":") if (errline[0].strip() == ''): break if (len(errline) == 1): errline = errline[0].strip() errdict[ "Status" ] = errline errdict[ "Cause" ] = Response.http_status_message(int(errline)) else: errdict[ "Status" ] = errline[0].strip() errdict[ "Cause" ] = errline[1].strip() if (errdict[ "Cause" ] == ""): errdict[ "Cause" ] = Response.http_status_message(int(errdict[ "Status" ])) errors.append(errdict) i = i + 1 docdict[ "Errors" ] = errors return docdict
def parsefunctiondoc(docstring): global types # create an ordered dictionary to hold information from the docstring docdict = collections.OrderedDict() # no docstring given if (docstring == None): docdict["Description"] = "Unspecified" docdict["Arguments"] = "Unspecified" docdict["Bindings"] = "Unspecified" docdict["Returns"] = "Unspecified" docdict["Errors"] = "Unspecified" return docdict # split the docstring into lines and obtain the number of lines docstring = docstring.split("\n") docsize = len(docstring) # one-line docstring if (docsize == 1): docdict["Description"] = docstring[0].strip() docdict["Arguments"] = "Unspecified" docdict["Bindings"] = "Unspecified" docdict["Returns"] = "Unspecified" docdict["Errors"] = "Unspecified" return docdict # obtain information about description docsize = docsize - 1 description = "" i = 0 while (i < docsize and (not (docstring[i].strip()).startswith("Args"))): description = description + str(docstring[i].strip()) + " " i = i + 1 if (description.strip() == ""): docdict["Description"] = "Unspecified" else: docdict["Description"] = description.strip() if (i == docsize): docdict["Arguments"] = "Unspecified" docdict["Bindings"] = "Unspecified" docdict["Returns"] = "Unspecified" docdict["Errors"] = "Unspecified" return docdict # obtain information about argument(s), including queries arguments = [] i = i + 1 while (i < docsize): argline = docstring[i].split(":") if (len(argline) == 1): break elif (len(argline) == 2): argtype = argline[1].strip() if (argtype == ""): argtype = "Unspecified" argdes = "Unspecified" else: argtype = argline[1].strip() argdes = argline[2].strip() if (argdes == ""): argdes = "Unspecified" argdict = collections.OrderedDict() argdict["Name"] = argline[0].strip() argdict["Description"] = argdes argdict["Type"] = argtype if (argdict["Type"] not in types): types.append(argdict["Type"]) arguments.append(argdict) i = i + 1 if (arguments == []): docdict["Arguments"] = "Unspecified" else: docdict["Arguments"] = arguments if (i == docsize): docdict["Bindings"] = "Unspecified" docdict["Returns"] = "Unspecified" docdict["Errors"] = "Unspecified" return docdict # obtain information about bindings while (i < docsize and (not (docstring[i].strip()).startswith("Bindings"))): description = description + str(docstring[i].strip()) + " " i = i + 1 if (i == docsize): docdict["Bindings"] = "Unspecified" docdict["Returns"] = "Unspecified" docdict["Errors"] = "Unspecified" return docdict bindings = [] i = i + 1 while (i < docsize): bindline = docstring[i].split(":") if (len(bindline) == 1): break elif (len(bindline) == 2): bindtype = bindline[1].strip() if (bindtype == ""): bindtype = "Unspecified" binddes = "Unspecified" bindmode = "Unspecified" elif (len(bindline) == 3): binddes = bindline[2].strip() if (binddes == ""): binddes = "Unspecified" bindmode = "Unspecified" else: bindtype = bindline[1].strip() binddes = bindline[2].strip() bindmode = bindline[3].strip() if (bindmode == ""): bindmode = "Unspecified" binddict = collections.OrderedDict() binddict["ID"] = bindline[0].strip() + "Binding" binddict["Mode"] = bindmode binddict["Name"] = bindline[0].strip() binddict["Description"] = binddes binddict["Type"] = bindtype if (binddict["Type"] not in types): types.append(binddict["Type"]) bindings.append(binddict) i = i + 1 if (bindings == []): docdict["Bindings"] = "Unspecified" else: docdict["Bindings"] = bindings if (i == docsize): docdict["Returns"] = "Unspecified" docdict["Errors"] = "Unspecified" return docdict while (i < docsize and (not (docstring[i].strip()).startswith("Returns"))): i = i + 1 if (i == docsize): docdict["Returns"] = "Unspecified" docdict["Errors"] = "Unspecified" return docdict # obtain information about return type returns = [] i = i + 1 while (i < docsize): retline = docstring[i].split(":") if (len(retline) == 1): break else: rettype = retline[1].strip() retdes = retline[2].strip() if (retdes == ""): retdes = "Unspecified" retdict = collections.OrderedDict() retdict["Name"] = retline[0].strip() retdict["Description"] = retdes retdict["Type"] = rettype if (retdict["Type"] not in types): types.append(retdict["Type"]) returns.append(retdict) i = i + 1 if (returns == []): docdict["Returns"] = "Unspecified" else: docdict["Returns"] = returns if (i == docsize): docdict["Errors"] = "Unspecified" return docdict while (i < docsize and (not (docstring[i].strip()).startswith("Exceptions"))): i = i + 1 if (i == docsize): docdict["Errors"] = "Unspecified" return docdict # obtain information about errors, if given errors = [] i = i + 1 while (i < docsize): errdict = collections.OrderedDict() errline = docstring[i].split(":") if (errline[0].strip() == ''): break if (len(errline) == 1): errline = errline[0].strip() errdict["Status"] = errline errdict["Cause"] = Response.http_status_message(int(errline)) else: errdict["Status"] = errline[0].strip() errdict["Cause"] = errline[1].strip() if (errdict["Cause"] == ""): errdict["Cause"] = Response.http_status_message( int(errdict["Status"])) errors.append(errdict) i = i + 1 docdict["Errors"] = errors return docdict
def error(self, code, message=None): self.response.set_status(code, str(message)) if message is None: message = Response.http_status_message(code) self.view['message'] = message self.view['code'] = code self.render_view('system/error.html')
def notfound(self, code, message = None): self.response.set_status(code, str(message)) if message is None: message = Response.http_status_message(code) self.view['message'] = message self.view['code'] = code self.render_view('system/notfound.html')