Commit 776d9129 authored by Sarah Abrishami's avatar Sarah Abrishami

updated validation structure

parent 156b2d2a
...@@ -7,6 +7,7 @@ from app.errors import * ...@@ -7,6 +7,7 @@ from app.errors import *
import gc import gc
from rulemall.utils.rule_builder import rule_builder from rulemall.utils.rule_builder import rule_builder
from app import db from app import db
from app.models import Validation
def response_message(data=None, status=200): def response_message(data=None, status=200):
...@@ -65,9 +66,13 @@ def read_rules(): ...@@ -65,9 +66,13 @@ def read_rules():
return rule_builder('app/main/static/rule_config.yml') return rule_builder('app/main/static/rule_config.yml')
def write_validations(df, table_name='test2'): def write_validations(data):
try: try:
df.to_sql(table_name, con=db.engine, if_exists='replace', index=False) data = data.loc[~data['validation']]
obj = []
data.apply(lambda x: obj.append(Validation(rid=x['rid'], rgid=x['rgid'], modified_date=x['modified_date'],
responsible=x['responsible'], created_date=x['created_date'])), axis=1)
db.session.bulk_save_objects(obj)
except Exception as e: except Exception as e:
return str(e) return str(e)
return 'success' return 'success'
from app.main import main from app.main import main
from app.main.utils.common import response_message, read_data, read_rules, write_validations from app.main.utils.common import response_message, read_data, read_rules, write_validations
from rulemall import RulesGroup from rulemall import RulesGroup
import pandas as pd
from datetime import datetime
@main.route('/validate', methods=['GET', 'POST']) @main.route('/validate', methods=['GET', 'POST'])
def validate(): def validate():
data = read_data() data = read_data()
rules = read_rules() name, rules = read_rules()
rs = RulesGroup(data=data, rules=rules) rs = RulesGroup(data=data, name=name)
validation = rs.validate() rs.from_dict(rules)
result = write_validations(validation, table_name='sample_data') validation, responsible = rs.validate()
validation = pd.concat([validation.rename('validation'), responsible], axis=1)
validation = validation.reset_index().rename(columns={'index': 'rid'})
# TODO return rule group id
validation['rgid'] = rs.id
validation['created_date'] = datetime.now()
validation['modified_date'] = datetime.now()
result = write_validations(validation)
return response_message(result) return response_message(result)
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment