397 subscribers
226 photos
46 videos
11 files
305 links
Data Engineering Technologies.
SQL, Python, Kafka, Spark, Pandas, Airflow, Clickhouse, Greenplum, Postgres, dbt

Буст канала тут - https://t.me/boost/data_engi
Download Telegram
🧐
Небольшая подборка не очень популярных, но полезных библиотек для анализа данных

PySheets - предоставляет пользовательский интерфейс для работы с электронными таблицами на Python.
Используй Pandas, создавай диаграммы, импортируй таблицы Excel, анализируй данные и создавай отчеты.

py2wasm - преобразует программы и данные на Python в WebAssembly и запускает их в ~3 раза быстрее.

databonsai - библиотека на Python, которая использует LLM для задач очистки данных, таких как категоризация, преобразование и извлечение.

#py #python #dev
Please open Telegram to view this post
VIEW IN TELEGRAM
6❤‍🔥32
from dataclasses import dataclass


@dataclass
class Car:
mark: str
model: str = 'Supra'
colour: str = 'red'
max_speed: int = 300


print(Car().max_speed)

#py #python #task #quiz
8
DE
TDD - это не про тесты. Это про проектирование кода через маленькие, проверяемые шаги. ▶️ 📕 Что такое TDD - Test-Driven Development? Это подход, при котором ты сначала пишешь тест, потом минимально необходимую реализацию, чтобы он прошёл, и только потом…
Спасибо за огоньки, лови пример TDD.

Сначала напишешь тест, потом минимальный код, потом рефакторинг. Всё сделаешь малыми шагами.

〰️〰️〰️〰️〰️〰️〰️〰️

Допустим, ты хочешь реализовать функцию is_prime(n), которая определяет, простое ли число.


🧪 Шаг 1. Пишешь провальный тест (Red)

# test_math_utils.py

import pytest
from math_utils import is_prime


def test_two_is_prime():
assert is_prime(2) is True

Тест упадёт, потому что math_utils.py и is_prime ещё не существуют.

〰️〰️〰️〰️〰️〰️〰️〰️

✔️ Шаг 2. Пишешь минимальную реализацию (Green)

# math_utils.py

def is_prime(n: int) -> bool:
return True # пока просто чтобы тест прошёл

Теперь test_two_is_prime пройдёт, но код заведомо неправильный.

〰️〰️〰️〰️〰️〰️〰️〰️

🧼 Шаг 3. Добавляешь ещё тестов и улучшаешь код (Refactor)

# test_math_utils.py

import pytest
from math_utils import is_prime


def test_two_is_prime():
assert is_prime(2) is True


def test_three_is_prime():
assert is_prime(3) is True


def test_four_is_not_prime():
assert is_prime(4) is False


def test_one_is_not_prime():
assert is_prime(1) is False

Теперь текущая реализация return True уже не прокатит - тесты ломаются.

〰️〰️〰️〰️〰️〰️〰️〰️

⚙️ Шаг 4. Пишешь реальную реализацию, чтобы пройти все тесты

# math_utils.py

def is_prime(n: int) -> bool:
if n < 2:
return False
for i in range(2, int(n ** 0.5) + 1):
if n % i == 0:
return False
return True

✔️ Все тесты зелёные.

🙂🙂🙂🙂🙂🙂🙂🙂

🧠 Что ты получил?

🔘Писал по одному тесту, каждый раз с минимальными правками кода

🔘Итерации были маленькими и осмысленными

🔘Получил рабочую и протестированную функцию

И не пришлось гадать, где баг, т.к. ты строил поведение заранее.

*️⃣*️⃣*️⃣*️⃣*️⃣*️⃣*️⃣*️⃣

Хочешь посмотреть на организацию тестов с помощью параметризации pytest?
Накидай ещё огоньков 🙃

#TDD #py
Please open Telegram to view this post
VIEW IN TELEGRAM
9❤‍🔥5😁11