File size: 990 Bytes
c60591b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
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()