{ "info": { "author": "Anybox", "author_email": "rboyer@anybox.fr", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: GNU General Public License (GPL)", "Operating System :: OS Independent", "Programming Language :: Python :: 3 :: Only", "Typing :: Typed" ], "description": "# pylint_flask_sqlalchemy\n\n**Beware: this is still a WIP.**\n\n## About\n\npylint_flask_sqlalchemy is [Pylint](https://www.pylint.org/) plugin for improving code\nanalysis when editing code using\n[Flask-SQLAlchemy](https://flask-sqlalchemy.palletsprojects.com).\n\n## Usage\n\nUsing a simple flask app\n\n```python\n\"\"\"app.py\"\"\"\n# pylint: disable=missing-docstring,too-few-public-methods,invalid-name\nfrom flask import Flask\nfrom flask_sqlalchemy import SQLAlchemy\n\napp = Flask(__name__)\napp.config[\"SQLALCHEMY_DATABASE_URI\"] = \"sqlite:////tmp/test.db\"\ndb = SQLAlchemy(app)\n\n\nclass User(db.Model):\n id = db.Column(db.Integer, primary_key=True)\n username = db.Column(db.String(80), unique=True, nullable=False)\n\n def __repr__(self):\n return \"\" % self.username\n\nuser = User(username=\"test\")\ndb.session.add(user)\ndb.session.commit()\n```\n\nWithout the plugin: `pylint app.py`\n\n```\napp.py:11:9: E1101: Instance of 'SQLAlchemy' has no 'Column' member (no-member)\napp.py:11:19: E1101: Instance of 'SQLAlchemy' has no 'Integer' member (no-member)\napp.py:12:15: E1101: Instance of 'SQLAlchemy' has no 'Column' member (no-member)\napp.py:12:25: E1101: Instance of 'SQLAlchemy' has no 'String' member (no-member)\napp.py:19:0: E1101: Instance of 'scoped_session' has no 'add' member (no-member)\napp.py:20:0: E1101: Instance of 'scoped_session' has no 'commit' member (no-member)\n\n----------------------------------------------------------------------\nYour code has been rated at -13.08/10 (previous run: 10.00/10, -23.08)\n```\n\n\ud83d\ude13\n\nWith pylint_flask_sqlalchemy: `pylint --load-plugins pylint_flask_sqlalchemy app.py`\n\n```sh\n----------------------------------------------------------------------\nYour code has been rated at 10.00/10 (previous run: -13.08/10, +23.08)\n```\n\n\ud83e\udd73\n\n## Installation \n\n```\npip install pylint_flask_sqlalchemy\n```\n\nand tell pylint to `--load-plugins pylint_flask_sqlalchemy` when you launch it. \n\n\n# Changelog\n\n## Current version\n\n### New\n\n* Handle scoped_session has no * member.\n\n* Handle scoped_session has no * member.\n\n### Changes\n\n* Udpate readme.\n\n\n## 0.0.3 (2019-07-13)\n\n### Changes\n\n* Update readme.\n\n\n## 0.0.2 (2019-07-13)\n\n### New\n\n* First draft of the plugin.\n\n### Fixes\n\n* Packaging.\n\n\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://gitlab.anybox.cloud/rboyer/pylint_flask_sqlalchemy", "keywords": "", "license": "GPL", "maintainer": "Renaud Boyer", "maintainer_email": "rboyer@anybox.fr", "name": "pylint-flask-sqlalchemy", "package_url": "https://pypi.org/project/pylint-flask-sqlalchemy/", "platform": "any", "project_url": "https://pypi.org/project/pylint-flask-sqlalchemy/", "project_urls": { "Bug Tracker": "https://gitlab.anybox.cloud/rboyer/pylint_flask_sqlalchemy/issues", "Documentation": "https://gitlab.anybox.cloud/rboyer/pylint_flask_sqlalchemy", "Homepage": "https://gitlab.anybox.cloud/rboyer/pylint_flask_sqlalchemy", "Source Code": "https://gitlab.anybox.cloud/rboyer/pylint_flask_sqlalchemy" }, "release_url": "https://pypi.org/project/pylint-flask-sqlalchemy/0.1.0/", "requires_dist": [ "pylint", "Flask-SQLAlchemy (>=2)", "black ; extra == 'dev'", "bump2version ; extra == 'dev'", "gitchangelog ; extra == 'dev'", "pystache ; extra == 'dev'", "mypy ; extra == 'dev'" ], "requires_python": ">= 3.5", "summary": "A Pylint plugin for improving code analysis when editing code using Flask-SQLAlchemy", "version": "0.1.0" }, "last_serial": 5549953, "releases": { "0.0.2": [ { "comment_text": "", "digests": { "md5": "9961a20e86943a33c9b48b01fd242dc7", "sha256": "8315e6be9b418efaf0c5f139e2ac05a5e9c8a546ec41eec3699afcc8ab559a4c" }, "downloads": -1, "filename": "pylint_flask_sqlalchemy-0.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "9961a20e86943a33c9b48b01fd242dc7", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">= 3.5", "size": 16110, "upload_time": "2019-07-13T05:56:25", "url": "https://files.pythonhosted.org/packages/33/0c/b83beede13c878ad4731c368e40ef93c6d8086d9e7ab6a3f7d25d68c7411/pylint_flask_sqlalchemy-0.0.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f9dc46ed336cf94bd462eaade5511418", "sha256": "31a22115199c887c09f36dc144065176df5d758b64d49e45b232f296447a7e4e" }, "downloads": -1, "filename": "pylint_flask_sqlalchemy-0.0.2.tar.gz", "has_sig": false, "md5_digest": "f9dc46ed336cf94bd462eaade5511418", "packagetype": "sdist", "python_version": "source", "requires_python": ">= 3.5", "size": 3073, "upload_time": "2019-07-13T05:56:28", "url": "https://files.pythonhosted.org/packages/50/eb/a9743a8e17989dd1419d42617448fa835b12afa04b623133b10bf5db99af/pylint_flask_sqlalchemy-0.0.2.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "11fe4fa8093b3677ddf427f01b1d95a6", "sha256": "073586c4e6073e0e6f0136a6020b391b75ba2ea7141ddd7b1f0a5a035b17b0c5" }, "downloads": -1, "filename": "pylint_flask_sqlalchemy-0.0.3-py3-none-any.whl", "has_sig": false, "md5_digest": "11fe4fa8093b3677ddf427f01b1d95a6", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">= 3.5", "size": 16320, "upload_time": "2019-07-13T06:45:14", "url": "https://files.pythonhosted.org/packages/82/b6/89ed82171f4af494da4f57957a4b14751291abc2f4a92c7d2f7b0a457677/pylint_flask_sqlalchemy-0.0.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "bc6ff8a8c533079ae7535e4f0c7caf0e", "sha256": "f486ef606def97e31a0ae5fc799c758d020072e6f84d3dcd80e6ef855847185d" }, "downloads": -1, "filename": "pylint_flask_sqlalchemy-0.0.3.tar.gz", "has_sig": false, "md5_digest": "bc6ff8a8c533079ae7535e4f0c7caf0e", "packagetype": "sdist", "python_version": "source", "requires_python": ">= 3.5", "size": 3208, "upload_time": "2019-07-13T06:45:16", "url": "https://files.pythonhosted.org/packages/6f/2b/7f92a2e1fefb0079de85edc8fee4aaaca7f28a561c2341d8a1d72e6e9fae/pylint_flask_sqlalchemy-0.0.3.tar.gz" } ], "0.1.0": [ { "comment_text": "", "digests": { "md5": "3138a2c410f804ed09579a2d0ebb6fff", "sha256": "f29ece24053ddfc48aadbe140fc578f08fb1850f0738f30913dfc5d9d47e2518" }, "downloads": -1, "filename": "pylint_flask_sqlalchemy-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "3138a2c410f804ed09579a2d0ebb6fff", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">= 3.5", "size": 16546, "upload_time": "2019-07-18T09:20:56", "url": "https://files.pythonhosted.org/packages/32/bd/e33f55705132636f055b63a684c3882879e8e81daafb5ea1edf2ee661c0d/pylint_flask_sqlalchemy-0.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e304793fbf398a6ed3fde5244353f5d7", "sha256": "2e06a638cf55aa17380cae75dec0ca8310b4a11e6cdf41e5bf808701ce1362ce" }, "downloads": -1, "filename": "pylint_flask_sqlalchemy-0.1.0.tar.gz", "has_sig": false, "md5_digest": "e304793fbf398a6ed3fde5244353f5d7", "packagetype": "sdist", "python_version": "source", "requires_python": ">= 3.5", "size": 3410, "upload_time": "2019-07-18T09:20:58", "url": "https://files.pythonhosted.org/packages/f8/07/615656950403373c8c175c5d663e4e12761580d8538e0dc5aaa202656dd4/pylint_flask_sqlalchemy-0.1.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "3138a2c410f804ed09579a2d0ebb6fff", "sha256": "f29ece24053ddfc48aadbe140fc578f08fb1850f0738f30913dfc5d9d47e2518" }, "downloads": -1, "filename": "pylint_flask_sqlalchemy-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "3138a2c410f804ed09579a2d0ebb6fff", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">= 3.5", "size": 16546, "upload_time": "2019-07-18T09:20:56", "url": "https://files.pythonhosted.org/packages/32/bd/e33f55705132636f055b63a684c3882879e8e81daafb5ea1edf2ee661c0d/pylint_flask_sqlalchemy-0.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e304793fbf398a6ed3fde5244353f5d7", "sha256": "2e06a638cf55aa17380cae75dec0ca8310b4a11e6cdf41e5bf808701ce1362ce" }, "downloads": -1, "filename": "pylint_flask_sqlalchemy-0.1.0.tar.gz", "has_sig": false, "md5_digest": "e304793fbf398a6ed3fde5244353f5d7", "packagetype": "sdist", "python_version": "source", "requires_python": ">= 3.5", "size": 3410, "upload_time": "2019-07-18T09:20:58", "url": "https://files.pythonhosted.org/packages/f8/07/615656950403373c8c175c5d663e4e12761580d8538e0dc5aaa202656dd4/pylint_flask_sqlalchemy-0.1.0.tar.gz" } ] }