[pseen README 및 번역]: "Preferred Networks"에서 만든 Python linter/formatter 관리 프로그램 "pseen"의 README를 번역해 봤어요.
개시하다
psen은preferred networks에서 공개한python용linter/formatter의 관리용 프로그램입니다.
여러 사람이 코드를 제작할 때 어느 정도의 가독성을 확보하기 위해 인코딩의 약속을 결정하지만 자동판정/성형은linter/formatter이다.그러나python용linter/formatter는 여러 개가 있고 항목마다 각양각색이므로 linter/formatter의 정비 자체 형해화가 문제입니다.그래서 preferred networks에서 linter/formatter 관리용 응용 프로그램을 제작하여 통합시켰다.
다만, preferred networks의github README.md는 영어 문서만 있기 때문에 일본어로 번역된 것은 다음과 같다.(집필시 2021/03/29)
참고 자료
psene가 뭐예요?
이것은 매일 개발되는 도구를 통합하는 것을 목표로 하는 도구이다.
구상은 다음과 같다.
이것은 매일 개발되는 도구를 통합하는 것을 목표로 하는 도구이다.
구상은 다음과 같다.
pysen run lint
, 실행pysen run format
을 통해 프로젝트 내의 모든 코드를 검사하고 포맷pyproject.toml
에 몇 줄을 써서 표준화된 코드 스타일을 정의합니다psene에서 할 수 없는 일
pysen run lint
psene의 더 추상적인 설정 파일에 따라 여러 개의python의linter 설정을 자동으로 구축합니다.pipenv
나 poetry
를 사용하여 psen이 사용하는 도구(isort, mypy,flake8black 등)의 버전을 패키지 관리자에 고정시키는 것을 권장합니다.psen에 대응하는 버전setup.py
내extra_requires/lint를 확인하세요.pip install pysen[lint]
의 linter 버전 관리를 추천하지 않습니다.설치 방법
다음 중 하나를 사용하십시오.하지만 pip는 추천하지 않습니다.# pip
pip install "pysen[lint]"
# pipenv
pipenv install --dev "pysen[lint]==0.9.1"
# poetry
poetry add -D pysen==0.9.1 -E lint
빠른 시작:pseen의 linter 관리 방법
우선, psyhon 패키지에서 다음 설정을 psene 설정 파일 pyproject.toml
에 기록하십시오.[tool.pysen]
version = "0.9"
[tool.pysen.lint]
enable_black = true
enable_flake8 = true
enable_isort = true
enable_mypy = true
mypy_preset = "strict"
line_length = 88
py_version = "py37"
[[tool.pysen.lint.mypy_targets]]
paths = ["."]
다음 명령을 실행합니다.$ pysen run lint
$ pysen run format # ここでformatter(black, isort)を使ったコードの自動修正を試みます
이만 마치겠습니다!
psene는 특정한 링크 (Black, isort, mypy, flake 8) 의 설정 파일을 생성하고 적절하게 실행합니다.pyproject.toml
에 관해서 더 자세한 상황을 알고 싶으면 pysen/pyproject_model.py
를 참조하십시오.
설정 명령도 psyhon 패키지에 추가할 수 있습니다.가방에 있는 setup.py
에 다음 코드를 추가해서 실행해 보세요.import pysen
setup = pysen.setup_from_pyproject(__file__)
$ python setup.py lint
또한 맞춤형 설정, psene를 확장하는 파이톤 인터페이스도 제공한다.자세한 내용은 다음을 참조하십시오.
- Pythhon 설정 예제 사용: examples/advanced_example/config.py
[번역문] 3/29 현재 이 파일이 존재하지 않습니다.아마lint.py
-psene 플러그인 예: examples/plugin_example/plugin.py
어떻게 작동합니까?프로필 디렉토리
수면 아래에서pseen이 이동할 때 linter가 사용하는 파일을 잠시 생성합니다.이 파일을 디스크에 저장하려면 (예를 들어 편집기에서 사용할 때) 다음 명령을 실행하고 저장 위치를 지정하십시오.$ pysen generate [保存先ディレクトリ]
pysen run
실행할 때pseen이 사용하는 설정 디렉터리를 지정할 수 있습니다.pyproject.toml
에 다음 영역을 추가하십시오.[tool.pysen-cli]
settings_dir = "path/to/generate/settings"
지정한 디렉터리에 설정 파일이 포함되어 있을 때pseen을 병합합니다.이에 따라 지정되지 않았을 때settings_dir
와는 다른 행동이 나타날 수 있다.
이 옵션은 pseen CLI를 통해서만 사용할 수 있습니다.pre-commiit 또는 setuptols를 사용할 때는 매개 변수에 settings_dir
를 지정해야 합니다.
Tips: IDE/텍스트 편집기와 결합
[역문 주] 제가 vim과emacs에 대해 잘 몰라서 이상한 번역이 있을 수도 있어요.모르는 부분이 있으면 읽으십시오원문(수정을 환영합니다)
vim
pseen 출력 오류는 다음 코드로 빠른 접미사 창에 추가할 수 있습니다:cex system("pysen run_files lint --error-format gnu ".expand('%:p'))
이외에도 psene를 makeprg
로 설정하는 방법도 있다set makeprg=pysen\ run_files\ --error-format\ gnu\ lint\ %
그런 다음 실행:make
하면 빠른 창에 오류가 표시됩니다.:Dispatch
를 대체:Make
로 호출하면 vim-dispatch
에서도 일할 수 있다.
실행 결과는 다음과 같습니다.
Emacs
참조Comliation mode.
다음은python의 연결 예입니다.(add-hook 'python-mode-hook
(lambda ()
(set (make-local-variable 'compile-command)
(concat "pysen run_files lint --error-format gnu " buffer-file-name))))
VSCode
설정 예의 json을 참고하세요.이렇게 하면 PROPBLEMS 창에 다음 오류가 표시됩니다.
※ 주의 ※
VScode 확장 기능에서 flake8 같은 linter를 추가로 가져오면 출력 오류가 중복될 수 있습니다.psen에서 모든 파일을 검사하는 데 시간이 걸릴 수 있습니다.따라서 대규모 프로젝트에서는 파일 변경을 트리거로pseen을 실행하는 것을 추천하지 않습니다.
기본 설정
포텐을 설정하는 방법은 두 가지가 있습니다.
# pip
pip install "pysen[lint]"
# pipenv
pipenv install --dev "pysen[lint]==0.9.1"
# poetry
poetry add -D pysen==0.9.1 -E lint
우선, psyhon 패키지에서 다음 설정을 psene 설정 파일
pyproject.toml
에 기록하십시오.[tool.pysen]
version = "0.9"
[tool.pysen.lint]
enable_black = true
enable_flake8 = true
enable_isort = true
enable_mypy = true
mypy_preset = "strict"
line_length = 88
py_version = "py37"
[[tool.pysen.lint.mypy_targets]]
paths = ["."]
다음 명령을 실행합니다.$ pysen run lint
$ pysen run format # ここでformatter(black, isort)を使ったコードの自動修正を試みます
이만 마치겠습니다!psene는 특정한 링크 (Black, isort, mypy, flake 8) 의 설정 파일을 생성하고 적절하게 실행합니다.
pyproject.toml
에 관해서 더 자세한 상황을 알고 싶으면 pysen/pyproject_model.py
를 참조하십시오.설정 명령도 psyhon 패키지에 추가할 수 있습니다.가방에 있는
setup.py
에 다음 코드를 추가해서 실행해 보세요.import pysen
setup = pysen.setup_from_pyproject(__file__)
$ python setup.py lint
또한 맞춤형 설정, psene를 확장하는 파이톤 인터페이스도 제공한다.자세한 내용은 다음을 참조하십시오.- Pythhon 설정 예제 사용:
examples/advanced_example/config.py
[번역문] 3/29 현재 이 파일이 존재하지 않습니다.아마lint.py
-psene 플러그인 예: examples/plugin_example/plugin.py
어떻게 작동합니까?프로필 디렉토리
수면 아래에서pseen이 이동할 때 linter가 사용하는 파일을 잠시 생성합니다.이 파일을 디스크에 저장하려면 (예를 들어 편집기에서 사용할 때) 다음 명령을 실행하고 저장 위치를 지정하십시오.$ pysen generate [保存先ディレクトリ]
pysen run
실행할 때pseen이 사용하는 설정 디렉터리를 지정할 수 있습니다.pyproject.toml
에 다음 영역을 추가하십시오.[tool.pysen-cli]
settings_dir = "path/to/generate/settings"
지정한 디렉터리에 설정 파일이 포함되어 있을 때pseen을 병합합니다.이에 따라 지정되지 않았을 때settings_dir
와는 다른 행동이 나타날 수 있다.
이 옵션은 pseen CLI를 통해서만 사용할 수 있습니다.pre-commiit 또는 setuptols를 사용할 때는 매개 변수에 settings_dir
를 지정해야 합니다.
Tips: IDE/텍스트 편집기와 결합
[역문 주] 제가 vim과emacs에 대해 잘 몰라서 이상한 번역이 있을 수도 있어요.모르는 부분이 있으면 읽으십시오원문(수정을 환영합니다)
vim
pseen 출력 오류는 다음 코드로 빠른 접미사 창에 추가할 수 있습니다:cex system("pysen run_files lint --error-format gnu ".expand('%:p'))
이외에도 psene를 makeprg
로 설정하는 방법도 있다set makeprg=pysen\ run_files\ --error-format\ gnu\ lint\ %
그런 다음 실행:make
하면 빠른 창에 오류가 표시됩니다.:Dispatch
를 대체:Make
로 호출하면 vim-dispatch
에서도 일할 수 있다.
실행 결과는 다음과 같습니다.
Emacs
참조Comliation mode.
다음은python의 연결 예입니다.(add-hook 'python-mode-hook
(lambda ()
(set (make-local-variable 'compile-command)
(concat "pysen run_files lint --error-format gnu " buffer-file-name))))
VSCode
설정 예의 json을 참고하세요.이렇게 하면 PROPBLEMS 창에 다음 오류가 표시됩니다.
※ 주의 ※
VScode 확장 기능에서 flake8 같은 linter를 추가로 가져오면 출력 오류가 중복될 수 있습니다.psen에서 모든 파일을 검사하는 데 시간이 걸릴 수 있습니다.따라서 대규모 프로젝트에서는 파일 변경을 트리거로pseen을 실행하는 것을 추천하지 않습니다.
기본 설정
포텐을 설정하는 방법은 두 가지가 있습니다.
$ pysen generate [保存先ディレクトリ]
[tool.pysen-cli]
settings_dir = "path/to/generate/settings"
[역문 주] 제가 vim과emacs에 대해 잘 몰라서 이상한 번역이 있을 수도 있어요.모르는 부분이 있으면 읽으십시오원문(수정을 환영합니다)
vim
pseen 출력 오류는 다음 코드로 빠른 접미사 창에 추가할 수 있습니다
:cex system("pysen run_files lint --error-format gnu ".expand('%:p'))
이외에도 psene를 makeprg
로 설정하는 방법도 있다set makeprg=pysen\ run_files\ --error-format\ gnu\ lint\ %
그런 다음 실행:make
하면 빠른 창에 오류가 표시됩니다.:Dispatch
를 대체:Make
로 호출하면 vim-dispatch
에서도 일할 수 있다.실행 결과는 다음과 같습니다.
Emacs
참조Comliation mode.
다음은python의 연결 예입니다.
(add-hook 'python-mode-hook
(lambda ()
(set (make-local-variable 'compile-command)
(concat "pysen run_files lint --error-format gnu " buffer-file-name))))
VSCode
설정 예의 json을 참고하세요.이렇게 하면 PROPBLEMS 창에 다음 오류가 표시됩니다.
※ 주의 ※
VScode 확장 기능에서 flake8 같은 linter를 추가로 가져오면 출력 오류가 중복될 수 있습니다.psen에서 모든 파일을 검사하는 데 시간이 걸릴 수 있습니다.따라서 대규모 프로젝트에서는 파일 변경을 트리거로pseen을 실행하는 것을 추천하지 않습니다.
기본 설정
포텐을 설정하는 방법은 두 가지가 있습니다.
project.toml
의 [tool.pysen.lint]
부분에 쓴 방법이다.이 방법은 가장 간단한 방법이지만 설정할 수 있는 사항은 한계가 있다.pyproject.toml로 설정된 상황
최신 참조
pysen/pyproject_model.py
.현재 참조할 곳이 없다.참조pysen/project.toml하면 됩니다.다음은 기본 설정의 예입니다.
[tool.pysen]
version = "0.9"
[tool.pysen.lint]
enable_black = true
enable_flake8 = true
enable_isort = true
enable_mypy = true
mypy_preset = "strict"
line_length = 88
py_version = "py37"
isort_known_third_party = ["numpy"]
isort_known_first_party = ["pysen"]
mypy_ignore_packages = ["pysen.generated.*"]
mypy_path = ["stubs"]
[[tool.pysen.lint.mypy_targets]]
paths = [".", "tests/"]
[tool.pysen.lint.source]
includes = ["."]
include_globs = ["**/*.template"]
excludes = ["third_party/"]
exclude_globs = ["**/*_grpc.py"]
[tool.pysen.lint.mypy_modules."pysen.scripts"]
preset = "entry"
[tool.pysen.lint.mypy_modules."numpy"]
ignore_errors = true
플러그인 디자인, 사용자 정의 psen
내부 도구와 프로필 관리, 설치 명령 등을 관리하기 위해 플러그인 인터페이스를 준비했다.
더 자세한 내용은 pysen/examples/plugin_example를 참조하십시오.
개발하다
우리의 개발 환경을 활용하려면 pipenv
가 필요하다.
# setup your environment
$ pipenv sync
# activate the environment
$ pipenv shell
업데이트
Pipfile.lock
의존 관계$ pipenv lock --pre
$ pipenv run tox
Contributing
psen의 공개 창고는 Preferred Networks의 개인 창고 거울입니다.지금은 아무런 요구도 받지 못했다.의향이 있는 개발자는 포크를 먼저 사용한 후 패치를 사용하는 것을 권장한다.
또한 우리의 인적 자원에 한계가 있기 때문에 Preferred Networks 특유의 요구를 충족시키는 것을 우선적으로 개발해야 할 때도 있습니다.따라서 Issue는 일시적으로 종료됩니다.조금 아쉽지만 모든 문제, 고장 제거,feature request, 오류 보고서를 dev/null
에 직접 제출합니다.
Reference
이 문제에 관하여([pseen README 및 번역]: "Preferred Networks"에서 만든 Python linter/formatter 관리 프로그램 "pseen"의 README를 번역해 봤어요.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/IntenF/items/5851fdebfc95c4880181
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여([pseen README 및 번역]: "Preferred Networks"에서 만든 Python linter/formatter 관리 프로그램 "pseen"의 README를 번역해 봤어요.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/IntenF/items/5851fdebfc95c4880181텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)