День Git на канале!
Git сложен: легко всё испортить, и нереально понять как исправить. Документация Git - это финиш: чтобы найти решение, тебе заранее надо знать название фишки, которая вернет всё на место.
Разбор частых проблем с Git с командами для починки.
https://ohshitgit.com/
#git
Git сложен: легко всё испортить, и нереально понять как исправить. Документация Git - это финиш: чтобы найти решение, тебе заранее надо знать название фишки, которая вернет всё на место.
Разбор частых проблем с Git с командами для починки.
https://ohshitgit.com/
#git
Git Undo — инструмент, который может отменить любое действие в Git.
С этой штукой больше не придётся удалять и скачивать заново сломанный репозиторий. Очень легко вернуться в "здоровое" состояние, когда что-то идёт не так. Оно может отменить практически что угодно:
* коммиты;
* изменение сообщения коммита (amend);
* мёрджи и ребейзы;
* переключения между ветками и коммитами;
* создание, обновление и удаление веток.
Тулза прицепляется в Git при помощи хуков и записывает все произведенные изменения. Можно отменять сколько угодно шагов назад, не только последний. Магия!
https://blog.waleedkhan.name/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
Код: https://github.com/jorisroovers/gitlint
Документация: https://jorisroovers.com/gitlint/
Есть много разных встроенных правил, например, умеет ограничивать длину первой строки, запрещать trailing spaces, требовать наличия определенного паттерна в сообщении (например, идентификатор тикета в Jira). Также умеет энфорсить Conventional Commits.
Подключается в виде гит-хука через pre-commit.
#git
GitHub
GitHub - jorisroovers/gitlint: Linting for your git commit messages
Linting for your git commit messages. Contribute to jorisroovers/gitlint development by creating an account on GitHub.
А вообще я люблю TUI-софт.
Нашёлся ещё один клиент — lazygit.
Сам пока не пользовался, но можно посмотреть, какую магию автор программы творит с её помощью: https://www.youtube.com/watch?v=CPLdltN7wgE
#git
Нашёлся ещё один клиент — lazygit.
Сам пока не пользовался, но можно посмотреть, какую магию автор программы творит с её помощью: https://www.youtube.com/watch?v=CPLdltN7wgE
#git
GitHub
GitHub - jesseduffield/lazygit: simple terminal UI for git commands
simple terminal UI for git commands. Contribute to jesseduffield/lazygit development by creating an account on GitHub.
Умные люди говорят, что не обязательно заставлять себя использовать консольный Git, если сложно. Есть много удобных GUI клиентов, с аккуратными кнопками вместо запутанных консольных команд. Даже просто визуализация дерева коммитов часто помогает разобраться в том, что происходит с репозиторием.
В статье автор показывает, как просто делать всякие продвинутые вещи с гитом через GUI-клиент Fork.
https://simplabs.com/blog/2021/05/26/keeping-a-clean-git-history/
#git
В статье автор показывает, как просто делать всякие продвинутые вещи с гитом через GUI-клиент Fork.
https://simplabs.com/blog/2021/05/26/keeping-a-clean-git-history/
#git
Mainmatter
Git Good - The magic of keeping a clean Git history - Mainmatter
Chris Manson goes into detail about the benefits of a clean git history and
describes some tips and tricks that really help you clean up your branches and
Pull Requests
describes some tips and tricks that really help you clean up your branches and
Pull Requests
Кстати, прикольно, что Fork — это нативная программа для Mac (написано на Swift) и Windows (написано на С#), а не очередное Electron-приложение. Ещё более прикольно, что этот клиент — настоящий каноничный инди-проект. Его фулл-тайм разрабатывает супружеская пара Dan & Tanya Pristupov. Всегда удивляюсь, когда в нашем мире корпораций и команд разработки из сотен людей внезапно обнаруживаю такое. И оно живое. Инди-проекты всегда как-то с душой делаются.
Софтинка платная, но примерно как Sublime Text — можно бесплатно пользоваться сколько угодно, но иногда будут всплывать попапы. Говорят, что они всплывают достаточно редко и даже почти не бесят.
Узнал об этом клиенте вот отсюда и отсюда.
А какими Git-клиентами пользуетесь вы?
#git
Софтинка платная, но примерно как Sublime Text — можно бесплатно пользоваться сколько угодно, но иногда будут всплывать попапы. Говорят, что они всплывают достаточно редко и даже почти не бесят.
Узнал об этом клиенте вот отсюда и отсюда.
А какими Git-клиентами пользуетесь вы?
#git
Fork - a fast and friendly git client for Mac and Windows
Fork - a fast and friendly git client for Mac and Windows.
Давайте устроим холивар. Как правильно сливать ветки?
Anonymous Poll
55%
merge
27%
squash & merge
16%
rebase
3%
другое
А вы знали, что для
https://medium.com/alan/sharing-good-practices-linters-37c4ffe8fc4c
flake8
можно создавать локальные правила, специфичные для конкретного проекта? Код таких проверок лежит по соседству с кодом, который они проверяют. Я вот только недавно узнал. Полезная фича.https://medium.com/alan/sharing-good-practices-linters-37c4ffe8fc4c
Medium
Sharing good practices: linters
Introduction
Тэг Python совсем недавно обогнал тэг Java по общему количеству вопросов на StackOverflow. Отрыв с первым местом — JavaScript — составляет полмиллиона вопросов. Судя по количеству вопросов на этой неделе, разрыв может постепенно, очень медленно сокращаться.
Я вот только не знаю — это хорошо или плохо?
https://stackoverflow.com/tags
Я вот только не знаю — это хорошо или плохо?
https://stackoverflow.com/tags
В PyCharm 2021.3 добавят шаблон для создания проекта на FastAPI. Теперь это один из пяти официально признанных JetBrains веб-фермворков на питоне.
https://blog.jetbrains.com/pycharm/2021/09/pycharm-2021-3-eap/
#jetbrains #fastapi
https://blog.jetbrains.com/pycharm/2021/09/pycharm-2021-3-eap/
#jetbrains #fastapi
Питонические атаки
На недавно прошедшем Language Summit был презентован PEP 654 — Exception Groups and except*, который сейчас находится на стадии черновика и, вероятно, попадёт в язык в версии 3.11. Этот PEP предлагает добавить в Python возможность запускать сразу несколько…
PEP 654 -- Exception Groups and except* принят и появится в Python 3.11. Ух, будем запускать и ловить исключения целыми пачками!
peps.python.org
PEP 654 – Exception Groups and except* | peps.python.org
Python Enhancement Proposals (PEPs)
Python is a Bad Programming Language
Для разогрева задниц этим холодным осенним утром. Наброшено знатно. Какие ваши мысли?
https://medium.com/nerd-for-tech/python-is-a-bad-programming-language-2ab73b0bda5
Для разогрева задниц этим холодным осенним утром. Наброшено знатно. Какие ваши мысли?
https://medium.com/nerd-for-tech/python-is-a-bad-programming-language-2ab73b0bda5
Medium
Python is a Bad Programming Language
I’ll say it again: Python is a bad programming language, and the only reason it’s so popular today is because Google pushed it so hard in…
Хорошие новости для маководов!
В PSF задонатили несколько macOS машин на процессорах M1, и их запрягли гонять тесты и сборки CPython в CI. И сразу же нашли какую-то проблему. Полезно!
Интересная, конечно, у CPython система CI. В эпоху облачных сервисов, где можно арендовать сколько угодно машин с какими угодно процессорами, такой подход с self-hosted CI выглядит странно🤔
https://twitter.com/pyblogsal/status/1441862701928570893?s=21
В PSF задонатили несколько macOS машин на процессорах M1, и их запрягли гонять тесты и сборки CPython в CI. И сразу же нашли какую-то проблему. Полезно!
Интересная, конечно, у CPython система CI. В эпоху облачных сервисов, где можно арендовать сколько угодно машин с какими угодно процессорами, такой подход с self-hosted CI выглядит странно🤔
https://twitter.com/pyblogsal/status/1441862701928570893?s=21
more_itertools
— расширение модуля itertools
из стандартной библиотеки.Код: https://github.com/more-itertools/more-itertools
Документация: https://more-itertools.readthedocs.io/
Библиотека содержит больше 100 различный функций-утилит, которые помогают обходить списки и итераторы более удобно, а также извлекать различные срезы, разбивать на части, склеивать обратно, проводить агрегации и так далее. Например:
* извлекать из списка или итератора значения чанками по N элементов (можно указать значение, которым должен быть дополнен последний чанк, либо он просто может быть меньше остальных);
* извлекать из итератора значения пересекающимися парами, по принципу
abcd
-> ab, bc, cd
;* превращать вложенную структуру в плоскую;
* расклеивать результат
zip
обратно в два отдельных итерируемых объекта;* различные группировки, агрегации, оконные функции, выборки, комбинаторика...
Короче, прям много всего есть. Модуль
itertools
в стандартной библиотеке — очень бедный. Регулярно натыкаюсь на необходимость делать что-то чанками/батчами, в такие моменты more_itertools
выручает.#library
GitHub
GitHub - more-itertools/more-itertools: More routines for operating on iterables, beyond itertools
More routines for operating on iterables, beyond itertools - more-itertools/more-itertools
Forwarded from Коробка с питоном
orjson - самая быстрая библиотека для (де)сериализации json, написанная на Rust.
Умеет нативно сериализовать объекты из dataclass, datetime, numpy и UUID. Имеет множество опций для тонкой настройки парсера, содержит вещи которых нет в парсере стандартной библиотеки. Имеет более полное соответствие UTF-8 и JSON формату.
PyPi | GitHub | Бенчмарки
#библиотека
Умеет нативно сериализовать объекты из dataclass, datetime, numpy и UUID. Имеет множество опций для тонкой настройки парсера, содержит вещи которых нет в парсере стандартной библиотеки. Имеет более полное соответствие UTF-8 и JSON формату.
PyPi | GitHub | Бенчмарки
#библиотека
Python 3.10 уже совсем близко!
Pablo Galindo — релиз-менеджер для 3.10 — приглашает всех на релизную вечеринку 🎉
Будет стрим вот тут: https://www.youtube.com/watch?v=AHT2l3hcIJg
Насколько я понял, релиз будут делать прям в прямом эфире. Начало 4 октября в 20:00 МСК.
Pablo Galindo — релиз-менеджер для 3.10 — приглашает всех на релизную вечеринку 🎉
Будет стрим вот тут: https://www.youtube.com/watch?v=AHT2l3hcIJg
Насколько я понял, релиз будут делать прям в прямом эфире. Начало 4 октября в 20:00 МСК.