def _write(dictionary, fpout=sys.stdout): """ Write key,value pairs in dictionary to output file """ fpout.write("// neubot/www/lang/en.js\n") fpout.write("\n") fpin = open(os.path.abspath(__file__), "r") _copyright = fpin.readlines()[2:21] # XXX fragile for line in _copyright: fpout.write(line.replace("#", "//")) fpout.write("\n") fpout.write("//\n") fpout.write("// WARNING! Autogenerated file: don't edit\n") fpout.write("// Use '%s' instead to regenerate it\n" % sys.argv[0]) fpout.write("// Created: %s\n" % utils.date()) fpout.write("//\n") fpout.write("\n") fpout.write("var LANG = {\n") keys = sorted(dictionary.keys()) for key in keys[:-1]: __writeone(key, dictionary[key], fpout) # Last element MUST NOT end with comma __writeone(keys[-1], dictionary[keys[-1]], fpout, "") fpout.write("};\n")
def compose(self, **kwargs): self.method = kwargs.get("method", "") if kwargs.get("uri", ""): self.uri = kwargs.get("uri", "") (self.scheme, self.address, self.port, self.pathquery) = urlsplit(self.uri) self["host"] = self.address + ":" + self.port else: self.scheme = kwargs.get("scheme", "") self.address = kwargs.get("address", "") self.port = kwargs.get("port", "") self.pathquery = kwargs.get("pathquery", "") if self.method: # # "A client MUST include a Host header field in all HTTP/1.1 # request messages. If the requested URI does not include # an Internet host name for the service being requested, then # the Host header field MUST be given with an empty value." # -- RFC 2616 # self["host"] = kwargs.get("host", "") if not self["host"]: LOG.oops("Missing host header") self.code = kwargs.get("code", "") self.reason = kwargs.get("reason", "") self.protocol = kwargs.get("protocol", "HTTP/1.1") if kwargs.get("nocache", True): if self.method: self["pragma"] = "no-cache" self["cache-control"] = "no-cache" if kwargs.get("date", True): self["date"] = date() if not kwargs.get("keepalive", True): self["connection"] = "close" if kwargs.get("body", None): self.body = kwargs.get("body", None) if isinstance(self.body, basestring): self.length = len(self.body) else: utils.safe_seek(self.body, 0, os.SEEK_END) self.length = self.body.tell() utils.safe_seek(self.body, 0, os.SEEK_SET) self["content-length"] = str(self.length) if kwargs.get("mimetype", ""): self["content-type"] = kwargs.get("mimetype", "") elif kwargs.get("chunked", None): self.body = kwargs.get("chunked", None) self.length = -1 self["transfer-encoding"] = "chunked" if kwargs.get("mimetype", ""): self["content-type"] = kwargs.get("mimetype", "") else: self["content-length"] = "0" self.family = kwargs.get("family", socket.AF_INET)