homework, pet project DE Dmitry_Medvedev #1

Open
dmitry_medvedev wants to merge 266 commits from md_branch into main
2 changed files with 15 additions and 14 deletions
Showing only changes of commit fb2df83786 - Show all commits
+6 -6
View File
@@ -21,7 +21,7 @@
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 32,
"id": "ad2441e7",
"metadata": {},
"outputs": [
@@ -156,7 +156,7 @@
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 55,
"id": "d3c6683e",
"metadata": {},
"outputs": [
@@ -172,11 +172,11 @@
],
"source": [
"def build_mart_name(entity_name, layer):\n",
" print(f\"{layer}_{entity_name}\")\n",
" return f\"{layer}_{entity_name}\"\n",
Outdated
Review

По условию build_mart_name должна возвращать готовую строку имени витрины, а сейчас возвращает кортеж из двух аргументов. Формирование имени выполняется снаружи, только при печати. Перенеси формирование строки внутрь функции и поправь использование возвращаемого результата. Угловые скобки в шаблоне обозначают подставляемые значения: для первого примера ожидается dm_orders, без символов < и >.

По условию build_mart_name должна возвращать готовую строку имени витрины, а сейчас возвращает кортеж из двух аргументов. Формирование имени выполняется снаружи, только при печати. Перенеси формирование строки внутрь функции и поправь использование возвращаемого результата. Угловые скобки в шаблоне обозначают подставляемые значения: для первого примера ожидается dm_orders, без символов < и >.
Outdated
Review

В задании 4 осталось замечание о возвращаемом значении: build_mart_name печатает имя витрины, но возвращает None. По условию функция должна возвращать сформированную строку, чтобы её можно было использовать дальше. Исправь возврат результата и проверь именно возвращаемое значение на трёх примерах из задания.

В задании 4 осталось замечание о возвращаемом значении: build_mart_name печатает имя витрины, но возвращает None. По условию функция должна возвращать сформированную строку, чтобы её можно было использовать дальше. Исправь возврат результата и проверь именно возвращаемое значение на трёх примерах из задания.
"\n",
"build_mart_name(\"orders\", \"dm\")\n",
"build_mart_name(\"users\", \"core\")\n",
"build_mart_name(\"payments\", \"stg\")"
"print(build_mart_name(\"orders\", \"dm\"))\n",
"print(build_mart_name(\"users\", \"core\"))\n",
"print(build_mart_name(\"payments\", \"stg\"))"
]
}
],
@@ -16,7 +16,7 @@
},
{
"cell_type": "code",
"execution_count": 1,
"execution_count": 59,
"id": "2af8c0ea",
"metadata": {},
"outputs": [
@@ -30,9 +30,9 @@
],
"source": [
"def log_job_start(job_name, level = \"INFO\", env = \"dev\"):\n",
" print(f\"[{level}] {job_name} load_users started in {env}\")\n",
" print(f\"[{level}] Job {job_name} started in {env}\")\n",
Outdated
Review

Имя процесса load_users зафиксировано в строке, а job_name подставляется вместо слова Job. Например, вызов log_job_start("load_orders") выведет «[INFO] load_orders load_users started in dev». По условию имя процесса должно браться из аргумента, сохраняя формат «[INFO] Job load_orders started in dev». Проверь, какая часть сообщения должна быть постоянной.

Имя процесса load_users зафиксировано в строке, а job_name подставляется вместо слова Job. Например, вызов log_job_start("load_orders") выведет «[INFO] load_orders load_users started in dev». По условию имя процесса должно браться из аргумента, сохраняя формат «[INFO] Job load_orders started in dev». Проверь, какая часть сообщения должна быть постоянной.
"\n",
"log_job_start(\"Job\")"
"log_job_start(\"load_users\")"
]
},
{
@@ -138,7 +138,7 @@
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 94,
"id": "ceb7c30b",
"metadata": {},
"outputs": [
@@ -148,7 +148,7 @@
"'Row is valid'"
]
},
"execution_count": 55,
"execution_count": 94,
"metadata": {},
"output_type": "execute_result"
}
@@ -158,10 +158,11 @@
" if required_fields is None:\n",
" required_fields = [\"id\"]\n",
" for field in required_fields:\n",
" if field not in required_fields:\n",
" if field not in row:\n",
Outdated
Review

Здесь поле проверяется в required_fields, из которого оно только что взято, поэтому отсутствие поля в row никогда не обнаруживается: даже validate_row({}) возвращает «Row is valid». Проверь, в каком объекте нужно искать обязательные поля. Также успешный return внутри цикла завершает проверку после первого поля: остальные поля не проверяются. Успех должен означать, что проверены все обязательные поля. Проверь случай row={"id": 1}, required_fields=["id", "email"] — ожидается «Missing field: email».

Здесь поле проверяется в required_fields, из которого оно только что взято, поэтому отсутствие поля в row никогда не обнаруживается: даже validate_row({}) возвращает «Row is valid». Проверь, в каком объекте нужно искать обязательные поля. Также успешный return внутри цикла завершает проверку после первого поля: остальные поля не проверяются. Успех должен означать, что проверены все обязательные поля. Проверь случай row={"id": 1}, required_fields=["id", "email"] — ожидается «Missing field: email».
" return f\"Missing field: {field}\"\n",
" else:\n",
" return \"Row is valid\""
" return \"Row is valid\"\n",
"\n",
"validate_row({\"id\": 1, \"email\":2}, [\"id\", \"email\"])"
]
}
],