Web Analytics

readsql

⭐ 60 stars Spanish by AzisK

readsql

Convierte SQL al formato más legible para humanos. Por el momento pone en mayúsculas las palabras clave de SQL, podría embellecer o incluso sugerir mejoras en el código SQL en el futuro. Convierte código SQL e incluso cadenas SQL en lenguajes de programación (solo Python por ahora).

Así que si escribimos

select sushi, avg(price) from tokyo where ocean = 'pacific' group by sushi

readsql nos ayudará a leerlo como

SELECT sushi, AVG(price) FROM tokyo WHERE ocean = 'pacific' GROUP BY sushi

Instalación

pip install readsql
Requiere Python 3.8+.

Uso

También soporta múltiples cadenas y archivos o carpetas

1.

readsql   -s
readsql  
Podemos buscar diferentes cadenas en archivos Python con argumentos -py

readsql  -py  

Nota: readsql utiliza el analizador AST de Python, por lo que soporta:
- Hints de tipo: query: str = "..."
- F-strings: f"SELECT * FROM {table}"
- Ámbitos anidados: Maneja robustamente variables dentro de funciones y clases.
- Comentarios/Docstrings: Ignora correctamente texto tipo SQL en comentarios o docstrings.

Ejemplos de uso

select max(height), avg(mass), min(age) from jungle group by forest where animal=elephant;
reemplaza el archivo con este código
SELECT MAX(height), AVG(mass), MIN(age) FROM jungle GROUP BY forest WHERE animal=elephant;
def get_query():
    limit = 6
    query = f"SELEct speed from world where animal='dolphin' limit {limit}"
    return query
reemplaza el archivo con este código
def get_query():
    limit = 6
    query = f"SELECT speed FROM world WHERE animal='dolphin' LIMIT {limit}"
    return query
def get_query():
    limit = 6
    sql = f"SELEct speed from world where animal='dolphin' limit {limit}"
    return sql
reemplaza el archivo con este código
def get_query():
    limit = 6
    sql = f"SELECT speed FROM world WHERE animal='dolphin' LIMIT {limit}"
    return sql

Se pueden encontrar más ejemplos en la carpeta /tests

Añadir un hook pre-commit

¿Cómo añadir un hook pre-commit de readsql?
repos:
  • repo: https://github.com/AzisK/readsql
rev: v1.0.0 # Replace by any tag/version: https://github.com/azisk/readsql/tags hooks:
  • id: readsql

Desarrollo

Clona el repositorio y usa uv para el desarrollo:

uv sync --all-extras                                    # Install dependencies
uv run readsql "select sushi from tokyo" -s             # Format a string
uv run readsql tests/sql_example.sql                    # Format SQL file
uv run readsql tests/sql_in_python_example.py           # Format SQL in Python
uv run readsql tests/sql_in_python_variable_example.py -py sql  # Custom variable
uv run readsql tests                                    # Format all files in folder

Pruebas

uv run pytest -v

--- Tranlated By Open Ai Tx | Last indexed: 2026-05-30 ---