logoalt Hacker News

Show HN: Py-SQL-cleaner – format SQL embedded in Python strings

5 pointsby enumuratoday at 5:30 PM0 commentsview on HN

Hi HN, I built py-sql-cleaner, a CLI for formatting SQL embedded in Python files.

Python formatters handle Python syntax. They do not format SQL written inside Python code. On the other hand, SQL formatters usually target SQL files or raw SQL text, not SQL embedded inside a Python file.

Still, I think it is not uncommon to find long SQL queries inside Python codebases.

py-sql-cleaner detects embedded SQL inside Python files and works only on that SQL. The main things it can do are: find the SQL, format it in place, or extract it into a .sql file.

It avoids rewriting SQL that depends on runtime values or template expansion. For example, SQL containing parameters like %s or :name, or Jinja-style template variables like {{ ds }}, is skipped by default.

Try it with:

    uvx py-sql-cleaner list path/to/file.py
    uvx py-sql-cleaner format path/to/file.py --dry-run
If you write Python, have run into this kind of SQL cleanup problem, or are just curious, I’d be happy if you take a look.

Comments