import sys import pandas as pd from src.exception import CustomException from src.utils import load_object class PredictPipeline: def __init__(self) -> None: pass def predict(self, features): try: model_path = "artifacts/model.pkl" preprocessor_path = "artifacts/preprocessor.pkl" model = load_object(file_path=model_path) preprocessor = load_object(file_path=preprocessor_path) data_scaled = preprocessor.transform(features) predictions = model.predict(data_scaled) return predictions except Exception as e: raise CustomException(e, sys) class CustomData: def __init__( self, gender: str, race_ethnicity: str, parental_level_of_education, lunch: str, test_preparation_course: str, reading_score: int, writing_score: int, ) -> None: self.gender = gender self.race_ethnicity = race_ethnicity self.parental_level_of_education = parental_level_of_education self.lunch = lunch self.test_preparation_course = test_preparation_course self.reading_score = reading_score self.writing_score = writing_score def get_data_as_dataframe(self): try: custom_data_input_dict = { "gender": [self.gender], "race_ethnicity": [self.race_ethnicity], "parental_level_of_education": [self.parental_level_of_education], "lunch": [self.lunch], "test_preparation_course": [self.test_preparation_course], "reading_score": [self.reading_score], "writing_score": [self.writing_score], } return pd.DataFrame(custom_data_input_dict) except Exception as e: raise CustomException(e, sys)