Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 6

@app.

get('/analysis/EDA/status')
async def status(request):
return json({"status": "Running"}, headers=defaultHeaders, status=200)

@app.before_server_start
async def Start_listener(app, loop):
path = os.path.join(os.getcwd(),'export')
if not os.path.isdir(path):
os.mkdir(path)

@app.before_server_stop
async def stop_listener(app, loop):
path = os.path.join(os.getcwd(),'export')
for file in os.listdir(path):
os.remove(os.path.join(path,file))
os.rmdir(path)

@app.get('/analysis/EDA')
# @process_auth_headers('read:analysis')
async def get_analyses(request):
# analyses , total = await analysis._get_analyses(user_id="waad|
rZonU4oNqrvBC5f_MHP5JHmJ5s1xw3PHB8O7deHTHK8",offset=0,limit=2)
analysis_class = OperationsFactory().get_class('Analysis')
analysis = analysis_class(request,app)
response = await analysis.get_listData()
return json(response.get('body', None),status=response.get('status',200),headers=defaultHeaders)

#To create the analysis


@app.post('/analysis/EDA')
# @process_auth_headers('read:analysis')
async def create_analysis(request):
# user_id = "waad|rZonU4oNqrvBC5f_MHP5JHmJ5s1xw3PHB8O7deHTHK8"
# name = request.json['name']
# description = request.json['description']
# study = request.json['linked_study']
# analysis1 = await analysis._create_analysis(user_id,name,description,study)
analysis_class = OperationsFactory().get_class('Analysis')
analysis = analysis_class(request,app)
response = await analysis.create_data()
return json(response.get('body',None),status=response.get('status',201),headers=defaultHeaders)

#Get an individual analysis


@app.get('/analysis/EDA/<analysis_id>')
async def get_analysis(request,analysis_id):
# user_id = "waad|rZonU4oNqrvBC5f_MHP5JHmJ5s1xw3PHB8O7deHTHK8"
# analysis1 = await analysis._get_analysis(user_id,analysis_id,offset=0,limit=2)
analysis_class = OperationsFactory().get_class(class_type="Analysis")
analysis = analysis_class(request=request,app=app)
response = await analysis.get_data(analysis_id=analysis_id)
return json(body = response.get('body'),status=response.get('status',200),headers=defaultHeaders)
#Update an individual analysis
@app.put('/analysis/EDA/<analysis_id>')
async def update_analysis(request,analysis_id):
# user_id = "waad|rZonU4oNqrvBC5f_MHP5JHmJ5s1xw3PHB8O7deHTHK8"
# name = request.json['name']
# description = request.json['description']
# analysis1 = await _analysis._update_analysis(user_id,analysis_id,name,description)
analysis_class = OperationsFactory().get_class(class_type="Analysis")
analysis = analysis_class(request=request,app=app)
response = await analysis.update_data(analysis_id=analysis_id)
return json(body = response.get('body'),status=response.get('status',200),headers=defaultHeaders)

#Delete an individual analysis


@app.delete('/analysis/EDA/<analysis_id>')
async def delete_analysis(request,analysis_id):
analysis_class = OperationsFactory().get_class(class_type="Analysis")
analysis = analysis_class(request=request,app=app)
response = await analysis.delete_data(analysis_id=analysis_id)
return json(body = response.get('body'),status=response.get('status',200),headers=defaultHeaders)

#To get the list of studies


@app.get('/analysis/EDA/data/<entity_name>')
async def list_entity_instances(request,entity_name,offset=0,limit=2):
# user_id = "waad|rZonU4oNqrvBC5f_MHP5JHmJ5s1xw3PHB8O7deHTHK8"

entity_class = OperationsFactory().get_class(entity_name)
if entity_class == "Not implemented":
return json("Not implemented",status=400,headers=defaultHeaders)
else:
entity = entity_class(request,app)
response = await entity.get_data()
return json(response.get('body',None),status=response.get('status',200),headers=defaultHeaders)

#To get the study model


@app.get('/analysis/EDA/data/<study_uuid>/model')
async def get_study_model(request,study_uuid):
study_class = OperationsFactory().get_class("study")
study = study_class(request,app)
response = await study.get_model_data(study_uuid=study_uuid)
return json(response.get('body',None),status=response.get('status',200),headers=defaultHeaders)

#To get the list of features


@app.get('/analysis/EDA/data/<entity_uuid>/features')
async def get_featuresList(request, entity_uuid):
# user_id = "waad|rZonU4oNqrvBC5f_MHP5JHmJ5s1xw3PHB8O7deHTHK8"
# study_id = request.args.get('study_id')
# features_list = await study._get_featureList(user_id,entity_name,study_id)
study_class = OperationsFactory().get_class('study')
study = study_class(request,app)
response = await study.get_featureList(entity_uuid)
return json(response.get('body',None),status=response.get('status',200),headers=defaultHeaders)#To get the attribute info

@app.post('/analysis/EDA/data/<entity_uuid>/features/<feature_uuid>/description')
async def get_entity_feature_description(request, entity_uuid, feature_uuid):
# user_id = "waad|rZonU4oNqrvBC5f_MHP5JHmJ5s1xw3PHB8O7deHTHK8"
# feature_type = request.json['feature_type']
# filters = request.json['filters']
# offset = int(request.args['offset'][0])
# limit = int(request.args['limit'][0])
# feature_description , total = await
study._get_entity_feature_description(user_id,entity_name,feature_name,feature_type,filters,offset,limit)
# if feature_type == 'Numeric':
# return json(await convert_item_to_HAL(request,feature_description,feature_type),status=200,headers=defaultHeaders)
# else:
study_class = OperationsFactory().get_class('study')
study = study_class(request,app)
response = await study.get_entity_feature_description(entity_uuid, feature_uuid)
return json(body = response.get('body',None),status=response.get('status',200),headers=defaultHeaders)

#To save the details of selected filters


@app.post('/analysis/EDA/<analysis_id>/data')
async def create_data(request,analysis_id):
# user_id = "waad|rZonU4oNqrvBC5f_MHP5JHmJ5s1xw3PHB8O7deHTHK8"
# filters = request.json['filters']
# data_object = await data._create_data(user_id,analysis_id,filters)
data_class = OperationsFactory().get_class('Data')
data = data_class(request,app)
response = await data.create_data(analysis_id)
return json(response.get('body',None),status=response.get('status',201),headers=defaultHeaders)

#To get the filter data of a data frame


@app.get('/analysis/EDA/<analysis_id>/data/<data_id>')
async def get_dataframe(request,analysis_id,data_id):
# user_id = "waad|rZonU4oNqrvBC5f_MHP5JHmJ5s1xw3PHB8O7deHTHK8"
# offset = int(request.args['offset'][0])
# limit = int(request.args['limit'][0])
# data_object , total = await data._get_dataframe(user_id,analysis_id,data_id,offset,limit)
data_class = OperationsFactory().get_class('Data')
data = data_class(request,app)
response = await data.get_data(analysis_id,data_id)
return json(body = response.get('body',None),status=response.get('status',200),headers=defaultHeaders)

#To update the dataFrame


@app.put('/analysis/EDA/<analysis_id>/data/<data_id>')
async def update_dataframe(request,analysis_id,data_id):
# user_id = "waad|rZonU4oNqrvBC5f_MHP5JHmJ5s1xw3PHB8O7deHTHK8"
# name = request.json['name']
# filters =request.json['filters']
# data_object = await data._update_data(user_id,analysis_id,name,filters)
data_class = OperationsFactory().get_class('Data')
data = data_class(request,app)
response = await data.update_data(analysis_id,data_id)
return json(body = response.get('body',None),status=response.get('status',200),headers=defaultHeaders)

#To export the data in dataframe as CSV


@app.get('/analysis/EDA/<analysis_id>/data/<data_id>/export')
async def get_datafile(request,analysis_id,data_id):
data_class = OperationsFactory().get_class('Data')
data = data_class(request,app)
response = await data.get_dataFile(analysis_id,data_id)
if response.get('file_path'):
return await file(response.get('file_path','None'),mime_type =
"text/csv",filename=response.get('file_name','None'),status = response.get('status',200),headers={"Content-Type":
"text/csv"})
else:
return json(body = response.get('body',None),status=response.get('status',200),headers=defaultHeaders)

#To create a plot -- Still need to worked.


@app.post('/analysis/EDA/<analysis_id>/plot')
async def create_plot(request,analysis_id):
# user_id = "waad|rZonU4oNqrvBC5f_MHP5JHmJ5s1xw3PHB8O7deHTHK8"
# plot_name = request.json['name']
# plot_configurations = request.json['configurations']
# plot_object = await plot._create_plot(user_id,analysis_id,plot_name,plot_configurations)
plot_class = OperationsFactory().get_class('Plot')
plot = plot_class(request,app)
response = await plot.create_data(analysis_id)
return json(response.get('body',None),status=response.get('status',201),headers=defaultHeaders)

#To get Plot list


@app.get('/analysis/EDA/<analysis_id>/plot')
async def get_plot_list(request,analysis_id):
plot_class = OperationsFactory().get_class('Plot')
plot = plot_class(request,app)
response = await plot.get_listData(analysis_id)
return json(body = response.get('body',None),status = response.get('status',200),headers=defaultHeaders)

#To get indivudual plot


@app.get('/analysis/EDA/<analysis_id>/plot/<plot_id>')
async def get_plot(request,analysis_id,plot_id):
plot_class = OperationsFactory().get_class('Plot')
plot = plot_class(request,app)
response = await plot.get_data(analysis_id,plot_id)
return json(body = response.get('body',None),status = response.get('status',200),headers=defaultHeaders)

#To update the PLot


@app.put('/analysis/EDA/<analysis_id>/plot/<plot_id>')
async def update_plot(request,analysis_id,plot_id):
plot_class = OperationsFactory().get_class('Plot')
plot = plot_class(request,app)
response = await plot.update_data(analysis_id,plot_id)
return json(body = response.get('body',None),status = response.get('status',200),headers=defaultHeaders)

#To get plot suggestions.


@app.post('/analysis/EDA/plot/suggestion')
async def get_plot_suggestions(request):
# user_id = "waad|rZonU4oNqrvBC5f_MHP5JHmJ5s1xw3PHB8O7deHTHK8"
# feature_list = request.json['features']
# plot_object = await plot._get_plot_suggestions(user_id,feature_list)
plot_class = OperationsFactory().get_class('Plot')
plot = plot_class(request,app)
response = await plot.get_plotSuggestions()
return json(body = response.get('body',None),status = response.get('status',200),headers=defaultHeaders)
#To get the plot pdf
# @app.get('/analysis/EDA/<analysis_id>/plot/<plot_id>/export')
# async def get_plotExport(request,analysis_id,plot_id):
# user_id = "waad|rZonU4oNqrvBC5f_MHP5JHmJ5s1xw3PHB8O7deHTHK8"
# file_path , file_name = await plot._get_plot_export(user_id,analysis_id,plot_id)
# return await file(file_path,mime_type = "application/pdf",filename=file_name,status = 200,headers={"Content-Type":
"application/pdf"})

#To get the existing plot data


# @app.get('/analysis/EDA/<analysis_id>/plot/<plot_id>/data')
# async def get_plotData(request,analysis_id,plot_id):
# user_id = "waad|rZonU4oNqrvBC5f_MHP5JHmJ5s1xw3PHB8O7deHTHK8"
# file_path , file_name = await plot._get_plot_data(user_id,analysis_id,plot_id)
# return await file(file_path,mime_type = "text/csv",filename=file_name,status = 200,headers={"Content-Type":
"text/csv"})

#To get plot data


@app.get('/analysis/EDA/<analysis_id>/plot/<plot_id>/data')
async def create_plotData(request,analysis_id,plot_id):
plot_class = OperationsFactory().get_class('Plot')
plot = plot_class(request,app)
response = await plot.get_plotData(analysis_id,plot_id)
return json(body = response.get('body',None),status = response.get('status',200),headers=defaultHeaders)

#To delete individual plot


@app.delete('/analysis/EDA/<analysis_id>/plot/<plot_id>')
async def delete_analysis(request,analysis_id,plot_id):
plot_class = OperationsFactory().get_class(class_type="Plot")
plot = plot_class(request=request,app=app)
response = await plot.delete_data(analysis_id,plot_id)
return json(body = response.get('body'),status=response.get('status',200),headers=defaultHeaders)

#To clear a plot


@app.post('/analysis/EDA/<analysis_id>/plot/<plot_id>/clear')
async def clear_plot(request,analysis_id,plot_id):
plot_class = OperationsFactory().get_class(class_type='Plot')
plot = plot_class(request=request,app=app)
response = await plot.clear_data(analysis_id,plot_id)
return json(body = response.get('body'),status=response.get('status',200),headers=defaultHeaders)

You might also like