“당신이 좋아하는 어떤 색이라도요.”
Black은 타협하지 않는 Python 코드 포맷터입니다. 이를 사용함으로써 귀하는 수동 서식 지정의 세부 사항에 대한 제어권을 양도하는 데 동의하게 됩니다. 그 대가로 Black은 속도, 결정성 및 형식화에 대한 pycodestyle
잔소리로부터의 자유를 제공합니다. 더 중요한 문제를 위해 시간과 정신적 에너지를 절약할 수 있습니다.
검게 처리된 코드는 읽고 있는 프로젝트에 관계없이 동일하게 보입니다. 잠시 후 서식이 투명해지며 대신 콘텐츠에 집중할 수 있습니다.
Black은 가능한 가장 작은 차이를 생성하여 코드 검토를 더 빠르게 만듭니다.
지금 Black Playground를 이용해보세요. 자세한 내용은 PyCon 2019 강연을 시청하세요.
ReadTheDocs에서 문서를 읽어보세요!
Black은 pip install black
실행하여 설치할 수 있습니다. 실행하려면 Python 3.9 이상이 필요합니다. Jupyter 노트북을 포맷하려면 pip install "black[jupyter]"
로 설치하세요.
최신 인기 를 기다릴 수 없고 GitHub에서 설치하려면 다음을 사용하세요.
pip install git+https://github.com/psf/black
적절한 기본값을 사용하여 즉시 시작하려면 다음을 수행하십시오.
black {source_file_or_directory}
Black을 스크립트로 실행해도 작동하지 않으면 패키지로 실행할 수 있습니다.
python -m black {source_file_or_directory}
자세한 내용은 다음 문서에서 확인할 수 있습니다.
Black은 이미 크고 작은 많은 프로젝트에서 성공적으로 사용되고 있습니다. Black은 효율적인 병렬 테스트와 자체 자동 서식 지정 및 병렬 연속 통합 실행기를 갖춘 포괄적인 테스트 제품군을 보유하고 있습니다. 이제 안정화되었으므로 앞으로 큰 형식 변경을 기대해서는 안 됩니다. 스타일 변경은 대부분 버그 보고서에 대한 응답과 새로운 Python 구문 지원입니다. 자세한 내용은 블랙 코드 스타일을 참조하세요.
또한 처리 속도를 늦추는 안전 조치로 Black은 형식이 변경된 코드가 여전히 원본과 사실상 동일한 유효한 AST를 생성하는지 확인합니다(자세한 내용은 실용주의 섹션 참조). 자신감이 있다면 --fast
사용하세요.
Black 은 PEP 8을 준수하는 독선적인 포맷터입니다. 검정색은 전체 파일을 제자리에 다시 포맷합니다. 스타일 구성 옵션은 의도적으로 제한되며 거의 추가되지 않습니다. 이전 형식을 고려하지 않습니다(예외는 실용주의 참조).
우리 문서는 현재 블랙 코드 스타일을 다루고 있지만 이에 대한 계획된 변경 사항도 문서화되어 있습니다. 둘 다 살펴볼 가치가 있습니다.
검정색 코드 스타일에 대한 변경 사항은 안정성 정책을 따릅니다.
문제를 제출하기 전에 이 문서를 참조하세요. 버그처럼 보이는 것은 의도된 동작일 수 있습니다.
Black 의 초기 버전은 어떤 면에서는 절대주의적이었습니다. 그들은 초기 저자를 따랐습니다. 당시에는 구현이 더 간단하고 사용자가 많지 않았기 때문에 괜찮았습니다. 엣지 케이스는 많이 보고되지 않았습니다. 성숙한 도구로서 Black은 그렇지 않은 경우 적용되는 규칙에 몇 가지 예외를 둡니다.
위 문서와 마찬가지로 이슈를 제출하기 전 이 문서를 참고하시기 바랍니다. 버그처럼 보이는 것은 의도된 동작일 수 있습니다.
Black은 pyproject.toml
파일에서 명령줄 옵션에 대한 프로젝트별 기본값을 읽을 수 있습니다. 이는 프로젝트에 대한 사용자 정의 --include
및 --exclude
/ --force-exclude
/ --extend-exclude
패턴을 지정하는 데 특히 유용합니다.
자세한 내용은 다음 설명서에서 확인할 수 있습니다.
보다 일반적인 구성 문서를 찾고 있는 경우:
전문가 팁 : "구성해야 할 것이 있나요?"라고 자문하는 경우 대답은 "아니요"입니다. 검정색은 합리적인 기본값에 관한 것입니다. 이러한 기본값을 적용하면 코드가 다른 많은 Black 형식 프로젝트를 준수하게 됩니다.
다음의 주목할만한 오픈 소스 프로젝트는 일관된 코드 스타일을 시행하는 Black을 신뢰합니다: pytest, tox, Pyramid, Django, Django Channels, Hypothesis, attrs, SQLAlchemy, Poetry, PyPA 애플리케이션(Warehouse, Bandersnatch, Pipenv, virtualenv), pandas, Pillow , Twisted, LocalStack, 모든 Datadog 에이전트 통합, 홈 어시스턴트, Zulip, Kedro, OpenOA, FLORIS, ORBIT, WOMBAT 등이 있습니다.
Black을 사용하는 조직은 Facebook, Dropbox, KeepTruckin, Lyft, Mozilla, Quora, Duolingo, QuantumBlack, Tesla, Archer Aviation입니다.
누락된 사람이 있나요? 우리에게 알려주세요.
SQLAlchemy
의 저자 Mike Bayer :
내 프로그래밍 경력 전체에서 이 도구를 도입함으로써 더 큰 생산성 향상을 가져온 단 하나의 도구도 생각할 수 없습니다. 이제 이전에는 코드 형식을 자체적으로 지정할 수 없었을 때 수행해야 했던 키 입력의 약 1%로 리팩토링을 수행할 수 있습니다.
더스티 필립스 , 작가:
검정색은 독선적이므로 그럴 필요가 없습니다.
Hynek Schlawack , attrs
창시자, Twisted 및 CPython의 핵심 개발자:
짜증나지 않는 자동 포맷터는 내가 크리스마스에 원하는 전부입니다!
Carl Meyer , Django 핵심 개발자:
적어도 이름은 좋습니다.
Kenneth Reitz , requests
및 pipenv
작성자:
이는 코드 형식을 크게 향상시킵니다. 정말 고마워요!
프로젝트의 README.md에 있는 배지를 사용하세요:
[ ![ Code style: black ] ( https://img.shields.io/badge/code%20style-black-000000.svg )] ( https://github.com/psf/black )
README.rst에서 배지 사용:
.. image:: https://img.shields.io/badge/code%20style-black-000000.svg
:target: https://github.com/psf/black
다음과 같습니다:
MIT
환영! 프로젝트를 더 좋게 만들려는 의지를 갖게 되어 기쁩니다. 다음 내용을 읽으면 시작할 수 있습니다.
나머지 기여 문서를 살펴보거나 개발자와 대화할 수도 있습니다.
로그가 좀 길어졌습니다. 자체 파일로 이동했습니다.
변경 사항을 참조하세요.
요즘에는 저자 목록이 꽤 길어서 자체 파일에 보관됩니다.
AUTHORS.md를 참조하세요.
Black 프로젝트, 특히 이슈 트래커, 끌어오기 요청 및 소셜 미디어 활동에 참여하는 모든 사람은 다른 사람을 존중하고 보다 일반적으로 Python 커뮤니티 행동 강령에 명시된 지침을 따라야 합니다.
동시에 유머가 장려됩니다. 실제로 Monty Python의 Flying Circus에 대한 기본적인 친숙함이 예상됩니다. 우리는 야만인이 아닙니다.
그리고 정말로 누군가를 때려야 한다면 춤을 추면서 물고기와 함께 하십시오.