Skip to main content

A Pylint plugin for improving code analysis when editing code using Flask-SQLAlchemy

Project description

pylint_flask_sqlalchemy

About

pylint_flask_sqlalchemy is a Pylint plugin for improving code analysis with Flask-SQLAlchemy.

Usage

Using a simple flask app

"""app.py"""
# pylint: disable=missing-docstring,too-few-public-methods,invalid-name
from flask import Flask
from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)
app.config["SQLALCHEMY_DATABASE_URI"] = "sqlite:////tmp/test.db"
db = SQLAlchemy(app)


class Group(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(80), unique=True, nullable=False)

    def __repr__(self):
        return "<User %r>" % self.username


class User(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(80), unique=True, nullable=False)
    group = db.relationship(Group)

    def __repr__(self):
        return "<User %r>" % self.username

user = User(username="test")
db.session.add(user)
db.session.commit()

Without the plugin: pylint app.py

app.py:11:9: E1101: Instance of 'SQLAlchemy' has no 'Column' member (no-member)
app.py:11:19: E1101: Instance of 'SQLAlchemy' has no 'Integer' member (no-member)
app.py:12:11: E1101: Instance of 'SQLAlchemy' has no 'Column' member (no-member)
app.py:12:21: E1101: Instance of 'SQLAlchemy' has no 'String' member (no-member)
app.py:19:9: E1101: Instance of 'SQLAlchemy' has no 'Column' member (no-member)
app.py:19:19: E1101: Instance of 'SQLAlchemy' has no 'Integer' member (no-member)
app.py:20:15: E1101: Instance of 'SQLAlchemy' has no 'Column' member (no-member)
app.py:20:25: E1101: Instance of 'SQLAlchemy' has no 'String' member (no-member)
app.py:21:12: E1101: Instance of 'SQLAlchemy' has no 'relationship' member (no-member)
app.py:28:0: E1101: Instance of 'scoped_session' has no 'add' member (no-member)
app.py:29:0: E1101: Instance of 'scoped_session' has no 'commit' member (no-member)

----------------------------------------------------------------------
Your code has been rated at -18.95/10 (previous run: 10.00/10, -28.95)

😓

With pylint_flask_sqlalchemy: pylint --load-plugins pylint_flask_sqlalchemy app.py

----------------------------------------------------------------------
Your code has been rated at 10.00/10 (previous run: -13.08/10, +23.08)

🥳

Installation

pip install pylint_flask_sqlalchemy

and tell pylint to --load-plugins pylint_flask_sqlalchemy when you launch it.

Changelog

Current version

New

  • Handle scoped_session has no * member.

0.1.0 (2019-07-18)

New

  • Handle scoped_session has no * member.

  • Handle scoped_session has no * member.

Changes

  • Udpate readme.

0.0.3 (2019-07-13)

Changes

  • Update readme.

0.0.2 (2019-07-13)

New

  • First draft of the plugin.

Fixes

  • Packaging.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pylint_flask_sqlalchemy-0.2.0.tar.gz (3.6 kB view details)

Uploaded Source

Built Distribution

pylint_flask_sqlalchemy-0.2.0-py3-none-any.whl (16.7 kB view details)

Uploaded Python 3

File details

Details for the file pylint_flask_sqlalchemy-0.2.0.tar.gz.

File metadata

  • Download URL: pylint_flask_sqlalchemy-0.2.0.tar.gz
  • Upload date:
  • Size: 3.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/44.0.0 requests-toolbelt/0.9.1 tqdm/4.41.1 CPython/3.7.6

File hashes

Hashes for pylint_flask_sqlalchemy-0.2.0.tar.gz
Algorithm Hash digest
SHA256 8ede5baba1a465d8ba39d8383ffcf0889d7a6afeff44bd24177fcf529ba8aa81
MD5 28f54ae80fe40614a17f70b2f73e2055
BLAKE2b-256 24b9a21c275e8859afc946559d9ff8358a95c2979e1e20733ff5a7b461e37024

See more details on using hashes here.

File details

Details for the file pylint_flask_sqlalchemy-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: pylint_flask_sqlalchemy-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 16.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/44.0.0 requests-toolbelt/0.9.1 tqdm/4.41.1 CPython/3.7.6

File hashes

Hashes for pylint_flask_sqlalchemy-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 27f1fffb940adc9ac8f00ff7eb91ec39ca070c0f3bcec0d7f1c702a993d40505
MD5 0aef0c07c0c69c9fa362cd0665c712d0
BLAKE2b-256 9cff0283bc8ee712a50c55d94f60d8470f74c62aeacb570eee4f674fe84560b8

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page