Использование Pylint с Django

Обработка строки Unicode стандартизована в Python 3.

  1. Char хранится в Unicode
  2. Вам нужно только открыть файл в utf-8
    out1 = "(嘉南大圳 ㄐㄧㄚ ㄋㄢˊ ㄉㄚˋ ㄗㄨㄣˋ )"
    fobj = open("t1.txt", "w", encoding="utf-8")
    fobj.write(out1)
    fobj.close()
    
137
задан rcreswick 8 October 2013 в 22:47
поделиться

7 ответов

Это не решение, но можно добавить objects = models.Manager() к Вашим моделям Django, не изменяя поведения.

Я сам только использую pyflakes, прежде всего, из-за некоторых немых значений по умолчанию в pylint и лени с моей стороны (не желание искать, как изменить значения по умолчанию).

7
ответ дан 23 November 2019 в 23:32
поделиться

Из-за того, как pylint работает (он исследует сам источник, не позволяя Python на самом деле выполнить его), pylint очень трудно выяснить, как метаклассы и сложные базовые классы на самом деле влияют на класс и его экземпляры. 'pychecker' инструмент немного лучше в этом отношении, потому что он действительно на самом деле позволяет Python выполнить код; это импортирует модули и исследует полученные объекты. Однако тот подход имеет другие проблемы, потому что он действительно на самом деле позволяет Python выполнить код :-)

Вы могли расширить pylint, чтобы преподавать это волшебству использование Django или заставить его понять метаклассы или сложные базовые классы лучше, или просто игнорировать такие регистры после обнаружения одной или нескольких функций, которые это не вполне понимает. Я не думаю, что это было бы особенно легко. Можно также просто сказать pylint не предупреждать об этих вещах, через специальные комментарии в источнике, параметрах командной строки или .pylintrc файле.

16
ответ дан 23 November 2019 в 23:32
поделиться

Попытайтесь выполнить pylint с

pylint --ignored-classes=Tags

Если это работает, добавьте все другие классы Django - возможно использование сценария, в говорят, Python :P

Документация для --ignore-classes :

--ignored-classes=<members names>
Список классов называет, на который членские атрибуты не должны быть проверены (полезный для классов с атрибутами динамично набор). [текущий: %default]

Я должен добавить, что это не конкретное изящное решение, по моему мнению, но оно должно работать.

5
ответ дан 23 November 2019 в 23:32
поделиться

Я ушел из использования pylint/pychecker в пользу использования pyflakes с кодом Django - это просто пытается импортировать модуль и сообщает о любой проблеме, это находит, как неиспользованный импорт или деинициализирует локальные имена.

7
ответ дан 23 November 2019 в 23:32
поделиться

До сих пор я не нашел действительного решения этого, но работы вокруг:

  • В нашей компании мы требуем счета pylint> 8. Это позволяет кодировать методы pylint, не понимает при обеспечении, что код не слишком "необычен". До сих пор мы havn't, замеченный любой экземпляр, где E1101 помешал нам достигать счета 8 или выше.
  • Наш 'осуществляют проверку' цели, отфильтровывают "для, не имеет никаких членских сообщений" 'объектов' для удаления большей части отвлечения, вызванного pylint, не понимая Django.
1
ответ дан 23 November 2019 в 23:32
поделиться

Я использую следующее: pylint --generated-members = objects

63
ответ дан 23 November 2019 в 23:32
поделиться

django-lint - хороший инструмент, который обертывает pylint с настройками, специфичными для django: http://chris-lamb.co.uk/projects/django-lint/

проект на github: https://github.com/lamby/django-lint

19
ответ дан 23 November 2019 в 23:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: