어떻게 하면 Pyflakes가 진술을 무시하게 할 수 있습니까?
대부분의 모듈은 다음과 같이 시작합니다.
try:
import json
except ImportError:
from django.utils import simplejson as json # Python 2.4 fallback.
전체 파일에서 유일한 Pyflakes 경고입니다.
foo/bar.py:14: redefinition of unused 'json' from line 12
어떻게 하면 파이플레이크가 이걸 무시하게 할 수 있을까요?
(보통 저는 문서를 읽으러 갔지만 링크가 끊어졌습니다.아무도 답이 없으면 출처만 읽겠습니다.)
만약 당신이 flake8을 대신 사용할 수 있다면 - pep8 체커뿐만 아니라 pyflake를 감싸는 - 로 끝나는 라인.
# NOQA
(여기서 공백이 상당함 - 코드 끝과 다음 사이의 2개의 공백#
둘 중 하나NOQA
text)를 선택하면 해당 줄의 오류를 무시하도록 체커에 알립니다.
저는 이것이 얼마 전에 질문을 받았고 이미 답변을 받았다는 것을 알고 있습니다.
하지만 저는 제가 주로 사용하는 것을 추가하고 싶었습니다.
try:
import json
assert json # silence pyflakes
except ImportError:
from django.utils import simplejson as json # Python 2.4 fallback.
네, 불행하게도 dimod.org 은 모든 맛있는 음식과 함께 다운되었습니다.
Pyflakes 코드를 보면, Pyflakes는 "내장형 고속 체커"로 사용하기 쉽도록 설계된 것 같습니다.
ignore 기능을 구현하려면 pyflakes checker를 호출하는 자신의 기능을 작성해야 합니다.
여기서 아이디어를 찾을 수 있습니다: http://djangosnippets.org/snippets/1762/
주석에 대해서만 위의 스니펫이 동일한 줄에 표시됩니다.전체 블록을 무시하는 경우 node.doc을 기준으로 블록 docstring 및 필터에 'pyflakes:ignore'를 추가할 수 있습니다.
행운을 빕니다.
저는 모든 종류의 정적 코드 분석에 포켓 린트를 사용하고 있습니다.pyflake를 무시한 포켓몬스터의 변경사항은 다음과 같습니다: https://code.launchpad.net/ ~adiroiban/pocket-slock/907742/+slock/102882
github 발행 티켓에서 인용하기
해결책이 아직 제공되는 동안 다음과 같은 방법으로 해결할 수 있습니다.
try: from unittest.runner import _WritelnDecorator _WritelnDecorator; # workaround for pyflakes issue #13 except ImportError: from unittest import _WritelnDecorator
필요한 엔티티(모듈, 함수, 클래스)가 있는 Substitude _unitest 및 _WritelnDecorator
보잘것없는 것
여기 파이프레이크를 위한 원숭이 패치가 있습니다.# bypass_pyflakes
설명 옵션.
bypass_pyflakes.파이의
#!/usr/bin/env python
from pyflakes.scripts import pyflakes
from pyflakes.checker import Checker
def report_with_bypass(self, messageClass, *args, **kwargs):
text_lineno = args[0] - 1
with open(self.filename, 'r') as code:
if code.readlines()[text_lineno].find('bypass_pyflakes') >= 0:
return
self.messages.append(messageClass(self.filename, *args, **kwargs))
# monkey patch checker to support bypass
Checker.report = report_with_bypass
pyflakes.main()
이것을 다음과 같이 저장하면bypass_pyflakes.py
그러면 다음과 같이 호출할 수 있습니다.python bypass_pyflakes.py myfile.py
.
http://chase-seibert.github.com/blog/2013/01/11/bypass_pyflakes.html
Flake는 위반을 무시할 수 있는 몇 가지 옵션을 제공합니다.
제가 가장 좋아하는 것은 명시적으로 하고 특정 위반을 무시하는 것입니다.
my invalid code # noqa: WS03
그리고 이미 인용된 다른 옵션들도 있습니다.
- 라인의 모든 유효성 검사 무시:
my invalid code # NOQA
- 파일의 모든 유효성 검사를 무시합니다.첫 번째 줄을 입력합니다.
# flake8: noqa: E121, E131, E241, F403, F405
또는 flake8 구성에서 매개 변수로 무시하도록 구성합니다.
다음을 사용하여 가져올 수도 있습니다.__import__
이것은 비단뱀은 아니지만, 파이플레이크는 더 이상 당신에게 경고하지 않습니다.자세한 내용은 설명서를 참조하십시오.
try:
import json
except ImportError:
__import__('django.utils', globals(), locals(), ['json'], -1)
저는 약간의 셸 스크립트를 만들었습니다.awk
나를 도와주는 마법.이와 함께 모든 행은import typing
,from typing import
또는#$
에 여기서 제외됩니다 (((으)ㄹ 수 있습니다).$1
::
result=$(pyflakes -- "$1" 2>&1)
# check whether there is any output
if [ "$result" ]; then
# lines to exclude
excl=$(awk 'BEGIN { ORS="" } /(#\$)|(import +typing)|(from +typing +import )/ { print sep NR; sep="|" }' "$1")
# exclude lines if there are any (otherwise we get invalid regex)
[ "$excl" ] &&
result=$(awk "! /^[^:]+:(${excl}):/" <<< "$result")
fi
# now echo "$result" or such ...
기본적으로 라인 번호를 기록하고 동적으로 정규식을 작성합니다.
위해서flake8
권장되는 대안(여기서는 플레이크 8 vs 파이 플레이크 8)
다음과 같이 첫 번째 줄을 추가합니다.
# flake8: noqa: E121, E131, E241, F403, F405
일반적으로:
# flake8: noqa: <code>[, <code> ...]
이런 식으로 한 줄로 당신은 침묵할 수 있습니다.entire file
그리고 그것을 위하여.many
문 ignore 문을 사용합니다.at once
종종 그런 경우가 있습니다.
언급URL : https://stackoverflow.com/questions/5033727/how-do-i-get-pyflakes-to-ignore-a-statement
'programing' 카테고리의 다른 글
데이터베이스에서 jango 개체 다시 로드 (0) | 2023.07.19 |
---|---|
Mac에 R 설치 중 - 경고 메시지:"C"를 사용하여 LC_CTYPE을 설정하지 못했습니다. (0) | 2023.07.19 |
파이썬 '버퍼' 유형은 무엇을 위한 것입니까? (0) | 2023.07.19 |
가져오기 오류: libSM.so .6: 공유 개체 파일을 열 수 없습니다.해당 파일 또는 디렉터리가 없습니다. (0) | 2023.07.19 |
연결 풀을 안전하게 래핑 (0) | 2023.07.19 |