Example #1
0
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")
Example #2
0
    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)