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

Хитрый Питон

@tricky_python

Я много читаю и делюсь в этом канале заинтересовавшими меня материалами, в основном про Python. @korneevm
Subscribers
3.46K
Photos
5
Videos
0
Links
258

Showing posts older than #189 · Back to latest

Older Posts 20 shown
Post #188 5.48K

Forwarded from Никита Соболев

всем привет! я очень долго обещал сделать бесплатный курс на ютюбе для всех желающих. и вот я, наконец, начал его делать!

встречайте: https://www.youtube.com/@sobolevn

уникальность формата в том, что я рассматриваю одну узкую тему с трех уровней сложности: junior, middle, senior. так что, контент должен быть интересным для всех уровней Python разработчиков!

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

важные ссылки:
- все материалы курса: https://github.com/sobolevn/the-best-python-course
- мой гитхаб: https://github.com/sobolevn
- поддержать мою работу: https://boosty.to/sobolevn
- вступить в наше новое глобальное сообщество: https://discord.python.ru

пишите в комментах к видео, если узнали что-то новое!
мета информация: https://www.youtube.com/watch?v=SVBPkrs9UFg
первый выпуск: https://www.youtube.com/watch?v=WBKf2Cw_9Pc

буду рад обратной связи!
в ближайших планах:
- починить звук и свет
- избавиться от слова "интересный" в описании примерно всего
- сделать много новых видео по разным темам
  • 👍 46
  • 🔥 33
Post #187 2.94K
Frost Ming, автор менеджера пакетов pdm выложил несколько постов про его внутреннее устройство:

- для чего нужен lock-файл, как он устроен у pdm и почему именно так https://frostming.com/en/2024/pdm-lockfile/
- как pdm разрешает зависимости и какие есть стратегии формирования lock-файла https://frostming.com/en/2024/pdm-lock-strategy/

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

P.S. Автор честно предупреждает, что обе статьи — это автоматический перевод с китайского, но тем не менее читается легко и понятно.
Frostming PDM Internals(1) | Frost's Blog Lock file
  • 👍 5
  • 🔥 4
Post #186 3.31K
Привет!
Сегодня в 14:00 по МСК встретимся в прямом эфире Moscow Python Podcast и обсудим:
🟡релиз ruff 0.3.0
🟡style czar или попытка привести языки к одному стилю
🟡Gemini Pro объявила кеширование «риском безопасности»
🟡Cloudflare запустили поддержку python в cloud-workers
🟡как за год изменилось состояние Web Assembly в Python

➡️Когда: 4 апреля в 14:00 по Москве.
➡️Где: онлайн и в записи по ссылке.
YouTube Новости мира Python за март 2024 Спонсор подкаста: Курсы Python для новичков и продвинутые курсы — https://learn.python.ru Python Day на Positive Hack Days: https://bit.ly/phd-mpp Ведущие – Григорий Петров и Михаил Корнеев Новости выпуска: релиз ruff 0.3.0 — https://astral.sh/blog/ruff…
  • 🔥 12
  • 👍 8
Post #185 4.64K
Я думаю, что многие python-разработчики хотя бы раз в жизни слышали про то, что использование встроенного модуля pickle может быть небезопасным. Но кажется далеко не все знают, в чем заключается "небезопасность". Хорошая статья на lwn, где высокоуровнево разбирается то, как работает pickle и приводятся примеры, как с помощью него вам могут сделать больно.
tl;dr - скачивать веса ml-моделек в pickle-формате - плохая идея. Подробнее тут - https://lwn.net/Articles/964392/
lwn.net Insecurity and Python pickles Serialization is the process of transforming Python objects into a sequence of bytes which can be used to recreate a copy of the object later — or on another machine. pickle is Python's native serialization module. It can store complex Python objects, making…
  • 👍 19
Post #184 5.38K
Любопытная статья от Lyft о том, как они полуавтоматически апгрейдят python в 1500+ внутренних репозиториях. Было интересно посмотреть, как они подходят к этому, прямо скажем, непростому вопросу. https://eng.lyft.com/python-upgrade-playbook-1479145d52f4
Medium Python Upgrade Playbook How Lyft upgrades Python at scale—1500+ repos spanning 150+ teams…
  • 👍 16
Post #183 6.7K
Мы у себя в компании начали аккуратно переходить на новый менеджер пакетов uv (https://github.com/astral-sh/uv) и решил рассказать, как все идет.

Так как тула новая, пришлось ждать пока пофиксят 2 бага в которые мы упирались. После чего все равно не заработало, но проблема была уже на нашей стороне. Но самое главное, что после решения этих проблем все работает как часы уже вторую неделю 🙂

Все сложности были при использовании нескольких индексов:
- политика разрешения зависимостей uv отличается от pip - это важно, когда используется свой индекс в добавок к pypi
- авторы решили не переиспользовать переменную окружения PIP_EXTRA_INDEX_URL - для uv надо задавать UV_EXTRA_INDEX_URL
- в UV_EXTRA_INDEX_URL лушче прописывать `/simple`-индекс, у меня сначала было не так, pip работал, а uv уже нет

Но какая же uv офигенно быстрая. Вот примеры двух наших разных проектов:

1. Внутренняя библиотека (меньше 20 зависимостей)
- pip-tools 4 минуты 7 секунд
- с uv 10 секунд

2. Большой старый монолит на Django (больше 100 зависимостей):
- с pip-tools 18 минут 19 секунд
- с uv 32 секунды (!!!)

В общем я очень доволен результатом и рекомендую как минимум посмотреть на эту тулзу.
GitHub GitHub - astral-sh/uv: An extremely fast Python package and project manager, written in Rust. An extremely fast Python package and project manager, written in Rust. - astral-sh/uv
  • 👍 50
  • 🔥 26
Post #182 2.91K
Всем привет!
Наш подкаст теперь будет выходить по четвергам, поэтому 21 марта в 14:00 по МСК встретимся в прямом эфире Moscow Python Podcast со Станиславом Змиевым, Tech Lead of Platform Engineering в Monite и обсудим:
🟡что такое API-First компании и почему они становятся популярными;
🟡как проектировать хорошее API;
🟡что такое API Версионирование и как его правильно готовить.

➡️Когда: 21 марта в 14:00 по Москве.
➡️Где: онлайн и в записи по ссылке.

🟡Станислав уже записывал с нами выпуск про pathlib.Path.walk, запись можете посмотреть по ссылке
YouTube API версионирование: как, зачем и почему? Спонсор подкаста: Курсы Python для новичков и продвинутые курсы — https://learn.python.ru CFP PHDays —https://docs.google.com/forms/d/e/1FAIpQLSdfWqy2eSlLOcpR6BzHp0ypUqFSBBWrUBgb0ZveD1oKPqOmoQ/viewform Ведущие – Григорий Петров и Михаил Корнеев
  • 👍 15
  • 🔥 8
Post #181 3.05K
Напоминаю, что продолжаются моковые собеседования для тех, кто хочет научиться решать алгоритмы.

Во многих топовых компаниях алгоритмы стали неотъемлемой частью собесов, а для разработчиков — головной болью 💪

Если вы уже прорешали по сотне задачек на LeetCode, но все еще не разобрались, как применять алгоритмы на практике и справляться с незнакомыми заданиями на собеседованиях, тогда мы идем к вам 😁

На стримах вы сможете посмотреть, что спрашивают, как разбирают ответы участников, получить знания и стать увереннее в себе.

Можно позадавать вопросы на трансляции, а можно подать заявку на участие и пройти собеседование в прямом эфире 😉

Сегодня вечером можно прийти посмотреть на первое собеседование по JavaScript по ссылке 🙂 Будет полезно и интересно ☺️
  • 👍 11
Post #180 4.33K
Недавно у меня возникла рабочая задача поревьюить кодовую базу - не очень большую, но и не микросервис - порядка 16 тысяч строк. И по результатам мне нужно было сформулировать свои рекомендации и как-то их аргументировать. И вот я понимаю, что во многих местах код переусложнен, но нужно это как-то аргументировать.

И вот тут мне прямо хорошо зашла тула https://github.com/rohaquinlop/complexipy - это штука для оценки cognitive complexity (можно почитать тут https://habr.com/ru/articles/565652/).

На самом деле есть разные тулы для этого, но complexipy мне понравился скоростью, довольно гибкими настройками и в хорошем смысле замороченностью автора, который пошел за ревью к G. Ann Campbell, которая собственно основной автор методики.
Конечно, у любой методики оценки качества кода есть свои минусы, но чем мне нравится этот конкретный вариант - он хорошо показывает куда смотреть и где скорее всего код требует рефакторинга.
GitHub GitHub - rohaquinlop/complexipy: Blazingly fast cognitive complexity analysis for Python, written in Rust. Blazingly fast cognitive complexity analysis for Python, written in Rust. - rohaquinlop/complexipy
  • 👍 46
  • 🔥 22
Post #179 4.28K
psycopg3 вышла уже почти три года назад, но я уверен, что многие пока по разным причинам сидят на psycopg 2. Вот тут померяли скорость работы psycopg2 vs psycopg3 и результаты на мой взгляд получились неоднозначные:

1. В обычных select from запросах psycopg3 в три раза быстрее psycopg2. Кажется для большинства проектов, у которых чтения больше записи переход вполне оправдан
2. А вот на всяких более редких кейсах типа batch-записи или получения blob-ов из базы тройка проигрывает двойке

В общем я задумался о том, чтобы проекты, где под капотом psycopg начать переводить на третью версию https://www.timescale.com/blog/psycopg2-vs-psycopg3-performance-benchmark/
Tiger Data Blog Psycopg2 vs Psycopg3 Performance Benchmark A comparison of psycopg2 versus psycopg3 to assess the performance gains of the latest version. Read the full article on the Tiger Data blog.
  • 👍 31
Post #178 2.87K
Как потренироваться в прохождении собеседований по алгоритмам?

Можно поучаствовать в публичных моковых интервью, чтобы узнать какие темы стоит подучить, а какие вы уже знаете хорошо, и получить подробный фидбэк от интервьюера; а можно прийти зрителем — посмотреть, какие вопросы задают и определить стратегию подготовки.

Такие моковые собесы пройдут уже на следующей неделе по следующим направлениям:
11.03 в 19:00 — Go
12.03 в 17:30 — C++
13.03 в 19:00 — JavaScript
14.03 в 17:30 — Python


😎 Собеседования проведут TeamLead из Яндекса, Senior из Motional и CTO Berlin Technological Academy

По итогам мероприятия вы:

✔️ посмотрите, как проходят собеседования
✔️ получите возможность пройти собес и получите фидбэк по вашему опыту и резюме
✔️ получите ответы на волнующие вопросы

Кому подойдет?

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

Можно зарегистрироваться:

- В качестве зрителя 🍿
- В качестве собеседуемого на интервью 🥷

Зарегистрироваться можно по ссылке, чтобы накануне пришли напоминания.
  • 👍 8
Post #177 2.37K

Forwarded from Moscow Python (Valentin Dombrovsky)

Друзья, хотим рассказать замечательную новость - конференции про Python от нашего сообщества - быть!

Как и в прошлом году, мы встречаемся на Positive Hack Days - 26-го мая мы проведём там Python Day.

Спикеры и гости конференции Python Day будут иметь доступ ко всем техническим трекам на Positive Hack Days в течение всего времени проведения фестиваля.

Планируем целый день докладов и дискуссий про Python. И поэтому мы открываем CFP - ждём ваших заявок на доклады до конца марта.

Мы рассчитываем, что на Python Day придёт порядка 500 профессиональных разработчиков на Python (Middle, Middle+ и Senior) и очень хотим сделать интересную программу для них.

Мы не ограничиваем темы докладов - ожидаем от вас лишь интересных кейсов и знаний в сфере разработки на Python. Время на выступление - порядка 40 минут + 10 минут на вопросы из зала.

ВАЖНО: Чем раньше вы подадите заявку, тем больше времени у ПК будет на её рассмотрение.

Регистрация на само мероприятие откроется чуть позже - следите за новостями.

Заявки на доклады можно подавать тут:
https://docs.google.com/forms/d/e/1FAIpQLSdfWqy2eSlLOcpR6BzHp0ypUqFSBBWrUBgb0ZveD1oKPqOmoQ/viewform
Google Docs Заявка на доклад на конференции Python Day на Positive Hack Days Спасибо за интерес к выступлению на конференции Python Day на фестивале Positive Hack Days 2024 Конференция пройдёт 26-го мая 2024 года в Лужниках. Более подробная информация о мероприятии будет опубликована позднее на сайте Positive Hack Days. Спикеры…
  • 🔥 12
  • 👍 4
Post #176 3.58K
Так как сегодня выходной, вот вам статья, которая сделала мой сегодняшний день. Гугловский Gemini Pro отказался писать кеширущий декоратор потому, что кеширование может привести к проблемам с безопасностью.

И в принципе он не так уж не прав - например кеширования пароля в открытом виде действительно может привести к неожиданным побочкам. Думать, что и как ты кешируешь (да и в целом думать) - полезно, но вот объявлять кеширование в целом security risk-ом — это что-то новенькое 😉

У меня нет доступа к gemini pro, но в целом я готов поверить в такое поведение, пока все что показывал Гугл как минимум "странное" https://new.pythonforengineers.com/blog/so-evidently/
Python for Engineers So Google's Gemini Doesn't Like Python Programming and Sanskrit? I have been playing around with Googles Gemini Pro. Recently, I wanted to write a blog on Python's decorators and wanted to get some ideas for practical projects I could build with them. Tried GPT4 first, it gave me the standard "log analyser" that all blogs…
  • 🔥 18
  • 👍 6
Post #175 2.79K
Вышел ruff 0.3.0 - которую авторы позиционируют как первую стабильную production-ready версию линтера. Что нового:

- новый style guide, основная идея которого - быть ближе к тому, как форматирует black
- улучшенная поддержка частичного форматирования - когда надо отформатировать не весь файл, а только выделенные строки в ide или только изменённые строки в пре-коммите
- автоматическое форматирование плейсхолдеров внутри f-строк

Подробности в блоге astral https://astral.sh/blog/ruff-v0.3.0
astral.sh Ruff v0.3.0 The next stable version of Ruff is out now.
  • 🔥 35
  • 👍 2
  • 👎 1
Post #174 2.67K
Привет!

В этот раз новостной выпуск Moscow Python Podcast будет сдвинут - вместо пятницы проведенм сегоня в 14:00 по МСК. В этом месяце новостей довольно мало, обсудим:
🟡Инструмент для работы с зависимостями для python uv;
🟡PEP 740 — возможность добавление работы с цифорвыми подписями для реестров пакетов типа PyPI;
🟡Перспективы Python в fullstack веб-разработке.

➡️Когда: 28 февраля в 14:00 по Москве.
➡️Где: онлайн и в записи по ссылке.
YouTube Новости мира Python за февраль и даже больше Спонсор подкаста — https://learn.python.ru Ведущие – Григорий Петров и Михаил Корнеев 00:00 — интро 1:43 —тул для работы с зависимостями для Python — `uv` 24:50 — PEP 740 30:20 — говорим про безопасность: чем отличается настоящая цифровая подпись и 2FA…
  • 👍 17
  • 🔥 8
Post #173 3.02K
На этой неделе проведём выпуск подскаста с Никитой Соболевым, и обсудим, как стать core-разработчиком CPython и в что интересного в мире разработки языка программирования. Этот выпуск будет сегодня, в четверг, а не в пятницу как обычно

➡️Когда: 22 февраля в 14:00 по Москве.
➡️Где: онлайн и в записи по ссылке.
YouTube Как стать core-разработчиком CPython? Спонсор подкаста — https://learn.python.ru Ведущие – Григорий Петров и Михаил Корнеев Ссылки Никиты: GitHub — github.com/sobolevn Youtube — @sobolevn
  • 🔥 36
Post #172 3.38K
Легкое чтение на выходные: автор напоминает, что прежде, чем делать pip install klevaya_liba желательно сначала посмотреть, насколько эта либа живая.

В качестве примера приводит Flask-Mail, у которого последний коммит был в 2014 году, но при этом почти полмиллиона скачиваний в месяц.

Это значит, что найденные проблемы в безопасности не исправляются, а совместимость с новой версией питона может отвалиться в любой момент (например, как это случилось с python-kafka и 3.12).

Статья https://freelancefootprints.substack.com/p/abandoned-code-the-hidden-risks-of
Freelance Footprints Abandoned Code: The Hidden Risks of Using Unmaintained Software Once upon a time, I was working on implementing sending emails in a Flask application. I went to Google to check out how others do it. I couldn't believe it: everyone was using a package that hadn't been maintained for 9 years!
  • 👍 27
Post #171 6.9K
Ребята, которые сделали ruff, выпустили свой тул для работы с зависимостями для python - uv. Они позиционируют его как замену pip, pip-tools и virtualenv. Написан на расте, поэтому работает быстро.

Также они взяли на себя дальнейшую поддержку rye (который изначально сделал Армин Ронахер, автор flask) и судя по всем планируют постепенно эти проекты объединить в один.

Выглядит вкусно, попробую поиграться с uv на пет-проектах.

Анонс: https://astral.sh/blog/uv
Репозиторий проекта: https://github.com/astral-sh/uv
astral.sh uv: Python packaging in Rust uv is an extremely fast Python package installer and resolver, designed as a drop-in alternative to pip and pip-tools.
  • 🔥 35
  • 👍 12
Post #170 3.14K
Привет! Как вы возможно заметили, в январе мы с коллегами решили немного отдохнуть от записи подкаста. Январь закончился, мы немного отдохнули и очередной новостной Moscow Python Podcast пройдет завтра, в 14:00 по МСК. Темы:

🟡JIT-компиляция в Python 3.13;
🟡релиз Django 5.0;
🟡Jetbrains выпустили отчет State of Developer Ecosystem 2023;
🟡cамые популярные библиотеки 2023;
🟡2FA для публикаций PyPI.

➡️Когда: 2 февраля в 14:00 по Москве.
➡️Где: онлайн и в записи по ссылке.
YouTube Новости из мира Python за декабря и январь Спонсор подкаста — https://learn.python.ru Ведущие – Григорий Петров и Михаил Корнеев 00:00 — Интро 1:20 — JIT-компиляция в Python 3.13 13:05 — State of Developer Ecosystem 2023 by Jetbrains 23:22 — A Look Back at 2023 in Python Packaging 33:45 — Самые…
  • 🔥 22
  • 👍 8
Post #169 3K
Любопытное исследование вопроса - как побыстрее прочитать много данных из Excel в питоне. Я открыл для себя много нового - например я раньше не слышал про python-calamine и не знал что DuckDb можно использовать для чтения экселя. Идеального универсального решения как обычно не завезли - например, calamine супер-быстрый, но при этом там нет возможности читать построчно итератором - все загружается сразу в память. В общем если вам приходится работать с экселем - рекомендую почитать https://hakibenita.com/fast-excel-python
Hakibenita Fastest Way to Read Excel in Python Reading 500K rows in less than 4 seconds
  • 🔥 33
  • 👍 4
Older posts →
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 →