Skip to content

growdashtech/pylintsql

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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/**"
]

About

A tool for linting/fixing SQL code within Python strings using SQLFluff

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages