Skip to content

Commit

Permalink
open data folder from other directory, relate #106
Browse files Browse the repository at this point in the history
  • Loading branch information
Shine226 committed May 11, 2020
1 parent d862f7c commit b92b8fc
Show file tree
Hide file tree
Showing 4 changed files with 41 additions and 9 deletions.
30 changes: 26 additions & 4 deletions wiggum/labeled_dataframe.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
import itertools
import json
from pydoc import locate
from werkzeug.datastructures import FileStorage

META_COLUMNS = ['dtype','var_type','role','isCount', 'weighting_var']
possible_roles = ['independent','dependent','splitby','prediction',
Expand Down Expand Up @@ -168,11 +169,29 @@ def __init__(self,data=None,meta=None,results=None):
results = os.path.join(data,result_csv)
trends = os.path.join(data,trend_json)
data = os.path.join(data,data_csv)
elif type(data) == list and meta ==None and results ==None:
# if files are uploaded from wiggum-app
filename = ''
for file in data:
filename = file.filename
if ('/' in filename):
# if file name contains '/', Wiggum runs in Windows system
# remove the directory and only use the file name
filename = filename.split('/')[1]

if filename == data_csv:
data = file
elif filename == meta_csv:
meta = file
elif filename == result_csv:
results = file
elif filename == trend_json:
trends = file

# set data
if type(data) is pd.core.frame.DataFrame:
self.df = data
elif type(data) is str:
elif type(data) is str or type(data) is FileStorage:
self.df = pd.read_csv(data)
self.df.index.name = ''
elif data == None:
Expand All @@ -186,7 +205,7 @@ def __init__(self,data=None,meta=None,results=None):
self.meta_df['dtype'] = self.df.dtypes
elif type(meta) is pd.core.frame.DataFrame:
self.meta_df = meta
elif type(meta) is str:
elif type(meta) is str or type(meta) is FileStorage:
self.meta_df = pd.read_csv(meta,index_col='variable')
self.meta_df.index.name = 'variable'
# handle lists
Expand Down Expand Up @@ -214,8 +233,11 @@ def __init__(self,data=None,meta=None,results=None):

# if result_df not empty then load trend_list and type objects
if len(self.result_df) >0:
with open(trends, 'r') as tjson:
trend_content = json.load(tjson)
if type(trends) is str:
with open(trends, 'r') as tjson:
trend_content = json.load(tjson)
elif type(trends) is FileStorage:
trend_content = json.load(trends)

# initialize trend objects by looking up type and calling init
self.trend_list = [locate(c['type'])()
Expand Down
1 change: 1 addition & 0 deletions wiggum_app/config.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
DEBUG=True
SECRET_KEY="4zNNYuWQjNCHoCFrhEKqUDLB1Z5xGl2W/Yliy63tD8po9qOQ0YjPum5OaSDnPvNvB1eLzany73EHJfFlYEov1g=="
SERVER_NAME="127.0.0.1:5000"
SAVE_FOLDER="data/"
9 changes: 5 additions & 4 deletions wiggum_app/controller.py
Original file line number Diff line number Diff line change
Expand Up @@ -35,14 +35,14 @@ def main():
# initial filter flag and filter object
filter_flag = False
filter_object = {}
uploaded_files = request.files.getlist("file")

folder = request.form['folder']

# set folder name to project name
project_name = folder

folder = 'data/' + folder
labeled_df_setup = wg.LabeledDataFrame(folder)
labeled_df_setup = wg.LabeledDataFrame(uploaded_files)

result_dict = {}
result_dict = models.getMetaDict(labeled_df_setup)
Expand Down Expand Up @@ -104,7 +104,8 @@ def main():

# store meta data into csv
project_name = request.form['projectName']
directory = 'data/' + project_name

directory = app.config['SAVE_FOLDER'] + project_name
labeled_df_setup.save_all(directory)
return 'Saved'

Expand Down Expand Up @@ -185,7 +186,7 @@ def main():
if action == 'save_trends':
# store meta data into csv
project_name = request.form['projectName']
directory = 'data/' + project_name
directory = app.config['SAVE_FOLDER'] + project_name
labeled_df_setup.save_all(directory)
return 'Saved'

Expand Down
10 changes: 9 additions & 1 deletion wiggum_app/templates/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -66,10 +66,18 @@
// folder chosen for saved data
$('#projectName').val(folder);

// add files, action, folder to form_data
var form_data = new FormData($('#open-file')[0]);
form_data.append('action', 'folder_open');
form_data.append('folder', folder);

$.ajax({
type: 'POST',
url: '/',
data: {'action':'folder_open', 'folder': folder},
data: form_data,
contentType: false,
cache: false,
processData: false,
success: function(data) {
var var_names = data.var_names;
var var_types = data.var_types;
Expand Down

0 comments on commit b92b8fc

Please sign in to comment.