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

(На самом деле конфеты не существует. Мы живём в симуляции, птицы — это дроны, а конфета — это просто 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
Экспортировать свои данные с гитхаба можно вот на этой странице в разделе "Export account data":

https://github.com/settings/admin

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

Буквально через 10 минут после запроса гитхаб мне на почту прислал ссылку на архив с моим барахлом: репозитории и связанные с ними ишьюсы и пулл-реквесты. Мои действия в чужих репозиториях в этот экспорт, к сожалению, не попали. А ещё отдельно обидно за звёздочки — список лайкнутых репо тоже не попал в экспорт. Я звёздочками пользуюсь примерно как закладками — ставлю их на разные классные проекты. Уже поставил несколько сотен. Не хотелось бы потерять этот список годноты.

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

git clone foo.git foo

Ещё раз — не впадайте в панику и истерику, но лучше просто подготовьтесь. Блокировки аккаунтов рядовых пользователей, если они вообще и ведутся по признаку местоположения, пока ещё не стали массовыми. Буду рад, если мне не придётся воспользоваться этими экспортированными данными, но мне просто спокойнее, что они теперь у меня есть. Лично у меня все эти новости про блокировки, санкции и уход очередного сервиса к третьему месяцу пиздеца уже не вызывают почти никаких эмоций. Кроме может быть какой-то усталости.

#github
👍5🥰1
Для тех, кто питонами балуется Bloomberg открыл интересный тул

Memray is a memory profiler for Python
https://github.com/bloomberg/memray

Notable features:
- Traces every function call so it can accurately represent the call stack, unlike sampling profilers.
- Also handles native calls in C/C++ libraries so the entire call stack is present in the results.
- Blazing fast! Profiling causes minimal slowdown in the application. Tracking native code is somewhat slower, but this can be enabled or disabled on demand.
- It can generate various reports about the collected memory usage data, like flame graphs.
- Works with Python threads.
- Works with native-threads (e.g. C++ threads in native extensions)

Memray can help with the following problems:
- Analyze allocations in applications to help discover the cause of high memory usage.
- Find memory leaks.
- Find hotspots in code which cause a lot of allocations.
+
Тред, который подглядел в @nocproject
https://twitter.com/1st1/status/1516859294896906241
👍3🔥3