view castclient.py @ 69:dcf870775c26

Add compability with flask 0.8 In flask version 0.10 (current stable version) the behaviour changed. With this version it is possible to specify the server and port via the config variable SERVER_NAME. To allow this behaviour also with flask 0.8 which is the version shipped with Debian Wheezy this commit extracts the host and port from the SERVER_NAME config variable.
author Björn Ricks <bjoern.ricks@intevation.de>
date Mon, 05 Jan 2015 12:37:56 +0100
parents aee742cdd604
children 349d49bb69f4
line wrap: on
line source
#!/usr/bin/env python
# -*- coding: utf-8 -*-

import optparse
import sys

import requests


def main():
    usage = "usage: %prog [options] infile outfile"
    parser = optparse.OptionParser(usage=usage)
    parser.add_option("-f", "--format", default="pdf")
    parser.add_option("-s", "--host", default="localhost")
    parser.add_option("-p", "--port", default="5000")
    parser.add_option("--json", dest="json", metavar="FILE")
    (options, args) = parser.parse_args()

    if len(args) < 2:
        parser.print_usage()
        sys.exit(1)

    url = "http://%s:%s/convert/" % (options.host, options.port)
    infilename = args[0]
    outfilename = args[1]
    format = options.format

    files = {'file': open(infilename, 'rb')}
    data = {'format': format}

    if options.json:
        with open(options.json, "r") as f:
            data["datadict"] = f.read()

    r = requests.post(url, data=data, files=files)

    if r.status_code == 200:
        with open(outfilename, "wb") as f:
            f.write(r.content)
        print "OK"
    else:
        print "An error has occured"
        print r.status_code, r.headers
        print r.text
        sys.exit(2)


if __name__ == "__main__":
    main()
This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)