TGViewer
Channel Public Channel
Хитрый Питон

Хитрый Питон

@tricky_python

Я много читаю и делюсь в этом канале заинтересовавшими меня материалами, в основном про Python. @korneevm
Subscribers
3.45K
Photos
5
Videos
0
Links
258
Recent Posts 20 shown
Post #268 657

Forwarded from Moscow Python (Valentin Dombrovsky)

Друзья, у нас важное объявление!

Некоторые из вас помнят наши курсы Learn Python - когда-то они запускались в оффлайне и были отличной точкой входа для новичков.

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

Именно эта идея лежала в основе Moscow Python, когда мы запускали наши митапы в 2012-м году, однако мы решили пойти дальше и сегодня объявляем о запуске Moscow Python Pro - это и серия мероприятий, и своего рода "сообщество внутри сообщества".

Главными лицами Moscow Python Pro являются его резиденты. Это люди, с которыми вы хорошо знакомы по митапам и конференциям. Именно в рамках наших мероприятий вы получаете возможность близкого общения с этими людьми и получения от них ответов на ваши вопросы в неформальной обстановке.

Старт серии мероприятий Moscow Python Pro знаменуют 2 круглых стола на тему "Навыки сильного разработчика в эпоху ИИ".

Круглый стол 06.10, участники:

- Александр Ковалев (Ozon Tech, Руководитель группы разработки)
- Александр Полищук (МТС Веб Сервисы, Руководитель разработки Дата платформы)
- Сурен Хоренян (Яндекс, Старший разработчик)
- Михаил Васильев (Райффайзенбанк, Старший инженер по машинному обучению)

Круглый стол 09.10, участники:

- Алексей Жиряков (Сбер, Исполнительный директор в дивизионе «Развитие генеративного ИИ»)
- Максим Богуславский (ООО «Альфа-функция», Генеральный директор)
- Денис Аникин (Райффайзенбанк, Техлид)

Ведущий обоих мероприятий: Валентин Домбровский, сооснователь Moscow Python.

Подробности о мероприятиях и "перках" для участников читайте по ссылкам выше. Да, это платно, но мы надеемся, что это позволит нам развивать сообщество дальше и придумывать для вас новые крутые идеи. Отметим также, что до конца этой недели доступна специальная ранняя цена (а также специальная цена для тех, кто решит сходить на оба круглых стола сразу).

До скорых встреч и да пребудет с вами Python!
---------------------
NB: Если вы получили это сообщение от друга или прочитали его в дружеском нам канале, подписывайтесь на @moscow_python, чтобы следить за новостями Moscow Python.
  • 👍 10
Post #267 1.74K
В документации Python появилась отдельная страница со сложностью операций над встроенными типами. Списки, словари, множества, строки и прочее — с пояснениями, почему именно такая сложность и какие есть нюансы.

Отдельно любопытно почитать примечания. Например, O(1) у добавления в список — амортизированная оценка: иногда приходится перевыделять память, и конкретная операция будет O(n). А у словарей поиск в среднем O(1), но при неудачных коллизиях может стать O(n). В общем, полезная шпаргалка, чтобы освежить в голове, сколько стоят привычные операции.

Ссылка https://docs.python.org/3.16/library/time-complexity.html
Python documentation Time complexity of operations on built-in types This page documents the time complexity of various operations on built-in types in CPython. Other Python implementations may have different performance characteristics. Additionally, the listed cos...
  • 👍 55
  • 🔥 10
Post #266 2.03K
В эту пятницу в 14:00 (по мск) обсудим новости августа в прямом эфире Moscow Python Podcast 🎙

Вместе Гришей Петровым разберём самые интересные новости Python последних недель:
🟤PEP 805 — Safe Parallel Python - альтернатива NoGil или дополнение к нему?
🟤PEP 841: новый синтаксис frozen для создания неизменяемых коллекций — frozenset и frozendict. PEP активно обсуждается, а среди его авторов — Никита Соболев;
🟤Django Developers Survey 2026: посмотрим, что нового можно узнать о сообществе и разработчиках Django;
🟤Django переходит на ежегодный цикл релизов: Django 6.2 LTS станет последним релизом со старой нумерацией, а в январе 2028 года нас ждёт Django 2028. Заодно обсудим новую модель поддержки версий;
🟤Документация Python теперь доступна на русском: перевод уже готов на 69%, а ключевые разделы документации переведены полностью;
🟤И пара других новостей.

📍 Когда и во сколько: 4 сентября в 14:00 по Москве.
➡️ Подключайтесь к эфиру или смотрите запись на YouTube, VK или Rutube.
YouTube Новости мира Python август 2026 aiaiai для разработчиков — https://getaiaiai.ru/solutions/developers/ Ведущие – Григорий Петров и Михаил Корнеев Ссылки выпуска: Канал Миши в Telegram — https://t.me/tricky_python Канал Moscow Python в Telegram — https://t.me/moscow_python Все выпуски —…
  • 🔥 12
Post #265 1.76K
Казалось бы, что может быть проще, чем разбить текст на строки? Может быть, кто-то еще помнит про \n, \r и \r\n, и в старые времена надо было знать или угадывать, что используется в файле в зависимости от системы. Мы привыкли, что в python обычно все просто - splitlines()`/`split('\n') и готово, дальше под капотом работает магия. На самом деле все, конечно, гораздо сложнее 🙂 Джеймс Беннет написал отличный разбор, как все работает сейчас, почему и откуда это все взялось.

Началось все с ASCII и телетайпов: LF (`0x0A`) двигал бумагу вниз, CR (`0x0D`) возвращал каретку. Два символа нужны, потому что механике требуется время, чтобы каретка успела доехать. Потом терминалы стали виртуальными, необходимость отпала, и все разбежались кто куда: CP/M → DOS → Windows оставили CR LF, Multics → Unix взяли только LF, Apple и Commodore - только CR. В питон еще в версии 2.3 завезли PEP 278 - universal newlines.

Но так-то в ASCII есть еще FF (form feed, `0x0C`) и VT (vertical tab, `0x0B`) - они как бы не "новая строка", но по факту переводят вывод на другую строку. Плюс NEL (`0x85`), который завели для совместимости с IBM-овской кодировкой EBCDIC, где был свой символ для перевода строки.

Дальше Юникод добавил U+2028 LINE SEPARATOR и U+2029 PARAGRAPH SEPARATOR, потому что обычный newline стал двусмысленным: текстовые редакторы с автопереносом начали использовать его как разрыв абзаца, а не строки.

Самое неожиданное - последние три: U+001C, U+001D, U+001E, они же ASCII-шные FILE, GROUP и RECORD SEPARATOR, которыми когда-то разделяли записи в данных. К разрыву строк они отношения не имеют, а попали в список через алгоритм для текста со смешанным направлением письма (слева направо и справа налево). Если, например, в тексте на арабском вставка цитаты на английском, направление переключается спецсимволом, и действует он до конца абзаца. А у этих трех разделителей в свойствах как раз прописано "конец абзаца" - вот они и оказались в одном списке с настоящими переводами строк.

Сейчас это все собрано в splitlines(). А практический вывод простой: splitlines() и split('\n') - это не одно и то же. Если в данных попадется \x1c или \u2028 (а в выгрузках из всяких легаси-систем они попадаются), результат будет разный. Для парсинга структурированных форматов лучше явно указывать разделитель.

Оригинал https://www.b-list.org/weblog/2026/aug/10/newlines/
James Bennett Breaking up (lines) is hard to do Here’s a seemingly simple question: given a chunk of multi-line text, how do you split it and return an array …
  • 👍 32
  • 🔥 11
Post #264 1.87K
Пока я был в отпуске и путешествовал, вышел перевод документации Python на русский. Звучит круто, но на самом деле полностью переведены только core-разделы Tutorial, Built-in Functions and Dealing with Bugs, заметная часть документации все еще на английском. Посмотреть на прогресс перевода (сейчас 69%) и присоединиться к проекту можно здесь https://explore.transifex.com/python-doc/python-newest/
Transifex The Python translation project on Transifex Join Python project in Transifex, and contribute to the world's largest localization community
  • 👍 12
  • 🔥 8
Post #263 2.75K
Есть такой язык - Mojo:

• синтаксически он близок к python
• дает возможность вызывать и исполнять питоновские библиотеки через cpython-рантайм (я не уверен, что это production-схема
• расходы на конвертацию и GIL никуда не деваются, но тем не менее)
• при этом сам язык компилируемый - есть и JIT, и AOT-сборка в бинарник
• работает с gpu из коробки

и в принципе выглядит довольно интересно.

И вот на прошлой неделе вышла версия 1.0 языка, то есть предполагается, что он достаточно стабилизировался. А на днях его заопенсорсили под apache 2.0 лицензией. Я его трогал совсем немного - когда сделали возможность вызова python-библиотек, но сейчас кажется хороший повод пойти поиграться. https://www.modular.com/blog/mojo-open-source
Modular Modular: Mojo🔥 is now open source! The Apache 2.0 license is the gold standard for programming languages and compilers, because it provides great flexibility to be used in all sorts of applications. The LLVM extensions to the license further expand those freedoms for building and distributing…
  • 🔥 19
  • 👍 15
Post #262 4.24K
Пару недель назад я писал про то, насколько больше security-отчетов теперь приходит для CPython по сравнению с предыдущими годами. Казалось бы - берешь llm, она пишет тебе патч - и готово, profit. И тут как раз 1password опубликовали исследование, которое показывает, что это пока так не работает.

Они сгенерировали более 6000 патчей для 6 разных уязвимостей с помощью opus 4.8 и chatgpt 5.5, обе в версии для security-специалистов (т.е. там были убраны часть ограничений). Результат? Только 26% патчей полноценно устранили уязвимость. Ещё 20,1% проблему закрыли, но работа приложения изменилась, читай "побочные эффекты". Самое забавное, в 2,1% случаев проблема не была устранена, так еще и появилась новая уязвимость. Хуже того, в трети "успешных" 20,1% на самом деле llm-ка фиксила не первопричину проблемы, а конкретный пример атаки, описанный в промпте.

Вывод? Llm-ки очень удобны и могут ускорить разработку - но и голову тоже нужно включать и смотреть, что там интеллект нагенерил - ревьюить, править, тюнить. Ссылка на статью: https://1password.com/blog/why-ai-generated-patches-still-require-human-review
1Password Off-by-1 Labs: AI-Generated Vulnerability Patches & Human Review | 1Password Explore Off-by-1 Labs research on AI-generated vulnerability patches, including patch success rates, security risks, and why expert human review remains essential.
  • 🔥 33
Post #261 2.65K
Вчера пишет мне Никита Соболев - так и так, собираем папку с каналами python-сообщества. Учитывая, что с большинством тех, чьи каналы в папке я знаком лично, на кого-то итак был подписан - рекомендую - https://t.me/addlist/o2_hXmp5nSUyODNi

Для тех, кто уперся в лимит телеги по папкам, вот просто список каналов:

• https://t.me/opensource_findings
• https://t.me/goduniblog
• https://t.me/cpython_notes
• https://t.me/nkhitrov_blog
• https://t.me/fastnewsdev
• https://t.me/pylounge
• https://t.me/blog_pogromista
• https://t.me/moscow_python
• https://t.me/tricky_python
• https://t.me/pymineral
• https://t.me/t0digital
• https://t.me/grigorycode
Telegram Python Никита Соболев invites you to add the folder “Python”, which includes 13 chats.
  • 🔥 25
  • 👍 6
Post #260 2.85K
С 2028 года Django переходит на ежегодные релизы, при этом каждый такой релиз будет LTS с тремя годами поддержки. С одной стороны, разработка вроде как замедлится, а с другой стороны, с крупными релизами больше шансов протащить крупные системные изменения. Плюс, конечно, тем, кто поддерживает сайты на Django, не придётся больше заморачиваться с LTS — не LTS.

Django 6.2 LTS в апреле 2027 станет последним релизом со "старой" нумерацией, в январе 2028 выйдет уже Django 2028. https://www.djangoproject.com/weblog/2026/aug/10/annual-release-cycle/
Django Project Django is moving to an annual release cycle Posted by Carlton Gibson on Aug. 10, 2026
  • 👍 26
  • 👎 2
Post #259 2.9K
Запустили опрос python-разработчиков про типизацию - в авторах опроса Astral, JetBrains, Microsoft, Meta, discuss.python.org - т.е. очень многие из тех кто реально занимается типаии/туллингом. Это ежегодная история, предыдущий отчет тут https://engineering.fb.com/2025/12/22/developer-tools/python-typing-survey-2025-code-quality-flexibility-typing-adoption/ - мы кажется обсуждали его в подкасте.

Если вы активно используете аннотации типов - сходите пройдите, важно давать обратную связь разработчикам, я уже прошел https://www.surveymonkey.com/r/python_typing
Engineering at Meta Python Typing Survey 2025: Code Quality and Flexibility As Top Reasons for Typing Adoption The 2025 Typed Python Survey, conducted by contributors from JetBrains, Meta, and the broader Python typing community, offers a comprehensive look at the current state of Python’s type system and d…
  • 🔥 8
  • 👍 4
Post #258 1.92K
Уже завтра в 14:00 (по мск) обсудим новости июля в прямом эфире Moscow Python Podcast 🎙

Разберём самые интересные события последних недель:
🟤 PEP 836: новый план развития JIT-компилятора для CPython;
🟤 Ruff 0.16: теперь по умолчанию включены 413 правил вместо 59;
🟤 GitHub усиливает безопасность CI;
🟤 Релиз Django 6.1;
🟤 Обсудим статью In Defense of Not Understanding Your Codebase.

📍 Когда и во сколько: 7 августа в 14:00 по Москве.
➡️ Подключайтесь к эфиру или смотрите запись на YouTube, VK или Rutube.
YouTube Новости мира Python за июль 2026 aiaiai для разработчиков — https://getaiaiai.ru/solutions/developers/ Ведущие – Григорий Петров и Михаил Корнеев 00:00 — интро 01:53 — новый план развития JIT-компилятора для CPython 10:09 — Ruff 0.16 22:59 — GitHub усиливает безопасность CI 26:14 —…
  • 🔥 13
Post #257 1.52K
Вышел релиз Django 6.1. Изменений не очень много:

- QuerySet.fetch_mode позволяет более гибко управлять тем, что происходит при обращении к незагруженному полю модели - делать запрос в базу, делать запрос загружая связанные сущности одним запросом или выдавать исключение. Выглядит как действительно полезная фича
- on_delete для ForeignKey теперь можно перевесить на уровень базы данных через SQL ON DELETE, раньше это делалось python-логикой
- В ORM добавлены функции для генерации UUID v4 и UUID v7 на стороне БД
- Всякие улучшения для Content Security Policy, настройки отправки email теперь конфигурируются через словарь и много всяких других мелочей

Полный ченджлог тут https://docs.djangoproject.com/en/6.1/releases/6.1/
  • 👍 16
  • 👎 1
Post #256 1.71K
Вместе с прогрессом llm-ок растет нагрузка на мейнтенеров проектов, это не новость и мы много раз обсуждали это в подкасте. Но вот подъехала статья с нитересными графиками по нагрузке именно связанноы с безопасностью:

- Security-отчеты на github - ~40 за весь 2025 и уже 175 за первую половину 2026
- Полноценные CVE - ~20 за 2025 и столько же только за первую треть 2026, т.е. за весь год предполагается рост в три раза

То есть рост нагрузки очень значительный, сама статься состоит почти из одних графиков https://hugovk.dev/blog/2026/security-line-goes-up/
Hugo van Kemenade Security: line goes up
  • 👍 8
Post #255 1.7K
Поддержка free-threading в библиотеках сейчас один из ключевых блокеров перехода на free-treading. Поэтому я с интересом читаю статьи, которые публикуют на этот счет разработчики библиотек - не то чтобы мне это было нужно для работы, просто очень интересно. На днях наткнулся на статью, про оптимизацию NumPy - проблема была в том, что с отключенным GIL, ThreadPoolExecutor все равно работал медленнее, чем ProcessPoolExecutor. Если вам такое интересно - рекомендую почитать, но если кратко:

- Убрали локи там, где можно было обойтись без них
- Где-то перешли на immortal-объекты, чтобы перестать дергать счетчик ссылок
- Пересели с системного malloc/free на cpython-овский аллокатор, который лучше масштабируется на большое количество потоков

В результате бенчмарк вместо 44 секунд на 32 потоках начал отрабатывать за 1,5 секунды (при использовании процессов - 6 секунд). Подробнее в статье - https://labs.quansight.org/blog/scaling-numpy-on-free-threaded-python
  • 🔥 33
  • 👍 5
Post #254 2.02K
Вышла библиотека django-orjson, которая позволяет легко перевести Django и DRF на быстрый orjson. В комплекте — JsonResponse, renderer и parser для DRF и даже сериализатор для сессий.
В принципе, идея не новая: мы у себя перевели DRF на orjson ещё года четыре назад. Но с готовым пакетом это будет гораздо проще сделать.

Тем, у кого плюс-минус нагруженный проект или просто большие JSON-запросы и ответы, рекомендую присмотреться: https://adamj.eu/tech/2026/07/15/introducing-django-orjson/
adamj.eu Django: introducing django-orjson - Adam Johnson Just as cars painted red are known to be faster, libraries implemented in Rust are also known to be faster. Today’s example is orjson, a Rusty replacement for Python’s built-in json module, boasting 10x faster serialization and 2x faster deserialization.
  • 👍 16
Post #253 1.94K
GitHub запустил пару полезных фич для безопасности CI.

Во-первых, Malware Alerts. Эта штука проверяет, нет ли зависимостей проекта в базе OpenSSF Malicious Packages, и, если находит совпадение, присылает алерт. Глобально включить её пока нельзя — только отдельно для каждого репозитория. Я у себя уже включил, вот тут инструкция https://docs.github.com/en/code-security/how-tos/secure-your-supply-chain/secure-your-dependencies/configure-malware-alerts

Вторая фича - автоматическое обнаружение и блокировка небезопасных CI-пайплайнов. Если workflow выглядит потенциально вредоносным, GitHub не запускает его, пока участник с правами на запись не подтвердит запуск. Пока это работает только для публичных репозиториев.
Если интересно подробнее почитать, как могут выглядеть подобные атаки, вот хороший разбор: https://www.stepsecurity.io/blog/introducing-secret-exfiltration-protection-for-github-actions
GitHub Docs Configuring Dependabot malware alerts - GitHub Docs Prevent malware attacks by identifying and remediating malicious dependencies.
  • 👍 18
Post #252 2K
Вышла новая версия Ruff 0.16. Казалось бы, минорный релиз, но на самом деле нет. Теперь по умолчанию включено 413 правил вместо 59, поэтому, если в конфиге у вас не зафиксирован список правил, используемых на проекте, вас ждёт сюрприз.
Ради интереса прогнал Ruff на своём пет-проекте, где до обновления всё было зелёненьким. После перехода на 0.16 получил: Found 50 errors, 34 fixable. Пойду чинить 🙂

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

Ченджлог в блоге Astral: https://astral.sh/blog/ruff-v0.16.0
astral.sh Ruff v0.16.0 The next stable version of Ruff is out now.
  • 👍 34
Post #251 1.68K
Прикольный проект — интерпретатор «старого» Бейсика на Python. Сам проект маленький, всего около 1000 строк, поэтому, если вам интересно немного разобраться в том, как работают интерпретаторы, рекомендую посмотреть: https://github.com/nedbat/acidica
GitHub GitHub - nedbat/acidica: Vintage BASIC, just for fun Vintage BASIC, just for fun. Contribute to nedbat/acidica development by creating an account on GitHub.
  • 👍 12
  • 🔥 3
Post #250 2.28K
Уже сегодня в 14:00 (по мск) обсудим новости июня в прямом эфире Moscow Python Podcast 🎙

Обсудим с Никитой Соболевым последние интересные релизы:
🟤Что нового будет в Python 3.15
🟤Django 6.1 Beta: главные изменения и новые возможности
🟤PEP 835: сокращённый синтаксис для метаданных Annotated
🟤Небезопасные подсказки кода: можно ли считать их уязвимостью?

Основные ведущие: Михаил Корнеев и Григорий Петров

📍Когда и во сколько: 3 июля в 14:00 по Москве.
Подключайтесь к удобной площадке Youtube / Rutube
➡️ Присоединяйтесь к эфиру или смотрите в записи на любой из площадок
YouTube Новости мира Python за июнь 2026 aiaiai для разработчиков — https://getaiaiai.ru/solutions/developers/ Митап Moscow Python 29.07.2026 — https://moscowdjango.timepad.ru/event/4056139/ 00:00 — интро и обновления в Python 3.15 02:00 — lazy imports 17:24 — frozen dict 28:05 — введение sentinel…
  • 🔥 12
Post #249 2.43K
Завтра, 10 июня обсудим новости мира Python в прямом эфире Moscow Python🎙

Перенесли выпуск с пятницы на эту среду, а всё остальное будет, как вы любите — обсудим новости с Мишей Корнеевым и Гришей Петровым.

📍Когда и во сколько: 10 июня в 14:00 по Москве.
Подключайтесь к удобной площадке YouTube / Rutube / на VK Видео ссылка будет позже
YouTube Новости мира Python за май 2026 Таймкоды: 00:00 — интро 00:58 — новости о JIT 04:31 — обсуждение httpx 10:46 — PEP 661 Sentinel Values 14:03 — поддержка free threading 21:40 — проблемы с GitHub 30:30 — регулирование в интернете 44:52 — распределение труда Ведущие – Григорий Петров и Михаил…
  • 👍 12
  • 🔥 2
Older posts →

About this channel

How can I read @tricky_python without a Telegram account?
TGViewer shows the public web preview Telegram publishes for Хитрый Питон: recent posts, photos, videos and the subscriber count, with no app, login or account.
How many subscribers does Хитрый Питон have?
Хитрый Питон (@tricky_python) has 3.45K subscribers on Telegram, refreshed roughly every 30 minutes.
Does Хитрый Питон know I viewed it here?
No. Public channel previews carry no viewer identity, and TGViewer has no accounts or tracking of what you look up.
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →