Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
|
@@ -361,11 +361,13 @@ async def process_logs(file_obj, lab_site_filter, equipment_type_filter, date_ra
|
|
| 361 |
filtered_df = filtered_df[filtered_df['equipment_type'] == equipment_type_filter]
|
| 362 |
if date_range is not None:
|
| 363 |
if isinstance(date_range, (int, float)):
|
| 364 |
-
|
| 365 |
-
|
|
|
|
|
|
|
| 366 |
if len(date_range) != 2 or not all(isinstance(x, (int, float)) for x in date_range):
|
| 367 |
-
logging.error(f"Invalid date range format: {date_range}. Expected [start, end]
|
| 368 |
-
return "Invalid date range format. Please use [start, end] (e.g., [-7,
|
| 369 |
days_start, days_end = date_range
|
| 370 |
today = pd.to_datetime(datetime.now()).tz_localize('Asia/Kolkata')
|
| 371 |
start_date = today + pd.Timedelta(days=days_start)
|
|
@@ -460,7 +462,7 @@ try:
|
|
| 460 |
.table tr:nth-child(even) {background-color: #f9f9f9;}
|
| 461 |
""") as iface:
|
| 462 |
gr.Markdown("<h1>LabOps Log Analyzer Dashboard</h1>")
|
| 463 |
-
gr.Markdown("Upload a CSV file to analyze. Click 'Analyze' to refresh the dashboard. Use 'Export PDF' for report download. Date Range
|
| 464 |
|
| 465 |
last_modified_state = gr.State(value=None)
|
| 466 |
current_file_state = gr.State(value=None)
|
|
@@ -473,7 +475,7 @@ try:
|
|
| 473 |
gr.Markdown("### Filters")
|
| 474 |
lab_site_filter = gr.Dropdown(label="Lab Site", choices=['All'], value='All', interactive=True)
|
| 475 |
equipment_type_filter = gr.Dropdown(label="Equipment Type", choices=['All'], value='All', interactive=True)
|
| 476 |
-
date_range_filter = gr.Slider(label="Date Range (Days from Today
|
| 477 |
submit_button = gr.Button("Analyze", variant="primary")
|
| 478 |
pdf_button = gr.Button("Export PDF", variant="secondary")
|
| 479 |
|
|
|
|
| 361 |
filtered_df = filtered_df[filtered_df['equipment_type'] == equipment_type_filter]
|
| 362 |
if date_range is not None:
|
| 363 |
if isinstance(date_range, (int, float)):
|
| 364 |
+
# Convert single value to a range for a single day
|
| 365 |
+
days = int(date_range)
|
| 366 |
+
date_range = [days, days]
|
| 367 |
+
logging.info(f"Converted single value {days} to range {date_range}")
|
| 368 |
if len(date_range) != 2 or not all(isinstance(x, (int, float)) for x in date_range):
|
| 369 |
+
logging.error(f"Invalid date range format: {date_range}. Expected [start, end] or single integer.")
|
| 370 |
+
return "Invalid date range format. Please use [start, end] (e.g., [-7, 0]) or a single integer (e.g., -1).", "<p>Error processing data.</p>", None, '<p>Error processing data.</p>', None, None, None, None, "", "", "", None, df, current_modified_time
|
| 371 |
days_start, days_end = date_range
|
| 372 |
today = pd.to_datetime(datetime.now()).tz_localize('Asia/Kolkata')
|
| 373 |
start_date = today + pd.Timedelta(days=days_start)
|
|
|
|
| 462 |
.table tr:nth-child(even) {background-color: #f9f9f9;}
|
| 463 |
""") as iface:
|
| 464 |
gr.Markdown("<h1>LabOps Log Analyzer Dashboard</h1>")
|
| 465 |
+
gr.Markdown("Upload a CSV file to analyze. Click 'Analyze' to refresh the dashboard. Use 'Export PDF' for report download. Date Range can be [start, end] (e.g., [-7, 0] for June 11 to June 18) or a single integer (e.g., -1 for June 17).")
|
| 466 |
|
| 467 |
last_modified_state = gr.State(value=None)
|
| 468 |
current_file_state = gr.State(value=None)
|
|
|
|
| 475 |
gr.Markdown("### Filters")
|
| 476 |
lab_site_filter = gr.Dropdown(label="Lab Site", choices=['All'], value='All', interactive=True)
|
| 477 |
equipment_type_filter = gr.Dropdown(label="Equipment Type", choices=['All'], value='All', interactive=True)
|
| 478 |
+
date_range_filter = gr.Slider(label="Date Range (Days from Today)", minimum=-365, maximum=0, step=1, value=[-7, 0], interactive=True)
|
| 479 |
submit_button = gr.Button("Analyze", variant="primary")
|
| 480 |
pdf_button = gr.Button("Export PDF", variant="secondary")
|
| 481 |
|