broadfield-dev commited on
Commit
22285df
·
verified ·
1 Parent(s): 8350ba2

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +46 -26
app.py CHANGED
@@ -2,60 +2,80 @@ from flask import Flask, render_template, request, jsonify
2
  from processor import DatasetCommandCenter
3
  import threading
4
  import uuid
 
5
 
6
  app = Flask(__name__)
7
-
8
- # In-memory storage for job status (Use Redis for production)
9
  jobs = {}
10
 
11
  @app.route('/')
12
  def index():
13
  return render_template('index.html')
14
 
15
- @app.route('/inspect', methods=['POST'])
16
- def inspect():
 
17
  data = request.json
18
- token = data.get('token')
19
- dataset_id = data.get('dataset_id')
20
- split = data.get('split', 'train')
21
-
22
- center = DatasetCommandCenter(token=token)
23
- result = center.inspect_dataset(dataset_id, split=split)
24
  return jsonify(result)
25
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
26
  @app.route('/preview', methods=['POST'])
27
  def preview():
28
  data = request.json
29
- token = data.get('token')
30
- dataset_id = data.get('dataset_id')
31
- split = data.get('split', 'train')
32
- recipe = data.get('recipe', {})
33
-
34
- center = DatasetCommandCenter(token=token)
35
  try:
36
- preview_rows = center.preview_transform(dataset_id, split, recipe)
37
- return jsonify({"status": "success", "rows": preview_rows})
 
 
 
 
 
38
  except Exception as e:
39
  return jsonify({"status": "error", "message": str(e)})
40
 
 
41
  @app.route('/execute', methods=['POST'])
42
  def execute():
43
  data = request.json
44
  job_id = str(uuid.uuid4())
45
 
46
  token = data.get('token')
47
- source_id = data.get('dataset_id')
48
- target_id = data.get('target_id')
49
- split = data.get('split', 'train')
50
- recipe = data.get('recipe', {})
51
- max_rows = data.get('max_rows')
 
 
 
 
 
52
 
53
- # Start background thread
54
  def task():
55
- center = DatasetCommandCenter(token=token)
56
  try:
57
  jobs[job_id] = {"status": "running"}
58
- res = center.process_and_push(source_id, split, target_id, recipe, max_rows)
59
  jobs[job_id] = {"status": "completed", "result": res}
60
  except Exception as e:
61
  jobs[job_id] = {"status": "failed", "error": str(e)}
 
2
  from processor import DatasetCommandCenter
3
  import threading
4
  import uuid
5
+ import os
6
 
7
  app = Flask(__name__)
 
 
8
  jobs = {}
9
 
10
  @app.route('/')
11
  def index():
12
  return render_template('index.html')
13
 
14
+ # --- Step 1: Analyze Metadata (Configs/Splits) ---
15
+ @app.route('/analyze_metadata', methods=['POST'])
16
+ def analyze_metadata():
17
  data = request.json
18
+ center = DatasetCommandCenter(token=data.get('token'))
19
+ result = center.get_dataset_metadata(data.get('dataset_id'))
 
 
 
 
20
  return jsonify(result)
21
 
22
+ @app.route('/get_splits', methods=['POST'])
23
+ def get_splits():
24
+ data = request.json
25
+ center = DatasetCommandCenter(token=data.get('token'))
26
+ result = center.get_splits_for_config(data.get('dataset_id'), data.get('config'))
27
+ return jsonify(result)
28
+
29
+ # --- Step 2: Inspect Rows ---
30
+ @app.route('/inspect_rows', methods=['POST'])
31
+ def inspect_rows():
32
+ data = request.json
33
+ center = DatasetCommandCenter(token=data.get('token'))
34
+ result = center.inspect_dataset(
35
+ data.get('dataset_id'),
36
+ data.get('config'),
37
+ data.get('split')
38
+ )
39
+ return jsonify(result)
40
+
41
+ # --- Step 3: Preview Transform ---
42
  @app.route('/preview', methods=['POST'])
43
  def preview():
44
  data = request.json
45
+ center = DatasetCommandCenter(token=data.get('token'))
 
 
 
 
 
46
  try:
47
+ rows = center.preview_transform(
48
+ data.get('dataset_id'),
49
+ data.get('config'),
50
+ data.get('split'),
51
+ data.get('recipe', {})
52
+ )
53
+ return jsonify({"status": "success", "rows": rows})
54
  except Exception as e:
55
  return jsonify({"status": "error", "message": str(e)})
56
 
57
+ # --- Step 4: Execute ---
58
  @app.route('/execute', methods=['POST'])
59
  def execute():
60
  data = request.json
61
  job_id = str(uuid.uuid4())
62
 
63
  token = data.get('token')
64
+ center = DatasetCommandCenter(token=token)
65
+
66
+ args = (
67
+ data.get('dataset_id'),
68
+ data.get('config'),
69
+ data.get('split'),
70
+ data.get('target_id'),
71
+ data.get('recipe', {}),
72
+ data.get('max_rows')
73
+ )
74
 
 
75
  def task():
 
76
  try:
77
  jobs[job_id] = {"status": "running"}
78
+ res = center.process_and_push(*args)
79
  jobs[job_id] = {"status": "completed", "result": res}
80
  except Exception as e:
81
  jobs[job_id] = {"status": "failed", "error": str(e)}