С помощью инфографики, наглядных визуализаций и коротких обучающих видео вы изучите все ключевые концепции работы с Docker и методики DevOps.
Прокачать скиллы: t.me/DevopsDocker
Please open Telegram to view this post
VIEW IN TELEGRAM
🚀 Python-разработчик — от основ до синьора.
Если вы ищете структурированный roadmap в бэкенд-разработке на Python, обратите внимание на дорожную карту от Boot.dev. Она начинается с базовых навыков (Linux, Git, ООП) и ведёт к сложным темам: алгоритмы, HTTP-серверы, безопасность и DevOps-инструменты.
Создатели сделали акцент на практике. После каждого теоретического блока предлагается создать проект: от простого бота до агрегатора блогов с использованием SQL и облачных хранилищ.
🤖 GitHub
@python_job_interview
Если вы ищете структурированный roadmap в бэкенд-разработке на Python, обратите внимание на дорожную карту от Boot.dev. Она начинается с базовых навыков (Linux, Git, ООП) и ведёт к сложным темам: алгоритмы, HTTP-серверы, безопасность и DevOps-инструменты.
Создатели сделали акцент на практике. После каждого теоретического блока предлагается создать проект: от простого бота до агрегатора блогов с использованием SQL и облачных хранилищ.
🤖 GitHub
@python_job_interview
Вы когда-нибудь хотели сделать свою собственную систему рекомендаций фильмов? 🎬
Приходите на бесплатный вебинар, где Савелий Батурин, Senior ML-Engineer и преподаватель курса по ML школы Simulative в прямом эфире покажет как построить рекомендательную систему фильмов на Kaggle.
Что будем делать на вебинаре:
Вебинар будет интересен как новичкам, так и уже опытным специалистам
Please open Telegram to view this post
VIEW IN TELEGRAM
🔍 Основные нововведения в Django 5.2
1. 📦 Автоматический импорт моделей в интерактивной оболочке
Теперь при запуске команды python manage.py shell все модели из установленных приложений автоматически импортируются.
Это упрощает работу в интерактивной оболочке, позволяя сразу использовать модели без необходимости ручного импорта. Для получения подробностей об импортированных объектах можно использовать флаг -v 2.
2. 🔗 Поддержка составных первичных ключей
Django 5.2 вводит нативную поддержку составных первичных ключей через класс CompositePrimaryKey. Это позволяет создавать таблицы с первичным ключом, состоящим из нескольких полей, без необходимости использования сторонних решений.
3. 🧩 Гибкая настройка BoundField в формах
Теперь можно переопределять класс BoundField на уровне проекта, формы или отдельного поля, устанавливая атрибут bound_field_class. Это предоставляет разработчикам более тонкий контроль над отображением и поведением форм.
4. ⚡ Расширенная асинхронная поддержка
Django продолжает движение в сторону асинхронности, добавляя новые асинхронные методы и улучшая реализацию бэкендов аутентификации. Это особенно полезно для операций, связанных с вводом-выводом, и способствует созданию более производительных приложений.
5. 🎨 Новые виджеты форм и улучшения интерфейса
Добавлены новые виджеты форм, такие как ColorInput, SearchInput и TelInput, соответствующие стандартам HTML5. Также улучшена доступность форм для пользователей с особыми потребностями.
Bastaki Software Solutions L.L.C-FZ
6. 🗃️ Улучшения в работе с базой данных
Поддержка изогнутых геометрий в GDAL, включая CurvePolygon, CompoundCurve, CircularString, MultiSurface и MultiCurve.
По умолчанию соединения с MySQL используют кодировку utf8mb4 вместо устаревшей utf8mb3.
Улучшена работа методов values() и values_list(), теперь они генерируют SELECT-запросы в указанном порядке.
🔧 Совместимость и поддержка
Django 5.2 поддерживает Python версий 3.10–3.13.
С выходом этой версии, основная поддержка Django 5.1 завершена. Последний минорный релиз 5.1.8, также содержащий обновления безопасности, был выпущен одновременно с 5.2.
Django 5.0 достиг конца расширенной поддержки. Последний релиз безопасности, 5.0.14, также был выпущен сегодня. Рекомендуется обновиться до версии 5.1 или более новой.
📥 Обновление и ресурсы
Загрузить Django 5.2 можно с официальной страницы загрузки или через PyPI.
Полные примечания к релизу доступны в официальной документации.
Для автоматического обновления кода и устранения устаревших конструкций можно использовать инструмент django-upgrade.
Django Project
Django 5.2 предлагает множество улучшений, направленных на упрощение разработки и повышение производительности приложений. Рекомендуется ознакомиться с новыми возможностями и планировать обновление своих проектов для использования всех преимуществ этой версии.
📌 Релиз
@pythonl
1. 📦 Автоматический импорт моделей в интерактивной оболочке
Теперь при запуске команды python manage.py shell все модели из установленных приложений автоматически импортируются.
Это упрощает работу в интерактивной оболочке, позволяя сразу использовать модели без необходимости ручного импорта. Для получения подробностей об импортированных объектах можно использовать флаг -v 2.
2. 🔗 Поддержка составных первичных ключей
Django 5.2 вводит нативную поддержку составных первичных ключей через класс CompositePrimaryKey. Это позволяет создавать таблицы с первичным ключом, состоящим из нескольких полей, без необходимости использования сторонних решений.
3. 🧩 Гибкая настройка BoundField в формах
Теперь можно переопределять класс BoundField на уровне проекта, формы или отдельного поля, устанавливая атрибут bound_field_class. Это предоставляет разработчикам более тонкий контроль над отображением и поведением форм.
4. ⚡ Расширенная асинхронная поддержка
Django продолжает движение в сторону асинхронности, добавляя новые асинхронные методы и улучшая реализацию бэкендов аутентификации. Это особенно полезно для операций, связанных с вводом-выводом, и способствует созданию более производительных приложений.
5. 🎨 Новые виджеты форм и улучшения интерфейса
Добавлены новые виджеты форм, такие как ColorInput, SearchInput и TelInput, соответствующие стандартам HTML5. Также улучшена доступность форм для пользователей с особыми потребностями.
Bastaki Software Solutions L.L.C-FZ
6. 🗃️ Улучшения в работе с базой данных
Поддержка изогнутых геометрий в GDAL, включая CurvePolygon, CompoundCurve, CircularString, MultiSurface и MultiCurve.
По умолчанию соединения с MySQL используют кодировку utf8mb4 вместо устаревшей utf8mb3.
Улучшена работа методов values() и values_list(), теперь они генерируют SELECT-запросы в указанном порядке.
🔧 Совместимость и поддержка
Django 5.2 поддерживает Python версий 3.10–3.13.
С выходом этой версии, основная поддержка Django 5.1 завершена. Последний минорный релиз 5.1.8, также содержащий обновления безопасности, был выпущен одновременно с 5.2.
Django 5.0 достиг конца расширенной поддержки. Последний релиз безопасности, 5.0.14, также был выпущен сегодня. Рекомендуется обновиться до версии 5.1 или более новой.
📥 Обновление и ресурсы
Загрузить Django 5.2 можно с официальной страницы загрузки или через PyPI.
Полные примечания к релизу доступны в официальной документации.
Для автоматического обновления кода и устранения устаревших конструкций можно использовать инструмент django-upgrade.
Django Project
Django 5.2 предлагает множество улучшений, направленных на упрощение разработки и повышение производительности приложений. Рекомендуется ознакомиться с новыми возможностями и планировать обновление своих проектов для использования всех преимуществ этой версии.
📌 Релиз
@pythonl
🐍 7 “бесполезных” функций Python, которые на самом деле полезны
Инструменты из стандартной библиотеки, которые могут удивить:
1. textwrap.dedent() — удаляет отступы у многострочного текста.
2. difflib.get_close_matches() — находит похожие строки.
3. uuid.uuid4() — генерирует уникальный ID.
4. shutil.get_terminal_size() — узнаёт размеры терминала.
5. functools.lru_cache() — кэширует результаты функции.
6. itertools.groupby() — группирует элементы по ключу.
7. contextlib.suppress() — элегантная альтернатива try-except.
@pythonl
Инструменты из стандартной библиотеки, которые могут удивить:
1. textwrap.dedent() — удаляет отступы у многострочного текста.
import textwrap
text = textwrap.dedent(\"\"\"
Привет!
Это текст с отступами.
\"\"\").strip()
print(text)
2. difflib.get_close_matches() — находит похожие строки.
import difflib
words = ["python", "java", "javascript"]
print(difflib.get_close_matches("javascrip", words))
3. uuid.uuid4() — генерирует уникальный ID.
import uuid
print(uuid.uuid4())
4. shutil.get_terminal_size() — узнаёт размеры терминала.
import shutil
columns, rows = shutil.get_terminal_size()
print(f"Размер терминала: {columns}x{rows}")
5. functools.lru_cache() — кэширует результаты функции.
from functools import lru_cache
@lru_cache(maxsize=None)
def fib(n):
if n < 2:
return n
return fib(n-1) fib(n-2)
print(fib(100))
6. itertools.groupby() — группирует элементы по ключу.
from itertools import groupby
data = [('fruit', 'apple'), ('fruit', 'banana'), ('veg', 'carrot')]
for key, group in groupby(data, lambda x: x[0]):
print(key, list(group))
7. contextlib.suppress() — элегантная альтернатива try-except.
from contextlib import suppress
with suppress(FileNotFoundError):
open("not_exist.txt")
@pythonl
Многие считают Python медленным, но это не всегда правда.
Ash Vardanyan в рамках проекта Less Slow показывает, как писать быстрый и эффективный код даже на Python — без магии, но с пониманием.
🔹 pandas vs polars — что быстрее при работе с миллионами строк
🔹 Использование Numba, Cython, PyO3, rust bindings
🔹 Работа с нативными типами, векторизация и zero-copy
🔹 Сериализация без боли: сравнение MessagePack, Arrow, Parquet
🔹 Сравнение аллокаторов, подходов к I/O и нагрузочным тестам
🔹 Ускорение парсинга JSON: orjson, yyjson, simdjson, ujson
🔹 Как обойти GIL и не платить за удобство интерпретатора
📦 Библиотеки и техники:
▪Numba, Cython, cffi, maturin
▪simdjson, orjson, polars
▪pyarrow, msgspec, blosc2, memoryview
▪Работа с mmap, zero-copy, JIT-компиляция, py-spy, perf
📈 Кому подойдёт:
▪Тем, кто пишет ETL, пайплайны или ML/AI обработку
▪Кто работает с большими объёмами данных или бинарными файлами
▪Кто хочет “оптимизировать до безобразия” и понять, как работает Python под капотом
В серии есть еще 2 крутых проекта:
👉 github.com/ashvardanian/less_slow.cpp
👉 github.com/ashvardanian/less_slow.rs
📚 Репозиторий:
💡 Даже если ты не используешь всё это каждый день — ты точно станешь писать лучший Python-код.
@pythonl
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥 TeleGraphite — быстрый и надёжный скрапер публичных Telegram-каналов на Python.
Возможности:
- Извлечение постов из нескольких каналов в JSON (ID, текст, время, ссылки, почты, телефоны)
- Загрузка медиа (фото, видео, документы)
- Удаление дубликатов
- Однократный режим (telegraphite once) и непрерывный (telegraphite continuous --interval)
- Фильтрация по ключевым словам, типу контента (текст/медиа)
- Планирование запусков по расписанию
- Настройка через CLI и YAML
Установка:
1) pip install telegraphite
2) Создать .env с API_ID и API_HASH
3) Список каналов в channels.txt
Репозиторий: https://github.com/hamodywe/telegram-scraper-TeleGraphite
@pythonl
Возможности:
- Извлечение постов из нескольких каналов в JSON (ID, текст, время, ссылки, почты, телефоны)
- Загрузка медиа (фото, видео, документы)
- Удаление дубликатов
- Однократный режим (telegraphite once) и непрерывный (telegraphite continuous --interval)
- Фильтрация по ключевым словам, типу контента (текст/медиа)
- Планирование запусков по расписанию
- Настройка через CLI и YAML
Установка:
1) pip install telegraphite
2) Создать .env с API_ID и API_HASH
3) Список каналов в channels.txt
Репозиторий: https://github.com/hamodywe/telegram-scraper-TeleGraphite
@pythonl
🐍 Как просто создать мультисловарь (Multi-dictionary) в Python
Хочешь, чтобы один ключ в словаре указывал на несколько значений?
Легко!
Используй collections.defaultdict и встроенный list:
🔁 Теперь каждый ключ по умолчанию сопоставляется с пустым списком. А append добавляет новое значение в этот список.
Но будь внимателен: это немного “обман”. На самом деле словарь всё ещё отображает один ключ → одно значение. Просто это значение — список, в который ты уже сам кладёшь что угодно.
Почему
Потому что тебе не нужно проверять, есть ли ключ в словаре. Пустой список будет создан автоматически при первом обращении к ключу.
@pythonl
Хочешь, чтобы один ключ в словаре указывал на несколько значений?
Легко!
Используй collections.defaultdict и встроенный list:
from collections import defaultdict
multidict = defaultdict(list)
multidict["SW"].append("Han Solo")
multidict["SW"].append("R2D2")
🔁 Теперь каждый ключ по умолчанию сопоставляется с пустым списком. А append добавляет новое значение в этот список.
Но будь внимателен: это немного “обман”. На самом деле словарь всё ещё отображает один ключ → одно значение. Просто это значение — список, в который ты уже сам кладёшь что угодно.
Почему
defaultdict
удобен?Потому что тебе не нужно проверять, есть ли ключ в словаре. Пустой список будет создан автоматически при первом обращении к ключу.
@pythonl
@pythonl
Please open Telegram to view this post
VIEW IN TELEGRAM
Мечтаете не просто разбираться в управлении данными, а использовать уникальные инструменты для работы с Big Data? Научитесь этому на бесплатном студкемпе Яндекс Образования и ИТМО по дата-инженерии!
🧠 Программа — интенсивная, актуальная, от лидеров индустрии. С 30 июня по 12 июля вы погрузитесь в мир распределённых хранилищ, микросервисной архитектуры, DataOps/MLOps и пайплайнов для сбора, анализа и визуализации данных. А ещё познакомитесь с технологиями, которые используют в крупных компаниях. В общем, получите реальные навыки, которые ценят на рынке!
🏙 Кампус — в самом центре Санкт-Петербурга. Несмотря на то, что студкемп проходит на базе ИТМО, заявки ждут от студентов из любых вузов и регионов России. Проезд и проживание будут оплачены Яндекс Образованием, так что вам останется сосредоточиться на главном — знаниях, опыте и новых возможностях.
🕐 Регистрация — открыта до 4 мая, но подать заявку можно уже сейчас! Если давно хотели пообщаться с топовыми айтишниками и почувствовать, каково это — учиться в одном из ведущих технических вузов, не откладывайте и заполняйте анкету по ссылке.
🧠 Программа — интенсивная, актуальная, от лидеров индустрии. С 30 июня по 12 июля вы погрузитесь в мир распределённых хранилищ, микросервисной архитектуры, DataOps/MLOps и пайплайнов для сбора, анализа и визуализации данных. А ещё познакомитесь с технологиями, которые используют в крупных компаниях. В общем, получите реальные навыки, которые ценят на рынке!
🏙 Кампус — в самом центре Санкт-Петербурга. Несмотря на то, что студкемп проходит на базе ИТМО, заявки ждут от студентов из любых вузов и регионов России. Проезд и проживание будут оплачены Яндекс Образованием, так что вам останется сосредоточиться на главном — знаниях, опыте и новых возможностях.
🕐 Регистрация — открыта до 4 мая, но подать заявку можно уже сейчас! Если давно хотели пообщаться с топовыми айтишниками и почувствовать, каково это — учиться в одном из ведущих технических вузов, не откладывайте и заполняйте анкету по ссылке.
Зачем это нужно?
Простота развёртывания: чтобы установить и запустить приложение, достаточно скопировать файл app.pex и запустить его — никакой дополнительной настройки.
Портируемость: один файл может включать сборки для разных платформ (Linux, macOS).
Изоляция зависимостей: все библиотеки (включая C‑расширения) уже внутри, конфликтов версий нет.
Как пользоваться:
Устанавливаем сам инструмент:
pip install pex
Собираем .pex-файл:
pex requests -o fetch.pex --script=requests
После этого fetch.pex — готовый исполняемый файл, который при запуске сразу импортирует и запускает библиотеку requests.
Интеграция с другими сборщиками:
Системы вроде
Pants, Buck и {py}gradle
умеют автоматически собирать .pex-архивы из вашего кода.Лицензия: Apache 2.0
▪ GitHub: https://github.com/pex-tool/pex
▪Документация: https://docs.pex-tool.org/
@pythonl
Please open Telegram to view this post
VIEW IN TELEGRAM
Уже разбираетесь в Python, но хотите большего? Тогда вам на PiterPy 2025
🗓️16–17 мая
📍 Питер + онлайн
PiterPy — конференция для всех, кто использует Python в работе. Здесь собираются бэкенд-разработчики, тестировщики, DevOps, дата- и ML-инженеры и аналитики, а также тимлиды.
Перед вами выступят спикеры из Яндекса, Т-Банка, Точки, Авито, Ozon и других известных компаний. Вас ждет два дня докладов про бэкенд и архитектуру, библиотеки и инструменты, практики разработки и Core Python, а еще мастер-класс по программированию роботов.
А вот что с билетами:
→ Дают скидку 15% на билет для частных лиц по промокоду
→ Есть билет для студентов и преподавателей вузов — в два раза дешевле персонального;
→ Можно попросить руководство приобрести вам корпоративный билет.
Бонус: в соседних залах пройдет ML-конференция IML. Участники PiterPy смогут послушать доклады IML бесплатно.
За подробностями и билетами
🗓️16–17 мая
📍 Питер + онлайн
PiterPy — конференция для всех, кто использует Python в работе. Здесь собираются бэкенд-разработчики, тестировщики, DevOps, дата- и ML-инженеры и аналитики, а также тимлиды.
Перед вами выступят спикеры из Яндекса, Т-Банка, Точки, Авито, Ozon и других известных компаний. Вас ждет два дня докладов про бэкенд и архитектуру, библиотеки и инструменты, практики разработки и Core Python, а еще мастер-класс по программированию роботов.
А вот что с билетами:
→ Дают скидку 15% на билет для частных лиц по промокоду
DJANGO
;→ Есть билет для студентов и преподавателей вузов — в два раза дешевле персонального;
→ Можно попросить руководство приобрести вам корпоративный билет.
Бонус: в соседних залах пройдет ML-конференция IML. Участники PiterPy смогут послушать доклады IML бесплатно.
За подробностями и билетами
@pythonl
Please open Telegram to view this post
VIEW IN TELEGRAM
Python 3.14 вводит t"..." — новый синтаксис для строк, ориентированных на безопасность типов и интеграцию с системами шаблонов, SQL, HTML и др.
🔹 Что такое t-строка?
t"..." — это как f"...", но:
- интерполяция ограничена и контролируема;
- поддерживается строгое соответствие шаблону;
- можно передавать переменные явно, предотвращая SQL-инъекции и XSS.
🔸 Пример:
name = "Alice"
greeting = t"Hello, {name}!" # t-строка
Вместо немедленной подстановки, как в f"...", t"..." создает шаблон с выражениями как параметрами.
🔐 Зачем это нужно?
✅ Безопасность при генерации SQL, HTML, JSON
✅ Улучшение инструментов и проверки типов (через static analysis)
✅ Контроль над контекстом исполнения (больше нельзя просто вставить переменную как есть — нужно передать её явно)
📦 Использование:
t-строки — это первый шаг к "template string literals" как в TypeScript.
Можно использовать с функциями:
def html(template: T[str]) -> SafeHTML:
...
html(t"<div>{user_input}</div>")
💡 Почему это важно?
Старый код:
f"SELECT * FROM users WHERE name = '{user_name}'"
может привести к SQL-инъекциям и XSS.
t-строки — безопасная альтернатива с встроенной защитой.
🛡 Пример: безопасный HTML
template = t"<p>{user_input}</p>"
html_output = html(template)
# <p><script>alert('bad')</script></p>
Функция html() может вернуть не просто строку, а полноценный HTMLElement.
Больше никакой "грязи" — всё чисто и типобезопасно.
🔍 Работа с шаблоном
t-строки позволяют получить доступ к содержимому:
template = t"Hello {name}!"
template.strings # ("Hello ", "!")
template.values # (name,)
template.interpolations[0].format_spec # ">8"
Можно и вручную собрать шаблон:
Template("Hello ", Interpolation(value="World", expression="name"), "!")
🚀 Вывод:
t"..." — шаг к безопасным шаблонам и типизации строк в Python.
Готовься к будущему Python — безопасному по умолчанию.
📌 Подробнее здесь
@pythonl
Please open Telegram to view this post
VIEW IN TELEGRAM
❓ Как повысить свои навыки в аналитике данных за 90 минут?
Прийти на бесплатный практический урок 28 апреля, где мы расскажем, как эффективно работать с данными с помощью Python и Pandas: как заполнять пропуски, устранять дубликаты и правильно работать с выбросами.
👥 Кому будет полезен вебинар?
- тем, кто только начинает свой путь в Data Science и хочет освоить базовые навыки
- тем, кто работает с данными в электронных таблицах, но хочет перейти на Python и Pandas
- тем, кто сталкивался с ошибками при анализе из-за «мусора» в данных
- тем, кто планирует изучать машинное обучение (ML), где чистота данных критически важна
📍 Зарегистрируйтесь и получите скидку на большое обучение «Специализация Machine Learning»: https://otus.pw/UkAO/?erid=2W5zFG6E7sW
Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.
Прийти на бесплатный практический урок 28 апреля, где мы расскажем, как эффективно работать с данными с помощью Python и Pandas: как заполнять пропуски, устранять дубликаты и правильно работать с выбросами.
👥 Кому будет полезен вебинар?
- тем, кто только начинает свой путь в Data Science и хочет освоить базовые навыки
- тем, кто работает с данными в электронных таблицах, но хочет перейти на Python и Pandas
- тем, кто сталкивался с ошибками при анализе из-за «мусора» в данных
- тем, кто планирует изучать машинное обучение (ML), где чистота данных критически важна
📍 Зарегистрируйтесь и получите скидку на большое обучение «Специализация Machine Learning»: https://otus.pw/UkAO/?erid=2W5zFG6E7sW
Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.
This media is not supported in your browser
VIEW IN TELEGRAM
Пропал опытный разработчик!
Нашедшему просьба обратиться в Ozon Tech.
Вознаграждение за рекомендацию 150 000 ₽ гарантируют.
Особые приметы, требования, условия на этой странице⬅️
Нашедшему просьба обратиться в Ozon Tech.
Вознаграждение за рекомендацию 150 000 ₽ гарантируют.
Особые приметы, требования, условия на этой странице
Please open Telegram to view this post
VIEW IN TELEGRAM