-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathlocal_test.py
More file actions
65 lines (51 loc) · 2.24 KB
/
Copy pathlocal_test.py
File metadata and controls
65 lines (51 loc) · 2.24 KB
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#!/usr/bin/env python3
"""
Local test script to process the dataset without Google Drive upload limitations.
This will download the file, process it, and save artifacts locally in organized folders.
"""
import os
from dotenv import load_dotenv
from dataset_processor import process_dataset_with_organization, list_processed_datasets
# Load environment variables
load_dotenv()
def display_processing_summary(result):
"""Display a comprehensive processing summary."""
if result["status"] != "success":
return
metadata = result["metadata"]
dq_rules = result["dq_rules"]
print("\n" + "="*50)
print("PROCESSING SUMMARY")
print("="*50)
print(f"Dataset: {metadata['filename']}")
print(f"Rows: {metadata['row_count']:,}")
print(f"Columns: {metadata['column_count']}")
print(f"DQ Rules: {len(dq_rules)}")
print("\nColumn Summary:")
for col in metadata['columns']:
print(f" - {col['name']}: {col['data_type']} ({col['null_percentage']:.1f}% null)")
print("\nData Quality Rules:")
for rule in dq_rules:
print(f" - {rule['rule_type'].upper()}: {rule['description']} [{rule['severity']}]")
if __name__ == "__main__":
# Test with your file ID
file_id = "14n9OxaOzOOWuE81IC0J2VzfKvbJH3cYp"
print("🚀 MCP Dataset Onboarding - Local Processing")
print("=" * 50)
# Process the dataset
result = process_dataset_with_organization(file_id)
if result["status"] == "success":
print(f"\n✅ Processing completed successfully!")
print(f"📁 Output folder: {result['output_folder']}")
print(f"📄 Files created: {len(result['files_created'])} files")
for file_path in result['files_created']:
print(f" - {os.path.basename(file_path)}")
# Display processing summary
display_processing_summary(result)
# List all processed datasets
print(f"\n📊 All Processed Datasets:")
datasets = list_processed_datasets()
for i, dataset in enumerate(datasets, 1):
print(f" {i}. {dataset['dataset_name']} ({dataset['row_count']:,} rows, {dataset['column_count']} cols)")
else:
print(f"\n❌ Processing failed: {result['message']}")