Forwarded from Библиотека задач по Data Science | тесты, код, задания
🤔5🔥4
Python Разработчик — от 250 000 до 280 000₽, удалёнка
SDET Python (KLDFS), удалёнка
Python-разработчик — до 1 800 $, удалёнка
Python разработчик — от 1500 до 3000 $, удалёнка
Senior Python Developer (Analytics) — от 300 000 до 400 000 ₽, удалёнка
Библиотека питониста
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2👍1😁1
Шпаргалка: типизированные структуры данных в Python
Python поддерживает типизацию с помощью аннотаций, а также предоставляет удобные инструменты для описания структур — TypedDict и dataclasses.
🆖 Typed Dictionaries (Типизированные словари)
TypedDict похож на обычный словарь, но с подсказками типов для ключей и значений. Это помогает задать чёткие ожидания, какие ключи и значения должны быть в словаре.
Пример:
🆖 Dataclasses (Датаклассы)
Датаклассы упрощают создание классов с данными, автоматически генерируя методы вроде
Пример:
🆖 Вложенные структуры
Типизированные словари и датаклассы можно вкладывать друг в друга, чтобы описать сложные структуры данных.
Пример:
Важные советы:
🔛 Не увлекайтесь глубокой вложенностью! Слишком сложные структуры затрудняют поддержку и понимание.
🔛 Используйте типы для самодокументирования кода. Они помогают избежать ошибок и ускоряют разработку.
🔛 Выбирайте TypedDict, если хотите словарь с проверкой структуры.
🔛 Используйте dataclasses, когда нужна полноценная структура с методами и возможностью наследования.
Библиотека питониста #буст
Python поддерживает типизацию с помощью аннотаций, а также предоставляет удобные инструменты для описания структур — TypedDict и dataclasses.
TypedDict похож на обычный словарь, но с подсказками типов для ключей и значений. Это помогает задать чёткие ожидания, какие ключи и значения должны быть в словаре.
Пример:
from typing import TypedDict
class Metrics(TypedDict):
accuracy: float
precision: float
recall: float
AUC: float | None # необязательное поле
def evaluate_predictions(y_true: np.ndarray, y_pred: np.ndarray) -> Metrics:
# Возвращаем словарь с метриками
return Metrics(accuracy=0.66, precision=1.0, recall=0.5)
my_metrics = evaluate_predictions(y_true, y_pred)
print(my_metrics) # {'accuracy': 0.66, 'precision': 1.0, 'recall': 0.5}
Датаклассы упрощают создание классов с данными, автоматически генерируя методы вроде
__init__
. Можно сделать объекты неизменяемыми с frozen=True
.Пример:
from dataclasses import dataclass
@dataclass(frozen=True)
class ModelConfig:
model_path: str
data_path: str
batch_size: int = 32
learning_rate: float = 1e-3
num_epochs: int = 10
early_stopping: bool = False
config = ModelConfig(model_path="models/v1", data_path="data/train", batch_size=64)
print(config.batch_size) # 64
Типизированные словари и датаклассы можно вкладывать друг в друга, чтобы описать сложные структуры данных.
Пример:
from datetime import datetime
@dataclass
class ExperimentSummary:
datetime: datetime
model_config: ModelConfig
metrics: Metrics
experiment = ExperimentSummary(datetime=datetime.now(), model_config=config, metrics=my_metrics)
print(experiment.model_config.batch_size) # 64
Важные советы:
Библиотека питониста #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
❤8👍7👏1👾1
🎯 Шпаргалка: 9 способов продвинуть резюме в ТОП на HeadHunter
💼 Обновили резюме, но тишина? Просмотров — ноль, откликов — тем более.
Значит, пора не просто искать работу, а правильно продавать себя системе.
В статье:
— Как работает алгоритм HeadHunter
— Почему ваше резюме могут просто не увидеть
— 9 приёмов, чтобы попасть в ТОП — от ключевых слов до тайминга
🔗 Читайте статью — и пусть рекрутеры вас заметят: https://proglib.io/sh/rStRsQJzH1
Библиотека питониста #буст
💼 Обновили резюме, но тишина? Просмотров — ноль, откликов — тем более.
Значит, пора не просто искать работу, а правильно продавать себя системе.
В статье:
— Как работает алгоритм HeadHunter
— Почему ваше резюме могут просто не увидеть
— 9 приёмов, чтобы попасть в ТОП — от ключевых слов до тайминга
🔗 Читайте статью — и пусть рекрутеры вас заметят: https://proglib.io/sh/rStRsQJzH1
Библиотека питониста #буст
❤4👍1🌚1
Если вы устали от несовпадений между локальными зависимостями, CI и продом, попробуйте перейти на uv — современный инструмент для управления окружением и зависимостями Python.
Вот краткий план, как это сделать:
Создайте или обновите
pyproject.toml
с базовой информацией о проекте:[project]
name = "my-product"
version = "1.2.3"
description = "Our amazing product."
readme = "README.md"
requires-python = "~=3.12"
dependencies = []
Вместо
requirements/*.txt
теперь всё управляется через uv
:uv add -r requirements/base.txt
uv add -r requirements/dev.txt --group dev
uv add -r requirements/deploy.txt --group deploy
git rm requirements/*.txt
uv python install 3.12
uv python pin 3.12
uv sync
>
uv
создаст .venv/
и .python-version
и синхронизирует зависимости.По умолчанию
uv sync
устанавливает только dev-зависимости. Для других групп:uv sync --locked --group deploy
--no-dev
!sed -e '/layout python/ s/^#*/#/' -i .envrc
echo 'export PATH="$(pwd)/.venv/bin:${PATH}"' >> .envrc
direnv allow
Базовый образ:
FROM ghcr.io/astral-sh/uv:python3.12-bookworm
Настройка переменных:
ENV UV_COMPILE_BYTECODE=1
ENV UV_LINK_MODE=copy
ENV VIRTUAL_ENV=/venv
ENV PATH="$VIRTUAL_ENV/bin:$PATH"
Установка зависимостей:
RUN --mount=type=cache,target=/root/.cache/uv \
--mount=type=bind,source=uv.lock,target=uv.lock \
--mount=type=bind,source=pyproject.toml,target=pyproject.toml \
set -ex \
&& uv venv $VIRTUAL_ENV \
&& uv sync --active --locked --no-install-project --no-dev --group deploy
В
.pre-commit-config.yaml
:- repo: https://github.com/astral-sh/uv-pre-commit
rev: 0.7.12
hooks:
- id: uv-lock
- uses: astral-sh/setup-uv@v1
with:
python-version: 3.12
enable-cache: true
cache-dependency-glob: "uv.lock"
- run: uv sync --locked
- run: uv run pre-commit run --all-files
- run: uv run pytest
Обновить конкретный пакет:
uv lock --upgrade-package <package-name>
uv sync --locked
Обновить всё:
uv lock --upgrade
uv sync --locked
Библиотека питониста #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14❤3🔥3😁1
💡 Python-разработчик и хочешь выйти за пределы типовых задач?
Переход в LLM-инжиниринг — мощный горизонтальный шаг с реальным спросом, влиянием и перспективами роста.
Компании ищут специалистов, которые работают с реальными пайплайнами и продакшен-инфраструктурой. Хочешь стать одним из них? Приходи за практикой и знаниями на курс «Инженер LLM» от тех, кто уже строит это сегодня.
Преподаватели — топы индустрии:
— Кристина Желтова, директор по разработке моделей в Газпромбанке
— Александр Потехин, NLP Lead в X5 Tech
— Евгений Кокуйкин, CEO Raft, эксперт по LLM-инфраструктуре
Это не лекции «про будущее», а опыт тех, кто уже создает LLM-системы для банков, ритейла и платформ с миллионами пользователей.
Ты научишься:
➡️ дообучать модели (fine-tuning, PEFT, RLHF);
➡️ работать с LangChain, LangGraph и векторными базами;
➡️ строить RAG‑системы, внедрять инфопоиск и защищать LLM;
➡️ собирать пайплайны, деплоить, трекать, вести версионирование;
➡️ проектировать мультиагентные решения и ассистентов.
Смотри программу и оставляй заявку 🔗
Обучение у тех, кто уже запускает LLM в продакшене — лучший вклад в твою AI-карьеру😎
Реклама. АНО "ЦЕНТР РАЗВИТИЯ ИТ-КОМПЕТЕНЦИЙ «ГИГА ШКОЛА»", ИНН 7453352684. Erid 2VtzqwqX9Z1
Переход в LLM-инжиниринг — мощный горизонтальный шаг с реальным спросом, влиянием и перспективами роста.
Компании ищут специалистов, которые работают с реальными пайплайнами и продакшен-инфраструктурой. Хочешь стать одним из них? Приходи за практикой и знаниями на курс «Инженер LLM» от тех, кто уже строит это сегодня.
Преподаватели — топы индустрии:
— Кристина Желтова, директор по разработке моделей в Газпромбанке
— Александр Потехин, NLP Lead в X5 Tech
— Евгений Кокуйкин, CEO Raft, эксперт по LLM-инфраструктуре
Это не лекции «про будущее», а опыт тех, кто уже создает LLM-системы для банков, ритейла и платформ с миллионами пользователей.
Курс разработан GIGASCHOOL совместно с крупнейшей магистратурой по ИИ AI Talent Hub.
Ты научишься:
▪️ 252 часа теории и практики
▪️ диплом о профессиональной переподготовке
▪️ старт 14 июля, 18 недель онлайн с продуманными каникулами
▪️ 29 667 ₽/мес в рассрочку
▪️ повышение цены — 11 июля
Смотри программу и оставляй заявку 🔗
Обучение у тех, кто уже запускает LLM в продакшене — лучший вклад в твою AI-карьеру
Реклама. АНО "ЦЕНТР РАЗВИТИЯ ИТ-КОМПЕТЕНЦИЙ «ГИГА ШКОЛА»", ИНН 7453352684. Erid 2VtzqwqX9Z1
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2👍1
Этот промпт поможет найти уязвимости, улучшить обработку ошибок и сделать код более надёжным.
Проверь мой Python-код на предмет безопасности и устойчивости.
Дай рекомендации по:
• Обработке исключений и предотвращению сбоев
• Валидации и санитации входных данных
• Безопасному хранению и работе с конфиденциальной информацией
• Защите от распространённых уязвимостей (инъекции, XSS, CSRF и др.)
• Использованию инструментов для статического анализа безопасности (bandit, safety)
• Логированию ошибок и предупреждений
📌 Что получите:
• План по улучшению безопасности кода
• Методы повышения устойчивости и отказоустойчивости
• Инструменты для автоматического обнаружения уязвимостей
Библиотека питониста #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤2👏1😁1
❗ Первый вебинар нашего курса по AI-агентам уже прошёл!
Запись уже выложили на обучающей платформе — можно влетать и догонять с комфортом.
Первые слушатели уже оставили фидбэки — и, кажется, мы попали в точку:
— «теперь наконец понял, как выбирать модели под задачу — раньше брал первую попавшуюся»
— «без лишнего, по делу, в лайве — кайф»
— «огонь, ожидания 100% оправданы лично у меня»
Если хотели вписаться, но сомневались — ещё не поздно. Вебинары идут вживую, записи сохраняются, чат работает, материалы открыты.
⏳ Ещё можно догнать и пройти всё вместе с потоком.
👉 Залетай на курс
Запись уже выложили на обучающей платформе — можно влетать и догонять с комфортом.
Первые слушатели уже оставили фидбэки — и, кажется, мы попали в точку:
— «теперь наконец понял, как выбирать модели под задачу — раньше брал первую попавшуюся»
— «без лишнего, по делу, в лайве — кайф»
— «огонь, ожидания 100% оправданы лично у меня»
Если хотели вписаться, но сомневались — ещё не поздно. Вебинары идут вживую, записи сохраняются, чат работает, материалы открыты.
⏳ Ещё можно догнать и пройти всё вместе с потоком.
👉 Залетай на курс
❤3👍2
Большой шаг для Python-разработчиков:
С релизом Python 3.14, свободнопоточная сборка CPython (free-threaded build) официально поддерживается и больше не является экспериментальной.
📌 Это означает:
— Реальная многопоточность без GIL.
— Free-threaded Python — поддерживаемая, но пока опциональная сборка.
— Это фаза II. Переход к GIL-free по умолчанию — дело будущего.
👉 PEP 779: Free-threaded CPython
📌 Пример: сравнение GIL vs Free-threaded
Запуск CPU-bound задачи в двух потоках:
from concurrent.futures import ThreadPoolExecutor
import time
def cpu_bound_task():
start = time.time()
sum(1 for _ in range(10**7))
end = time.time()
print(f"Finished in {end - start:.2f} seconds")
with ThreadPoolExecutor() as e:
e.submit(cpu_bound_task)
e.submit(cpu_bound_task)
Результат:
$ uv run -p 3.14 a.py
Finished in 1.01 seconds
Finished in 1.02 seconds
$ uv run -p 3.14.0b3+freethreaded a.py
Finished in 0.49 seconds
Finished in 0.51 seconds
> Потоки реально работают параллельно — ускорение почти в 2 раза!
📌 Но не всё так просто
Попытка работать с общими объектами (например, добавлять в список) может замедлить код:
# Вставка элемента в общий список
shared = []
def task():
for i in range(10**5):
shared.append(i)
Результат:
$ uv run -p 3.14 a.py
Finished in 0.10 seconds
Finished in 0.11 seconds
172214
$ uv run -p 3.14.0b3+freethreaded a.py
Finished in 0.48 seconds
Finished in 0.49 seconds
1865
> Без GIL нужна синхронизация, иначе возможны конфликты и деградация производительности.
📌 Выводы
— Python наконец-то движется к реальной многопоточности.
— Free-threaded CPython уже работает — и может ускорить CPU-bound задачи.
— Не забывайте: работа с общими объектами требует явной синхронизации (даже с GIL). Потокобезопасность — ваша ответственность.
Библиотека питониста #свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥16❤2👍2⚡1👾1
📦 Устанавливаем Python 3.14 beta: быстрый гайд
Многие хотят попробовать Python 3.14 с новым free-threaded режимом, но не знают, как установить beta-версию.
Один из частых вопросов от подписчиков:
Хороший вопрос! Несмотря на то, что Python 3.14 пока в стадии бета, вы уже можете установить его для тестирования.
👇 Вот как это сделать:
➡️ Если вы на Ubuntu
➡️ Если вы на Windows
Скачайте установщик с официального сайта и просто установите
➡️ Если у вас другая система
Скачайте исходный код с python.org и соберите вручную. Некоторые пакетные менеджеры также уже предлагают сборки бета-версий.
⚠️ Важно: это бета, не используйте её в продакшене. Только для экспериментов, например, чтобы протестировать free-threading или другие новинки.
Библиотека питониста #междусобойчик
Многие хотят попробовать Python 3.14 с новым free-threaded режимом, но не знают, как установить beta-версию.
Один из частых вопросов от подписчиков:
Хочу попробовать Python 3.14 с новым free-threaded режимом. Как его установить, если он ещё в бете?
Хороший вопрос! Несмотря на то, что Python 3.14 пока в стадии бета, вы уже можете установить его для тестирования.
# Добавляем PPA
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt update
# Устанавливаем Python 3.14
sudo apt install python3.14
Скачайте установщик с официального сайта и просто установите
.exe
— он будет существовать параллельно с текущей версией.Скачайте исходный код с python.org и соберите вручную. Некоторые пакетные менеджеры также уже предлагают сборки бета-версий.
⚠️ Важно: это бета, не используйте её в продакшене. Только для экспериментов, например, чтобы протестировать free-threading или другие новинки.
Библиотека питониста #междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4❤1