Питонические атаки
1.19K subscribers
183 photos
4 videos
1 file
459 links
Всяческие заметки про программирование на Python и другие весёлые истории.
Download Telegram
Ещё одна новость про форматирование.

Одна из популярных причин, почему люди не в восторге от идеи внедрить форматтер кода в свои старые проекты — это замусоривание истории изменений. Появляется царь-коммит, который изменяет весь код сразу, и git blame бессилен пробиться через него к более старым изменениям. Получается, с точки зрения Git, человек, запустивший Black, становится автором всего проекта 😅

Начиная с версии 2.23.0 (это 2019 год) Git поддерживает возможность игнорировать некоторые коммиты в git blame, что как раз и решает эту проблему.

Крутая новость в том, что GitHub теперь тоже в своём Blame View научился игнорировать такие коммиты. Создаёте специальный файлик, записываете туда хэши своих коммитов с форматированием кода и вуаля!

https://docs.github.com/en/repositories/working-with-files/using-files/viewing-a-file#ignore-commits-in-the-blame-view

#formatter #github #git #blame #black
16
Питонические атаки
Ещё одна новость про форматирование. Одна из популярных причин, почему люди не в восторге от идеи внедрить форматтер кода в свои старые проекты — это замусоривание истории изменений. Появляется царь-коммит, который изменяет весь код сразу, и git blame бессилен…
Если вдруг кому нужна такая же фича в локальном консольном Git или в GUI, типа PyCharm или VSCode, то вот как это делается:

git config --local blame.ignoreRevsFile .git-blame-ignore-revs

Нужно выполнить после клонирования репозитория. К сожалению, самостоятельно Git находить этот файл пока что не научился.

#formatter #git #blame #black
7
Конфетку не желаете?

(На самом деле конфеты не существует. Мы живём в симуляции, птицы — это дроны, а конфета — это просто 3D-модель, нарисованная кем-то в Blender.)

https://www.reddit.com/r/Python/comments/rgaoy7/comment/hoiw67v/?utm_source=share&utm_medium=web2x&context=3
4
А давайте устроим перекличку. Кто чем пользуется для форматирования кода? И форматируете ли вы код вообще?
Anonymous Poll
46%
black
34%
isort
1%
yapf
3%
autopep
35%
запускаю форматирование в PyCharm
2%
другое (напишу в комментарии)
37%
просто сразу пишу красиво 🗿
👏5🥰1
Вижу, что многие пользуются black, isort или как минимум форматируют код в PyCharm. Инструменты хорошие, но они ориентируются на устаревший PEP-8, поэтому в ближайшее время придётся подыскивать им замену.

Опубликован черновик нового стайл-гайда PEP-9001, который через какое-то время станет обязательным для соблюдения, поэтому рекомендую всем ознакомиться уже сейчас и присоединиться к обсуждению:

https://peps.pythondiscord.com/pep-9001/

#pep
😁32🤔5👏4💩3🥰2
Многие пользовались возможностью импортировать синтаксис из будущего (from __future__ import …), но задумывались ли вы когда-нибудь ОТКУДА на самом деле приходит этот синтаксис? Ведь если мы можем получить фичи из будущего, значит кто-то в будущем должен отправлять их в прошлое?

Документ описывает установку для отправки синтаксиса в прошлое на основе наработок по «потоковому накопителю» доктора Эмметта Брауна.

https://peps.pythondiscord.com/pep-2241/

#pep
🤯2👍1🥰1
Vim-like браузер на питоне.

Ладно-ладно, это, конечно, не совсем правда. Там под капотом QtWebEngine, который по сути Chromium и написан он на C++. Тем не менее, вся обвязка вокруг непосредственно отображения страницы написана на питоне.

Сразу хочу предупредить, что если вы не большой фанат горячих клавиш, командной строки и работы напильником и изолентой, то вам не зайдёт. Это браузер с очень минималистичным интерфейсом (страшненький), и чтобы научиться им управлять нужно немножко сойти с ума (вим), зато позволяет сёрфить веб (почти) без мышки.

Из коробки есть блокировщик рекламы и прочие мелкие приятности. Можно просто брать и пользоваться. Но истинный экстаз, конечно, достигается лишь после кропотливой настройки всего этого дела под себя. Например, я прикрутил к браузеру свою парольницу в Bitwarden, и каждый раз радуюсь как дитя, когда нажимаю хоткей, а оно заполняет за меня формочку авторизации 🤩

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

https://github.com/qutebrowser/qutebrowser
👍11👎2🔥2👏2🥰1
Что думаю по этому поводу.

С одной стороны, использовать стандартные решения — это хорошо и удобно. Все уже привыкли использовать гитхаб. У большинства есть там аккаунты. Все уже научились писать свои мысли в маркдауне. Удобно ссылаться из пулл-реквестов в ишьюсы, и наоборот. Есть API, и уже написана куча разных скриптов и браузерных плагинов, которые позволяют делать с гитхабом практически что угодно. Есть собственная удобная CI платформа.

С другой стороны, централизация — это однозначно плохо. Появляется единая точка отказа. Хоть они в последнее время и няшки, но всё равно — Microsoft начинает иметь слишком много влияния над опенсорсом. Такие перекосы обязательно рано или поздно выльются в проблемы. Например, мир разоссорится ещё сильнее, в США придумают очередные какие-нибудь весёлые ограничения для жителей недружественных стран, а GitHub (американская компания) будет обязан подчиниться.

В любом случае — спасибо, что переехали не в Jira!
👍9😁4🤔2🥰1
Опубликовали статистику скачиваний интерпретатора с python.org за последний год. Вычислено на основе access-логов.

Больше всего оттуда качают предсобранные установщики для Windows, но много и тех, кто скачивает просто исходники (это, вероятно, линуксоиды и маководы с pyenv и тому подобным). Чуть-чуть есть и людей, которые скачивают предсобранные установщики для macOS.

Python 2.7 держится по популярности примерно на уровне 3.6.

Для Windows самая популярная с большим отрывом версия интерпретатора сейчас — 3.10.

Но при этом в исходниках нет такого явного фаворита: качают все версии — и 2.7, и с 3.6 по 3.10 — примерно одинаково. Причём больше всего качают 3.7, а меньше всего 3.10. Может быть дело в том, что в современных линуксах обычно есть свежий питон, а более старые версии приходится откуда-то ставить? (А я обычно в любом случае ставлю все нужные мне версии из pyenv — системный питон лучше вообще не трогать, пусть спокойно себе лежит).

Там же в треде есть и ссылки на похожие исследования за 2020 и 2019 годы.

https://discuss.python.org/t/python-download-stats-for-march-2022/14908
👍7🥰1
Используете ли вы змеиный чехол в своих программах?

#meme
😁24🤯42👎1🥰1
httpie — популярный консольный curl-like HTTP-клиент, написанный на питоне — потерял 54k звёзд на гитхабе из-за глупой ошибки. Репо входил в топ-80 самых популярных репо на гитхабе. 🤦‍♂️

Короче, можно пойти и снова поставить им звёздочку: https://github.com/httpie/httpie

Вот тут постмортем: https://httpie.io/blog/stardust
🤔1😱1😢1🤮1
И если у вас на гитхабе что-то ценное лежит, то вы на всякий случай склонируйте себе эти репо. Ходят слухи, что гитхаб начал блокировать аккаунты россиян. В панику не впадайте, но подготовьтесь к худшему.

https://habr.com/ru/news/t/661113/
🥰8😢4🤬3😱1
Слышал, что ещё не все познали радость использования тайп хинтов в своих больших программах на питоне. Поэтому держите хороший вводный видос на эту тему от Łukasz Langa (Вукаш Ланга!).

Хотя этому выступлению уже 5 лет и типизация в питоне всё это время постоянно развивалась, информация всё ещё актуальная, потому что основные принципы не поменялись. Сейчас в основном только доуточняются разные краевые случаи.

И я наконец понял, почему List[str] несовместимо с List[Optional[str]].

https://www.youtube.com/watch?v=Mn4AOttRmpI

#typing
12💩3👍1🥰1
Питонические атаки
И если у вас на гитхабе что-то ценное лежит, то вы на всякий случай склонируйте себе эти репо. Ходят слухи, что гитхаб начал блокировать аккаунты россиян. В панику не впадайте, но подготовьтесь к худшему. https://habr.com/ru/news/t/661113/
Зашёл в настройки на гитхабе, чтобы на всякий случай экспортировать оттуда архив со всеми своими данными, и заметил, что там можно назначить наследника, который после моей смерти сможет управлять моими репозиториями.

Хочу, чтобы потомки передавали мою коллекцию хелло ворлдов по наследству из поколения в поколение!

https://docs.github.com/en/site-policy/other-site-policies/github-deceased-user-policy

P.S. А на самом деле это крутая практика. С начала эпохи интернета уже прошло достаточно много времени, и люди начали умирать, и вполне логично начать как-то управлять их цифровым наследием. Такое рано или поздно должно появиться во всех приличных сервисах.

#github
👍21🥰1