Питонические атаки
1.19K subscribers
183 photos
4 videos
1 file
459 links
Всяческие заметки про программирование на Python и другие весёлые истории.
Download Telegram
boltons — коллекция утилит, расширяющая стандартную библиотеку. Это почти как built-ins, только boltons 😉

Есть ли у вас в проекте файл utils.py или что-то подобное? Скорее всего, то что вы там храните, есть в boltons.

Код: https://github.com/mahmoud/boltons
Документация: https://boltons.readthedocs.io/

Там есть очень много всего, но вот, что мне особенно нравится:

* словари на любой вкус и цвет — и с поддержкой нескольких значений для одного ключа, и которые маппят ключ в значение и одновременно обратно значение в ключ (биекция);
* список, состоящий под капотом из множества других списков, оптимизированный для более эффективной работы при интенсивных вставках и удалениях;
* очень много функций для работы со строкамиcamel2under, under2camel, slugify, ordinalize, cardinalize, pluralize, bytes2human, ...;
* утилиты для работы с датами — например, там есть функция, умеющая делать относительные человекочитаемые даты типа "yesterday", "1 week ago", "3 days from now".

Пакет не имеет зависимостей. Все функции самодостаточны, так что можно даже просто скопипастить к себе оттуда нужные (но лучше не надо). Конечно же, всё покрыто тестами.

#library
Forwarded from гиг пиг ниг
Если хочется странного, то можно начать использовать в питоне goto и показать этим сосункам-коллегам кто на районе джигит.

from goto import with_goto

@with_goto
def range(start, stop):
i = start
result = []

label .begin
if i == stop:
goto .end

result.append(i)
i += 1
goto .begin

label .end
return result

ссылка на репу https://github.com/snoack/python-goto
Эрик Айдл (Eric Idle) — актёр и автор многих скетчей комедийной группы Monty Python.

В честь него назван IDLE — Python’s Integrated Development and Learning Environment — простенький редактор кода, распространяющийся в составе стандартной библиотеки.

А ещё есть Eric IDE — редактор кода, написанный на питоне. Тоже отсылка к Эрику Айдлу.

#montypython
Эрик Айдл уже в преклонных годах. Он сидит в Твиттере, и однажды до него дошли слухи, что в честь его комедийного шоу придумали какой-то язык программирования. В тред пришёл Гвидо ван Россум, большой фанат скетчей Monty Python.

"very nice" — это отсылочка к сцене с французами на стене замка в "поисках святого грааля".

https://twitter.com/gvanrossum/status/1355310333875773444?lang=en

#montypython
День Git на канале!

Git сложен: легко всё испортить, и нереально понять как исправить. Документация Git - это финиш: чтобы найти решение, тебе заранее надо знать название фишки, которая вернет всё на место.

Разбор частых проблем с Git с командами для починки.

https://ohshitgit.com/

#git
Git Undo — инструмент, который может отменить любое действие в Git.

С этой штукой больше не придётся удалять и скачивать заново сломанный репозиторий. Очень легко вернуться в "здоровое" состояние, когда что-то идёт не так. Оно может отменить практически что угодно:

* коммиты;
* изменение сообщения коммита (amend);
* мёрджи и ребейзы;
* переключения между ветками и коммитами;
* создание, обновление и удаление веток.

Тулза прицепляется в Git при помощи хуков и записывает все произведенные изменения. Можно отменять сколько угодно шагов назад, не только последний. Магия!

https://blog.waleedkhan.name/git-undo/

#git
Gitlint is a git commit message linter written in python: it checks your commit messages for style.

Код: https://github.com/jorisroovers/gitlint
Документация: https://jorisroovers.com/gitlint/

Есть много разных встроенных правил, например, умеет ограничивать длину первой строки, запрещать trailing spaces, требовать наличия определенного паттерна в сообщении (например, идентификатор тикета в Jira). Также умеет энфорсить Conventional Commits.

Подключается в виде гит-хука через pre-commit.

#git
tig — TUI (псевдографика в терминале) клиент для Git.

Удобно добавлять в staging отдельные файлы или даже отдельные строки в файлах. Умеет более красиво показывать диффы, списки коммитов, блеймы и т.д. Но сначала придётся научиться им управлять, хоткеи похожи на vim'овские.

#git
А вообще я люблю TUI-софт.

Нашёлся ещё один клиент — lazygit.

Сам пока не пользовался, но можно посмотреть, какую магию автор программы творит с её помощью: https://www.youtube.com/watch?v=CPLdltN7wgE

#git
Умные люди говорят, что не обязательно заставлять себя использовать консольный Git, если сложно. Есть много удобных GUI клиентов, с аккуратными кнопками вместо запутанных консольных команд. Даже просто визуализация дерева коммитов часто помогает разобраться в том, что происходит с репозиторием.

В статье автор показывает, как просто делать всякие продвинутые вещи с гитом через GUI-клиент Fork.

https://simplabs.com/blog/2021/05/26/keeping-a-clean-git-history/

#git
Кстати, прикольно, что Fork — это нативная программа для Mac (написано на Swift) и Windows (написано на С#), а не очередное Electron-приложение. Ещё более прикольно, что этот клиент — настоящий каноничный инди-проект. Его фулл-тайм разрабатывает супружеская пара Dan & Tanya Pristupov. Всегда удивляюсь, когда в нашем мире корпораций и команд разработки из сотен людей внезапно обнаруживаю такое. И оно живое. Инди-проекты всегда как-то с душой делаются.

Софтинка платная, но примерно как Sublime Text — можно бесплатно пользоваться сколько угодно, но иногда будут всплывать попапы. Говорят, что они всплывают достаточно редко и даже почти не бесят.

Узнал об этом клиенте вот отсюда и отсюда.

А какими Git-клиентами пользуетесь вы?

#git
Давайте устроим холивар. Как правильно сливать ветки?
Anonymous Poll
55%
merge
27%
squash & merge
16%
rebase
3%
другое
А вы знали, что для flake8 можно создавать локальные правила, специфичные для конкретного проекта? Код таких проверок лежит по соседству с кодом, который они проверяют. Я вот только недавно узнал. Полезная фича.

https://medium.com/alan/sharing-good-practices-linters-37c4ffe8fc4c
Тэг Python совсем недавно обогнал тэг Java по общему количеству вопросов на StackOverflow. Отрыв с первым местом — JavaScript — составляет полмиллиона вопросов. Судя по количеству вопросов на этой неделе, разрыв может постепенно, очень медленно сокращаться.

Я вот только не знаю — это хорошо или плохо?

https://stackoverflow.com/tags
В PyCharm 2021.3 добавят шаблон для создания проекта на FastAPI. Теперь это один из пяти официально признанных JetBrains веб-фермворков на питоне.

https://blog.jetbrains.com/pycharm/2021/09/pycharm-2021-3-eap/

#jetbrains #fastapi