A flake8 plugin to detect issues with SQLAlchemy code
Project description
flake8-sqlalchemy
A flake8 plugin for SQLAlchemy code.
Installation
pip install flake8-sqlalchemy
Configuration
By default, all checks are enabled.
You can disable all checks by adding the following to your setup.cfg
:
[flake8]
ignore = SQA
or ignore specific checks:
[flake8]
ignore = SQA100
SQA100
- sqlalchemy
import alias
Checks that when sqlalchemy
is imported with an alias,
the alias is either sa
or db
.
Bad
import sqlalchemy as foo
Good
import sqlalchemy as sa
# or
import sqlalchemy as db
SQA200
- Column
keyword argument comment
required
When writing a Column
definition the comment
keyword argument is required.
This provides inline documentation for the column,
as well as generating the SQL to add the comment to the database.
Bad
class Users(Base):
__tablename__ = "users"
id = Column(Integer, primary_key=True)
name = Column(String)
Good
class Users(Base):
__tablename__ = "users"
id = Column(Integer, primary_key=True, comment="User ID from Auth Service")
name = Column(String, comment="User name: first, middle, last")
Also applies to mapped_column
:
class Users(Base):
__tablename__ = "users"
id = Column(Integer, primary_key=True, comment="User ID from Auth Service")
name = mapped_column(String, comment="User name: first, middle, last")
License
This project is licensed under the terms of the MIT license. See the LICENSE file for the full license text.