664 lines
25 KiB
Plaintext
664 lines
25 KiB
Plaintext
{
|
|
"cells": [
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"id": "c46228bd",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"code=\"variableToList(\\\"a\\\", myList)\\nAddVariableToJSON(\\\"1\\\", \\\"b\\\", myList)\\nAddVariableToJSON(\\\"2\\\", \\\"c\\\", myList)\\ngetListLen(myList, total)\\naddResult(total)\""
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"id": "91c20032",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"print(code)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 1,
|
|
"id": "64d5e9d4",
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"=== Task 1 | success: False ===\n",
|
|
"addParam('user_list', user_data)\n",
|
|
"getQueryParamList('emails', email_list)\n",
|
|
"addVar(valid_count, 0)\n",
|
|
"addVar(invalid_count, 0)\n",
|
|
"addVar(processed_emails, [])\n",
|
|
"try()\n",
|
|
" getListLen(email_list, total_emails)\n",
|
|
" if(total_emails, 0, \">\")\n",
|
|
" addVar(i, 0)\n",
|
|
" startLoop(counter, 0, total_emails)\n",
|
|
" itemFromList(email_list, i, current_email)\n",
|
|
" getRegex(current_email, \"^[\\\\w\\\\.-]+@[\\\\w\\\\.-]+\\\\.[a-zA-Z]{2,}$\", email_match)\n",
|
|
" if(None, None, `email_match != None`)\n",
|
|
" addVar(valid_count, valid_count + 1)\n",
|
|
" replace(current_email, \" \", \"\", clean_email)\n",
|
|
" variableToList(clean_email, temp_list)\n",
|
|
" AddVariableToJSON(\"email\", clean_email, email_obj)\n",
|
|
" AddVariableToJSON(\"status\", \"valid\", email_obj)\n",
|
|
" else()\n",
|
|
" addVar(invalid_count, invalid_count + 1)\n",
|
|
" AddVariableToJSON(\"email\", current_email, email_obj)\n",
|
|
" AddVariableToJSON(\"status\", \"invalid\", email_obj)\n",
|
|
" end()\n",
|
|
" addVar(i, i + 1)\n",
|
|
" endLoop()\n",
|
|
" AddVariableToJSON(\"total_processed\", total_emails, report)\n",
|
|
" AddVariableToJSON(\"valid_emails\", valid_count, report)\n",
|
|
" AddVariableToJSON(\"invalid_emails\", invalid_count, report)\n",
|
|
" if(valid_count, 0, \">\")\n",
|
|
" addVar(_status, 200)\n",
|
|
" else()\n",
|
|
" addVar(_status, 422)\n",
|
|
" end()\n",
|
|
" else()\n",
|
|
" AddVariableToJSON(\"error\", \"No emails provided\", report)\n",
|
|
" addVar(_status, 400)\n",
|
|
" end()\n",
|
|
"exception(error_var)\n",
|
|
" AddVariableToJSON(\"error\", \"Processing failed\", report)\n",
|
|
" addVar(_status, 500)\n",
|
|
"end()\n",
|
|
"addResult(report)\n",
|
|
"\n",
|
|
"=== Task 1 | success: True ===\n",
|
|
"addParam(\"message\", message)\n",
|
|
"if(message, None, \"=\")\n",
|
|
" greeting = \"Hello, World!\"\n",
|
|
"else()\n",
|
|
" greeting = \"Hello, \" + message + \"!\"\n",
|
|
"end()\n",
|
|
"addResult(greeting)\n",
|
|
"_status = 200\n",
|
|
"\n",
|
|
"=== Task 2 | success: False ===\n",
|
|
"addParam(\"password\", password)\n",
|
|
"encodeSHA256(password, hashed_password)\n",
|
|
"randomString(\"[a-zA-Z0-9]\", 32, secure_token)\n",
|
|
"addResult(hashed_password)\n",
|
|
"addResult(secure_token)\n",
|
|
"\n",
|
|
"=== Task 1 | success: True ===\n",
|
|
"addParam(\"username\", username)\n",
|
|
"addResult(username)\n",
|
|
"\n",
|
|
"=== Task 2 | success: True ===\n",
|
|
"addParam(\"email\", email)\n",
|
|
"addVar(_status, 200)\n",
|
|
"addResult(email)\n",
|
|
"\n",
|
|
"=== Task 3 | success: False ===\n",
|
|
"addParam(\"password\", password)\n",
|
|
"encodeSHA256(password, hashed)\n",
|
|
"addResult(hashed)\n",
|
|
"\n",
|
|
"=== Task 4 | success: False ===\n",
|
|
"addParam(\"text\", text)\n",
|
|
"replace(text, \" \", \"_\", result)\n",
|
|
"addResult(result)\n",
|
|
"\n",
|
|
"=== Task 5 | success: False ===\n",
|
|
"randomString(\"[a-zA-Z0-9]\", 32, token)\n",
|
|
"addResult(token)\n",
|
|
"\n",
|
|
"=== Task 6 | success: True ===\n",
|
|
"addParam(\"age\", age)\n",
|
|
"if(age, 18, \">\")\n",
|
|
"result = \"adulto\"\n",
|
|
"else()\n",
|
|
"result = \"menor\"\n",
|
|
"end()\n",
|
|
"addResult(result)\n",
|
|
"\n",
|
|
"=== Task 7 | success: True ===\n",
|
|
"addParam(\"score\", score)\n",
|
|
"if(score, 100, \"==\")\n",
|
|
"addVar(_status, 200)\n",
|
|
"result = \"perfecto\"\n",
|
|
"else()\n",
|
|
"addVar(_status, 400)\n",
|
|
"result = \"incompleto\"\n",
|
|
"end()\n",
|
|
"addResult(result)\n",
|
|
"\n",
|
|
"=== Task 8 | success: False ===\n",
|
|
"variableToList(\"item1\", myList)\n",
|
|
"getListLen(myList, length)\n",
|
|
"addResult(length)\n",
|
|
"\n",
|
|
"=== Task 9 | success: False ===\n",
|
|
"getQueryParamList(\"items\", items)\n",
|
|
"getListLen(items, length)\n",
|
|
"addResult(length)\n",
|
|
"\n",
|
|
"=== Task 10 | success: False ===\n",
|
|
"addParam(\"data\", data)\n",
|
|
"variableFromJSON(data, \"name\", name)\n",
|
|
"addResult(name)\n",
|
|
"\n",
|
|
"=== Task 11 | success: False ===\n",
|
|
"info = {}\n",
|
|
"AddVariableToJSON(\"status\", \"ok\", info)\n",
|
|
"addResult(info)\n",
|
|
"\n",
|
|
"=== Task 12 | success: False ===\n",
|
|
"addParam(\"password\", password)\n",
|
|
"encodeMD5(password, hashed)\n",
|
|
"addResult(hashed)\n",
|
|
"\n",
|
|
"=== Task 13 | success: False ===\n",
|
|
"getDateTime(\"%Y-%m-%d\", 0, \"UTC\", today)\n",
|
|
"addResult(today)\n",
|
|
"\n",
|
|
"=== Task 14 | success: False ===\n",
|
|
"addParam(\"epoch\", epoch)\n",
|
|
"stampToDatetime(epoch, \"%Y-%m-%d %H:%M:%S\", 0, datestr)\n",
|
|
"addResult(datestr)\n",
|
|
"\n",
|
|
"=== Task 15 | success: False ===\n",
|
|
"addParam(\"date_str\", date_str)\n",
|
|
"getTimeStamp(date_str, \"%Y-%m-%d\", 0, epoch)\n",
|
|
"addResult(epoch)\n",
|
|
"\n",
|
|
"=== Task 16 | success: True ===\n",
|
|
"function square(n) {\n",
|
|
"result = n * n\n",
|
|
"return(result)\n",
|
|
"}\n",
|
|
"addParam(\"n\", n)\n",
|
|
"squared = square(n)\n",
|
|
"addResult(squared)\n",
|
|
"\n",
|
|
"=== Task 17 | success: True ===\n",
|
|
"function add(a, b) {\n",
|
|
"result = a + b\n",
|
|
"return(result)\n",
|
|
"}\n",
|
|
"addParam(\"a\", a)\n",
|
|
"addParam(\"b\", b)\n",
|
|
"sum = add(a, b)\n",
|
|
"addResult(sum)\n",
|
|
"\n",
|
|
"=== Task 18 | success: True ===\n",
|
|
"addParam(\"num\", num)\n",
|
|
"try()\n",
|
|
"result = num / 0\n",
|
|
"exception(err)\n",
|
|
"result = \"error_division\"\n",
|
|
"end()\n",
|
|
"addResult(result)\n",
|
|
"\n",
|
|
"=== Task 19 | success: True ===\n",
|
|
"addParam(\"url\", url)\n",
|
|
"RequestGet(url, \"\", \"\", response, 5000)\n",
|
|
"addResult(response)\n",
|
|
"\n",
|
|
"=== Task 20 | success: True ===\n",
|
|
"addParam(\"url\", url)\n",
|
|
"addParam(\"body\", body)\n",
|
|
"RequestPost(url, \"\", \"\", body, response, 3000)\n",
|
|
"addResult(response)\n",
|
|
"\n",
|
|
"=== Task 21 | success: False ===\n",
|
|
"connector = avapConnector(\"20908e93260147acb2636967021fbf5d\")\n",
|
|
"status = connector.get_status()\n",
|
|
"addResult(status)\n",
|
|
"\n",
|
|
"=== Task 22 | success: True ===\n",
|
|
"function fetchData() {\n",
|
|
"data = \"fetched\"\n",
|
|
"return(data)\n",
|
|
"}\n",
|
|
"handle = go fetchData()\n",
|
|
"result = gather(handle, 2000)\n",
|
|
"addResult(result)\n",
|
|
"\n",
|
|
"=== Task 23 | success: True ===\n",
|
|
"addParam(\"n\", n)\n",
|
|
"accum = 0\n",
|
|
"startLoop(i, 0, n)\n",
|
|
"accum = accum + i\n",
|
|
"endLoop()\n",
|
|
"addResult(accum)\n",
|
|
"\n",
|
|
"=== Task 24 | success: True ===\n",
|
|
"addParam(\"value\", value)\n",
|
|
"if(None, None, `value > 0 and value < 100`)\n",
|
|
"result = \"rango_valido\"\n",
|
|
"else()\n",
|
|
"result = \"fuera_de_rango\"\n",
|
|
"end()\n",
|
|
"addResult(result)\n",
|
|
"\n",
|
|
"=== Task 25 | success: False ===\n",
|
|
"ormAccessSelect(\"*\", \"users\", \"\", records)\n",
|
|
"addResult(records)\n",
|
|
"\n",
|
|
"=== Task 26 | success: False ===\n",
|
|
"addParam(\"username\", username)\n",
|
|
"addParam(\"email\", email)\n",
|
|
"fields = {\"username\": username, \"email\": email}\n",
|
|
"ormAccessInsert(fields, \"users\", insert_result)\n",
|
|
"addResult(insert_result)\n",
|
|
"\n",
|
|
"=== Task 27 | success: False ===\n",
|
|
"addParam(\"user_id\", user_id)\n",
|
|
"fields = \"active\"\n",
|
|
"values = {\"active\": 1}\n",
|
|
"selector = \"id = \" + str(user_id)\n",
|
|
"ormAccessUpdate(fields, values, \"users\", selector, update_result)\n",
|
|
"addResult(update_result)\n",
|
|
"\n",
|
|
"=== Task 28 | success: True ===\n",
|
|
"import <math>\n",
|
|
"function calcSquare(x) {\n",
|
|
"result = x * x\n",
|
|
"return(result)\n",
|
|
"}\n",
|
|
"result = calcSquare(9)\n",
|
|
"addResult(result)\n",
|
|
"\n",
|
|
"=== Task 29 | success: False ===\n",
|
|
"addParam(\"items_json\", items_json)\n",
|
|
"variableFromJSON(items_json, \"items\", items)\n",
|
|
"getListLen(items, length)\n",
|
|
"addResult(length)\n",
|
|
"\n",
|
|
"=== Task 30 | success: True ===\n",
|
|
"addParam(\"token\", token)\n",
|
|
"if(None, None, `len(token) == 32`)\n",
|
|
"result = \"token_valido\"\n",
|
|
"addVar(_status, 200)\n",
|
|
"else()\n",
|
|
"result = \"token_invalido\"\n",
|
|
"addVar(_status, 401)\n",
|
|
"end()\n",
|
|
"addResult(result)\n",
|
|
"\n",
|
|
"=== Task 52 | success: False ===\n",
|
|
"addParam(\"numbers\", numbers)\n",
|
|
"addParam(\"threshold\", threshold)\n",
|
|
"result = True\n",
|
|
"getListLen(numbers, list_len)\n",
|
|
"i = 0\n",
|
|
"startLoop(i, 0, list_len)\n",
|
|
" itemFromList(numbers, i, current_item)\n",
|
|
" current_val = int(current_item)\n",
|
|
" thresh_val = int(threshold)\n",
|
|
" if(None, None, `current_val >= thresh_val`)\n",
|
|
" result = False\n",
|
|
" end()\n",
|
|
"endLoop()\n",
|
|
"addResult(result)\n",
|
|
"_status = 200\n",
|
|
"\n",
|
|
"=== Task 134 | success: False ===\n",
|
|
"addParam(\"txt\", txt)\n",
|
|
"result = False\n",
|
|
"if(None, None, `txt == \"\" or txt == None`)\n",
|
|
" result = False\n",
|
|
"else()\n",
|
|
" replace(txt, \",\", \" \", txt_clean)\n",
|
|
" last_word = txt_clean.split()[-1] if txt_clean.split() else \"\"\n",
|
|
" getListLen(last_word, last_len)\n",
|
|
" if(None, None, `last_len == 1 and last_word.lower() >= \"a\" and last_word.lower() <= \"z\"`)\n",
|
|
" result = True\n",
|
|
" else()\n",
|
|
" result = False\n",
|
|
" end()\n",
|
|
"end()\n",
|
|
"addResult(result)\n",
|
|
"_status = 200\n",
|
|
"\n",
|
|
"=== Task 51 | success: True ===\n",
|
|
"addParam(\"text\", text)\n",
|
|
"result = [s for s in text if s.lower() not in [\"a\", \"e\", \"i\", \"o\", \"u\"]]\n",
|
|
"result_str = \"\".join(result)\n",
|
|
"addResult(result_str)\n",
|
|
"_status = 200\n",
|
|
"\n",
|
|
"=== Task 66 | success: True ===\n",
|
|
"addParam(\"s\", s)\n",
|
|
"if(None, None, `s == \"\" or s == None`)\n",
|
|
" digit_sum = 0\n",
|
|
"else()\n",
|
|
" digit_sum = sum(ord(char) if char.isupper() else 0 for char in s)\n",
|
|
"end()\n",
|
|
"addResult(digit_sum)\n",
|
|
"_status = 200\n",
|
|
"\n",
|
|
"=== Task 147 | success: False ===\n",
|
|
"addParam(\"n\", n)\n",
|
|
"n_val = int(n)\n",
|
|
"A = [i*i - i + 1 for i in range(1, n_val + 1)]\n",
|
|
"count = 0\n",
|
|
"getListLen(A, len_a)\n",
|
|
"i = 0\n",
|
|
"startLoop(i, 0, len_a)\n",
|
|
" j = i + 1\n",
|
|
" startLoop(j, i + 1, len_a)\n",
|
|
" k = j + 1\n",
|
|
" startLoop(k, j + 1, len_a)\n",
|
|
" itemFromList(A, i, ai)\n",
|
|
" itemFromList(A, j, aj)\n",
|
|
" itemFromList(A, k, ak)\n",
|
|
" triple_sum = int(ai) + int(aj) + int(ak)\n",
|
|
" if(None, None, `triple_sum % 3 == 0`)\n",
|
|
" count = count + 1\n",
|
|
" end()\n",
|
|
" endLoop()\n",
|
|
" endLoop()\n",
|
|
"endLoop()\n",
|
|
"addResult(count)\n",
|
|
"_status = 200\n",
|
|
"\n",
|
|
"=== Task 101 | success: False ===\n",
|
|
"addParam(\"s\", s)\n",
|
|
"if(None, None, `s == \"\" or s == None`)\n",
|
|
" words = []\n",
|
|
"else()\n",
|
|
" replace(s, \",\", \" \", s_clean)\n",
|
|
" words = s_clean.split()\n",
|
|
"end()\n",
|
|
"addResult(words)\n",
|
|
"_status = 200\n",
|
|
"\n",
|
|
"=== Task 24 | success: False ===\n",
|
|
"addParam(\"n\", n)\n",
|
|
"n_val = int(n)\n",
|
|
"largest_div = 1\n",
|
|
"i = n_val - 1\n",
|
|
"startLoop(i, 1, n_val)\n",
|
|
" candidate = n_val - i\n",
|
|
" if(None, None, `n_val % candidate == 0`)\n",
|
|
" largest_div = candidate\n",
|
|
" return(largest_div)\n",
|
|
" end()\n",
|
|
"endLoop()\n",
|
|
"addResult(largest_div)\n",
|
|
"_status = 200\n",
|
|
"\n",
|
|
"=== Task 125 | success: True ===\n",
|
|
"addParam(\"txt\", txt)\n",
|
|
"if(None, None, `\" \" in txt`)\n",
|
|
" split_result = txt.split()\n",
|
|
"else()\n",
|
|
" if(None, None, `\",\" in txt`)\n",
|
|
" replace(txt, \",\", \" \", txt_replaced)\n",
|
|
" split_result = txt_replaced.split()\n",
|
|
" else()\n",
|
|
" split_result = len([i for i in txt if i.islower() and ord(i) % 2 == 0])\n",
|
|
" end()\n",
|
|
"end()\n",
|
|
"addResult(split_result)\n",
|
|
"_status = 200\n",
|
|
"\n",
|
|
"=== Task 145 | success: False ===\n",
|
|
"addParam(\"nums\", nums)\n",
|
|
"function digits_sum(n) {\n",
|
|
" neg = 1\n",
|
|
" if(None, None, `n < 0`)\n",
|
|
" n = -1 * n\n",
|
|
" neg = -1\n",
|
|
" end()\n",
|
|
" digits = [int(d) for d in str(n)]\n",
|
|
" digits[0] = digits[0] * neg\n",
|
|
" return(sum(digits))\n",
|
|
"}\n",
|
|
"sorted_nums = sorted(nums, key=digits_sum)\n",
|
|
"addResult(sorted_nums)\n",
|
|
"_status = 200\n",
|
|
"\n",
|
|
"=== Task 50 | success: True ===\n",
|
|
"addParam(\"s\", s)\n",
|
|
"decoded = \"\".join([chr(((ord(ch) - 5 - ord(\"a\")) % 26) + ord(\"a\")) for ch in s])\n",
|
|
"addResult(decoded)\n",
|
|
"_status = 200\n",
|
|
"\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"import json\n",
|
|
"from pathlib import Path\n",
|
|
"\n",
|
|
"analysis_path = Path(\"../../../../output/parser_analysis.json\")\n",
|
|
"\n",
|
|
"with analysis_path.open(\"r\", encoding=\"utf-8\") as f:\n",
|
|
" records = json.load(f)\n",
|
|
"\n",
|
|
"for record in records:\n",
|
|
" task_id = record.get(\"task_id\")\n",
|
|
" code = record.get(\"code\", \"\")\n",
|
|
" exec_msg = record.get(\"execution_message\", {})\n",
|
|
" success = exec_msg.get(\"success\", False)\n",
|
|
"\n",
|
|
" print(f\"=== Task {task_id} | success: {success} ===\")\n",
|
|
" print(code)\n",
|
|
" print()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 3,
|
|
"id": "a5946318",
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"{'source_file': 'mbap_avap_A.json',\n",
|
|
" 'task_id': 1,\n",
|
|
" 'text': 'Crea una API de validación y transformación de datos de usuarios que procese una lista de emails desde parámetros de consulta, valide cada email con expresión regular, transforme nombres de usuarios eliminando espacios, y genere un reporte con estadísticas de emails válidos/inválidos. La API debe manejar errores y devolver código de estado HTTP apropiado.',\n",
|
|
" 'code': 'addParam(\\'user_list\\', user_data)\\ngetQueryParamList(\\'emails\\', email_list)\\naddVar(valid_count, 0)\\naddVar(invalid_count, 0)\\naddVar(processed_emails, [])\\ntry()\\n getListLen(email_list, total_emails)\\n if(total_emails, 0, \">\")\\n addVar(i, 0)\\n startLoop(counter, 0, total_emails)\\n itemFromList(email_list, i, current_email)\\n getRegex(current_email, \"^[\\\\\\\\w\\\\\\\\.-]+@[\\\\\\\\w\\\\\\\\.-]+\\\\\\\\.[a-zA-Z]{2,}$\", email_match)\\n if(None, None, `email_match != None`)\\n addVar(valid_count, valid_count + 1)\\n replace(current_email, \" \", \"\", clean_email)\\n variableToList(clean_email, temp_list)\\n AddVariableToJSON(\"email\", clean_email, email_obj)\\n AddVariableToJSON(\"status\", \"valid\", email_obj)\\n else()\\n addVar(invalid_count, invalid_count + 1)\\n AddVariableToJSON(\"email\", current_email, email_obj)\\n AddVariableToJSON(\"status\", \"invalid\", email_obj)\\n end()\\n addVar(i, i + 1)\\n endLoop()\\n AddVariableToJSON(\"total_processed\", total_emails, report)\\n AddVariableToJSON(\"valid_emails\", valid_count, report)\\n AddVariableToJSON(\"invalid_emails\", invalid_count, report)\\n if(valid_count, 0, \">\")\\n addVar(_status, 200)\\n else()\\n addVar(_status, 422)\\n end()\\n else()\\n AddVariableToJSON(\"error\", \"No emails provided\", report)\\n addVar(_status, 400)\\n end()\\nexception(error_var)\\n AddVariableToJSON(\"error\", \"Processing failed\", report)\\n addVar(_status, 500)\\nend()\\naddResult(report)',\n",
|
|
" 'test_inputs': {'emails': ['user1@domain.com',\n",
|
|
" 'invalid-email',\n",
|
|
" 'test@example.org',\n",
|
|
" 'bad@',\n",
|
|
" 'admin@site.co.uk']},\n",
|
|
" 'test_list': [\"re.match(r'\\\\d+', str(report.get('total_processed', '')))\",\n",
|
|
" \"re.match(r'[2-5]\\\\d\\\\d', str(_status))\",\n",
|
|
" \"re.match(r'(valid|invalid)', str(report.get('error', '') or 'valid'))\"],\n",
|
|
" 'execution_message': {'success': False,\n",
|
|
" 'error': 'Command not found: getQueryParamList'},\n",
|
|
" 'passed': False,\n",
|
|
" 'error': 'Command not found: getQueryParamList',\n",
|
|
" 'Local_Language_Server_Execution': 'Execution Data:\\n500: Internal Server Error'}"
|
|
]
|
|
},
|
|
"execution_count": 3,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"records[0]"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 12,
|
|
"id": "60e04025",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"input_record_keys = [\"source_file\", \"task_id\", \"text\",\"code\", \"test_inputs\", \"test_list\"]\n",
|
|
"parser_record_keys = [\"execution_message\"]\n",
|
|
"lang_server_record_keys = [\"passed\", \"error\", \"Local_Language_Server_Execution\"]\n",
|
|
"\n",
|
|
"\n",
|
|
"input_records = [\n",
|
|
" {k: v for k, v in record.items() if k in input_record_keys} for record in records \n",
|
|
"]\n",
|
|
"parser_records = [\n",
|
|
" {k: v for k, v in record.items() if k in parser_record_keys} for record in records \n",
|
|
"]\n",
|
|
"\n",
|
|
"lang_server_records = [\n",
|
|
" {k: v for k, v in record.items() if k in lang_server_record_keys} for record in records \n",
|
|
"]"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 13,
|
|
"id": "2dd0b3c7",
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"{'source_file': 'mbap_avap_A.json',\n",
|
|
" 'task_id': 1,\n",
|
|
" 'text': 'Crea una API de validación y transformación de datos de usuarios que procese una lista de emails desde parámetros de consulta, valide cada email con expresión regular, transforme nombres de usuarios eliminando espacios, y genere un reporte con estadísticas de emails válidos/inválidos. La API debe manejar errores y devolver código de estado HTTP apropiado.',\n",
|
|
" 'code': 'addParam(\\'user_list\\', user_data)\\ngetQueryParamList(\\'emails\\', email_list)\\naddVar(valid_count, 0)\\naddVar(invalid_count, 0)\\naddVar(processed_emails, [])\\ntry()\\n getListLen(email_list, total_emails)\\n if(total_emails, 0, \">\")\\n addVar(i, 0)\\n startLoop(counter, 0, total_emails)\\n itemFromList(email_list, i, current_email)\\n getRegex(current_email, \"^[\\\\\\\\w\\\\\\\\.-]+@[\\\\\\\\w\\\\\\\\.-]+\\\\\\\\.[a-zA-Z]{2,}$\", email_match)\\n if(None, None, `email_match != None`)\\n addVar(valid_count, valid_count + 1)\\n replace(current_email, \" \", \"\", clean_email)\\n variableToList(clean_email, temp_list)\\n AddVariableToJSON(\"email\", clean_email, email_obj)\\n AddVariableToJSON(\"status\", \"valid\", email_obj)\\n else()\\n addVar(invalid_count, invalid_count + 1)\\n AddVariableToJSON(\"email\", current_email, email_obj)\\n AddVariableToJSON(\"status\", \"invalid\", email_obj)\\n end()\\n addVar(i, i + 1)\\n endLoop()\\n AddVariableToJSON(\"total_processed\", total_emails, report)\\n AddVariableToJSON(\"valid_emails\", valid_count, report)\\n AddVariableToJSON(\"invalid_emails\", invalid_count, report)\\n if(valid_count, 0, \">\")\\n addVar(_status, 200)\\n else()\\n addVar(_status, 422)\\n end()\\n else()\\n AddVariableToJSON(\"error\", \"No emails provided\", report)\\n addVar(_status, 400)\\n end()\\nexception(error_var)\\n AddVariableToJSON(\"error\", \"Processing failed\", report)\\n addVar(_status, 500)\\nend()\\naddResult(report)',\n",
|
|
" 'test_inputs': {'emails': ['user1@domain.com',\n",
|
|
" 'invalid-email',\n",
|
|
" 'test@example.org',\n",
|
|
" 'bad@',\n",
|
|
" 'admin@site.co.uk']},\n",
|
|
" 'test_list': [\"re.match(r'\\\\d+', str(report.get('total_processed', '')))\",\n",
|
|
" \"re.match(r'[2-5]\\\\d\\\\d', str(_status))\",\n",
|
|
" \"re.match(r'(valid|invalid)', str(report.get('error', '') or 'valid'))\"]}"
|
|
]
|
|
},
|
|
"execution_count": 13,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"input_records[0]"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 14,
|
|
"id": "5df84ee5",
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"{'execution_message': {'success': False,\n",
|
|
" 'error': 'Command not found: getQueryParamList'}}"
|
|
]
|
|
},
|
|
"execution_count": 14,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"parser_records[0]"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 15,
|
|
"id": "3f6d761c",
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"{'passed': False,\n",
|
|
" 'error': 'Command not found: getQueryParamList',\n",
|
|
" 'Local_Language_Server_Execution': 'Execution Data:\\n500: Internal Server Error'}"
|
|
]
|
|
},
|
|
"execution_count": 15,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"lang_server_records[0]"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 16,
|
|
"id": "966792dd",
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"Saved input records: 43 -> /home/pseco/VsCodeProjects/assistance-engine/scratches/pseco/synthetic_dataset/avap_test/records_output/input_records.json\n",
|
|
"Saved parser records: 43 -> /home/pseco/VsCodeProjects/assistance-engine/scratches/pseco/synthetic_dataset/avap_test/records_output/parser_records.json\n",
|
|
"Saved server records: 43 -> /home/pseco/VsCodeProjects/assistance-engine/scratches/pseco/synthetic_dataset/avap_test/records_output/lang_server_records.json\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"import json\n",
|
|
"from pathlib import Path\n",
|
|
"\n",
|
|
"output_dir = Path(\"./records_output\")\n",
|
|
"output_dir.mkdir(parents=True, exist_ok=True)\n",
|
|
"\n",
|
|
"input_path = output_dir / \"input_records.json\"\n",
|
|
"parser_path = output_dir / \"parser_records.json\"\n",
|
|
"server_path = output_dir / \"lang_server_records.json\"\n",
|
|
"\n",
|
|
"with input_path.open(\"w\", encoding=\"utf-8\") as f:\n",
|
|
" json.dump(input_records, f, ensure_ascii=False, indent=2)\n",
|
|
"\n",
|
|
"with parser_path.open(\"w\", encoding=\"utf-8\") as f:\n",
|
|
" json.dump(parser_records, f, ensure_ascii=False, indent=2)\n",
|
|
"\n",
|
|
"with server_path.open(\"w\", encoding=\"utf-8\") as f:\n",
|
|
" json.dump(lang_server_records, f, ensure_ascii=False, indent=2)\n",
|
|
"\n",
|
|
"print(f\"Saved input records: {len(input_records)} -> {input_path.resolve()}\")\n",
|
|
"print(f\"Saved parser records: {len(parser_records)} -> {parser_path.resolve()}\")\n",
|
|
"print(f\"Saved server records: {len(lang_server_records)} -> {server_path.resolve()}\")"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"id": "929bb59f",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": []
|
|
}
|
|
],
|
|
"metadata": {
|
|
"kernelspec": {
|
|
"display_name": "assistance-engine",
|
|
"language": "python",
|
|
"name": "python3"
|
|
},
|
|
"language_info": {
|
|
"codemirror_mode": {
|
|
"name": "ipython",
|
|
"version": 3
|
|
},
|
|
"file_extension": ".py",
|
|
"mimetype": "text/x-python",
|
|
"name": "python",
|
|
"nbconvert_exporter": "python",
|
|
"pygments_lexer": "ipython3",
|
|
"version": "3.12.11"
|
|
}
|
|
},
|
|
"nbformat": 4,
|
|
"nbformat_minor": 5
|
|
}
|