#ruff

2026-02-05

Статанализ — must-have для проектов с Codex/ClaudeCode

На днях у Кирилла Мокевнина вышел пост про то, как он разлюбил динамическую типизацию. Мысль понятная: на больших кодовых базах отсутствие типов начинает дорого стоить. Хочу дополнить аргументом, который в 2026 году уже стал прям must-have: статанализ и типы — это лучший self-check для AI-агента . Современные агенты для разработки (Claude Code на Opus 4.5 и ChatGPT Codex 5.2 High) хорошо пишут код. Ошибок уровня «переменная не объявлена», «импорт забыл», «опечатка в имени метода» по сути уже почти нет. Основные промахи чаще про другое:

habr.com/ru/articles/993004/

#статистический_анализ #статический_анализ_кода #ruff #phpstan #phpcsfixer #php #python #go #codex #claude_code

2026-01-16

I have been using #ruff for a week and already I hate it #Python

2025-12-29

I think that my Python code editor is ready for 2026!

Using Flycheck and happy about how simple it was to add a custom syntax checker. 👏

I've configured my Emacs to auto-switch between flake8 or ruff, and mypy or the brand new type checker "ty" depending on what's in the local environment.

Pull request to my emacs configuration with details about the implementation:
github.com/DavidVujic/my-emacs

#python #emacs #mypy #flake8 #ruff #ty #elisp #flycheck

Greg Harvey 🌍greg_harvey@tooting.ch
2025-12-23

Related to this week's #Ansible contrib work in #Python, #Ruff is quite cool. 😎

docs.astral.sh/ruff/

2025-12-23

ty: революция в тайп-чекинге

Всем привет! За последние пару лет компания Astral буквально разрывает Python-мир своими инструментами. Даже если вы не слышали это имя напрямую, с большой вероятностью вы уже пользовались их продуктами — ruff или uv . И это не преувеличение. И ruff , и uv сегодня фактически стали стандартом индустрии. Например, в свежем релизе PyCharm 2025.3 при создании нового проекта по умолчанию инициализируется именно окружение uv , а не привычный venv . Для open source-проекта — это очень серьёзный показатель доверия со стороны экосистемы. Открытый исходный код и массовое принятие инструментов Python-разработчиками дали Astral тот самый «кредит доверия», который компания, судя по всему, пока что уверенно оправдывает. И вот буквально на днях Astral объявили, что их новый «революционный» тайп-чекер ty переходит в стадию бета-тестирования. А если учитывать, что и uv , и ruff формально тоже всё ещё находятся в бете, то можно считать, что ty уже фактически вышел в релиз. Собственно, о нём и поговорим дальше. Если вам интересны подобные материалы — подписывайтесь на Telegram-канал «Код на салфетке» . Там я делюсь гайдами для новичков и полезными инструментами. А прямо сейчас у нас ещё и проходит новогодний розыгрыш.

habr.com/ru/articles/979752/

#uv #ruff #ty #mypy #type_checking #python #rust #astral

Let's say you want to do good type-checking for the #Python project you're working on. You pick a tool, maybe you use it as an #LSP also (so your editor can show you errors, too). As an example, I'm using #Ty at the moment. There's three places this might be installed: globally (e.g., `brew install ty`), as a dev-only dependency inside your project (e.g., `uv add --dev ty`), or -- and this one might surprise you -- it might only be used and installed by `pre-commit`, which builds a separate environment for each needed tool (which is great for instance where I use `codespell` as a `pre-commit` check, which seems to need some higher version of Python than my actual project).

Where should you install it?

If you're the only one on your team running it, globally is fine. If more than just you, then absolutely as a dev-only dependency inside your project ... and **maybe** globally as well.

The only real problem is updates. If you use a reasonable global install scheme, updates will be easy. They're less easy inside your project or in `pre-commit`. And you might care one way or the other! I **don't** want updates! I **do** want updates!

As for Python type-checking, `ty` seems good so far, but not enough experience with it yet. `basedpyright`, `pyrefly`, and `ruff` all good. These four are my favorites.

#BasedPyright #Pyrefly #Ruff #PreCommit #CodeSpell #Homebrew

2025-12-19

For the love of readability, #ruff please let me wrap my list compehensions across multiple lines!

Black's obsession with cramming as much as possible onto one line is anathema to readability goals!

2025-12-18

ИИ бот-модератор 1: Начало проекта

Знаете, в чём проблема большинства гайдов и курсов, которые обещают научить всему и сразу — да ещё и устроить на работу? Часто они учат примитиву, выдавая это за качественный контент. В итоге появляется много низкокачественного кода: на первый взгляд он работает, но в реальности трудно поддерживается . Если в проекте нет структуры, он быстро превращается в кашу. Каждая доработка — это не отдельный продуманный модуль, а «приматывание новых кусков кода синей изолентой» с мыслью: «хоть бы не сломалось». Для новичка это особенно опасно: кажется, что всё нормально, пока проект маленький, но при росте даже простые изменения начинают занимать часы и ломать соседние части. Вы наверняка задаётесь вопросом: «Почему рубрика называется “ИИ бот-модератор”, а автор тут рассказывает про качество кода?» На самом деле, всё связано. Telegram-бот для группы — отличный пример проекта, который очень быстро обрастает фичами: команды, настройки, роли, интеграции, хранение данных, логирование, админка, модерация, ИИ и т.д. Если делать всё “в одном файле”, это почти гарантированно закончится болью. Поэтому в этой рубрике мы будем строить бота так, чтобы его можно было развивать: добавлять функциональность без постоянного страха «сломать всё».

habr.com/ru/articles/978282/

#telegram #бот #ии #git #make #precommit #линтеры #ruff #ry #uv

2025-12-17

Third tool announced by #Astral. This time it's a type checker and language server: ty.

This is it. I will now integrate uv, ruff and ty in my workflow. These folks produce such high quality #software. It's amazing!

#Python #ruff #uv #ty #foss #opensource

Working on #AdventOfCode. My plan was to solve each day in both #Python and #RustLang. I thought I would be further by now. Yes, my Python answer to day 1 solves both parts, but I'm trying to be exemplary: good names, docstrings, comments-where-needed, tests, project structure, all the things.

For some reason, #HelixEditor keeps complaining about the #LSP (using both #Pyrefly and #Ruff, as usual). I'm concerned I haven't set things up right somehow, but I don't yet see where I've gone wrong.

Once this is working, further days will be easy. At least ... I hope!

2025-11-27
2025-11-21

Восемь высокопроизводительных Python-библиотек в копилку разработчикам

Когда в 1991 году Гвидо ван Россум представил миру Python, никто не мог предсказать, какое место через несколько десятилетий этот язык займет в веб-разработке, Data Science и Machine Learning. Сейчас Python продолжает развиваться: с новым поколением инструментов в прошлое уходят традиционные ограничения — производительность, GIL и сложность параллельных вычислений. Привет, Хабр! С вами Леша Жиряков, я руковожу бэкенд-направлением витрины KION, возглавляю гильдию по Python и пишу для блога MWS на Хабре. Я каждый день сталкиваюсь с вызовами высоконагруженных систем и сформировался пул инструментов, которые помогают решать критические проблемы современной разработки — от обработки данных с Polars до управления зависимостями с UV. В этом материале я сделаю обзор Python-библиотек, с которыми можно создавать системы, сравнимые по производительности с Go и Rust.

habr.com/ru/companies/ru_mts/a

#библиотеки #python #fastapi #litestar #polars #httpx #dask #Pydantic_V2 #ruff #Pithon_UV

Hugo van Kemenadehugovk
2025-11-14

🎨 Old news: I added colour to argparse CLI help in last month's Python 3.14.

⭐ New news: I just added colour to ruff and ty's help so they can catch up (uv already had colour).

Three terminal windows: first shows the help for argparse CLIs, with headings, options and arguments in different colour. The next is ruff and ty, with similar but different colour scheme. And the last window is uv with the same colour scheme as ruff and ty.
2025-11-12

I have a script called pyfix which runs mypy and ruff to

- have strong typing
- have a fixed and orderly import order
- have the file always formatted in the same way
- detect programming errors and redundancies.

Now I am working on gitlogui (codeberg.org/harald/gitlogui) the main script of which I called glu. So I am running

pyfix glu

all the time, which reads funny. 😀

#python #gitlogui #mypy #ruff #strongTyping #linting

2025-10-17

Miikka Koskinen shares Python and Rust, a Perfect Pairing

A look at why and how to do it with tools like rustimport and Maturin

2025.ploneconf.org/schedule/ta

#PloneConf2025 #Plone #Python #Volto #ReactJS #OpenSource #CMS #Rust #RustImport #Maturin #Pydantic #UV #Ruff

Occasional Pictures of DucksOccasionalDucks@pixelfed.social
2025-10-15
A Ruff - a small grey-brown wading bird with a dark bill - wading in grey water.
2025-10-08

#Ruff: An extremely fast #Python #linter and code formatter.

Usage: ruff [OPTIONS] <COMMAND>

Commands:
check Run Ruff on the given files or directories
rule Explain a rule (or all rules)
config List or describe the available configuration options
linter List all supported upstream linters
clean Clear any caches in the current directory and any subdirectories
...

Amethyst 🌸amethyst@n7.gg
2025-10-07

I made my first Ruff release today, where we celebrate the release of Python 3.14 🎉 by stabilizing support for new syntax, and updating the default/oldest supported Python version to 3.10. 🥂

It also includes my first “big” user facing feature for the formatter, which will now preserve all comments intermixed within multi-line “from import” statements, such as:

from x import (
a as # comment
b,
)

Some of these comments would have previously caused Ruff to *crash*, and now they will also have their positions correctly preserved when formatting, and better matches Black’s style for the same code.

Feels so good to be back in open source. 😌

github.com/astral-sh/ruff/rele

#Python #Ruff

Client Info

Server: https://mastodon.social
Version: 2025.07
Repository: https://github.com/cyevgeniy/lmst