"""Example script showing how to use the salary prediction model programmatically.""" from src.schema import SalaryInput from src.infer import predict_salary def main(): """Run sample predictions with different input parameters.""" print("=" * 60) print("Developer Salary Prediction - Sample Inference") print("=" * 60) # Example 1: Default parameters (same as Streamlit app defaults) print("\nšŸ“Š Example 1: Default Parameters") print("-" * 60) input_data_1 = SalaryInput( country="United States of America", years_code=5.0, work_exp=3.0, education_level="Bachelor's degree (B.A., B.S., B.Eng., etc.)", dev_type="Developer, full-stack", industry="Software Development", age="25-34 years old", ic_or_pm="Individual contributor", org_size="20 to 99 employees", ) print(f"Country: {input_data_1.country}") print(f"Years of Coding (Total): {input_data_1.years_code}") print(f"Work Experience: {input_data_1.work_exp}") print(f"Education Level: {input_data_1.education_level}") print(f"Developer Type: {input_data_1.dev_type}") print(f"Industry: {input_data_1.industry}") print(f"Age: {input_data_1.age}") print(f"IC or PM: {input_data_1.ic_or_pm}") print(f"Organization Size: {input_data_1.org_size}") salary_1 = predict_salary(input_data_1) print(f"šŸ’° Predicted Salary: ${salary_1:,.2f} USD/year") # Example 2: Junior developer print("\nšŸ“Š Example 2: Junior Developer") print("-" * 60) input_data_2 = SalaryInput( country="United States of America", years_code=2.0, work_exp=1.0, education_level="Master's degree (M.A., M.S., M.Eng., MBA, etc.)", dev_type="Developer, front-end", industry="Fintech", age="18-24 years old", ic_or_pm="Individual contributor", org_size="20 to 99 employees", ) print(f"Country: {input_data_2.country}") print(f"Years of Coding (Total): {input_data_2.years_code}") print(f"Work Experience: {input_data_2.work_exp}") print(f"Education Level: {input_data_2.education_level}") print(f"Developer Type: {input_data_2.dev_type}") print(f"Industry: {input_data_2.industry}") print(f"Age: {input_data_2.age}") print(f"IC or PM: {input_data_2.ic_or_pm}") print(f"Organization Size: {input_data_2.org_size}") salary_2 = predict_salary(input_data_2) print(f"šŸ’° Predicted Salary: ${salary_2:,.2f} USD/year") # Example 3: Senior developer with Master's degree print("\nšŸ“Š Example 3: Senior Developer") print("-" * 60) input_data_3 = SalaryInput( country="United States of America", years_code=10.0, work_exp=8.0, education_level="Master's degree (M.A., M.S., M.Eng., MBA, etc.)", dev_type="Engineering manager", industry="Banking/Financial Services", age="35-44 years old", ic_or_pm="People manager", org_size="1,000 to 4,999 employees", ) print(f"Country: {input_data_3.country}") print(f"Years of Coding (Total): {input_data_3.years_code}") print(f"Work Experience: {input_data_3.work_exp}") print(f"Education Level: {input_data_3.education_level}") print(f"Developer Type: {input_data_3.dev_type}") print(f"Industry: {input_data_3.industry}") print(f"Age: {input_data_3.age}") print(f"IC or PM: {input_data_3.ic_or_pm}") print(f"Organization Size: {input_data_3.org_size}") salary_3 = predict_salary(input_data_3) print(f"šŸ’° Predicted Salary: ${salary_3:,.2f} USD/year") # Example 4: Different country print("\nšŸ“Š Example 4: Different Country (Germany)") print("-" * 60) input_data_4 = SalaryInput( country="Germany", years_code=5.0, work_exp=3.0, education_level="Bachelor's degree (B.A., B.S., B.Eng., etc.)", dev_type="Developer, back-end", industry="Manufacturing", age="25-34 years old", ic_or_pm="Individual contributor", org_size="100 to 499 employees", ) print(f"Country: {input_data_4.country}") print(f"Years of Coding (Total): {input_data_4.years_code}") print(f"Work Experience: {input_data_4.work_exp}") print(f"Education Level: {input_data_4.education_level}") print(f"Developer Type: {input_data_4.dev_type}") print(f"Industry: {input_data_4.industry}") print(f"Age: {input_data_4.age}") print(f"IC or PM: {input_data_4.ic_or_pm}") print(f"Organization Size: {input_data_4.org_size}") salary_4 = predict_salary(input_data_4) print(f"šŸ’° Predicted Salary: ${salary_4:,.2f} USD/year") print("\n" + "=" * 60) print("āœ… All predictions completed successfully!") print("=" * 60) if __name__ == "__main__": try: main() except FileNotFoundError: print("āŒ Error: Model file not found!") print("Please train the model first by running:") print(" uv run python src/train.py") except Exception as e: print(f"āŒ Error occurred: {str(e)}")