Записал видео про PATH и виртуальное окружение https://www.youtube.com/watch?v=qELk8D-pAos
YouTube
Как устроено виртуальное окружение в python?
Когда мы набираем в командной строке python то запускается интерпретатор питона. Но откуда система знает, что именно запустить? Как python понимает, где искать библиотеки и за счет чего работает виртуальное окружение? Давайте разбираться.
Переменные окружения…
Переменные окружения…
Сегодня я хочу рассказать еще про одну оптимизацию в cpython - свертку констант или constant folding https://www.youtube.com/watch?v=TpqAVEU0eZI
YouTube
Constant folding: еще одна оптимизация в интерпретаторе python
Сегодня я хочу рассказать еще про одну оптимизацию - свертку констант или constant folding.
Interning: как python оптимизирует работу с памятью - https://www.youtube.com/watch?v=WpYXgsI7RKc
Я в Telegram - https://t.me/tricky_python
Канал создан при поддержке…
Interning: как python оптимизирует работу с памятью - https://www.youtube.com/watch?v=WpYXgsI7RKc
Я в Telegram - https://t.me/tricky_python
Канал создан при поддержке…
Контекстные менеджеры - очень полезная штука в python. Давайте разберем использование context manager на примере atomic write. Т.е. если в процессе записи информации в файл произойдет ошибка, мы должны откатиться к предыдущей версии файла. https://youtu.be/e1d74l02MVc
Наткнулся на статью, рассказывающую как оформить библиотеку, опубликовать ее на pypi и добавить разную приятную автоматизацию https://antonz.org/python-packaging/
antonz.org
How to make an awesome Python package
The one to be proud of.
В прошлый раз мы реализовали безопасную перезапись файла при помощи менеджера контекста на базе класса. Сейчас решим ту же задачу используя декоратор contextmanager из модуля contextlib стандартной библиотеки - https://youtu.be/tMGf9GwjY6g
YouTube
Делаем безопасную перезапись файла с использованием contextlib
В прошлый раз мы реализовали безопасную перезапись файла при помощи менеджера контекста на базе класса. Сейчас решим ту же задачу используя декоратор contextmanager из модуля contextlib стандартной библиотеки.
Реализуем Atomic Write при помощи класса - …
Реализуем Atomic Write при помощи класса - …
Хитрый Питон pinned «В прошлый раз мы реализовали безопасную перезапись файла при помощи менеджера контекста на базе класса. Сейчас решим ту же задачу используя декоратор contextmanager из модуля contextlib стандартной библиотеки - https://youtu.be/tMGf9GwjY6g»
В нескольких предыдущих видео я рассказывал о том, как устроены декораторы и для чего их можно применять. Сегодня я хочу показать еще один вариант использования декоратора - предварительная обработка аргументов, передаваемых в задекорированную функцию - https://youtu.be/fZSvsC3i9VI
YouTube
Делаем предобработку аргументов в декораторе в python
В нескольких предыдущих видео я рассказывал о том, как устроены декораторы и для чего их можно применять. Сегодня я хочу показать еще один вариант использования декоратора - предварительная обработка аргументов, передаваемых в задекорированную функцию.
Что…
Что…
Если спросить начинающего разработчика, какие типы данных могут быть ключами словарей, ответ будет "строки". Более опытный разработчик скажет, что ключами словаря может быть любой иммутабельный тип данных. Но это тоже не совсем правда. Записал видео про hash() и показал, для чего можно использовать кортежи в качестве ключей словаря https://youtu.be/HPsm4eOaR8I
YouTube
Какими могут быть ключи словарей и причем тут hash()?
Если спросить начинающего разработчика, какие типы данных могут быть ключами словарей, ответ будет "строки". Более опытный разработчик скажет, что ключами словаря может быть любой иммутабельный тип данных. Но это тоже не совсем правильно. Давайте разбираться!…
Второе видео про хеширование в питоне. Здесть я показал, зачем может быть нужно определять метод hash для своих классов и какие там подводные камни https://www.youtube.com/watch?v=OW_gSexoT64
YouTube
Как управлять тем, как хешируется объект и какая от этого польза?
В предыдущем видео мы говорили о том, как работает хеширование для стандартных объектов python. В случае с классами, которые мы создаем сами мы можем управлять этим процессом. Давайте посмотрим, как это работает и для чего может быть полезно.
Я в Telegram…
Я в Telegram…
Записал новое видео про аннотации типов, mypy и его настройку - https://www.youtube.com/watch?v=_vAb8M4SUSg
YouTube
Продолжаем разбираться с mypy и аннотациями типов
В этом видео я хотел показать, как можно конфигурировать mypy и прописать типы для чуть более сложного кода.
Предыдущие видео:
- Настраиваем flake8, чтобы улучшить качество кода https://www.youtube.com/watch?v=cdHnEN0Dsm0
- Знакомимся с аннотациями типов…
Предыдущие видео:
- Настраиваем flake8, чтобы улучшить качество кода https://www.youtube.com/watch?v=cdHnEN0Dsm0
- Знакомимся с аннотациями типов…
Хорошая обзорная статья по то, как сделать docker-образы для своих python-приложений лучше https://pythonspeed.com/articles/smaller-docker-images/
Python⇒Speed
Shrinking your Python application’s Docker image: an overview
Learn the variety of techniques you can use to make your Python application’s Docker image a whole lot smaller.
Я использую GitHub Actions практически с момента их релиза в паблик и мне нравится. Поэтому я решил записать видео с рассказом о том, как прикрутить их к своему репозиторию https://youtu.be/NijFSs03Pd4
YouTube
GitHub Actions для автоматической проверки кода
Если в вашем проекте работают несколько человек или вы принимаете pull request-ы, то бывает удобно автоматически проверять входящие коммиты на проблемы со стилем кода, аннотациями или автоматически запускать тесты. Если код проекта лежит на github, то можно…
Последние полгода были очень нагруженными (и интересными) и на ведение канала времени не оставалось. К Новому году удалось разгрести несколько больших проектов, и я снова буду регулярно сюда писать. Ах да, и с наступившим вас!
Если вам когда-нибудь было интересно, как устроены линтеры — вот вам хороший подробный туториал по AST. Модуль AST позволяет представить исходный код в виде дерева и анализировать или даже модифицировать его. Разобрано очень подробно, с множеством примеров, рекомендую https://sadh.life/post/ast/
tushar.lol
Learn Python ASTs, by building your own linter
The only resource you need to read to learn about ASTs in Python, and the superpowers they give you.
Неплохая вводная статья про профайлинг в python. В статье показано несколько инструментов, которые помогут понять, что именно в программе есть много cpu или памяти https://martinheinz.dev/blog/64
martinheinz.dev
Profiling and Analyzing Performance of Python Programs
<p>
Profiling is integral to any code and performance optimization. Any experience and skill in performance optimization that you might already have will n...
Profiling is integral to any code and performance optimization. Any experience and skill in performance optimization that you might already have will n...
🔥2
Интересная статья про то, почему декоратором @lru_cache нельзя обертывать методы классов. Если коротко - объект не будет удаляться garbage collector-ом что может привести к неожиданным утечкам памяти. Также @lru_cache не умеет игнорировать self в списке аргументов, поэтому кэш будет для каждого объекта свой и кеширование по факту не будет работать.
С методами классов, статическими методами и обычными функциями работает, как и ожидается.
https://rednafi.github.io/reflections/dont-wrap-instance-methods-with-functoolslru_cache-decorator-in-python.html
С методами классов, статическими методами и обычными функциями работает, как и ожидается.
https://rednafi.github.io/reflections/dont-wrap-instance-methods-with-functoolslru_cache-decorator-in-python.html
Два больших гайда про то, что такое ThreadPoolExecutor и ProcessPoolExecutor и как их использовать:
- https://superfastpython.com/threadpoolexecutor-in-python/
- https://superfastpython.com/processpoolexecutor-in-python/
- https://superfastpython.com/threadpoolexecutor-in-python/
- https://superfastpython.com/processpoolexecutor-in-python/
Super Fast Python
ThreadPoolExecutor in Python: The Complete Guide - Super Fast Python
Python ThreadPoolExecutor, your complete guide to thread pools and the ThreadPoolExecutor class for concurrent programming in Python.
В python-сообществе давно обсуждается идея отказаться от GIL и и реализовать полноценный параллелизм при работе с тредами. Это сложная задача, так как нужно сохранить обратную совместимость в том числе с библиотеками, использующими код на C.
Сегодня на хабре вышел перевод интервью с автором nogil - который как раз занимается этим вопросом. Перевод неидеальный, но если вам интересно куда движется python - прочитайте обязательно https://habr.com/ru/company/kts/blog/646207/
Сегодня на хабре вышел перевод интервью с автором nogil - который как раз занимается этим вопросом. Перевод неидеальный, но если вам интересно куда движется python - прочитайте обязательно https://habr.com/ru/company/kts/blog/646207/
Хабр
Удаление GIL из Python: заметки со встречи Python Core и Сэма Гросса
Во время ежегодного спринта разработчиков ядра Python мы встретились с Сэмом Гроссом, автором nogil — fork в Python 3.9, который удаляет GIL . Ниже — итоги встречи. Содержание: tl;dr Введение в nogil...
👍3
Видимо это новость для маководов - Apple убирает python 2.7 из MacOs 12.3. Кажется это последнее место, где второй питончик шел из коробки. Это, конечно, уже ни на что не повлияет, но вдруг у ктого-то маке сих пор используются скрипты на втором питоне для какой-нибудь мелкой автоматизации. Большой тред на Hacker News https://news.ycombinator.com/item?id=30115214
🔥7👍3