프로젝트 소개

Rich는 터미널에서 리치 텍스트와 아름다운 포맷팅을 제공하는 Python 라이브러리입니다. 터미널 출력에 색상과 스타일을 쉽게 추가할 수 있는 API를 제공하며, 별도의 추가 설정 없이도 예쁜 표, 진행률 표시줄, Markdown, 구문 강조된 소스 코드, 트레이스백 등을 바로 렌더링할 수 있습니다. 호환성: Rich는 Linux, macOS, Windows에서 동작합니다. 트루 컬러와 이모지는 새로운 Windows 터미널에서 작동하며, 클래식 터미널은 16색으로 제한됩니다. Python 3.8 이상이 필요하며 추가 구성 없이 Jupyter 노트북에서도 사용할 수 있습니다. 설치: `python -m pip install rich`로 설치하고, `python -m rich`로 출력을 테스트할 수 있습니다. Rich print: `rich.print`를 임포트하면 내장 `print`와 동일한 시그니처를 가지면서 마크업을 지원하는 버전을 사용할 수 있습니다. `[bold magenta]World[/bold magenta]` 같은 마크업과 이모지 이름을 지원합니다. 또한 `pretty.install()`을 통해 Python REPL에 Rich를 적용하면 데이터 구조가 예쁘게 출력되고 강조됩니다. Console API: `Console` 객체는 내장 `print`와 유사한 `print` 메서드를 제공하며, 단어 줄 바꿈, 스타일 키워드 인자, BBCode와 유사한 콘솔 마크업을 지원합니다. 또한 시간과 위치 열을 추가하는 `log` 메서드를 제공하며, 컬렉션을 예쁘게 출력할 수 있고 `log_locals` 옵션으로 지역 변수를 표시할 수 있습니다. Python의 logging 모듈을 위한 내장 로깅 핸들러도 제공합니다. 내장 렌더러블 기능은 다음과 같습니다: - 이모지: 콜론 사이에 이름을 넣어 이모지를 삽입할 수 있습니다. 예: `:smiley:`. - 표: 테두리, 스타일, 셀 정렬을 구성할 수 있고 터미널 크기에 맞춰 열 크기가 조정되는 유연한 유니코드 표를 제공합니다. - 진행률 표시줄: `track` 또는 백분율, 파일 크기, 속도, 남은 시간 등을 위한 사용자 정의 열 구성을 통해 여러 개의 깜빡임 없는 진행률 표시줄을 사용할 수 있습니다. - 상태: `status` 컨텍스트 매니저로 스피너 애니메이션과 메시지를 표시합니다. 사용 가능한 스피너는 `python -m rich.spinner`로 확인할 수 있습니다. - 트리: 가이드 라인이 있는 계층 데이터 렌더링으로 파일 구조에 적합합니다. `python -m rich.tree`로 데모를 확인할 수 있습니다. - 열: 디렉터리 목록과 유사하게 균일하거나 최적의 너비로 깔끔한 콘텐츠 열을 표시합니다. - Markdown: `Markdown` 클래스를 사용해 터미널에서 Markdown 서식을 렌더링합니다. - 구문 강조: `Syntax` 객체를 통해 Pygments 기반으로 동작하며, 테마와 줄 번호를 지원합니다. - 트레이스백: 표준 Python 트레이스백보다 더 많은 코드를 보여주며 읽기 쉬운 아름다운 트레이스백을 제공하고, 기본 핸들러로 설정할 수 있습니다. Rich 렌더러블은 콘솔 프로토콜 위에 구축되어 있어 사용자가 직접 Rich 콘텐츠를 구현할 수 있습니다. README에서 언급된 관련 프로젝트로는 구문 강조, Markdown 렌더링, CSV 표 표시를 위한 커맨드라인 애플리케이션인 Rich CLI와, 정교한 터미널 사용자 인터페이스 구축을 위한 자매 프로젝트 Textual이 있습니다.