Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
add hardcoded response
  • Loading branch information
abu committed Mar 25, 2023
commit ab697ac20d8760b7d9aa2d7f552a95f9ca582bb1
64 changes: 60 additions & 4 deletions race-ms/api/learn.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
from fastapi import APIRouter
from fastapi import APIRouter, Form
from typing import Annotated
from database import Task as TaskModel

import services
Expand All @@ -23,9 +24,64 @@ async def add_task(task: Task):

@router.post("/{level}", tags=["learn"])
async def validate_answer(level: int, regex: Annotated[str, Form()],):
return services.check_regex()

level = TaskModel.get(level=level)
#return services.check_regex()
return level

#@router.get("/", tags=["learn"])
#async def get_tasks() -> list[Task]:
# return await TaskModel.all()

@router.get("/", tags=["learn"])
async def get_tasks() -> list[Task]:
return await TaskModel.all()
response = [
{
"level": 0,
"title": "Основы синтаксиса",
"theory_text": "В первую очередь стоит заметить, что любая строка сама по себе является регулярным выражением. Так, выражению Хаха, очевидно, будет соответствовать строка «Хаха» и только она. Регулярки являются регистрозависимыми, поэтому строка «хаха» (с маленькой буквы) уже не будет соответствовать выражению выше.",
"task_description": "Найдите строку «хохо»",
"text": "Дед мороз увидел мой сюрприз и сказал хохо! Хехе в этом было мало, но было забавно! ",
"expected_result": "хохо"
},
{
"level": 1,
"title": "aa",
"theory_text": "Однако уже здесь следует быть аккуратным — как и любой язык, регексы имеют спецсимволы, которые нужно экранировать. Вот их список: ^ $ * + ? { } [ ] \\ | ( ). Экранирование осуществляется обычным способом — добавлением \\ перед спецсимволом.",
"task_description": "Используйте спецсимвол:",
"text": "Пример текста",
"expected_result": "pattern"
},
{
"level": 4,
"title": "Квантификаторы",
"theory_text": "Вернёмся к нашему примеру. Что, если в «смеющемся» междометии будет больше одной гласной между буквами «х», например «Хаахаааа»? Наша старая регулярка уже не сможет нам помочь. Здесь нам придётся воспользоваться квантификаторами. Попробуйте Ха{3}ха",
"task_description": "Хаахаааа",
"text": "Хаахаааа",
"expected_result": "Хаахаааа"
},
{
"level": 2,
"title": "Скобочные группы",
"theory_text": "Для нашего шаблона «смеющегося» междометия осталась самая малость — учесть, что буква «х» может встречаться более одного раза, например, «Хахахахааахахооо», а может и вовсе заканчиваться на букве «х». Вероятно, здесь нужно применить квантификатор для группы [аиое]+х, но если мы просто напишем [аиое]х+, то квантификатор + будет относиться только к символу «х», а не ко всему выражению. Чтобы это исправить, выражение нужно взять в круглые скобки: ([аиое]х)+. Таким образом, наше выражение превращается в [Хх]([аиое]х?)+ — сначала идёт заглавная или строчная «х», а потом произвольное ненулевое количество гласных, которые (возможно, но не обязательно) перемежаются одиночными строчными «х». Однако это выражение решает проблему лишь частично — под это выражение попадут и такие строки, как, например, «хихахех» — кто-то может быть так и смеётся, но допущение весьма сомнительное. Очевидно, мы можем использовать набор из всех гласных лишь единожды, а потом должны как-то опираться на результат первого ",
"task_description": "Выполните задание для закрепления!",
"text": "Исходный текст Adipisicing porro enim enim libero saepe? Cum sunt illo temporibus incidunt quam Vero doloribus quasi iure magni numquam mollitia! Deserunt quae similique consequatur laboriosam enim Magnam ipsam molestiae harum id",
"expected_result": "pattern"
},
{
"level": 3,
"title": "Задание для закрепления",
"theory_text": "Время имеет формат часы:минуты. И часы, и минуты состоят из двух цифр, пример: 09:00. Напишите RegEx выражение для поиска времени в строке: «Завтрак в 09:00». Учтите, что «37:98» — некорректное время.",
"task_description": "Найдите время",
"text": "Завтрак в 09:00. Ужин в 37:98",
"expected_result": "09.00"
},
{
"level": 4,
"title": "Задание для закрепления",
"theory_text": "Итак, нужно написать выражение для описания цвета, который начинается с «#», за которым следуют 6 шестнадцатеричных символов. Шестнадцатеричный символ можно описать с помощью [0-9a-fA-F]. Для его шестикратного повторения мы будем использовать квантификатор {6}.",
"task_description": "Напишите регулярное выражение для поиска HTML-цвета, заданного как #ABCDEF, то есть # и содержит затем 6 шестнадцатеричных символов.",
"text": "Бирюзовый цвет: #ABCDEF, розовый цвет: #d3CDEF",
"expected_result": "#ABCDEF,#d3CDEF"
}
]
return response
9 changes: 6 additions & 3 deletions race-ms/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,21 +12,24 @@
version='1.0.0',
)

#origins = settings.ALLOWED_HOSTS.split(',')
origins = ['*']

app.add_middleware(
CORSMiddleware,
allow_origins=settings.ALLOWED_HOSTS.split(','),
allow_origins=origins,
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)

register_tortoise(
'''register_tortoise(
app,
db_url=settings.get_db_uri(),
modules={"models": ["database.models"]},
generate_schemas=True,
add_exception_handlers=True,
)
)'''


app.include_router(router)
2 changes: 1 addition & 1 deletion race-ms/services/__init__.py
Original file line number Diff line number Diff line change
@@ -1 +1 @@
from learn import check_regex
from .learn import check_regex