Spaces:
Sleeping
Sleeping
| import gradio as gr | |
| from datetime import datetime | |
| import time | |
| # Simulated Airflow DAG steps | |
| def extract(): | |
| time.sleep(1) | |
| return {"data": ["apple", "banana", "cherry"], "timestamp": datetime.now().isoformat()} | |
| def transform(data): | |
| time.sleep(1) | |
| return [item.upper() for item in data] | |
| def load(data): | |
| time.sleep(1) | |
| return f"Loaded {len(data)} items into target system at {datetime.now().isoformat()}" | |
| # DAG runner | |
| def run_pipeline(): | |
| log = [] | |
| extracted = extract() | |
| log.append(f"β Extracted: {extracted['data']} at {extracted['timestamp']}") | |
| transformed = transform(extracted["data"]) | |
| log.append(f"π Transformed: {transformed}") | |
| result = load(transformed) | |
| log.append(f"π¦ Load Result: {result}") | |
| return "\n".join(log) | |
| # Gradio UI | |
| demo = gr.Interface(fn=run_pipeline, inputs=[], outputs="text", title="Airflow-style ETL Pipeline", description="Simulated DAG with Extract β Transform β Load") | |
| demo.launch() | |