Tightened up the pylint configuration.

master
Pacman Ghost 4 years ago
parent a21db9ccf3
commit 6e37dba10b
  1. 10
      .pylintrc
  2. 23
      asl_articles/articles.py
  3. 2
      asl_articles/models.py
  4. 13
      asl_articles/publications.py
  5. 19
      asl_articles/publishers.py
  6. 4
      asl_articles/tags.py
  7. 1
      requirements-dev.txt

@ -3,7 +3,7 @@
# A comma-separated list of package or module names from where C extensions may
# be loaded. Extensions are loading into the active Python interpreter and may
# run arbitrary code.
extension-pkg-whitelist=
extension-pkg-whitelist=lxml.html.clean
# Add files or directories to the blacklist. They should be base names, not
# paths.
@ -28,7 +28,7 @@ limit-inference-results=100
# List of plugins (as comma separated values of python module names) to load,
# usually to register additional checkers.
load-plugins=
load-plugins=pylint_flask_sqlalchemy
# Pickle collected data for later comparisons.
persistent = no
@ -238,7 +238,8 @@ contextmanager-decorators=contextlib.contextmanager
# List of members which are set dynamically and missed by pylint inference
# system, and so shouldn't trigger E1101 when accessed. Python regular
# expressions are accepted.
generated-members=
# NOTE: We disable warnings for SQLAlchemy's query.filter/filter_by/join() methods.
generated-members=filter,join
# Tells whether missing members accessed in mixin class should be ignored. A
# mixin class is detected if its name ends with "mixin" (case insensitive).
@ -259,7 +260,8 @@ ignore-on-opaque-inference=yes
# List of class names for which member attributes should not be checked (useful
# for classes with dynamically set attributes). This supports the use of
# qualified names.
ignored-classes=optparse.Values,thread._local,_thread._local
# NOTE: We disable warnings for SQLAlchemy's Column class members e.g. ilike(), asc()
ignored-classes=optparse.Values,thread._local,_thread._local,Column
# List of module names for which member attributes should not be checked
# (useful for modules/projects where namespaces are manipulated during runtime

@ -61,11 +61,11 @@ def create_article():
# create the new article
vals[ "time_created" ] = datetime.datetime.now()
article = Article( **vals )
db.session.add( article ) #pylint: disable=no-member
db.session.flush() #pylint: disable=no-member
db.session.add( article )
db.session.flush()
new_article_id = article.article_id
_save_authors( article, updated )
db.session.commit() #pylint: disable=no-member
db.session.commit()
_logger.debug( "- New ID: %d", new_article_id )
# generate the response
@ -79,8 +79,9 @@ def _save_authors( article, updated_fields ):
"""Save the article's authors."""
# delete the existing article-author rows
query = db.session.query( ArticleAuthor ) #pylint: disable=no-member
query.filter( ArticleAuthor.article_id == article.article_id ).delete()
db.session.query( ArticleAuthor ) \
.filter( ArticleAuthor.article_id == article.article_id ) \
.delete()
# add the article-author rows
authors = request.json.get( "article_authors", [] )
@ -94,12 +95,12 @@ def _save_authors( article, updated_fields ):
# this is a new author - create it
assert isinstance( author, str )
author = Author( author_name=author )
db.session.add( author ) #pylint: disable=no-member
db.session.flush() #pylint: disable=no-member
db.session.add( author )
db.session.flush()
author_id = author.author_id
new_authors = True
_logger.debug( "Created new author \"%s\": id=%d", author, author_id )
db.session.add( #pylint: disable=no-member
db.session.add(
ArticleAuthor( seq_no=seq_no, article_id=article.article_id, author_id=author_id )
)
author_ids.append( author_id )
@ -131,7 +132,7 @@ def update_article():
_save_authors( article, updated )
vals[ "time_updated" ] = datetime.datetime.now()
apply_attrs( article, vals )
db.session.commit() #pylint: disable=no-member
db.session.commit()
# generate the response
extras = {}
@ -154,8 +155,8 @@ def delete_article( article_id ):
_logger.debug( "- %s", article )
# delete the article
db.session.delete( article ) #pylint: disable=no-member
db.session.commit() #pylint: disable=no-member
db.session.delete( article )
db.session.commit()
# generate the response
extras = {}

@ -2,8 +2,6 @@
from asl_articles import db
#pylint: disable=no-member
# ---------------------------------------------------------------------
class Publisher( db.Model ):

@ -74,8 +74,8 @@ def create_publication():
# create the new publication
vals[ "time_created" ] = datetime.datetime.now()
pub = Publication( **vals )
db.session.add( pub ) #pylint: disable=no-member
db.session.commit() #pylint: disable=no-member
db.session.add( pub )
db.session.commit()
_logger.debug( "- New ID: %d", pub.pub_id )
# generate the response
@ -106,7 +106,7 @@ def update_publication():
abort( 404 )
vals[ "time_updated" ] = datetime.datetime.now()
apply_attrs( pub, vals )
db.session.commit() #pylint: disable=no-member
db.session.commit()
# generate the response
extras = {}
@ -129,12 +129,13 @@ def delete_publication( pub_id ):
_logger.debug( "- %s", pub )
# figure out which associated articles will be deleted
query = db.session.query( Article.article_id ).filter_by( pub_id = pub_id ) #pylint: disable=no-member
query = db.session.query( Article.article_id ) \
.filter_by( pub_id = pub_id )
deleted_articles = [ r[0] for r in query ]
# delete the publication
db.session.delete( pub ) #pylint: disable=no-member
db.session.commit() #pylint: disable=no-member
db.session.delete( pub )
db.session.commit()
# generate the response
extras = { "deleteArticles": deleted_articles }

@ -43,8 +43,7 @@ def get_publisher( publ_id ):
query = Publication.query.filter_by( publ_id = publ_id )
vals[ "nPublications" ] = query.count()
# include the number of associated articles
query = db.session.query #pylint: disable=no-member
query = query( Article, Publication ) \
query = db.session.query( Article, Publication ) \
.filter( Publication.publ_id == publ_id ) \
.filter( Article.pub_id == Publication.pub_id )
vals[ "nArticles" ] = query.count()
@ -76,8 +75,8 @@ def create_publisher():
# create the new publisher
vals[ "time_created" ] = datetime.datetime.now()
publ = Publisher( **vals )
db.session.add( publ ) #pylint: disable=no-member
db.session.commit() #pylint: disable=no-member
db.session.add( publ )
db.session.commit()
_logger.debug( "- New ID: %d", publ.publ_id )
# generate the response
@ -106,7 +105,7 @@ def update_publisher():
abort( 404 )
vals[ "time_updated" ] = datetime.datetime.now()
apply_attrs( publ, vals )
db.session.commit() #pylint: disable=no-member
db.session.commit()
# generate the response
extras = {}
@ -128,19 +127,19 @@ def delete_publisher( publ_id ):
_logger.debug( "- %s", publ )
# figure out which associated publications will be deleted
query = db.session.query( Publication.pub_id ).filter_by( publ_id = publ_id ) #pylint: disable=no-member
query = db.session.query( Publication.pub_id ) \
.filter_by( publ_id = publ_id )
deleted_pubs = [ r[0] for r in query ]
# figure out which associated articles will be deleted
query = db.session.query #pylint: disable=no-member
query = query( Article.article_id ).join( Publication ) \
query = db.session.query( Article.article_id ).join( Publication ) \
.filter( Publication.publ_id == publ_id ) \
.filter( Article.pub_id == Publication.pub_id )
deleted_articles = [ r[0] for r in query ]
# delete the publisher
db.session.delete( publ ) #pylint: disable=no-member
db.session.commit() #pylint: disable=no-member
db.session.delete( publ )
db.session.commit()
extras = { "deletedPublications": deleted_pubs, "deletedArticles": deleted_articles }
if request.args.get( "list" ):

@ -27,8 +27,8 @@ def do_get_tags():
continue
for tag in row[0].split( ";" ):
tags[ tag ] = tags[ tag ] + 1
count_tags( db.session.query( Publication.pub_tags ) ) #pylint: disable=no-member
count_tags( db.session.query( Article.article_tags ) ) #pylint: disable=no-member
count_tags( db.session.query( Publication.pub_tags ) )
count_tags( db.session.query( Article.article_tags ) )
# sort the results
tags = sorted( tags.items(),

@ -1,4 +1,5 @@
pytest==5.2.2
selenium==3.141.0
pylint==2.4.3
pylint-flask-sqlalchemy-0.1.0
pytest-pylint==0.14.1

Loading…
Cancel
Save