Commit cb05bb73 authored by Sarah Abrishami's avatar Sarah Abrishami

WIP

parent 95919d11
......@@ -14,9 +14,12 @@ def validate(dsid, rgid):
data = read_data(dsid)
print('got data')
rg.reset_data(data)
data['loan_balance'] = data['loan_balance'].round(0).astype(pd.Int64Dtype())
validation, responsible = rg.validate()
print('validated')
validation = pd.concat([validation.rename('validated'), responsible], axis=1)
# .rename(columns={'customer_id': 'شناسه مشتری', 'loan_id': 'شناسه تسهیلات', 'loan_balance': 'مبلغ تسهیلات'})
index_cols = data[['customer_id', 'loan_id', 'loan_balance']]
validation = pd.concat([index_cols, validation, responsible], axis=1).iloc[:, 1:-1]
validation = validation.reset_index().rename(columns={'index': 'rid'})
# TODO return rule group id
# validation['rgid'] = rgid
......
......@@ -20,7 +20,7 @@ class ValidatorBaseClass(metaclass=ABCMeta):
class Range(ValidatorBaseClass):
def __init__(self, minimum=None, maximum=None, left_inclusive=True, right_inclusive=False):
def __init__(self, minimum=None, maximum=None, left_inclusive=True, right_inclusive=False):
self.min = minimum
self.max = maximum
......@@ -53,13 +53,15 @@ class Range(ValidatorBaseClass):
def __repr__(self):
return json.dumps({'name': 'بازه عددی', 'desc': 'Lorem Ipsom', 'example': 'Lorem Ipson', 'code': 'Range',
'params': [{'name': 'کمینه', 'code': 'minimum', 'default': '-∞', 'type': 'number', 'tag': 'input'},
{'name': 'بیشینه', 'code': 'maximum', 'default': '∞', 'type': 'number', 'tag': 'input'},
{'name': 'شامل کمینه', 'code': 'left_inclusive', 'default': True, 'type': 'bool',
'tag': 'select'},
{'name': 'شامل بیشینه', 'code': 'right_inclusive', 'default': True, 'type': 'bool',
'tag': 'select'}
]})
'params': [
{'name': 'کمینه', 'code': 'minimum', 'default': '-∞', 'type': 'number', 'tag': 'input'},
{'name': 'بیشینه', 'code': 'maximum', 'default': '∞', 'type': 'number', 'tag': 'input'},
{'name': 'شامل کمینه', 'code': 'left_inclusive', 'default': True, 'type': 'bool',
'tag': 'select', 'options': [{'text': 'بلی', 'value': True},
{'text': 'خیر', 'value': False}]},
{'name': 'شامل بیشینه', 'code': 'right_inclusive', 'default': True, 'type': 'bool',
'tag': 'select', 'options': [{'text': 'بلی', 'value': True},
{'text': 'خیر', 'value': False}]}]})
class Logic(ValidatorBaseClass):
......@@ -91,13 +93,20 @@ class Logic(ValidatorBaseClass):
def __repr__(self):
return json.dumps({'name': 'عملگرهای منطقی', 'desc': 'Lorem Ipsom', 'example': 'Lorem Ipson', 'code': 'Logic',
'params': [{'name': 'نوع عملگر', 'code': 'op_type', 'default': '', 'type': 'text', 'tag': 'select'},
{'name': 'عبارت مقایسه کننده', 'code': 'comapare_item', 'default': '', 'type': 'text',
'tag': 'textarea'}]})
'params': [
{'name': 'نوع عملگر', 'code': 'op_type', 'default': 'eq', 'type': 'text', 'tag': 'select',
'options': [{'text': 'مساوی است با', 'value': 'eq'},
{'text': 'نامساوی است با', 'value': 'neq'},
{'text': 'کوچکتر است از', 'value': 'lt'},
{'text': 'کوچکتر مساوی است با', 'value': 'le'},
{'text': 'بزرگتر مساوی است با', 'value': 'ge'},
{'text': 'بزرگتر است از', 'value': 'gt'}]},
{'name': 'عبارت مقایسه کننده', 'code': 'value', 'default': '', 'type': 'text',
'tag': 'input'}]})
class Length(ValidatorBaseClass):
def __init__(self, min_len=None, max_len=None, left_inclusive=True, right_inclusive=False):
def __init__(self, min_len=None, max_len=None, left_inclusive=True, right_inclusive=False):
self.min_len = min_len
self.max_len = max_len
self.li = left_inclusive
......@@ -128,11 +137,16 @@ class Length(ValidatorBaseClass):
def __repr__(self):
return json.dumps({'name': 'طول بازه', 'desc': 'Lorem Ipsom', 'example': 'Lorem Ipson', 'code': 'Length',
'params': [{'name': 'کمینه', 'code': 'min_len', 'default': 0, 'type': 'number', 'tag': 'input'},
{'name': 'بیشینه', 'code': 'max_len', 'default': '∞', 'type': 'number', 'tag': 'input'},
{'name': 'شامل کمینه', 'code': 'left_inclusive', 'default': True, 'type': 'bool', 'tag': 'select'},
{'name': 'شامل بیشینه', 'code': 'right_inclusive', 'default': True, 'type': 'bool', 'tag': 'select'}
]})
'params': [
{'name': 'کمینه', 'code': 'min_len', 'default': 0, 'type': 'number', 'tag': 'input'},
{'name': 'بیشینه', 'code': 'max_len', 'default': '∞', 'type': 'number', 'tag': 'input'},
{'name': 'شامل کمینه', 'code': 'left_inclusive', 'default': True, 'type': 'bool',
'tag': 'select', 'options': [{'text': 'بلی', 'value': True},
{'text': 'خیر', 'value': False}]},
{'name': 'شامل بیشینه', 'code': 'right_inclusive', 'default': True, 'type': 'bool',
'tag': 'select', 'options': [{'text': 'بلی', 'value': True},
{'text': 'خیر', 'value': False}]}
]})
class Category(ValidatorBaseClass):
......@@ -148,7 +162,8 @@ class Category(ValidatorBaseClass):
def __repr__(self):
return json.dumps({'name': 'گروه‌بندی', 'desc': 'Lorem Ipsom', 'example': 'Lorem Ipson', 'code': 'Category',
'params': [{'name': 'مقادیر', 'code': 'categories', 'default': [], 'type': 'list', 'tag': 'tagbox'}]})
'params': [{'name': 'مقادیر', 'code': 'categories', 'default': [], 'type': 'list',
'tag': 'tagbox'}]})
class Regex(ValidatorBaseClass):
......@@ -163,7 +178,8 @@ class Regex(ValidatorBaseClass):
def __repr__(self):
return json.dumps({'name': 'Regex', 'desc': 'Lorem Ipsom', 'example': 'Lorem Ipson', 'code': 'Regex',
'params': [{'name': 'متن', 'code': 'regex', 'default': '', 'type': 'text', 'tag': 'textarea'}]})
'params': [
{'name': 'متن', 'code': 'regex', 'default': '', 'type': 'text', 'tag': 'textarea'}]})
class Missing(ValidatorBaseClass):
......@@ -179,7 +195,8 @@ class Missing(ValidatorBaseClass):
def __repr__(self):
return json.dumps({'name': 'گمشده', 'desc': 'Lorem Ipsom', 'example': 'Lorem Ipson', 'code': 'Missing',
'params': [{'name': 'مقدار گمشده', 'code': 'missing', 'default': np.nan, 'type': 'text', 'tag': 'input'}]})
'params': [{'name': 'مقدار گمشده', 'code': 'missing', 'default': np.nan, 'type': 'text',
'tag': 'input'}]})
class Unique:
......@@ -195,7 +212,7 @@ class Unique:
def __repr__(self):
return json.dumps({'name': 'یکتایی', 'desc': 'Lorem Ipsom', 'example': 'Lorem Ipson', 'code': 'Unique',
'params': []})
'params': []})
class Empty(ValidatorBaseClass):
......@@ -208,7 +225,7 @@ class Empty(ValidatorBaseClass):
def __repr__(self):
return json.dumps({'name': 'خالی بودن', 'desc': 'Lorem Ipsom', 'example': 'Lorem Ipson', 'code': 'Empty',
'params': []})
'params': []})
class Compare(ValidatorBaseClass):
......
......@@ -9,6 +9,6 @@ app.config.from_object(configs[config_name])
db.init_app(app)
app.app_context().push()
db.drop_all()
#db.drop_all()
db.create_all()
print('done')
\ No newline at end of file
......@@ -7,10 +7,10 @@ gunicorn==20.1.0
pandas==1.5.1
psycopg2-binary==2.9.4
requests==2.28.1
Rulemall==0.1
six==1.16.0
SQLAlchemy==1.4.42
tzdata==2022.1
tzlocal==4.2
urllib3==1.26.10
zipp==3.8.0
PyYAML==6.0
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