PyLintSQL
A tool that lints/fixes SQL code within Python strings using SQLFluff.
Installation
# Install from PyPI
pip install pylintsql
Usage
Lint SQL in Python files in the current directory
pylintsql lint
Fix SQL in Python files in a specific directory
pylintsql fix path/to/directory
Use a custom configuration file
pylintsql lint --config /path/to/config
SQL String Identification
PyLintSQL identifies SQL strings by looking for the --sql marker at the beginning of the string. Only strings with this marker will be processed:
# This SQL string will be linted
sql = """--sql
SELECT
user_id,
COUNT(*) as order_count
FROM orders
WHERE created_at > '2023-01-01'
GROUP BY user_id
"""
# This regular string will be ignored
other_text = """
This is not SQL and won't be processed
"""
Configuration
PyLintSQL uses pyproject.toml for configuration, which is also a configuration file for SQLFluff itself. This means you can:
- Use all standard SQLFluff configuration options under
[tool.sqlfluff.*]sections - Define pylintsql-specific settings under
[tool.pylintsql]
Example configuration:
# SQLFluff configuration
[tool.sqlfluff.core]
dialect = "bigquery" # Or your preferred dialect
max_line_length = 99
exclude_rules = ["RF01", "RF02", "RF04", "ST06"]
[tool.sqlfluff.indentation]
tab_space_size = 2
indented_joins = false
indented_ctes = false
# PyLintSQL specific configuration
[tool.pylintsql]
exclude = [ # Directories/files to exclude
".venv/**",
"build/**",
"dist/**",
"tests/**"
]
Metadata
Release files for pylintsql 0.0.9
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pylintsql-0.0.9-py3-none-any.whl | Python 3 | none | any | Details |
Release files / pylintsql-0.0.9-py3-none-any.whl
| Download URL | pylintsql-0.0.9-py3-none-any.whl |
|---|---|
| Size | 10.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
a87e1bf5d1f194814171fa072941c384414413a183c402e5e2524ff8f3b7ab0c
|
|
BLAKE2b-256 checksum How to use checksums |
f236a45def2b9c0c6c520c35a9e41ff6239f792852aefff6b5be77b1214faf6e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|