Python/ django
63.6K subscribers
2.25K photos
128 videos
48 files
2.99K links
по всем вопросам @haarrp

@itchannels_telegram - 🔥 все ит каналы

@ai_machinelearning_big_data -ML

@ArtificialIntelligencedl -AI

@datascienceiot - 📚

@pythonlbooks

РКН: clck.ru/3FmxmM
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
🖥 PostgreSQL: LATERAL JOIN

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

Обычный JOIN не справится, но есть мощный инструмент - LATERAL JOIN. Он позволяет вызывать подзапрос для каждой строки внешней таблицы, сохраняя контекст.

Этот приём часто заменяет громоздкие запросы или оконные функции и работает значительно быстрее на PostgreSQL.

Используй его, когда нужно сделать что-то «на лету» для каждой записи.
Please open Telegram to view this post
VIEW IN TELEGRAM
23👍11🔥4😢1
🤖 OpenTrack: Открытая система трекинга движений

OpenTrack — это кодовая база для трекинга движений гуманоидов, использующая MuJoCo для симуляции и поддерживающая многопроцессорное обучение. Проект ориентирован на исследование и разработку в области робототехники.

🚀 Основные моменты:
- Открытый исходный код для трекинга движений
- Поддержка многопроцессорного обучения
- Использует MuJoCo для симуляции
- Реализует различные сценарии обучения

📌 GitHub: https://github.com/GalaxyGeneralRobotics/OpenTrack
8👍4🔥4
This media is not supported in your browser
VIEW IN TELEGRAM
⚡️ Python трюк: безопасное завершение потоков через флаг события

Многие просто daemon=True ставят и надеются, что всё само завершится. Но это ломает контроль и может привести к утечкам. Проще и надёжнее — использовать общий Event, чтобы уведомлять потоки о завершении.


import threading
import time

stop_event = threading.Event()

def worker():
while not stop_event.is_set():
print("Работаю...")
time.sleep(0.3)
print("Останавливаюсь корректно.")

thread = threading.Thread(target=worker)
thread.start()

time.sleep(1.2)
stop_event.set() # посылаем сигнал остановки
thread.join()
print("Все потоки завершены корректно.")
16👍3🔥3😁3
⚡️ Pytest markers: ускоряем разработку и тестирование

Когда проект растёт — часть тестов становится медленной (ML-тренировка, GPU-инференс, интеграционные проверки).
Pytest позволяет помечать такие тесты и запускать только нужные группы.

В примере:
- @pytest.mark.fast — быстрые юнит-тесты
- @pytest.mark.slow — долгие тесты (например, обучение модели)
- @pytest.mark.gpu — тесты, требующие GPU

Команды:
# Запустить только быстрые
pytest -m fast

# Запустить всё, кроме slow
pytest -m "not slow"

Идеально, когда нужно:
- быстро прогнать код перед пушем
- запускать тяжёлые тесты по расписанию/в CI
- разделить ML-тесты по ресурсам (CPU/GPU)

Используйте маркеры — и ваша разработка станет быстрее и чище 🧪⚙️

#pytest #python #testing #mlengineering #unittesting #devtools
👍5🔥32