Example #1
0
def data(dataset, hash=None):
    if hash:
        base_path = app.config['UPLOAD_FOLDER']
        dataset = '{}_{}'.format(dataset, hash)
    else:
        base_path = VISUALIZATION_DIR

    #if app.config['USE_CELERY']
    data = graph_layout(
        os.path.join(base_path, '{}.csv'.format(dataset)),
        os.path.join(base_path, '{}_node_data.csv'.format(dataset)))

    if "errors" in data.keys():
        return jsonify(graph_ready=False, errors=data["errors"])

    return jsonify(url=url_for('share', dataset=dataset, hash=hash), **data)
Example #2
0
def upload_file():

    #check if client reached quota
    if not check_quota():
        return jsonify(
            graph_ready=False,
            errors=
            "Quota Reached. You can upload one edgelist every 10 minutes.")

    edge_file = request.files.get('file', None)
    data_file = request.files.get('nodefile', None)
    if edge_file and allowed_file(edge_file.filename):
        filename = secure_filename(edge_file.filename)
        hasher = hashlib.md5()
        hasher.update(edge_file.stream.read())
        hash = hasher.hexdigest()
        dataset = filename.rsplit('.', 1)[0]
        filename = '{}_{}.csv'.format(dataset, hash)
        edge_file.stream.seek(0)
        path = os.path.join(app.config['UPLOAD_FOLDER'], filename)
        edge_file.save(path)
        ret = insert_file(path)
    else:
        return jsonify(
            graph_ready=False,
            errors='Invalid file uploaded. Only .csv files are supported')

    data_path = None
    if data_file and allowed_file(data_file.filename):
        data_path = os.path.join(app.config['UPLOAD_FOLDER'],
                                 '{}_{}_node_data.csv'.format(dataset, hash))
        data_file.save(data_path)

    layout_algorithm = request.form.get('layout_algorithm',
                                        'Fruchterman-Reingold')
    data = graph_layout(path,
                        data_path,
                        directed_graph=request.form.get('is_directed',
                                                        'true') == 'true',
                        ly_alg=layout_algorithm)

    #print "dat",data
    if "errors" in data.keys():
        print "ERRORS", data["errors"]
        return jsonify(graph_ready=False, errors=data["errors"])

    return jsonify(url=url_for('share', dataset=dataset, hash=hash), **data)
Example #3
0
def data(dataset, hash=None):
    if hash:
        base_path = app.config['UPLOAD_FOLDER']
        dataset = '{}_{}'.format(dataset, hash)
    else:
        base_path = VISUALIZATION_DIR

    #if app.config['USE_CELERY']
    data = graph_layout(
        os.path.join(base_path, '{}.csv'.format(dataset)),
        os.path.join(base_path, '{}_node_data.csv'.format(dataset))
    )

    if "errors" in data.keys():
        return jsonify(graph_ready=False, errors=data["errors"])
    
    return jsonify(url=url_for('share', dataset=dataset, hash=hash), **data)
Example #4
0
def upload_file():
    
    #check if client reached quota
    if not check_quota():
        return jsonify(graph_ready=False, errors="Quota Reached. You can upload one edgelist every 10 minutes.")
        
    edge_file = request.files.get('file', None)
    data_file = request.files.get('nodefile', None)
    if edge_file and allowed_file(edge_file.filename):
        filename = secure_filename(edge_file.filename)
        hasher = hashlib.md5()
        hasher.update(edge_file.stream.read())
        hash = hasher.hexdigest()
        dataset = filename.rsplit('.', 1)[0]
        filename = '{}_{}.csv'.format(dataset, hash)
        edge_file.stream.seek(0)
        path = os.path.join(app.config['UPLOAD_FOLDER'], filename)
        edge_file.save(path)
        ret = insert_file(path)
    else:
        return jsonify(graph_ready=False, errors='Invalid file uploaded. Only .csv files are supported')

    data_path = None
    if data_file and allowed_file(data_file.filename):
        data_path = os.path.join(app.config['UPLOAD_FOLDER'], '{}_{}_node_data.csv'.format(dataset, hash))
        data_file.save(data_path)

    layout_algorithm = request.form.get('layout_algorithm', 'Fruchterman-Reingold')
    data = graph_layout(path, data_path, directed_graph=request.form.get('is_directed', 'true')=='true', ly_alg=layout_algorithm)
    
    #print "dat",data
    if "errors" in data.keys():
        print "ERRORS",data["errors"]
        return jsonify(graph_ready=False, errors=data["errors"])
    #es
    js = jsonify(url=url_for('share', dataset=dataset, hash=hash), dataset=dataset, hash=hash, **data)
    print js
    return js