pyproglib | Unsorted

Telegram-канал pyproglib - Библиотека питониста | Python, Django, Flask

41234

Все самое полезное для питониста в одном канале. Список наших каналов: https://t.me/proglibrary/9197 Учиться у нас: https://proglib.io/w/d7f1e6ed Обратная связь: @proglibrary_feedback_bot По рекламе: @proglib_adv Прайс: @proglib_advertising

Subscribe to a channel

Библиотека питониста | Python, Django, Flask

📱 Python новости

🚀 Релизы и инструменты:
T-строки официально в Python 3.14 — новый стандарт форматирования строк
ViperView — визуализатор pip-пакетов — смотрим зависимости проекта наглядно
PyUiBuilder — drag-and-drop конструктор GUI на Python (tkinter и customtk)
Bootstrapping Python-проектов с Copier — автоматизация шаблонов, uv и GitHub Actions

👍 Советы:
Год с uv — плюсы, минусы и стоит ли переходить — опыт использования альтернативы pip+venv
Python на скорости Rust — как добиться скорости C-подобного уровня
Введение в MLflow: настройка и запуск — быстрый старт для трекинга экспериментов

🧪 Разработка и производительность:
Все декораторы в Python — за 9 минут видео — компактное и наглядное объяснение
Асинхронная обработка запросов в Python: мода или необходимость — разбор реальных кейсов
Разработка своей системы планирования задач на Python — проект от идеи до реализации
Мини текстовая RPG-игра на Python — отличный проект для практики

🌐 Django и веб:
Django внедряет новую систему трекинга фич на GitHub — прозрачность и участие в разработке
Maps with Django: GeoDjango, Pillow и GPS — создание веб-карт с данными из фотографий
Введение в тестирование Flask-приложений — маршруты, БД и мокирование с pytest

🛠 Тестирование и автоматизация:
UI автотесты на Python с PageObject и CI/CD — практика с Allure-отчётами

Библиотека питониста #свежак

Читать полностью…

Библиотека питониста | Python, Django, Flask

💭 Холивар: нужен ли ООП Python-разработчику?

Джун в команде написал Python-скрипт для обработки данных — лаконичный, читаемый, работает безупречно.

На код-ревью сеньор разнёс его в пух и прах: «Где ООП? Без классов и объектов это не код, а любительщина, переделывай».

Джун ответил: «Мой скрипт решает задачу, он понятный и быстрый. Зачем ООП для 150 строк?»

Сеньор был непреклонен, и дедлайн сорвался.


Что думаете? Пишете ли вы на Python с ООП или предпочитаете обходиться без него?
Го в комменты, разожжём холивар!
👇

❤️ Команда «ООП — необходимость»: «ООП — это основа качественного кода! Классы, наследование, инкапсуляция — без них проект превращается в хаос. ООП — это про командную работу и долгосрочные проекты.»

👍 Команда «Простота превыше»: «Python создан для ясности! Функции, списки, модули — этого хватает для большинства задач. ООП часто усложняет код без нужды.»

P.S. Инструкция, как оставить коммент

Библиотека питониста #развлекалово

Читать полностью…

Библиотека питониста | Python, Django, Flask

🚫💻 Топ-10 ошибок эволюции интернета: что бы разработчики удалили из современного веба

Сегодняшний интернет — это не только мемы и котики, но и автозапуск видео, всплывающие окна, перегруженный JavaScript, странные архитектурные решения прошлого.

В статье разбираем:

➡️ Какие элементы веба вызывают наибольшую боль у разработчиков

➡️ Почему соцсети, реклама и куки заслуживают изгнания

➡️ Как ошибки типа referer и злоупотребление WordPress превратились в технический долг

➡️ Что бы изменили в JavaScript, если бы можно было откатить всё назад

➡️ Идеи для нового, более логичного и безопасного интернета

Мечты о «перезапуске» веба с чистого листа — это не фантастика, а повод задуматься: а не пора ли нам пересмотреть старые решения?

🔗 Читаем статью по ссылке

🐸 Библиотека фронтендера

Читать полностью…

Библиотека питониста | Python, Django, Flask

💃 Как языки программирования выглядят в стиле Гибли

Мы не могли пройти мимо нашумевшего тренда и попросили ИИ перенести Python во вселенную Миядзаки.

Как вам образ? Расскажите в комментариях ↓

😜 Еще больше персонажей из мира айти в стиле Гибли — в нашем канале @proglib

Читать полностью…

Библиотека питониста | Python, Django, Flask

📈 Как «ленивая разработка» захватывает IT-рынок

Пока мы выстраиваем архитектуру, пишем тесты и спорим о лучших практиках, рынок всё активнее обживают те, кто вообще не пишет код. Low-code и no-code решения не просто живы — они становятся нормой для бизнеса.

Порог входа минимальный, скорость разработки — бешеная, а заказчику всё равно, написано ли это на Java или накликано в визуальном редакторе. Вопрос: как долго останется актуальной классическая разработка?

🔗 Подробнее в статье

🐸 Библиотека джависта

Читать полностью…

Библиотека питониста | Python, Django, Flask

Всегда так 💯

Библиотека питониста
#развлекалово

Читать полностью…

Библиотека питониста | Python, Django, Flask

🧰 Инструмент недели: ViperView — визуализатор pip-пакетов

Если вы хотите лучше понять, какие библиотеки занимают место в вашем Python-окружении — попробуйте ViperView. Это простое и удобное десктопное приложение с графическим интерфейсом на PyQt5.

Возможности:
• Отображение всех установленных pip-пакетов: версия, размер и путь
• Интерактивная диаграмма с 20 самыми «тяжёлыми» библиотеками
• Поиск и фильтрация в реальном времени
• Экспорт информации в CSV
• Тёмная тема и современный интерфейс

↗️ ViperView поможет вам наглядно оценить структуру окружения и освободить место, если нужно.

🔗 Репозиторий инструмента: https://clc.to/Jl4t3g

Библиотека питониста #буст

Читать полностью…

Библиотека питониста | Python, Django, Flask

Async-инициализация в Python: какие есть подходы

В Python нет нативной поддержки асинхронного __init__, поэтому приходится искать обходные пути, если объект требует асинхронной инициализации (например, получения ресурса через await get_resource()).

⬇️ Вот какие стратегии чаще всего используют — с плюсами и минусами.

1️⃣ @classmethod async def initialize()

class Klass:
def __init__(self, resource):
self.resource = resource

@classmethod
async def initialize(cls):
resource = await get_resource()
return cls(resource)


🌥 Плюсы:
— Лаконично
— Хорошо отделяет sync и async логику
— Удобно для тестов

🌥 Минусы:
— Нет устоявшейся конвенции
— Может быть неочевидно для команды

🌥 Подходит для простых случаев без необходимости в очистке ресурсов.

2️⃣ Асинхронный контекстный менеджер (__aenter__ / __aexit__)
class Klass:
async def __aenter__(self):
self.resource = await get_resource()
return self

async def __aexit__(self, exc_type, exc, tb):
pass


🌥 Плюсы:
— Устоявшийся паттерн (async with)
— Удобно добавлять логику очистки в будущем

🌥 Минусы:
— Нужно писать async with при каждом использовании
— Не всегда удобно, если объект нужен за пределами контекста

🌥 Подходит, если нужно управлять жизненным циклом ресурса.

3️⃣ Инициализация в фоне через create_task()
class Klass:
def __init__(self):
self.ready_event = asyncio.Event()
asyncio.create_task(self._load())

async def _load(self):
self.resource = await get_resource()
self.ready_event.set()

async def use(self):
await self.ready_event.wait()
await do_something_with(self.resource)


🌥 Плюсы:
— Можно запускать загрузку параллельно с другими задачами
— Подходит для высоконагруженных систем

🌥 Минусы:
— Сложнее в отладке
— Нужно явно проверять await ready_event.wait() — легко забыть
— Нет встроенного механизма очистки

🌥 Хорошо подходит для внутренних компонентов или фреймворков, где поведение контролируется централизованно.

4️⃣ Внешний async-фабричный метод / билдер

Просто выносим всю асинхронную инициализацию за пределы класса.

🌥 Плюсы:
— Чистый и легко тестируемый код
— Гибко масштабируется

🌥 Минусы:
— Логика разнесена по разным местам
— Использование может стать чуть более многословным

🌥 Идеально, если важна читаемость и разделение ответственности.

5️⃣ await instance.ready()

Гибридный подход: конструктор sync, а использование — с явной асинхронной инициализацией.
klass = Klass()
await klass.ready()


🌥 Позволяет разделить создание и инициализацию, сохраняя контроль над потоком.

6️⃣ Запрет обычного __init__, только async-конструктор
class Klass:
def __new__(cls, *args, **kwargs):
raise RuntimeError("Используйте `await Klass.create()`")

@classmethod
async def create(cls):
self = super().__new__(cls)
self.resource = await get_resource()
return self


🌥 Форсирует корректное использование через async-интерфейс.

▫️ Какой подход выбрать:
🤖 initialize() — простая async-инициализация без очистки
🤖 __aenter__/__aexit__ — нужна очистка или сложный жизненный цикл
🤖 create_task() + Event — нужно запускать инициализацию в фоне
🤖 Async factory — тестируемость, масштабируемость
🤖 .ready() — чистое разделение этапов
🤖 __new__ + async — строгий контроль над созданием

Библиотека питониста #буст

Читать полностью…

Библиотека питониста | Python, Django, Flask

🎉 T-строки официально в Python 3.14

В конце 2025 года нас ждёт мощное пополнение — в Python появятся template strings (t-strings). Это новая форма строк, которая решает старые проблемы f-строк и открывает дверь к более безопасной и гибкой работе с текстом.

🎌 Что такое t-строки

С f-строками (f"...") мы живём с 2016 года — они удобные, но иногда… опасные. Например:

f"SELECT * FROM users WHERE name = '{user_name}'"


🔎 Такой код легко подставляет вредоносный ввод — и привет, SQL-инъекция или XSS.

Теперь появляется альтернатива: t-строки. Они выглядят похоже:
from string.templatelib import Template
template = t"Hello {name}!"


🔎 Но — они не превращаются сразу в строку, а становятся объектом Template. Их нужно явно обработать, и это даёт пространство для экранирования, валидации и любых безопасных преобразований.

🎌 Безопасный HTML

Пример: экранирование HTML-ввода
evil = "<script>alert('bad')</script>"
template = t"<p>{evil}</p>"
safe = html(template)
assert safe == "<p>&lt;script&gt;alert('bad')&lt;/script&gt;</p>"


🔎 Больше никакой грязи в шаблоне. А ещё html() может возвращать полноценный HTMLElement, а не просто строку. Всё гибко.

🎌 Как работать с t-strings

Шаблон предоставляет доступ к строкам и значениям до их объединения. Свойства .strings и .values возвращают кортежи:
name = "World"
template = t"Hello {name}!"
assert template.strings == ("Hello ", "!")
assert template.values == (name,)


Всегда будет на одну строку больше, чем значений. Например:
t"".strings == ("",)
t"{name}".strings == ("", "")


Можно просто пройтись по шаблону в цикле:
template = t"Hello {name}!"
contents = list(template)
assert contents[0] == "Hello "
assert contents[1].value == name
assert contents[2] == "!"


Для продвинутой обработки можно получить данные о каждой интерполяции:
template = t"Hello {name!s:>8}!"
interp = template.interpolations[0]
assert interp.value == name
assert interp.expression == "name"
assert interp.conversion == "s"
assert interp.format_spec == ">8"


Можно создать шаблон напрямую:
from string.templatelib import Template, Interpolation
template = Template(
"Hello ",
Interpolation(value="World", expression="name"),
"!"
)


T-строки — это:
✔️ Безопасность для HTML, SQL и Markdown
✔️ Возможность сложной обработки шаблонов
✔️ Гибкость: можно возвращать любой тип, а не только строку

🔎 Очень хочется, чтобы форматтеры типа black и ruff поддержали t-строки, а VS Code начал подсвечивать их содержимое. Потому что t-strings — это не просто новая игрушка, а основа для более безопасного Python-кода.

Библиотека питониста #свежак

Читать полностью…

Библиотека питониста | Python, Django, Flask

🔥 Завтра запускаем ML-ракету: последние места на борту

Уже завтра, 21 апреля, состоится наш воркшоп «Математика машинного обучения на практике», где теория ML превращается в практические навыки.

Что вас ждет:
📍 Работа с реальными данными — табличные датасеты и изображения
📍 Снижение размерности через PCA — научитесь отделять важное от второстепенного
📍 Обучение моделей — Random Forest и градиентный бустинг в действии
📍 Разбор метрик и гиперпараметров — как настроить модель на максимальную эффективность
📍 Написание кода на Python — прямо как реальных проектах
📍 Персональный code review от эксперта — бесценный фидбек для вашего роста
📍 Доступ в закрытый чат участников — нетворкинг и обмен опытом

Кто проводит воркшоп:

Мария Горденко — инженер-программист, старший преподаватель НИУ ВШЭ и Proglib Academy, руководитель магистратуры от ГК Самолет и Альфа-Банка.

Стоимость участия: 3990₽
Когда: завтра, 21 апреля

👉 Забронировать место на воркшопе: https://proglib.io/w/6f0e5775

Читать полностью…

Библиотека питониста | Python, Django, Flask

📚Напоминаем про наш полный курс «Самоучитель по Python для начинающих»

Мы написали и собрали для вас в одну подборку все 25 глав и 230 практических заданий!

🐍 Часть 1: Особенности, сферы применения, установка, онлайн IDE
🐍 Часть 2: Все, что нужно для изучения Python с нуля – книги, сайты, каналы и курсы
🐍 Часть 3: Типы данных: преобразование и базовые операции
🐍 Часть 4: Методы работы со строками
🐍 Часть 5: Методы работы со списками и списковыми включениями
🐍 Часть 6: Методы работы со словарями и генераторами словарей
🐍 Часть 7: Методы работы с кортежами
🐍 Часть 8: Методы работы со множествами
🐍 Часть 9: Особенности цикла for
🐍 Часть 10: Условный цикл while
🐍 Часть 11: Функции с позиционными и именованными аргументами
🐍 Часть 12: Анонимные функции
🐍 Часть 13: Рекурсивные функции
🐍 Часть 14: Функции высшего порядка, замыкания и декораторы
🐍 Часть 15: Методы работы с файлами и файловой системой
🐍 Часть 16: Регулярные выражения
🐍 Часть 17: Основы скрапинга и парсинга
🐍 Часть 18: Основы ООП – инкапсуляция и наследование
🐍 Часть 19: Основы ООП – абстракция и полиморфизм
🐍 Часть 20: Графический интерфейс на Tkinter
🐍 Часть 21: Основы разработки игр на Pygame
🐍 Часть 22: Основы работы с SQLite
🐍 Часть 23: Основы веб-разработки на Flask
🐍 Часть 24: Основы работы с NumPy
🐍 Часть 25: Основы анализа данных с Pandas

Читать полностью…

Библиотека питониста | Python, Django, Flask

Наглядно 😆

Библиотека питониста #развлекалово

Читать полностью…

Библиотека питониста | Python, Django, Flask

⚙️ Фишка инструмента: Pyre — типизация, которая летает

Pyre— статический анализатор типов, способный проверять миллионы строк кода за секунды. Работает инкрементально и в режиме демона, поддерживает PEP 484 и отлично вписывается в большие проекты.

🔎 Установка и настройка проекта

➡️ macOS:

brew install python3 watchman


➡️ Ubuntu/Debian:
sudo apt-get install python3 python3-pip python3-venv
brew install watchman


➡️ Настройка проекта:
mkdir my_project && cd my_project
python3 -m venv ~/.venvs/venv
source ~/.venvs/venv/bin/activate
pip install pyre-check
pyre init


Инициализация создаст конфигурационные файлы .pyre_configuration и .watchmanconfig.

➡️ Пример запуска:
echo "i: int = 'string'" > test.py
pyre


➡️ Результат:
Found 1 type error!
test.py:1:0 Incompatible variable type [9]: i is declared to have type `int` but is used as type `str`.


Pyre особенно эффективен в крупных кодовых базах и может использоваться в автоматических пайплайнах CI/CD. Он значительно упрощает внедрение строгой типизации и стандартов качества кода в Python-проектах.

🔗 Ссылка на репозиторий: https://clc.to/F4Gx4A

Библиотека питониста #буст

Читать полностью…

Библиотека питониста | Python, Django, Flask

🚀 Приручи алгоритмы: из формул в код за один воркшоп

Готовы превратить сложную теорию машинного обучения в практические навыки? Тогда приходите на наш воркшоп, который пройдет 21 апреля.

Что вас ждет на воркшопе:
🟢 Работа с реальными данными — никаких учебных датасетов, только то, что встречается в настоящих проектах.

🟢Снижение размерности с PCA — научитесь выделять главное из информационного шума.

🟢Случайный лес vs градиентный бустинг — разберемся, в чём ключевое различие и когда какой алгоритм эффективнее.

🟢Мастерство гиперпараметров — освоите тонкую настройку моделей для максимальной точности.

На нашем воркшопе вы не просто слушаете — вы делаете сами! Вы будете писать код на Python, применять популярные библиотеки и сразу видеть результат своей работы.

А самое ценное: каждый участник получит персональный code review от Марии Горденко — инженера-программиста, старшего преподавателя НИУ ВШЭ, руководителя магистратуры от ГК Самолет и Альфа-Банка.

⏰ Когда: 21 апреля
💸Стоимость: всего 3990₽

Только сегодня, до конца дня: 10 мест по промокоду kulich → 2 990 ₽.

➡️ Записаться на воркшоп: https://proglib.io/w/6f0e5775

Читать полностью…

Библиотека питониста | Python, Django, Flask

😆 Будем честны, все мы хоть раз были на YouTube-канале индуса, который обещал сделать сайт за 5 минут, но 40 минут объяснял, как установить Python.

😱 А между прочим, скоро мы можем потерять такой контент.

Нейронки теперь могут менять акценты на лету, так что в следующий раз, возможно, ваш индийский преподаватель станет Джейсоном из Лондона 💂!

Если хотите, пробуйте сами. Заходите на Krisp — 60 минут в день бесплатно.

Библиотека питониста #развлекалово

Читать полностью…

Библиотека питониста | Python, Django, Flask

🧠⚡️👟 Странные, но эффективные лайфхаки для продуктивности

Иногда самые действенные способы повысить продуктивность звучат как полный бред. Но это работает! Пользователи Reddit делятся своими «тупо-звучащими-но-реально-помогающими» секретами, которые помогут тебе наконец-то перестать прокрастинировать и начать делать дела.

ТОП-советы от пользователей Reddit — в нашей статье.

🐸 Библиотека программиста

Читать полностью…

Библиотека питониста | Python, Django, Flask

Главное — успеть убежать 🤣

Библиотека питониста #междусобойчик

Читать полностью…

Библиотека питониста | Python, Django, Flask

🎯 Команда дня: `@overload` в Python

@overload из модуля typing позволяет указать несколько сигнатур для одной функции. Это особенно полезно, когда возвращаемый тип зависит от аргументов — и вы хотите, чтобы типизация отражала это поведение.

Пример:

from typing import Literal, overload

@overload
def transform(data: str, mode: Literal["split"]) -> list[str]: ...
@overload
def transform(data: str, mode: Literal["upper"]) -> str: ...

def transform(data: str, mode: Literal["split", "upper"]) -> list[str] | str:
return data.split() if mode == "split" else data.upper()


transform(..., "split")list[str]
transform(..., "upper")str
— Типизация подскажет ошибку, если вы вызовете append() у строки или .lower() у списка

Другой кейс — когда нужен только один аргумент из двух:
@overload
def get_user(id: int = ..., username: None = None) -> User: ...
@overload
def get_user(id: None = None, username: str = ...) -> User: ...

def get_user(id: int | None = None, username: str | None = None) -> User: ...


Так можно добиться:
get_user(id=1)
get_user(username="John")
🙅‍♂️ get_user(id=1, username="John") — не соответствует ни одной сигнатуре

Бонус: Literal позволяет ограничить значения аргументов строками:
def set_color(color: Literal["red", "blue", "green"]) -> None: ...


▶️Попытка передать yellow вызовет ошибку ещё до выполнения кода.

▶️ @overload и Literal — мощные инструменты статической проверки, особенно в больших проектах, где важна точная типизация.

Библиотека питониста #буст

Читать полностью…

Библиотека питониста | Python, Django, Flask

😡 Лучшие материалы по Python в одной подборке

Собрали топовые материалы, которые наши подписчики сохраняют чаще всего.

Эту подборку мы будем регулярно пополнять, поэтому сохраняйте тонну пользы, чтобы не потерять!

1. uv — новый стандарт в управлении Python-проектами и пакетами

2. Бесплатный курс по фулстек-разработке — реальность

3. Интерактивная карта Python‑пакетов PyPI

4. Устали от хаоса в JSON?

5. Автоматизация с Python: от рутинных задач до DevOps

6. Poetry vs UV: какой менеджер пакетов лучше для Python?

7. Чистый код на Python

Читать полностью…

Библиотека питониста | Python, Django, Flask

🎬 Все декораторы в Python — за 9 минут

Краткий, но ёмкий видео-гид, в котором вы узнаете, как работают декораторы, зачем они нужны и как применять их для написания более чистого и эффективного кода.

💡 Что вы узнаете:
— Что такое декораторы в Python
— Как использовать @staticmethod, @classmethod и @property
— Как создавать собственные декораторы, чтобы упростить архитектуру кода

📌 Основные моменты:
0:00 — Введение и понятие декораторов
3:11 — Все встроенные декораторы Python

🔗 Ссылка на видео: https://clc.to/dBNl5Q

Библиотека питониста #буст

Читать полностью…

Библиотека питониста | Python, Django, Flask

Когда сроки горят, а разработчиков не хватает

Нехватка квалифицированных разработчиков, срывы дедлайнов и перегруз команды — эти проблемы знакомы большинству IT-руководителей. В условиях растущей конкуренции найти баланс между качеством реализации, сроками и бюджетом становится всё сложнее, особенно когда проект требует редких компетенций или быстрого масштабирования.

Решение проблемы — задействовать дополнительные ресурсы на аутсорсе или аутстаффе. Например, обратиться в Proglib. Да-да, мы запустили свою студию веб-разработки!

Что мы предлагаем:

• Опытные специалисты для аутстаффа (frontend, backend, DevOps, UI/UX, PM, BA) 

• Полноценная разработка проектов под ключ 

• Гибкое масштабирование команды под потребности клиента 

• Прозрачная коммуникация и регулярная отчетность

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

Заполните форму, чтобы ускорить свою разработку 👉 https://forms.yandex.ru/u/67e548a4eb614622efa0bcb2/

Читать полностью…

Библиотека питониста | Python, Django, Flask

💻 Как ускорить выполнение запросов к базе данных в Django

Когда Django-запросы вытягивают из базы больше данных, чем нужно, это тормозит работу приложения. Чтобы ускорить выполнение и уменьшить нагрузку, можно использовать методы:

〰️ defer() — откладывает загрузку указанных полей до их фактического использования
〰️ only() — загружает только указанные поля, остальные — по запросу
〰️ exclude() — фильтрует объекты, исключая ненужные

В статье — практические примеры на базе веб-приложения для агентства недвижимости: как применять эти методы, чтобы получать только нужные данные и ускорять запросы.

🔗 Подробнее в статье: https://proglib.io/sh/2vagPRorTU

Библиотека питониста

Читать полностью…

Библиотека питониста | Python, Django, Flask

⌨️ Топ-вакансий для питонистов за неделю

Senior Python Developer (Blockchain) — от 3500 до 4500 $, удалённо

Руководитель группы разработки Python — от 350 000 до 550 000 ₽, удалённо

Python developer (DDI) — от 250 000 ₽, гибрид (Москва)

Tech Lead Python — от 350 000 ₽, удалённо

Junior Python Developer — от 130 000 до 300 000 ₽, удалённо

➡️ Еще больше топовых вакансий — в нашем канале Python jobs

Библиотека питониста

Читать полностью…

Библиотека питониста | Python, Django, Flask

Библиотека задач по Python

Читать полностью…

Библиотека питониста | Python, Django, Flask

📱 Python новости

🚀 Релизы и инструменты:
Шесть релизов Python за один день — весна 2025-го врывается с размахом
TARIFF — «величайший» Python-пакет

🧠 Профессия и карьера:
Python остаётся топ-навыком для AI-вакансий — по данным AI Index 2025

🧪 Разработка и производительность:
Примитивный компилятор на Python — учебный проект с нуля
CPU-кеш и Python — может ли кеширование ускорить ваш код

🌐 Django и веб:
F(), Func() и никаких циклов — как Django пишет SQL под капотом
Django Simple Deploy + DevOps — обсуждаем в подкасте
Go vs Python для веб-скрейпинга — сравнение инструментов

🎥 Видео:
Data Engineering + AI/LLMs — видео-урок по загрузке данных

Библиотека питониста #свежак

Читать полностью…

Библиотека питониста | Python, Django, Flask

Самые догадливые, пишите ответ в комментах 👇

Небольшая подсказка — это термин относится к Python.

Прячем ответы под спойлер, чтобы не спалить остальным.

Библиотека питониста #междусобойчик

Читать полностью…

Библиотека питониста | Python, Django, Flask

Зачем дата-сайентисту дисперсия

Дисперсия — ключевой статистический показатель, который помогает оценить изменчивость данных. Для дата-сайентистов она критична при:

👉 Оценке и интерпретации результатов моделей
👉 Понимании поведения алгоритмов машинного обучения
👉 Снижении ошибок при построении предсказаний

В этой статье разберём, как правильно использовать дисперсию в Data Science и как она влияет на работу алгоритмов, например, в модели Random Forest.

👉 Читайте, чтобы понять, как измерять и учитывать дисперсию: https://proglib.io/sh/GDKYJQdAI2

Библиотека дата-сайентиста

Читать полностью…

Библиотека питониста | Python, Django, Flask

🖥 Чтение или эффективность: что важнее при написании кода

Один из наших подписчиков поднял интересный и часто обсуждаемый вопрос среди разработчиков: что важнее — читаемость или эффективность кода?

⬇️ Он поделился несколькими примерами, где приходится выбирать между читаемым и более оптимизированным кодом.

1️⃣ Проверка на нечётность

Простой способ:

return n % 2 == 1


Быстрее, но сложнее для восприятия:
return bool(1 & n)


2️⃣ Проверка, пуста ли строка

Простой способ:
if len(my_string) == 0:


Быстрее, но менее интуитивно:
if not my_string:


3️⃣ Проверка на наличие элемента в списке

Простой способ:
if element in my_list:


Быстрее, но менее понятно:
try:
my_list.index(element)
except ValueError:
pass


💭 Когда стоит жертвовать читаемостью ради эффективности? Поделитесь своими примерами и мыслями в комментариях!

Библиотека питониста #междусобойчик

Читать полностью…

Библиотека питониста | Python, Django, Flask

💰 Промпт, который поможет построить карьеру Python-разработчику

Хочешь не просто писать код, а расти как специалист и двигаться к роли, о которой мечтаешь?
Вот промпт, который поможет составить персональный план роста — с проектами, нетворкингом и прокачкой скиллов.

✍️ Промпт:

Help me create a personalized career growth plan based on my current role as a [your role] and my long-term goal to become a [desired position].  
Identify key skills I need to develop, high-impact projects I should pursue, and networking strategies to connect with industry leaders.
Include creative ways to showcase my expertise (e.g. speaking opportunities, internal initiatives) and suggest a 90-day action plan to track progress.

Bonus: Recommend 2-3 people I should learn from and what I can study from their career paths.


🌸 Как это работает:
— Помогает построить стратегию карьерного роста под твои цели
— Даёт идеи для прокачки и полезных активностей
— Формирует план на 90 дней + вдохновляет примерами карьер других

🌸 Примеры использования:
— Выйти из Junior уровня и наметить путь к Middle
— Спланировать переход в Team Lead или архитекторы
— Понять, какие активности на работе и вне её помогут выделиться и расти быстрее

Библиотека питониста #буст

Читать полностью…

Библиотека питониста | Python, Django, Flask

✔️ Лучшие практики импорта модулей в Python

В этом посте рассмотрим лучшие практики импорта модулей в Python, чтобы код был чистым и эффективным.

1⃣ Используйте явный импорт

Старайтесь использовать явный импорт, а не from module import *, чтобы избежать конфликтов имен и улучшить читаемость кода.

# Плохо
from math import *

# Хорошо
from math import sqrt, pi


Явный импорт помогает лучше понять, какие именно функции или классы используются в вашем коде, и предотвращает «загрязнение» пространства имен.

2⃣ Группируйте импорты правильно

Существует стандартная практика группировки импортов, которая улучшает структуру кода и делает его более читаемым:
➡️ Стандартные библиотеки
➡️ Третьи библиотеки
➡️ Локальные модули

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

# Стандартные библиотеки
import os
import sys

# Третьи библиотеки
import requests
import numpy as np

# Локальные модули
from my_module import my_function


3⃣ Используйте абсолютные импорты

Абсолютные импорты — это указание полного пути до модуля, начиная от корня пакета. Это делает код более понятным и избегает проблем с относительными импортами, особенно в крупных проектах.

# Плохо
from .module import function

# Хорошо
from my_project.module import function


4⃣ Избегайте циклических импортов

Циклические импорты — это когда два или более модуля зависят друг от друга, что может привести к ошибкам при импорте.

Чтобы избежать таких проблем:
➡️ Разделяйте модули, чтобы минимизировать зависимость
➡️ Используйте импорты внутри функций или методов, если нужно избежать циклических зависимостей

# Плохо
# module_a.py
from module_b import function_b

# module_b.py
from module_a import function_a

# Хорошо
# module_a.py
def function_a():
from module_b import function_b
...


5⃣ Соблюдайте принцип «Не импортируйте то, что не используете»

Импортируйте только те модули, функции или классы, которые действительно будут использованы в коде. Это улучшает производительность и делает код чище.

# Плохо
import math

# Хорошо
from math import sqrt


6⃣ Пользуйтесь псевдонимами для часто используемых библиотек

Если библиотека часто используется в коде, имеет смысл использовать псевдонимы, чтобы сделать код компактным.

# Хорошо
import numpy as np
import pandas as pd

# Плохо
import numpy
import pandas


7⃣ Обрабатывайте ошибки импорта

В случае, если библиотека может не быть установлена в окружении, полезно обрабатывать ошибки импорта, чтобы избежать сбоев в работе программы.

try:
import some_library
except ImportError:
print("Не удалось импортировать some_library. Убедитесь, что она установлена.")


Библиотека питониста #буст

Читать полностью…
Subscribe to a channel