Питонические атаки
1.19K subscribers
183 photos
4 videos
1 file
459 links
Всяческие заметки про программирование на Python и другие весёлые истории.
Download Telegram
Forwarded from Geeks (жук невывожук)
Вышла версия 1.0.0.beta0 python-библиотеки httpx. Это - достаточно известная библиотека для осуществления HTTP-запросов, и она предоставляет разработчику как синхронное API, так и асинхронное. Использую её достаточно давно и всем устраивает. Как приятный бонус - вызовы полностью идентичны таковым в широко распространенной библиотеке requests. Тех, кто использует тайпинг, порадует то, что библиотека полностью аннотирована.

Примечательно, что в новой версии библиотеки был реализован HTTP-клиент, который можно дергать прям из командной строки. И это прям удобно настолько, что мне даже нравится. Вывод подсвечен, и вроде все работает.

Если хочется быстро попробовать, то скачиваем пакет:

pip install --pre 'httpx[cli]'

И пробуем:

httpx --verbose https://httpbin.org/json

Ссылка на GitHub библиотеки https://github.com/encode/httpx
Ну и ещё одна фича — команда COPY в Dockerfile тоже получила поддержку heredoc.

# syntax=docker/dockerfile:1.3-labs
COPY <<EOF /usr/share/nginx/html/index.html
<html>
<head></head>
<body>Hi!</body>
</html>
EOF

Теперь можно разные небольшие файлы создавать прямо в Dockerfile.

Источник: https://twitter.com/iximiuz/status/1436361338696183815?s=20

#синийкит #docker
Знаю, что на канале есть некоторое количество пользователей OpenWRT — свободной прошивки для роутеров на линуксе.

Если вдруг пропустили, то вышла новая версия 21.02. Пора обновляться!

Попробую обновиться и по возможности адаптирую пост про точечный обход блокировок. Хотя, почитав последние грустные новости про суверенный интернет и ТСПУ, я уже начинаю склоняться к более простому и надёжному варианту — пересесть на VPN полностью.

#оффтоп
Закончились футболки? Выход есть — Hacktoberfest 😝

Ежегодный фестиваль-флешмоб длиной в один месяц, посвященный open-source. Не знаю, какие будут условия в этом году, но в предыдущие годы за 4 pull-реквеста в участвующие проекты на GitHub или GitLab выдавали приз-футболку и ещё какие-то наклейки-сувениры.

Думаю, в этом году я впервые попробую активно поучаствовать. Дело даже не столько в футболке (хотя я был бы рад её получить), сколько в крутости этой затеи. Круто, что людей поощряют контрибьютить в опен-сорс. На качественных опен-сорс проектах и держится всё наше IT. Я хочу поддерживать такие инициативы.

https://hacktoberfest.digitalocean.com/

Накидайте в комменты репозиториев, куда вы хотели бы законтрибьютить 👇
Питонические атаки
Закончились футболки? Выход есть — Hacktoberfest 😝 Ежегодный фестиваль-флешмоб длиной в один месяц, посвященный open-source. Не знаю, какие будут условия в этом году, но в предыдущие годы за 4 pull-реквеста в участвующие проекты на GitHub или GitLab выдавали…
Проясню насчёт Hacktoberfest.

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

В прошлом году была драма из-за наплыва большого количества участников, которые начали ради футболок отправлять всюду кучу спамных пулл-реквестов, где яростно добавляли и удаляли запятые в README.md, что вызвало волну возмущения. Есть даже аккаунт в Твиттере, где собирают такое. Не будьте как эти чуваки. Не заставляйте мейнтейнеров разгребать за вами спам. У них и так достаточно забот. Делайте ценный вклад. Фиксите баги, которые вам мешают. Добавляйте фичи, которых вам не хватает. Улучшайте документацию — это тоже почётно. Только если это действительно важно, а не про расстановку запятых.
В репозиторий Deno — рантайм для TypeScript — кто-то хотел добавить песню. Не хватает музыки!😅

https://twitter.com/frunkad/status/1312309284957351936?s=21
Интересная мысль про языки программирования. Мы любим новые сияющие языки, на которых в основном всё пишется с нуля. Но мы ненавидим старые языки, которые могут быть не плохими сами по себе, но на них уже накопился багаж кода, который теперь приходится поддерживать. Все любят писать свой код, но мало кто любит поддерживать чужой код.

Python уже достаточно стар, и на нём написано много кода, но он все ещё каким-то образом держится в начале рейтинга любимых языков. Похоже, переход со второй версии на третью открыл языку второе дыхание, и благодаря этому его не перестали любить.

https://earthly.dev/blog/brown-green-language/
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