Skip to main content

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)

Table of built distributions (wheels) for pylintsql 0.0.9
File Interpreter ABI Platform
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

Release history Release notifications | RSS feed

This release

0.0.9 This release

1 release file

0.0.8

1 release file

0.0.7

1 release file

0.0.6

1 release file

0.0.5

2 release files

0.0.4

2 release files

0.0.3

2 release files

0.0.2

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page