Spaces:
Sleeping
Sleeping
File size: 2,021 Bytes
dba2c72 92f2a29 dba2c72 c2a9315 5b2432b c2a9315 5b2432b c2a9315 5b2432b c2a9315 5b2432b c2a9315 5b2432b c2a9315 5b2432b c2a9315 5b2432b c2a9315 5b2432b dba2c72 48df7e4 dba2c72 48df7e4 dba2c72 48df7e4 dba2c72 |
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 66 67 68 69 70 71 72 73 74 75 |
import os
import subprocess
from flask import Flask, request, jsonify, send_from_directory
app = Flask(__name__)
DATA_DIR = "/data"
os.makedirs(DATA_DIR, exist_ok=True)
import subprocess
import os
def debug_conllu():
base = "/usr/src/ConlluEditor"
if not os.path.exists(base):
return f"Directory does not exist: {base}"
try:
ls_output = subprocess.check_output(
["bash", "-c", f"ls -R {base}"],
stderr=subprocess.STDOUT
).decode()
except subprocess.CalledProcessError as e:
ls_output = f"ls failed:\n{e.output.decode()}"
try:
grep_output = subprocess.check_output(
["bash", "-c", f"grep -R \"12345\" {base} || true"],
stderr=subprocess.STDOUT
).decode()
except subprocess.CalledProcessError as e:
grep_output = f"grep failed:\n{e.output.decode()}"
return f"=== ls -R ===\n{ls_output}\n\n=== grep ===\n{grep_output}"
@app.route("/api/debug", methods=["GET"])
def debug():
return debug_conllu(), 200, {"Content-Type": "text/plain"}
@app.route("/api/upload", methods=["POST"])
def upload():
if "file" not in request.files:
return "No file", 400
f = request.files["file"]
if f.filename == "":
return "Empty filename", 400
if not f.filename.endswith(".conllu"):
return "Only .conllu allowed", 400
save_path = os.path.join(DATA_DIR, f.filename)
f.save(save_path)
return "OK", 200
@app.route("/api/files", methods=["GET"])
def list_files():
files = [f for f in os.listdir(DATA_DIR) if f.endswith(".conllu")]
return jsonify(files)
@app.route("/api/download/<path:filename>", methods=["GET"])
def download(filename):
return send_from_directory(DATA_DIR, filename, as_attachment=True)
if __name__ == "__main__":
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("--port", type=int, default=5556)
args = parser.parse_args()
app.run(host="0.0.0.0", port=args.port)
|