Web Analytics

readsql

⭐ 60 stars Korean by AzisK

readsql

SQL을 가장 사람이 읽기 쉬운 형식으로 변환합니다. 현재는 SQL 키워드를 대문자로 변환하며, 향후 SQL 코드를 예쁘게 꾸미거나 개선 사항을 제안할 수도 있습니다. SQL 코드와 프로그래밍 언어 내의 SQL 문자열(현재는 Python만 지원)을 변환합니다.

그래서 우리가 작성하면

select sushi, avg(price) from tokyo where ocean = 'pacific' group by sushi
readsql은 이를 다음과 같이 읽는 데 도움을 줍니다

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

설치

pip install readsql
Python 3.8 이상이 필요합니다.

사용법

여러 문자열과 파일 또는 폴더도 지원합니다

1.

readsql   -s
readsql  

우리는 -py 인수를 사용하여 Python 파일에서 다양한 문자열을 검색할 수 있습니다

readsql  -py  

참고: readsql는 Python의 AST 파서를 사용하므로 다음을 지원합니다:
- 타입 힌트: query: str = "..."
- F-문자열: f"SELECT * FROM {table}"
- 중첩 스코프: 함수 및 클래스 내부 변수도 견고하게 처리합니다.
- 주석/문서 문자열: 주석이나 문서 문자열 내의 SQL과 유사한 텍스트를 올바르게 무시합니다.

사용 예제

select max(height), avg(mass), min(age) from jungle group by forest where animal=elephant;
이 코드를 사용하여 파일을 교체합니다
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
이 코드를 사용하여 파일을 교체합니다
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
이 코드를 사용하여 파일을 교체합니다
def get_query():
    limit = 6
    sql = f"SELECT speed FROM world WHERE animal='dolphin' LIMIT {limit}"
    return sql

더 많은 예제는 /tests 폴더에서 확인할 수 있습니다.

사전 커밋 훅 추가하기

readsql의 pre-commit 훅을 추가하는 방법은?
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

개발

레포를 클론하고 개발을 위해 uv를 사용하세요:

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

테스트

uv run pytest -v

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