Skip to content
Snippets Groups Projects
Commit 184ecc23 authored by Christian Marius Lillelund's avatar Christian Marius Lillelund
Browse files

added more ap idata validation

parent f5b21330
No related branches found
No related tags found
No related merge requests found
......@@ -169,12 +169,20 @@ def predict(incoming_data: InputData):
ats_resolution = settings['ats_resolution']
data = incoming_data.dict()
incoming_ats = [x.strip(' ') for x in data['Ats'].split(",")]
ats_converter = {'ats_id': str}
ats_df = read_dataframe('ats.csv', converters=ats_converter)
if all(x in list(ats_df['ats_id']) for x in incoming_ats) != True:
raise HTTPException(status_code=400, detail="Ats not found, check ats list")
if not data['Gender'] in [0, 1]:
raise HTTPException(status_code=400, detail="Invalid gender, check input")
if not data['BirthYear'] in range(100-99, 100+99+1):
raise HTTPException(status_code=400, detail="Invalid birth year, check input")
if not data['LoanPeriod'] >= 0:
raise HTTPException(status_code=400, detail="Invalid loan period, check input")
if data['Ats'] != '':
incoming_ats = [x.strip(' ') for x in data['Ats'].split(",")]
ats_converter = {'ats_id': str}
ats_df = read_dataframe('ats.csv', converters=ats_converter)
if all(x in list(ats_df['ats_id']) for x in incoming_ats) != True:
raise HTTPException(status_code=400, detail="Ats not found, check ats list")
else:
data['Ats'] = '0'
df = prepare_data(data, ats_resolution)
arguments = generate_arguments(df, ats_resolution)
......@@ -242,7 +250,7 @@ def generate_arguments(df: pd.DataFrame, ats_resolution: int):
def load_settings(file_name):
dir_path = os.path.dirname(os.path.realpath(__file__))
with open(Path.joinpath(dir_path, file_name), 'r') as stream:
with open(f'{dir_path}/{file_name}', 'r') as stream:
settings = yaml.safe_load(stream)
return settings
......@@ -255,7 +263,12 @@ def get_ats_name_from_hmi(ats_id: str):
def prepare_data(data: dict, ats_resolution: int) -> pd.DataFrame:
new_data = {k: [v] for k, v in data.items()}
new_data_df = pd.DataFrame.from_dict(new_data)
new_data_df['NumberAts'] = len(new_data_df['Ats'][0].split(","))
if new_data_df['Ats'][0] == '0':
new_data_df['NumberAts'] = 0
else:
ats = list(filter(None, new_data_df['Ats'][0].split(",")))
new_data_df['NumberAts'] = len(ats)
df = split_categorical_columns(new_data_df, col='Ats', tag='Ats',
resolution=ats_resolution)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment