Pycharm предупреждает о неожиданном типе в модели SqlAlchemy - PullRequest
5 голосов
/ 04 июля 2011

В модели SqlAlchemy я получаю предупреждение от pycharm о том, что столбец имеет неожиданный тип.

Упрощенный код, который выдает предупреждение, выглядит следующим образом:

from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Column, Integer, String

Base = declarative_base()

class Peptide(Base):
    __tablename__ = 'peptides'

    sequence = Column(String, primary_key=True)
    scan = Column(Integer)

    def __init__(self, scan, sequence):
        self.scan = scan
        self.sequence = sequence

    def __repr__(self):
        return '<Peptide "%s" Scan %i>' % (self.sequence, self.scan)

предупреждение выдается за self.scan в методе __repr__.Если я изменю строку формата на:

  return '<Peptide "%s" Scan %s>' % (self.sequence, self.scan)

, предупреждение исчезнет.Но на самом деле self.scan был определен как целое число в модели, а не строка.Удивительно, но следующая строка не выдает никаких предупреждений:

  return '<Scan %i>' % self.scan

Является ли это чрезмерной реакцией средства проверки на Pycharm или это связано с типами SqlAlchemy?

1 Ответ

6 голосов
/ 09 июля 2011

В настоящее время PyCharm не знает соглашений SQLAlchemy ORM, поэтому обычно он не знает реальных типов полей модели. Если вы хотите получить специальную поддержку SQLAlchemy в PyCharm, смело голосуйте за проблему PY-4186 в системе отслеживания ошибок PyCharm.

Обновление : PY-4536 был исправлен в 2013 году. Как отмечается в комментариях ниже, по-прежнему существует проблема, если вы используете Mixins, см. PY-12002 .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...