示例#1
0
def upload():
    file_raw = request.files['csvfile']
    file_handler = CSVFileHandler(settings.STORAGE_DIR)
    short_hash = file_handler.save_upload(
        request.files['csvfile'],
        hash_len=settings.HASH_PREFIX_CHARS,
        sniff_lines=settings.SNIFF_LINES)

    return flask.redirect(flask.url_for('scatter_frame', filehash=short_hash))
示例#2
0
def scatter_frame(filehash):
    g.filehash = filehash
    file_handler = CSVFileHandler(settings.STORAGE_DIR)
    try:
        stats_data = file_handler.load_file(filehash)
    except IOError as ioe:
        app.logger.info(repr(ioe))
        flask.abort(404)
    except Exception as e:
        app.logger.exception(e)
        return flask.make_response(
            flask.render_template('error_500.html'), 500)
    g.column_names = stats_data.column_names
    g.rows = stats_data.data_list

    return flask.render_template("scatter_frame.html")
示例#3
0
def regress_js(filehash):
    file_handler = CSVFileHandler(settings.STORAGE_DIR)
    try:
        stats_data = file_handler.load_file(filehash)
    except:
        flask.abort(404)

    regression_params = RegressionParams.build_from_flask_args(request.args)
    sr = get_stats_runner(stats_data, regression_params)
    sr.run()
    result = sr.to_dict()

    # Trim a couple things from the result -- won't need 'em
    del result['all_point_data']
    del result['all_point_cols']
    http_result = flask.jsonify(result)
    http_result.headers['Cache-Control'] = 'max-age=300000000,public'
    http_result.headers['Expires'] = '31 December 2037 23:59:59 GMT'
    return http_result
示例#4
0
def regress_csv(filehash):
    import StringIO
    file_handler = CSVFileHandler(settings.STORAGE_DIR)
    try:
        stats_data = file_handler.load_file(filehash)
    except:
        flask.abort(404)

    regression_params = RegressionParams.build_from_flask_args(request.args)
    sr = get_stats_runner(stats_data, regression_params)
    sr.run()
    result = sr.to_dict()

    # Build us a string in memory
    out_buf = StringIO.StringIO()
    writer = csv.writer(out_buf, dialect='excel')
    writer.writerow(result['all_point_cols'])
    writer.writerows(result['all_point_data'])

    response = flask.make_response(out_buf.getvalue())
    response.headers["Content-Disposition"] = "attachment;filename=data.csv"
    response.headers["Content-Type"] = "text/csv"
    return response