Python for Devs
1.17K subscribers
50 photos
19 videos
68 links
По сотрудничеству пишите в личные сообщения канала.
Download Telegram
🫡 Django Templates: всё, что вам нужно знать

Команда Python for Devs подготовила перевод большого туторила по Django Templates.

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

Если вы хотите сделать свои Django-приложения более чистыми, поддерживаемыми и быстрыми — этот материал для вас.

📚 Подробности на Хабр: https://habr.com/ru/articles/946762/
3👍3🔥2
🫡 Еженедельный дайджест №3

Для тех, кто был слишком занят на неделе или просто пропустил некоторые посты, публикуем дайджест!

Меньше магии, больше кода: мой способ писать Django views
Целостность данных JSON-колонок в PostgreSQL
Топ-6 Python-библиотек для визуализации
Python разрывает конкурентов — 26% рейтинга!
Django Templates: всё, что вам нужно знать

Самый популярный комментарий этой недели – комментарий к статье "Меньше магии, больше кода: мой способ писать Django views" от пользователя @danilovmy:

Забавная статья. Автор не хочет запоминать другие «магические» методы и по-прежнему использует магию, такую как get_object_or_404, redirect или что-то еще...


@python_for_devs
4👍3🔥3
😲 Нововведения Python 3.14: автодополнение и подсветка синтаксиса в REPL

В новой статье узнайте про одно из нововведений Python 3.14, которое упрощает работу с Python за пределами IDE.

Теперь автодополнение и подсветка синтаксиса работают прямо в терминале, а цветовую тему можно настроить под себя.

📚 Подробности на Хабр: https://habr.com/ru/articles/948852/
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7👍21🤩1
🧩 PEP 804: как связать внешние зависимости с вашим пакетным миром

Если вы собираете Python-пакет с нативными расширениями или завязками на системные библиотеки (zlib, OpenBLAS, компиляторы, ImageMagick и т. п.), вы точно сталкивались с болью: «pip ругнулся, а что именно надо установить — непонятно».

PEP 804 закрывает эту дыру: теперь инструменты понимают внешние зависимости из вашего pyproject.toml (в формате DepURL из PEP 725) и умеют карточно их с пакетами целевой экосистемы (Ubuntu, Fedora, Homebrew, conda-forge, Nix, Spack и т. д.). В идеале — даже показывать готовую команду установки.

Сценарий: вы ставите пакет, он не собирается из-за отсутствия g++ и zlib. Вместо «гугли сам» вы видите аккуратный список для вашей системы: sudo apt install g++ zlib1g zlib1g-dev. А если вы предпочитаете conda — получите mamba install cxx-compiler zlib.

Когда внешние зависимости не формализованы, ломается все подряд:
🟣 Сборка падает: у разных дистрибутивов разные имена одних и тех же пакетов (zlib1g-dev, zlib-devel, libz), а инструкции в README устаревают быстрее, чем хотелось бы.
🟣 Документация зарастает мхом: сложно поддерживать в актуальном состоянии команды для 5–10 экосистем одновременно.
🟣 CI/релизы с задержками: «оно у меня работало» превращается в рулетку — особенно с чужим Docker-образом, или отличной от вашей OS.
🟣 Анализ зависимостей страдает: внешние требования не видны инструментам, отчего ломаются деревья зависимостей и предсказуемость обновлений.

PEP 804 нацелен искоренить эти проблемы. Вместо «надеемся, что пользователь догадается» — центральный реестр имен + прозрачные сопоставления для конкретных экосистем, поддерживаемые самими экосистемами.

Ниже — минимальный, но рабочий «скелет», который можно взять и внедрить сегодня.

Шаг 1. Опишите внешние зависимости в pyproject.toml

Раздел [external] — это ваш чек-лист для системных/не-PyPI зависимостей. Идентификаторы — это DepURL из PEP 725: dep:generic/... для конкретных библиотек и dep:virtual/... для «ролей» (например, компилятор C++).


[build-system]
build-backend = "mesonpy"
requires = ["meson-python>=0.13.1", "pybind11>=2.10.4"]

[external]
# Что нужно для сборки (toolchain, заголовки)
build-requires = [
"dep:virtual/compiler/cxx",
]

# Что нужно для линковки/исполнения
host-requires = [
"dep:generic/zlib",
]


Что это дает: любой инструмент, понимающий PEP 804/725, может на входе получить DepURL и на выходе — список пакетов для вашей ОС/менеджера пакетов.

Шаг 2. Валидируйте DepURL-ы локально

Подтяните тул, который умеет читать [external], валидировать записи и предлагать каноничные идентификаторы. Пример с условным pyproject-external:

python -m pyproject_external show --validate .

Если вы промахнулись (написали dep:virtual/compiler/cpp вместо cxx), получите подсказку вида:

Did you mean 'dep:virtual/compiler/cxx'?

Шаг 3. Получайте команды установки для вашей платформы

То, ради чего все затевалось. Покажите маппинг под «авто-определенную» экосистему (например, Ubuntu + apt) или явно выберите нужную (conda-forge + mamba/pixi):


# Показать внешние зависимости как DepURL
python -m pyproject_external show .

# Показать уже сопоставленные имена пакетов
python -m pyproject_external show --output=mapped .

# Сгенерировать команду установки
python -m pyproject_external show --output=command .
# Пример вывода:
# sudo apt install --yes g++ zlib1g zlib1g-dev python3


Подробнее: PEP 804 — An external dependency registry and name mapping mechanism: peps.python.org/pep-0804/.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5👍32
⚡️ Самый быстрый способ загрузить 32 000 строк в PostgreSQL с помощью Python

Команда Python for Devs подготовила перевод статьи о том, как найти самый быстрый способ загрузки данных в PostgreSQL с помощью Python.

Автор пошагово сравнил разные методы — от построчных вставок до COPY с потоковой генерацией CSV — и показал, как ускорить процесс более чем в 250 раз при нулевом потреблении памяти.

📚 Подробности на Хабр: https://habr.com/ru/articles/948854/
👍63🔥3
🙏 Git bisect: быстрый способ найти баг

Вы когда-нибудь ловили баг в проекте, который «ещё вчера работал»?

Коммитов — целая гора, глазами не найти. Тут и выручает git bisect.

Это штука, которая делает бинарный поиск по истории. Вы указываете, где баг точно есть (git bisect bad HEAD), и где его точно не было (git bisect good abc123).

Дальше Git сам переключает вас на середину между "плохим" и "хорошим" кодом и говорит: «проверь».

Вы смотрите: баг есть → git bisect bad, бага нет → git bisect good.

И так несколько раз, пока Git не ткнёт пальцем в конкретный коммит: вот тут всё сломалось.

Фишка в том, что даже если между good и bad 100 коммитов, руками проверять придётся не сто, а всего 6–7. Логарифмы в действии 🙂

А если повезло, и баг можно проверить скриптом (например, тест падает с кодом 1) — вообще красота:


git bisect run ./test_bug.sh


Git сам пройдётся по истории и принесёт виновника на блюдечке.

Так что если в следующий раз придётся охотиться за багом — не спешите листать git log. Пусть git bisect сделает грязную работу 😉
👍83🔥3
🐢 Почему Python такой медленный? И вот что об этом думают эксперты

На PyCon 2024 многие доклады были посвящены одной цели — сделать Python быстрее.

В статье собраны самые интересные идеи: использование статической типизации и Cython для ускорения вычислений, создание подмножеств языка вроде SPy, переписывание тяжёлых функций на C, статическая линковка расширений, immutable-объекты для обхода GIL и параллельные вычисления через субинтерпретаторы.

📚 Подробности на Хабр: https://habr.com/ru/articles/948858/
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥52👍2
🔥 PostgreSQL 18: быстрее в 3 раза без переписывания SQL

На днях вышла новая версия PostgreSQL — и она серьёзно прокачала производительность и удобство работы с БД.

Новая асинхронная I/O подсистема ускоряет до 3х раз чтение данных.
Апгрейды между мажорными версиями теперь станут менее болезнеными — статистика запросов сохраняется, и база не «тупит» после обновления.
Про разработчиков тоже не забыли: виртуальные вычисляемые колонки, умные индексы со skip scan, новый uuidv7() с лучшей производительностью.
Поддержка OAuth 2.0 для аутентификации, более быстрая логическая репликация и улучшенная работа с текстом.

PostgreSQL продолжает эволюционировать. И это радует)

Release Notes на английском
Release Notes на русском
Видео-обзор на русском от Павла Лузанова
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥93👍3
🫡 Трюк, который раньше ускорял Python, теперь лишь захламляет код

Почему любимая оптимизация Python — присваивать глобальные функции локальным переменным — больше не даёт выигрыша?

CPython 3.11 стал умнее, и старый хак уже почти бессмыслен.

📚 Подробности на Хабр: https://habr.com/ru/articles/951230/
👍54🔥2
Forwarded from AI for Devs
This media is not supported in your browser
VIEW IN TELEGRAM
JetBrains встроили Claude Agent прямо в свои IDE

Claude Agent теперь живёт прямо в AI-чате IDE, а под капотом — свежевыпущенный Claude 4.5 Sonnet.

Примечательно, что это первый сторонний агент, официально встроенный в экосистему JetBrains, и он идёт в составе подписки JetBrains AI — доплат не просят. Сделан на Anthropic Agent SDK, поэтому умеет в контекст, тулы, файловые операции и даже исполнение кода. Работает через MCP: агент видит IDE как сервер инструментов, вы — просто переписываетесь в чате.

Кратко об основных возможностях:

🟣 Работа с несколькими файлами: агент показывает предложенные правки в виде диффов прямо в редакторе — удобно сравнить «до/после» и решить, принять или выкинуть.
🟣 Контроль на вашей стороне: без вашего разрешения Claude ничего не тронет — ни файл, ни консоль. Но если достаточно смелые, то можно включить Brave mode и агент пойдет заниматься своими делами без ваших апрувов
🟣 Plan mode: агент сначала опишет шаги и только потом займется реализацией.
🟣 Управление контекстом: можно подкинуть файлы, папки или даже картинки — агент станет отвечать точнее и умнее.

Источник

@ai_for_devs
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥41👏1
💸 Устаревшие версии Python обходятся компаниям в миллионы долларов

Команда Python for Devs подготовила перевод статьи о скрытых издержках использования старых версий Python.

TL;DR: 83% разработчиков застряли на Python 3.10–3.11, и это обходится компаниям в миллионы долларов ежегодно из-за лишних "облачных" затрат.

А ведь казалось бы, обновиться — проще простого.

📚 Подробности на Хабр: https://habr.com/ru/articles/951234/
👍5😱42
This media is not supported in your browser
VIEW IN TELEGRAM
🔥 Manim: питон, математика, магия

Если вам когда-то хотелось сделать презентацию, которая выглядит как видео с ютуба «3Blue1Brown», то вот ответ — Manim. Это целый движок, который превращает код в красивые ролики с графиками, фигурами и текстом.

Что умеет:
– Строить абстрактные сцены из линий, кругов и формул.
– Анимировать всё это плавно и «научно красиво».
– Легко комбинировать текст и геометрию.
– Поддерживать и простые проекты «на коленке», и масштабные лекции/курсы.

Интересно, что библиотека выросла из личного проекта блогера (Grant Sanderson aka 3Blue1Brown), а теперь её используют университеты, энтузиасты и даже стартапы для объясняющих видосов. Комьюнити активно пилит фичи, а документация и примеры выглядят уже вполне серьёзно.

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

Так что да, пора пробовать!

Исходный проект Manim
Manim Community (версия, поддерживаемая сообществом)
Getting Started от создателя
🔥63🤩2😱1
😢 Ржавеет экосистема Python

Два Ивана посмотрели, что же у нас произошло за последние пару лет: массовый рост количества замен pip install: PDM, Poetry и главное — UV.

Тоже самое мы видим и в линтерах и форматтерах: был blake + flake8, стал Ruff. Что объединяет все эти штуки? Конечно, скорость работы и разработка этих инструментов на Rust.

😉 СМОТРЕТЬ НА YOUTUBE
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🔥3👏2😱1
⚡️ Python 3.14: ошибки стали понятнее, чем когда-либо

В новой версии язык стал не просто «ругаться» на ошибки, а объяснять их понятным человеческим языком — с подсказками, где проблема и как её исправить. Т

еперь вместо сухого invalid syntax вы получите конкретное объяснение и даже намёк на решение.

📚 Подробности на Хабр: https://habr.com/ru/articles/953410/
🔥8👍43
⚡️ Вышел Python 3.14 — теперь с JIT, фритредингом и шаблонными строками

Python наконец официально стал многопоточным по-взрослому — и даже обзавёлся экспериментальным JIT-компилятором. Да, это уже не просто обновление, а настоящий апгрейд эпохи GIL.

Версия Python 3.14.0 вышла как стабильный релиз и принесла массу интересных новшеств — от улучшенной работы аннотаций до встроенной поддержки Zstandard и UUIDv7.
Главные фичи:
PEP 779 — Free-threaded Python теперь официально поддержан (GIL больше не обязателен).
PEP 750 — шаблонные строки t"", аналог f"", но для кастомных парсеров.
PEP 649 — аннотации теперь вычисляются отложенно.
PEP 784 — новый модуль compression.zstd (поддержка Zstandard).
PEP 768 — интерфейс для внешних отладчиков без накладных расходов.
uuid теперь поддерживает версии 6–8 и работает до 40% быстрее.
• macOS и Windows-билды теперь включают экспериментальный JIT.
• Впервые доступны официальные Android-сборки.

Python окончательно перестаёт быть «медленным, но удобным». С фритредингом, JIT’ом и оптимизированной памятью он всё больше приближается к C# и Java по скорости исполнения — сохраняя простоту синтаксиса.

Полный список нововведений

@python_for_devs
🔥13👏2🤩2👍1
😇 PEP 8 как религия: почему Python сам не соблюдает свои же правила?

Мысль проста: споры о стиле в Python часто сводятся к одному — snake_case против camelCase. Даже сам Python не следует своим же правилам.

Так стоит ли вообще относиться к PEP 8 как к догме?

📚 Подробности на Хабр: https://habr.com/ru/articles/953412/
👍5🔥32
⚡️ Python 3.14: теперь реально быстрый или всё ещё просто “удобный”?

Думаю, вы уже слышали: релиз Python 3.14 состоялся. Мемы про “самый быстрый Python в истории” уже гуляют по сети — но давайте разберёмся, действительно ли он стал быстрее, или это очередной “чуть быстрее, но всё равно медленно”.

🟣 CPython 3.14 стал примерно на 27% быстрее, чем 3.13 — особенно заметно на рекурсивных задачах вроде вычисления чисел Фибоначчи.
🟣 Точка невозврата, как выяснилось, была ещё в 3.11 — именно тогда Python перестал быть “черепахой”.
🟣 Новый free-threading интерпретатор (без GIL) наконец-то показывает смысл в многопоточных сценариях: в CPU-нагруженных задачах ускорение до 3×.
🟣 А вот JIT-компиляция пока “для галочки” — ускорения почти нет, местами даже хуже.
🟣 PyPy всё ещё читает всем нотации: в 5–18 раз быстрее, чем CPython. Rust — вне конкуренции (в 70 раз быстрее, но это уже другая лига).

Другими словами, если вы всё ещё на Python 3.10 — апгрейд обязателен. Если уже на 3.13 — можно подождать, но 3.14 порадует, особенно если у вас параллельные вычисления. А вот на JIT пока не стоит делать ставку — он явно в стадии “эксперимента”.

📊 На графиках выше видно, как версии Python ускорялись с каждым релизом — особенно на задачах вроде вычисления чисел Фибоначчи и сортировки пузырьком. Python 3.14 уверенно обгоняет 3.13 и оставляет старые релизы далеко позади.

Источник

@python_for_devs
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥75🤩2👍1👏1
⚡️ Автоматический парсинг чеков с LlamaIndex и Pydantic

Команда Python for Devs подготовила перевод статьи о том, как с помощью LlamaIndex и Pydantic можно превратить сканы чеков в структурированные данные.

Минимум кода — и у вас готовый CSV для анализа.

📚 Подробности на Хабр: https://habr.com/ru/articles/953414/
👍5🔥41
⚙️ Как собрать свою RAG-систему — без облаков и подписок

Хватит искать PDF-ки по корпоративным чатам. Сегодня любую внутреннюю документацию можно превратить в умный поисковик, который реально понимает, о чём вы спрашиваете. И всё — на чистом open source, локально и бесплатно.

RAG (Retrieval-Augmented Generation) объединяет две вещи: поиск по документам и генерацию ответов на естественном языке. Идея простая — модель не “придумывает” из головы, а берёт контекст из ваших файлов и формирует точный ответ. Ни утечек данных, ни платных API.

В новой статье — 5 инструментов:
🟣 MarkItDown — конвертирует любые документы (PDF, Word, HTML) в чистый Markdown.
🟣 LangChain RecursiveCharacterTextSplitter — умно режет текст на логические куски, чтобы LLM мог работать с контекстом.
🟣 SentenceTransformers (multi-qa-mpnet-base-dot-v1) — генерирует эмбеддинги локально, без доступа к API.
🟣 ChromaDB — хранит векторы и обеспечивает быстрый поиск по смыслу (HNSW-поиск под капотом).
🟣 Ollama + Gradio — локальная LLM (например, Mistral, Llama 3) и веб-интерфейс с потоковой генерацией ответов.

На выходе — полноценный Q&A-интерфейс по вашим документам: спрашиваете “как работает декоратор в Python”, получаете структурированный ответ с примером и ссылкой на исходный фрагмент. Всё работает офлайн, на локальной машине.

📚 Подробности на Хабр: https://habr.com/ru/articles/955798/
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥144👍3
😍 Красивый код на LaTeX прямо из Python

У вас тоже бывало — написал шикарную формулу в Python, а на презентации она выглядит как набор странных скобок и звёздочек?

Так вот, теперь можно не страдать с ручным LaTeX — Python умеет сам превращать ваш код в аккуратные математические выражения.

Три способа оживить ваши формулы:
🟣 handcalcs — делает пошаговые вычисления с подстановками, будто вы решаете задачу на доске.
🟣 latexify-py — автоматически превращает функции Python в чистый LaTeX без всяких промежуточных расчётов.
🟣 SymPy — для тех, кто хочет работать не с числами, а с уравнениями: символы, интегралы, производные — всё в одном пакете.

Подробнее про эти инструменты читайте на Хабре

@python_for_devs
Please open Telegram to view this post
VIEW IN TELEGRAM
👍42🔥2