homework, pet project DE Dmitry_Medvedev #1

Open
dmitry_medvedev wants to merge 266 commits from md_branch into main
Owner
No description provided.
dmitry_medvedev added 253 commits 2026-09-26 19:52:12 +00:00
2) Сделал домашку в Типы данных - Задание 1
Перезалью в новой ветке
Практика: 'JOIN' - 'Массивы, Map и вложенные структуры*' - 'Партиции' - 'Индексы'.
Сделал DROP TABLE для вьюх,
изменил age UInt8 на UInt32
2. Добавил схемы в Этап 3
Reviewed-on: https://gitea.de-infra.servehttp.com/de-infrastructure/DWH/pulls/121
Reviewed-by: aleksey bogatyrev <abogatyrev@example.com>
Reviewed-on: https://gitea.de-infra.servehttp.com/de-infrastructure/DWH/pulls/104
Reviewed-by: aleksey bogatyrev <abogatyrev@example.com>
Reviewed-on: https://gitea.de-infra.servehttp.com/de-infrastructure/DWH/pulls/192
Reviewed-on: https://gitea.de-infra.servehttp.com/de-infrastructure/DWH/pulls/193
Reviewed-on: https://gitea.de-infra.servehttp.com/de-infrastructure/DWH/pulls/194
Reviewed-on: https://gitea.de-infra.servehttp.com/de-infrastructure/DWH/pulls/154
Reviewed-by: aleksey bogatyrev <abogatyrev@example.com>
Reviewed-on: https://gitea.de-infra.servehttp.com/de-infrastructure/DWH/pulls/161
Reviewed-by: aleksey bogatyrev <abogatyrev@example.com>
Reviewed-on: https://gitea.de-infra.servehttp.com/de-infrastructure/DWH/pulls/166
Reviewed-by: aleksey bogatyrev <abogatyrev@example.com>
Reviewed-on: https://gitea.de-infra.servehttp.com/de-infrastructure/DWH/pulls/174
Reviewed-by: aleksey bogatyrev <abogatyrev@example.com>
Reviewed-on: https://gitea.de-infra.servehttp.com/de-infrastructure/DWH/pulls/176
Reviewed-by: aleksey bogatyrev <abogatyrev@example.com>
Reviewed-on: https://gitea.de-infra.servehttp.com/de-infrastructure/DWH/pulls/179
Reviewed-by: aleksey bogatyrev <abogatyrev@example.com>
Reviewed-on: https://gitea.de-infra.servehttp.com/de-infrastructure/DWH/pulls/185
Reviewed-by: aleksey bogatyrev <abogatyrev@example.com>
Reviewed-on: https://gitea.de-infra.servehttp.com/de-infrastructure/DWH/pulls/199
Reviewed-by: aleksey bogatyrev <abogatyrev@example.com>
Reviewed-on: https://gitea.de-infra.servehttp.com/de-infrastructure/DWH/pulls/180
Reviewed-by: aleksey bogatyrev <abogatyrev@example.com>
Reviewed-on: https://gitea.de-infra.servehttp.com/de-infrastructure/DWH/pulls/167
Reviewed-by: aleksey bogatyrev <abogatyrev@example.com>
Reviewed-on: https://gitea.de-infra.servehttp.com/de-infrastructure/DWH/pulls/187
Reviewed-on: https://gitea.de-infra.servehttp.com/de-infrastructure/DWH/pulls/93
Reviewed-by: aleksey bogatyrev <abogatyrev@example.com>
Reviewed-on: https://gitea.de-infra.servehttp.com/de-infrastructure/DWH/pulls/105
Reviewed-by: aleksey bogatyrev <abogatyrev@example.com>
Reviewed-on: https://gitea.de-infra.servehttp.com/de-infrastructure/DWH/pulls/95
Reviewed-by: aleksey bogatyrev <abogatyrev@example.com>
Reviewed-on: https://gitea.de-infra.servehttp.com/de-infrastructure/DWH/pulls/211
Reviewed-by: aleksey bogatyrev <abogatyrev@example.com>
dmitry_medvedev added 1 commit 2026-09-26 19:55:06 +00:00
dmitry_medvedev changed title from ddl, dml tasks done to homework, pet project DE Dmitry_Medvedev 2026-09-26 19:56:05 +00:00
dmitry_medvedev added 1 commit 2026-09-28 16:24:56 +00:00
aleksei_bogatyrev requested changes 2026-10-01 23:55:33 +00:00
Dismissed
aleksei_bogatyrev left a comment
First-time contributor

Дал комменты

Дал комменты
@@ -0,0 +103,4 @@
"surname = input('Какая у тебя фамилия?')\n",
"favorite_subject = input('Какой твой любимый предмет?')\n",
"\n",
"print(f'Тебя зовут {name} {surname}.')\n",
First-time contributor

В задаче 2 вместо визитки из четырёх строк выводятся два предложения: отсутствует заголовок, имя и фамилия объединены в одну строку. По условию нужны заголовок «Твоя визитка:» и отдельные строки с подписями для имени, фамилии и любимого предмета. Приведи структуру вывода к образцу из задания, сохранив использование введённых значений.

В задаче 2 вместо визитки из четырёх строк выводятся два предложения: отсутствует заголовок, имя и фамилия объединены в одну строку. По условию нужны заголовок «Твоя визитка:» и отдельные строки с подписями для имени, фамилии и любимого предмета. Приведи структуру вывода к образцу из задания, сохранив использование введённых значений.
Author
Owner

исправлено

исправлено
aleksei_bogatyrev requested changes 2026-10-01 23:57:01 +00:00
Dismissed
aleksei_bogatyrev left a comment
First-time contributor

Дал комменты

Дал комменты
@@ -0,0 +94,4 @@
"print(name)\n",
"print(surname)\n",
"print(f'{name} {surname}')\n",
"print(len(name)+len(surname))"
First-time contributor

В задаче 2 длина полного имени вычисляется неверно: выводится «Dima Medvedev», но при подсчёте пропущен разделитель между именем и фамилией. Примени len() к тому полному имени, которое выводишь.

В задаче 2 длина полного имени вычисляется неверно: выводится «Dima Medvedev», но при подсчёте пропущен разделитель между именем и фамилией. Примени len() к тому полному имени, которое выводишь.
Author
Owner

исправлено

исправлено
@@ -0,0 +177,4 @@
"source": [
"a = 3\n",
"b = 5\n",
"print(a * (b + a))\n",
First-time contributor

В задаче 4 нужно создать две переменные с результатами выражений. Сейчас a и b хранят исходные числа, а результаты вычисляются только внутри print(). Сохрани результаты выражений со скобками и без них в переменных и выведи их.

В задаче 4 нужно создать две переменные с результатами выражений. Сейчас a и b хранят исходные числа, а результаты вычисляются только внутри print(). Сохрани результаты выражений со скобками и без них в переменных и выведи их.
Author
Owner

исправлено

исправлено
aleksei_bogatyrev approved these changes 2026-10-01 23:58:08 +00:00
Dismissed
aleksei_bogatyrev left a comment
First-time contributor

Ок, иди дальше

Ок, иди дальше
aleksei_bogatyrev approved these changes 2026-10-01 23:59:33 +00:00
Dismissed
aleksei_bogatyrev left a comment
First-time contributor

Ок, иди дальше

Ок, иди дальше
aleksei_bogatyrev approved these changes 2026-10-02 00:15:10 +00:00
Dismissed
aleksei_bogatyrev left a comment
First-time contributor

Ок, иди дальше

Ок, иди дальше
aleksei_bogatyrev requested changes 2026-10-02 00:16:17 +00:00
Dismissed
aleksei_bogatyrev left a comment
First-time contributor

Дал комменты

Дал комменты
@@ -0,0 +319,4 @@
"print(a[0])\n",
"print(a[-1])\n",
"print(a.upper())\n",
"print(a.lower())"
First-time contributor

В задаче 7 требуется вывести введённую строку в обратном порядке и использовать слайс. Сейчас lower() только переводит буквы в нижний регистр, оставляя порядок символов прежним. Замени эту операцию на разворот строки с помощью слайса.

В задаче 7 требуется вывести введённую строку в обратном порядке и использовать слайс. Сейчас lower() только переводит буквы в нижний регистр, оставляя порядок символов прежним. Замени эту операцию на разворот строки с помощью слайса.
Author
Owner

исправлено

исправлено
aleksei_bogatyrev requested changes 2026-10-02 00:17:29 +00:00
Dismissed
aleksei_bogatyrev left a comment
First-time contributor

Дал комменты

Дал комменты
@@ -0,0 +144,4 @@
"id": "6046a2d0",
"metadata": {},
"source": [
"- Задача 5. Части списка колонок\n",
First-time contributor

Пропущена задача 4 «Добавление и удаление источников»: после задачи 3 сразу идёт задача 5. Добавь решение: создай список из трёх источников данных, добавь excel в конец через append(), удали json через remove() или pop() и выведи итоговый список.

Пропущена задача 4 «Добавление и удаление источников»: после задачи 3 сразу идёт задача 5. Добавь решение: создай список из трёх источников данных, добавь `excel` в конец через `append()`, удали `json` через `remove()` или `pop()` и выведи итоговый список.
Author
Owner

не могу исправить, с gitea пропали все задачи, остались только первые три, см скрин

Снимок экрана — 2026-10-09 в 00.10.06.png
не могу исправить, с gitea пропали все задачи, остались только первые три, см скрин <img width="1440" alt="Снимок экрана — 2026-10-09 в 00.10.06.png" src="attachments/4e1ef4d5-608d-43c4-a881-85477fc24816">
aleksei_bogatyrev requested changes 2026-10-02 00:19:04 +00:00
Dismissed
aleksei_bogatyrev left a comment
First-time contributor

Дал комменты

Дал комменты
@@ -0,0 +40,4 @@
"file_info = {'name_file':'123.py', 'format':'py', 'size':'128kB'}\n",
"print(file_info)\n",
"print(file_info['name_file'])\n",
"print(type(file_info))"
First-time contributor

В задаче 1 нужно отдельно вывести формат файла. Сейчас выводится тип самого словаря — <class 'dict'>. Обратись к значению, которое хранит формат файла.

В задаче 1 нужно отдельно вывести формат файла. Сейчас выводится тип самого словаря — `<class 'dict'>`. Обратись к значению, которое хранит формат файла.
Author
Owner

исправлено, звучало двусмысленно

исправлено, звучало двусмысленно
@@ -0,0 +161,4 @@
"dict = {'table_name':'123', 'rows_count':24, 'file_format':'csv', 'load_date':'12-12-2024'}\n",
"del dict['table_name']\n",
"dict.pop('rows_count')\n",
"print(dict)"
First-time contributor

В задаче 4 требуется вывести словарь после каждого удаления. Сейчас показано только состояние после обеих операций; добавь вывод промежуточного состояния после del.

В задаче 4 требуется вывести словарь после каждого удаления. Сейчас показано только состояние после обеих операций; добавь вывод промежуточного состояния после `del`.
Author
Owner

исправлено

исправлено
@@ -0,0 +202,4 @@
],
"source": [
"dict = {'id':123, 'name':'dimasta', 'city':'ufa'}\n",
"print(dict.get('name'))\n",
First-time contributor

В задаче 5 нужно вывести результаты проверки наличия ключей name и email. Сейчас get() выводит значение и None, а не результаты проверки наличия. Кроме того, None может быть значением существующего ключа. Вспомни оператор проверки ключа из теории и примени проверку к обоим ключам.

В задаче 5 нужно вывести результаты проверки наличия ключей `name` и `email`. Сейчас `get()` выводит значение и `None`, а не результаты проверки наличия. Кроме того, `None` может быть значением существующего ключа. Вспомни оператор проверки ключа из теории и примени проверку к обоим ключам.
Author
Owner

исправлено

исправлено
aleksei_bogatyrev approved these changes 2026-10-02 00:20:04 +00:00
Dismissed
aleksei_bogatyrev left a comment
First-time contributor

Ок, иди дальше

Ок, иди дальше
dmitry_medvedev added 1 commit 2026-10-08 19:18:05 +00:00
dmitry_medvedev added 2 commits 2026-10-08 19:37:36 +00:00
dmitry_medvedev added 1 commit 2026-10-08 21:02:21 +00:00
aleksei_bogatyrev approved these changes 2026-10-08 21:04:03 +00:00
Dismissed
aleksei_bogatyrev left a comment
First-time contributor

Ок, иди дальше

Ок, иди дальше
aleksei_bogatyrev approved these changes 2026-10-08 21:06:11 +00:00
Dismissed
aleksei_bogatyrev left a comment
First-time contributor

Ок, иди дальше

Ок, иди дальше
aleksei_bogatyrev approved these changes 2026-10-08 21:07:54 +00:00
Dismissed
aleksei_bogatyrev left a comment
First-time contributor

Ок, иди дальше

Ок, иди дальше
aleksei_bogatyrev approved these changes 2026-10-08 21:09:55 +00:00
Dismissed
aleksei_bogatyrev left a comment
First-time contributor

Ок, иди дальше

Ок, иди дальше
aleksei_bogatyrev approved these changes 2026-10-08 23:02:45 +00:00
Dismissed
aleksei_bogatyrev left a comment
First-time contributor

Ок, иди дальше

Ок, иди дальше
aleksei_bogatyrev approved these changes 2026-10-09 09:03:10 +00:00
Dismissed
aleksei_bogatyrev left a comment
First-time contributor

Ок, иди дальше

Ок, иди дальше
dmitry_medvedev added 1 commit 2026-10-09 10:50:32 +00:00
aleksei_bogatyrev approved these changes 2026-10-09 21:03:02 +00:00
Dismissed
aleksei_bogatyrev left a comment
First-time contributor

Ок, иди дальше

Ок, иди дальше
dmitry_medvedev added 1 commit 2026-10-18 20:26:21 +00:00
aleksei_bogatyrev requested changes 2026-10-18 22:13:21 +00:00
Dismissed
aleksei_bogatyrev left a comment
First-time contributor

Дал комменты

Дал комменты
@@ -0,0 +172,4 @@
],
"source": [
"def build_mart_name(entity_name, layer):\n",
" return entity_name, layer\n",
First-time contributor

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

По условию build_mart_name должна возвращать готовую строку имени витрины, а сейчас возвращает кортеж из двух аргументов. Формирование имени выполняется снаружи, только при печати. Перенеси формирование строки внутрь функции и поправь использование возвращаемого результата. Угловые скобки в шаблоне обозначают подставляемые значения: для первого примера ожидается dm_orders, без символов < и >.
dmitry_medvedev added 1 commit 2026-10-19 18:54:57 +00:00
dmitry_medvedev added 1 commit 2026-10-19 19:50:32 +00:00
aleksei_bogatyrev requested changes 2026-10-19 22:19:34 +00:00
Dismissed
aleksei_bogatyrev left a comment
First-time contributor

Дал комменты

Дал комменты
@@ -0,0 +30,4 @@
],
"source": [
"def log_job_start(job_name, level = \"INFO\", env = \"dev\"):\n",
" print(f\"[{level}] {job_name} load_users started in {env}\")\n",
First-time contributor

Имя процесса 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». Проверь, какая часть сообщения должна быть постоянной.
@@ -0,0 +158,4 @@
" if required_fields is None:\n",
" required_fields = [\"id\"]\n",
" for field in required_fields:\n",
" if field not in required_fields:\n",
First-time contributor

Здесь поле проверяется в 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».
aleksei_bogatyrev requested changes 2026-10-19 22:46:21 +00:00
Dismissed
aleksei_bogatyrev left a comment
First-time contributor

Дал комменты

Дал комменты
@@ -0,0 +172,4 @@
],
"source": [
"def build_mart_name(entity_name, layer):\n",
" print(f\"{layer}_{entity_name}\")\n",
First-time contributor

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

В задании 4 осталось замечание о возвращаемом значении: build_mart_name печатает имя витрины, но возвращает None. По условию функция должна возвращать сформированную строку, чтобы её можно было использовать дальше. Исправь возврат результата и проверь именно возвращаемое значение на трёх примерах из задания.
dmitry_medvedev added 1 commit 2026-10-21 16:29:12 +00:00
aleksei_bogatyrev approved these changes 2026-10-22 11:57:45 +00:00
Dismissed
aleksei_bogatyrev left a comment
First-time contributor

Ок, иди дальше

Ок, иди дальше
dmitry_medvedev added 1 commit 2026-10-22 17:23:48 +00:00
aleksei_bogatyrev approved these changes 2026-10-22 18:57:18 +00:00
aleksei_bogatyrev left a comment
First-time contributor

Ок, иди дальше

Ок, иди дальше
dmitry_medvedev added 1 commit 2026-10-22 18:59:06 +00:00
aleksei_bogatyrev requested changes 2026-10-22 22:56:17 +00:00
aleksei_bogatyrev left a comment
First-time contributor

Дал комменты

Дал комменты
@@ -0,0 +122,4 @@
" \"settings\" : kwargs\n",
" }\n",
" return config\n",
"result = create_connection_config(\"source_pg\",host=\"localhost\",port=5432,user=\"etl_user\")\n",
First-time contributor

Тут вызывается create_connection_config, а выше определена create_coonnection_config. Из-за этого на чистом ядре вызов упадёт с NameError — бля, одна лишняя буква ломает получение конфига. Сверь имя в определении и вызове; сохранённый вывод ячейки эту ошибку не устраняет.

Тут вызывается `create_connection_config`, а выше определена `create_coonnection_config`. Из-за этого на чистом ядре вызов упадёт с `NameError` — бля, одна лишняя буква ломает получение конфига. Сверь имя в определении и вызове; сохранённый вывод ячейки эту ошибку не устраняет.
@@ -0,0 +169,4 @@
"source": [
"def run_etl_task(tsk_name, *args, **kwargs):\n",
" config = [tsk_name, args, kwargs]\n",
" return config\n",
First-time contributor

Сейчас run_etl_task только возвращает данные, а печатает их внешний print. При обычном вызове из условия сама функция ничего не выводит, хотя должна показать имя задачи, колонки и опции. Посмотри, где должен находиться вывод, чтобы он работал при каждом вызове функции.

Сейчас `run_etl_task` только возвращает данные, а печатает их внешний `print`. При обычном вызове из условия сама функция ничего не выводит, хотя должна показать имя задачи, колонки и опции. Посмотри, где должен находиться вывод, чтобы он работал при каждом вызове функции.
aleksei_bogatyrev requested changes 2026-10-22 23:20:03 +00:00
aleksei_bogatyrev left a comment
First-time contributor

Дал комменты

Дал комменты
@@ -0,0 +45,4 @@
"count = 0\n",
"for order in orders:\n",
" if order[\"status\"] == \"paid\":\n",
" count += 1\n",
First-time contributor

Тут за каждый оплаченный заказ добавляется единица, поэтому получается количество — 2, а нужна сумма — 2000. Фильтр по статусу работает правильно. Посмотри, какое значение из заказа нужно накапливать вместо единицы.

Тут за каждый оплаченный заказ добавляется единица, поэтому получается количество — 2, а нужна сумма — 2000. Фильтр по статусу работает правильно. Посмотри, какое значение из заказа нужно накапливать вместо единицы.
@@ -0,0 +93,4 @@
"for order in orders:\n",
" if order[\"amount\"] > max_order[\"amount\"]:\n",
" max_order = order\n",
"pprint(max_order, sort_dicts=False)"
First-time contributor

В ноутбуке pprint нигде не импортирован и не определён: после перезапуска ядра этот вызов упадёт с NameError, и вывод заказа отвалится нахуй. Такой же вызов есть в задаче 3. Добавь нужный импорт до первого использования или используй встроенный способ вывода; затем проверь ячейки сверху вниз на свежем ядре.

В ноутбуке `pprint` нигде не импортирован и не определён: после перезапуска ядра этот вызов упадёт с `NameError`, и вывод заказа отвалится нахуй. Такой же вызов есть в задаче 3. Добавь нужный импорт до первого использования или используй встроенный способ вывода; затем проверь ячейки сверху вниз на свежем ядре.
This pull request can be merged automatically.
You are not authorized to merge this pull request.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin md_branch:md_branch
git checkout md_branch
Sign in to join this conversation.
No Reviewers
No Label
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: dmitry_medvedev/homework#1