Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

PyCharm warns about unexpected arguments for SQLAlchemy User model

I'm working with Flask-SQLAlchemy in PyCharm. When I try to create instances of my User model by passing keyword arguments to the model, PyCharm highlights the arguments with an "Unexpected argument(s)" warning. When I create instances of other models, I don't get this warning. Why am I getting this error for my User model?

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

new_user = User(username="test")

In the above example username="test" is highlighted as a warning.

warning in PyCharm

like image 523
norsemanGrey Avatar asked Nov 19 '19 14:11

norsemanGrey


2 Answers

This is a bug in PyCharm, not your code. PyCharm doesn't recognize column names as arguments when using mixins. You can show your interest in the issue by clicking the thumbs up button next to its title. Until then, there's nothing you can do to fix the issue besides disabling the inspection or ignoring the highlighting.

like image 185
davidism Avatar answered Oct 24 '22 04:10

davidism


Another way to solve this annoying issue is to add a comment # type: ignore to the line, which removes Pycharm's type checking on that line and looks a lot nicer:

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

new_user = User(username="test")  # type: ignore
like image 1
NotSoShabby Avatar answered Oct 24 '22 04:10

NotSoShabby