Update app.py
Browse files
app.py
CHANGED
|
@@ -226,14 +226,17 @@ def validate_csv(df):
|
|
| 226 |
Validate that the CSV has the required columns.
|
| 227 |
Returns True if valid, False otherwise with an error message.
|
| 228 |
"""
|
|
|
|
|
|
|
| 229 |
required_columns = ['device_id', 'usage_hours', 'amc_date', 'status']
|
| 230 |
missing_columns = [col for col in required_columns if col not in df.columns]
|
| 231 |
if missing_columns:
|
| 232 |
-
return False, f"Missing required columns: {', '.join(missing_columns)}"
|
| 233 |
# Validate data types
|
| 234 |
try:
|
| 235 |
df['usage_hours'] = pd.to_numeric(df['usage_hours'], errors='raise')
|
| 236 |
-
|
|
|
|
| 237 |
# Handle 'downtime' if present
|
| 238 |
if 'downtime' in df.columns:
|
| 239 |
df['downtime'] = pd.to_numeric(df['downtime'], errors='raise')
|
|
@@ -370,8 +373,10 @@ def process_files(uploaded_files):
|
|
| 370 |
# Load and combine CSV files
|
| 371 |
for file in valid_files:
|
| 372 |
try:
|
| 373 |
-
|
| 374 |
-
|
|
|
|
|
|
|
| 375 |
# Rename columns to match expected names
|
| 376 |
df = df.rename(columns={
|
| 377 |
'device_id': 'equipment',
|
|
|
|
| 226 |
Validate that the CSV has the required columns.
|
| 227 |
Returns True if valid, False otherwise with an error message.
|
| 228 |
"""
|
| 229 |
+
# Strip whitespace from column names
|
| 230 |
+
df.columns = df.columns.str.strip()
|
| 231 |
required_columns = ['device_id', 'usage_hours', 'amc_date', 'status']
|
| 232 |
missing_columns = [col for col in required_columns if col not in df.columns]
|
| 233 |
if missing_columns:
|
| 234 |
+
return False, f"Missing required columns: {', '.join(missing_columns)}. Found columns: {', '.join(df.columns)}"
|
| 235 |
# Validate data types
|
| 236 |
try:
|
| 237 |
df['usage_hours'] = pd.to_numeric(df['usage_hours'], errors='raise')
|
| 238 |
+
# Parse amc_date with specified format
|
| 239 |
+
df['amc_date'] = pd.to_datetime(df['amc_date'], format='%d-%m-%Y', errors='raise')
|
| 240 |
# Handle 'downtime' if present
|
| 241 |
if 'downtime' in df.columns:
|
| 242 |
df['downtime'] = pd.to_numeric(df['downtime'], errors='raise')
|
|
|
|
| 373 |
# Load and combine CSV files
|
| 374 |
for file in valid_files:
|
| 375 |
try:
|
| 376 |
+
# Read CSV with explicit delimiter and strip whitespace
|
| 377 |
+
df = pd.read_csv(file.name, delimiter=',', skipinitialspace=True)
|
| 378 |
+
# Log the columns for debugging
|
| 379 |
+
logging.info(f"Columns in {file.name}: {', '.join(df.columns)}")
|
| 380 |
# Rename columns to match expected names
|
| 381 |
df = df.rename(columns={
|
| 382 |
'device_id': 'equipment',
|