agoor97's picture
Add application files
9e22989
import streamlit as st
from typing import Optional
import hashlib
import os
import pandas as pd
from .config import UPLOAD_FOLDER, DB_FOLDER
def init_folders():
"""Initialize required folders"""
for folder in [UPLOAD_FOLDER, DB_FOLDER]:
os.makedirs(folder, exist_ok=True)
def get_file_hash(file_content: bytes) -> str:
"""Generate SHA-256 hash of file content"""
return hashlib.sha256(file_content).hexdigest()
def save_uploaded_file(uploaded_file) -> Optional[str]:
"""Save uploaded file and return the path"""
try:
file_path = os.path.join(UPLOAD_FOLDER, uploaded_file.name)
os.makedirs(os.path.dirname(file_path), exist_ok=True)
with open(file_path, "wb") as f:
f.write(uploaded_file.getvalue())
return file_path
except Exception as e:
st.error(f"Error saving file: {str(e)}")
return None
def validate_csv_structure(df: pd.DataFrame) -> tuple[bool, list]:
"""Validate CSV file structure"""
required_columns = ['UnitCode', 'UnitType', 'Floor', 'Developer', 'TotalArea', 'AskingPrice', 'View']
missing_columns = [col for col in required_columns if col not in df.columns]
return len(missing_columns) == 0, missing_columns