diff --git a/.coveragerc b/.coveragerc
index d489af09a5..2afac8dc60 100644
--- a/.coveragerc
+++ b/.coveragerc
@@ -1,6 +1,8 @@
[run]
omit = rich/jupyter.py
rich/_windows.py
+ rich/_timer.py
+ rich/diagnose.py
[report]
exclude_lines =
diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml
index 2d926775af..7c92f61f11 100644
--- a/.github/FUNDING.yml
+++ b/.github/FUNDING.yml
@@ -1,4 +1,3 @@
# These are supported funding model platforms
-github: willmcgugan
-custom: https://www.willmcgugan.com/sponsorship/
+ko_fi: textualize
diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md
index 8d1af54e7e..6d6f45677f 100644
--- a/.github/ISSUE_TEMPLATE/bug_report.md
+++ b/.github/ISSUE_TEMPLATE/bug_report.md
@@ -3,15 +3,38 @@ name: Bug report
about: Create a report to help us improve
title: "[BUG]"
labels: Needs triage
-assignees: ''
-
+assignees: ""
---
+You may find a solution to your problem in the [docs](https://rich.readthedocs.io/en/latest/introduction.html) or [issues](https://github.com/willmcgugan/rich/issues).
+
**Describe the bug**
-A clear and concise description of what the bug is.
-**To Reproduce**
-A minimal code example that reproduces the problem would be a big help if you can provide it. If the issue is visual in nature, consider posting a screenshot.
+Edit this with a clear and concise description of what the bug.
+
+Provide a minimal code example that demonstrates the issue if you can. If the issue is visual in nature, consider posting a screenshot.
**Platform**
-What platform (Win/Linux/Mac) are you running on? What terminal software are you using. Which version of Rich?
+
+Click to expand
+
+What platform (Win/Linux/Mac) are you running on? What terminal software are you using?
+
+I may ask you to copy and paste the output of the following commands. It may save some time if you do it now.
+
+If you're using Rich in a terminal:
+
+```
+python -m rich.diagnose
+pip freeze | grep rich
+```
+
+If you're using Rich in a Jupyter Notebook, run the following snippet in a cell
+and paste the output in your bug report.
+
+```python
+from rich.diagnose import report
+report()
+```
+
+
diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md
index 5315f76fe1..6e2ca38c29 100644
--- a/.github/ISSUE_TEMPLATE/feature_request.md
+++ b/.github/ISSUE_TEMPLATE/feature_request.md
@@ -7,12 +7,14 @@ assignees: ''
---
+Consider posting in https://github.com/willmcgugan/rich/discussions for feedback before raising a feature request.
+
Have you checked the issues for a similar suggestions?
**How would you improve Rich?**
Give as much detail as you can. Example code of how you would like it to work would help.
-**What problem does it solved for you?**
+**What problem does it solve for you?**
What problem do you have that this feature would solve? I may be able to suggest an existing way of solving it.
diff --git a/pull_request_template.md b/.github/pull_request_template.md
similarity index 100%
rename from pull_request_template.md
rename to .github/pull_request_template.md
diff --git a/.github/workflows/codespell.yml b/.github/workflows/codespell.yml
new file mode 100644
index 0000000000..ee09c73171
--- /dev/null
+++ b/.github/workflows/codespell.yml
@@ -0,0 +1,10 @@
+name: codespell
+on: [pull_request, push]
+jobs:
+ codespell:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v2
+ - run: python3 -m pip install codespell
+ - run: codespell --ignore-words-list="ba,fo,hel,revered,womens"
+ --skip="./README.de.md,./README.es.md,./README.sv.md,./README.fr.md,./README.de-ch.md,./README.hi.md,./README.pt-br.md,./README.it.md,*.svg,./benchmarks/snippets.py"
diff --git a/.github/workflows/comment.yml b/.github/workflows/comment.yml
new file mode 100644
index 0000000000..8da8617c52
--- /dev/null
+++ b/.github/workflows/comment.yml
@@ -0,0 +1,18 @@
+name: issues
+on:
+ issues:
+ types: [closed]
+jobs:
+ add-comment:
+ runs-on: ubuntu-latest
+ permissions:
+ issues: write
+ steps:
+ - name: Did I solve your problem?
+ uses: peter-evans/create-or-update-comment@a35cf36e5301d70b76f316e867e7788a55a31dae
+ with:
+ issue-number: ${{ github.event.issue.number }}
+ body: |
+ Did I solve your problem?
+
+ Why not buy the devs a [coffee](https://ko-fi.com/textualize) to say thanks?
diff --git a/.github/workflows/pythonpackage.yml b/.github/workflows/pythonpackage.yml
index a4cae13bb9..93b44bc377 100644
--- a/.github/workflows/pythonpackage.yml
+++ b/.github/workflows/pythonpackage.yml
@@ -8,33 +8,39 @@ jobs:
strategy:
matrix:
os: [windows-latest, ubuntu-latest, macos-latest]
- python-version: [3.6, 3.7, 3.8, 3.9]
-
+ python-version: ["3.6", "3.7", "3.8", "3.9", "3.10"]
+ defaults:
+ run:
+ shell: bash
steps:
- - uses: actions/checkout@v1
+ - uses: actions/checkout@v2
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}
architecture: x64
+ - name: Install and configure Poetry
+ uses: snok/install-poetry@v1
+ with:
+ version: 1.1.11
+ virtualenvs-in-project: true
- name: Install dependencies
- run: |
- python -m pip install --upgrade pip
- pip install -r requirements-dev.txt
- poetry install
+ run: poetry install
+ if: steps.cached-poetry-dependencies.outputs.cache-hit != 'true'
- name: Format check with black
run: |
+ source $VENV
make format-check
- name: Typecheck with mypy
run: |
+ source $VENV
make typecheck
- name: Test with pytest
run: |
- pip install .
- python -m pytest tests -v --cov=./rich --cov-report=xml:./coverage.xml --cov-report term-missing
-
+ source $VENV
+ pytest tests -v --cov=./rich --cov-report=xml:./coverage.xml --cov-report term-missing
- name: Upload code coverage
- uses: codecov/codecov-action@v1.0.10
+ uses: codecov/codecov-action@v2
with:
token: ${{ secrets.CODECOV_TOKEN }}
file: ./coverage.xml
diff --git a/.github/workflows/readmechanged.yml b/.github/workflows/readmechanged.yml
new file mode 100644
index 0000000000..e4729f6a78
--- /dev/null
+++ b/.github/workflows/readmechanged.yml
@@ -0,0 +1,24 @@
+name: README.md Changed
+
+on:
+ push:
+ branches:
+ - master
+ paths:
+ - 'README.md'
+
+jobs:
+ send_notification:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v2
+ - name: Send notification to README Authors
+ env:
+ GITHUB_TOKEN: ${{ secrets.GHP_README_WORKFLOW }}
+ GIT_SHA: ${{ github.sha }}
+ run: |
+ COMMIT=$(git rev-parse --short "$GIT_SHA")
+ AUTHORS='@willmcgugan @oleksis @Adilius'
+ BODY="🤓 $AUTHORS README.md changed 📝. Check the [commit $COMMIT](https://github.com/willmcgugan/rich/commit/$GIT_SHA) 👀"
+ DISCUSSIONID='MDEwOkRpc2N1c3Npb24zMzI2NzM0'
+ gh api graphql -H 'GraphQL-Features: discussions_api' -f body="$BODY" -F discussionId="$DISCUSSIONID" -f query='mutation($body: String!, $discussionId: ID!){addDiscussionComment(input:{body: $body , discussionId: $discussionId}){comment{id}}}'
diff --git a/.github/workflows/update_benchmark_website.yml b/.github/workflows/update_benchmark_website.yml
new file mode 100644
index 0000000000..e6eccebb25
--- /dev/null
+++ b/.github/workflows/update_benchmark_website.yml
@@ -0,0 +1,24 @@
+on:
+ release:
+ types: [ released ]
+
+
+jobs:
+ asv-publish-and-copy:
+ runs-on: ubuntu-20.04
+ steps:
+ - uses: actions/checkout@v2
+ - uses: actions/setup-python@v2
+ with:
+ python-version: '3.10.2'
+ - run: 'pip install asv'
+ - run: 'asv publish'
+ - uses: pina/github-action-push-to-another-repository@v1.4.1
+ name: 'Copy files to Textualize/rich-benchmarks repo'
+ env:
+ API_TOKEN_GITHUB: ${{ secrets.PUBLISH_ASV }}
+ with:
+ source-directory: /benchmarks/html
+ destination-github-username: Textualize
+ destination-repository-name: rich-benchmarks
+ user-email: darren@textualize.io
diff --git a/.gitignore b/.gitignore
index 233804adff..b291d4c2a5 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,10 +2,12 @@
.pytype
.DS_Store
.vscode
+.idea/
mypy_report
docs/build
docs/source/_build
tools/*.txt
+playground/
# Byte-compiled / optimized / DLL files
__pycache__/
@@ -111,3 +113,7 @@ venv.bak/
# mypy
.mypy_cache/
+
+# airspeed velocity
+benchmarks/env/
+benchmarks/html/
diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
new file mode 100644
index 0000000000..e241d35539
--- /dev/null
+++ b/.pre-commit-config.yaml
@@ -0,0 +1,43 @@
+# See https://pre-commit.com for more information
+# See https://pre-commit.com/hooks.html for more hooks
+repos:
+ - repo: https://github.com/pre-commit/pre-commit-hooks
+ rev: v4.0.1
+ hooks:
+ - id: check-ast
+ - id: check-builtin-literals
+ - id: check-case-conflict
+ - id: check-docstring-first
+ - id: check-merge-conflict
+ - id: check-json
+ - id: check-toml
+ - id: check-yaml
+ - id: end-of-file-fixer
+ - id: mixed-line-ending
+ - id: trailing-whitespace
+ - id: check-vcs-permalinks
+ - id: check-shebang-scripts-are-executable
+ - repo: https://github.com/pre-commit/pygrep-hooks
+ rev: v1.9.0
+ hooks:
+ - id: python-check-mock-methods
+ - id: python-no-log-warn
+ - id: python-use-type-annotations
+ - id: rst-directive-colons
+ - id: rst-inline-touching-normal
+ - repo: https://github.com/hadialqattan/pycln
+ rev: v1.2.5
+ hooks:
+ - id: pycln
+ args: [--all]
+ - repo: https://github.com/psf/black
+ rev: 22.1.0
+ hooks:
+ - id: black
+ exclude: ^benchmarks/
+ - repo: https://github.com/PyCQA/isort
+ rev: 5.10.1
+ hooks:
+ - id: isort
+ exclude: ^benchmarks/
+ args: ["--profile", "black"]
diff --git a/CHANGELOG.md b/CHANGELOG.md
index a5d1be52a3..125435d729 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -5,9 +5,670 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
-## [9.3.0] - Unreleased
+## [12.0.1] - 2022-03-22
-### Added
+### Changed
+
+- Improve performance of cell_length https://github.com/Textualize/rich/pull/2061
+- Improve performance of chop_cells https://github.com/Textualize/rich/pull/2077
+
+### Fixed
+
+- Fix capturing stdout on legacy Windows https://github.com/Textualize/rich/pull/2066
+
+## [12.0.0] - 2022-03-10
+
+### Added
+
+- Added options to TimeRemainingColumn to render a compact time format and render elapsed time when a task is
+ finished. https://github.com/Textualize/rich/pull/1992
+- Added ProgressColumn `MofNCompleteColumn` to display raw `completed/total` column (similar to DownloadColumn,
+ but displays values as ints, does not convert to floats or add bit/bytes units).
+ https://github.com/Textualize/rich/pull/1941
+- Replace Colorama with win32 renderer https://github.com/Textualize/rich/pull/1993
+- Add support for namedtuples to `Pretty` https://github.com/Textualize/rich/pull/2031
+
+### Fixed
+
+- In Jupyter mode make the link target be set to "\_blank"
+- Fix some issues with markup handling around "[" characters https://github.com/Textualize/rich/pull/1950
+- Fix syntax lexer guessing.
+- Fixed Pretty measure not respecting expand_all https://github.com/Textualize/rich/issues/1998
+- Collapsed definitions for single-character spinners, to save memory and reduce import time.
+- Fix print_json indent type in `__init__.py`
+- Fix error when inspecting object defined in REPL https://github.com/Textualize/rich/pull/2037
+- Fix incorrect highlighting of non-indented JSON https://github.com/Textualize/rich/pull/2038
+- Fixed height reset in complex renderables https://github.com/Textualize/rich/issues/2042
+
+### Changed
+
+- Improved support for enum.Flag in ReprHighlighter https://github.com/Textualize/rich/pull/1920
+- Tree now respects justify=None, i.e. won't pad to right https://github.com/Textualize/rich/issues/1690
+- Removed rich.tabulate which was marked for deprecation
+- Deprecated rich.align.AlignValues in favor of AlignMethod
+
+## [11.2.0] - 2022-02-08
+
+### Added
+
+- Add support for US spelling of "gray" in ANSI color names https://github.com/Textualize/rich/issues/1890
+- Added `rich.diagnose.report` to expose environment debugging logic as function https://github.com/Textualize/rich/pull/1917
+- Added classmethod `Progress.get_default_columns()` to get the default list of progress bar columns https://github.com/Textualize/rich/pull/1894
+
+### Fixed
+
+- Fixed performance issue in measuring text
+
+### Fixed
+
+- Fixed test failures on PyPy3 https://github.com/Textualize/rich/pull/1904
+
+## [11.1.0] - 2022-01-28
+
+### Added
+
+- Workaround for edge case of object from Faiss with no `__class__` https://github.com/Textualize/rich/issues/1838
+- Add Traditional Chinese readme
+- Add `Syntax.guess_lexer`, add support for more lexers (e.g. Django templates etc.) https://github.com/Textualize/rich/pull/1869
+- Add `lexer` parameter to `Syntax.from_path` to allow for overrides https://github.com/Textualize/rich/pull/1873
+
+### Fixed
+
+- Workaround for edge case of object from Faiss with no `__class__` https://github.com/Textualize/rich/issues/1838
+- Ensure `Syntax` always justifies left https://github.com/Textualize/rich/pull/1872
+- Handle classes in inspect when methods=True https://github.com/Textualize/rich/pull/1874
+
+## [11.0.0] - 2022-01-09
+
+### Added
+
+- Added max_depth arg to pretty printing https://github.com/Textualize/rich/issues/1585
+- Added `vertical_align` to Table.add_row https://github.com/Textualize/rich/issues/1590
+
+### Fixed
+
+- Fixed issue with pretty repr in jupyter notebook https://github.com/Textualize/rich/issues/1717
+- Fix Traceback theme defaults override user supplied styles https://github.com/Textualize/rich/issues/1786
+
+### Changed
+
+- **breaking** Deprecated rich.console.RenderGroup, now named rich.console.Group
+- **breaking** `Syntax.__init__` parameter `lexer_name` renamed to `lexer`
+- Syntax constructor accepts both str and now a pygments lexer https://github.com/Textualize/rich/pull/1748
+
+## [10.16.2] - 2021-01-02
+
+### Fixed
+
+- Fixed @ not being escaped in markup
+
+## [10.16.1] - 2021-12-15
+
+### Fixed
+
+- Fixed issues with overlapping tags https://github.com/willmcgugan/rich/issues/1755
+
+## [10.16.0] - 2021-12-12
+
+### Fixed
+
+- Double print of progress bar in Jupyter https://github.com/willmcgugan/rich/issues/1737
+
+### Added
+
+- Added Text.markup property https://github.com/willmcgugan/rich/issues/1751
+
+## [10.15.2] - 2021-12-02
+
+### Fixed
+
+- Deadlock issue https://github.com/willmcgugan/rich/issues/1734
+
+## [10.15.1] - 2021-11-29
+
+### Fixed
+
+- Reverted thread-safety fix for Live that introduced deadlock potential
+
+## [10.15.0] - 2021-11-28
+
+### Added
+
+- Added dynamic_progress.py to examples
+- Added ConsoleOptions.update_height
+- Fixed Padding not respecting height
+
+### Changed
+
+- Some optimizations for simple strings (with only single cell widths)
+
+### Fixed
+
+- Fixed issue with progress bar not rendering markup https://github.com/willmcgugan/rich/issues/1721
+- Fixed race condition when exiting Live https://github.com/willmcgugan/rich/issues/1530
+
+## [10.14.0] - 2021-11-16
+
+### Fixed
+
+- Fixed progress speed not updating when total doesn't change
+- Fixed superfluous new line in Status https://github.com/willmcgugan/rich/issues/1662
+- Fixed Windows legacy width again
+- Fixed infinite loop in set_cell_size https://github.com/willmcgugan/rich/issues/1682
+
+### Added
+
+- Added file protocol to URL highlighter https://github.com/willmcgugan/rich/issues/1681
+- Added rich.protocol.rich_cast
+
+### Changed
+
+- Allowed `__rich__` to work recursively
+- Allowed Text classes to work with sep in print https://github.com/willmcgugan/rich/issues/1689
+
+### Added
+
+- Added a `rich.text.Text.from_ansi` helper method for handling pre-formatted input strings https://github.com/willmcgugan/rich/issues/1670
+
+## [10.13.0] - 2021-11-07
+
+### Added
+
+- Added json.dumps parameters to print_json https://github.com/willmcgugan/rich/issues/1638
+
+### Fixed
+
+- Fixed an edge case bug when console module try to detect if they are in a tty at the end of a pytest run
+- Fixed a bug where logging handler raises an exception when running with pythonw (related to https://bugs.python.org/issue13807)
+- Fixed issue with TERM env vars that have more than one hyphen https://github.com/willmcgugan/rich/issues/1640
+- Fixed missing new line after progress bar when terminal is not interactive https://github.com/willmcgugan/rich/issues/1606
+- Fixed exception in IPython when disabling pprint with %pprint https://github.com/willmcgugan/rich/issues/1646
+- Fixed issue where values longer than the console width produced invalid JSON https://github.com/willmcgugan/rich/issues/1653
+- Fixes trailing comma when pretty printing dataclass with last field repr=False https://github.com/willmcgugan/rich/issues/1599
+
+## Changed
+
+- Markdown codeblocks now word-wrap https://github.com/willmcgugan/rich/issues/1515
+
+## [10.12.0] - 2021-10-06
+
+### Updated
+
+- Official Py3.10 release
+
+### Fixed
+
+- Fixed detection of custom repr when pretty printing dataclasses
+
+## [10.11.0] - 2021-09-24
+
+### Added
+
+- Added `suppress` parameter to tracebacks
+- Added `max_frames` parameter to tracebacks
+
+## [10.10.0] - 2021-09-18
+
+### Added
+
+- Added stdin support to `rich.json`
+
+### Fixed
+
+- Fixed pretty printing of objects with fo magic with **getattr** https://github.com/willmcgugan/rich/issues/1492
+
+## [10.9.0] - 2021-08-29
+
+### Added
+
+- Added data parameter to print_json method / function
+- Added an --indent parameter to python -m rich.json
+
+### Changed
+
+- Changed default indent of JSON to 2 (down from 4)
+- Changed highlighting of JSON keys to new style (bold blue)
+
+## [10.8.0] - 2021-08-28
+
+### Added
+
+- Added Panel.subtitle
+- Added Panel.subtitle_align
+- Added rich.json.JSON
+- Added rich.print_json and Console.print_json
+
+### Fixed
+
+- Fixed a bug where calling `rich.reconfigure` within a `pytest_configure` hook would lead to a crash
+- Fixed highlight not being passed through options https://github.com/willmcgugan/rich/issues/1404
+
+## [10.7.0] - 2021-08-05
+
+### Added
+
+- Added Text.apply_meta
+- Added meta argument to Text.assemble
+- Added Style.from_meta
+- Added Style.on
+- Added Text.on
+
+### Changed
+
+- Changed `RenderGroup` to `Group` and `render_group` to `group` (old names remain for compatibility but will be deprecated in the future)
+- Changed `rich.repr.RichReprResult` to `rich.repr.Result` (old names remain for compatibility but will be deprecated in the future)
+- Changed meta serialization to use pickle rather than marshal to permit callables
+
+## [10.6.0] - 2021-07-12
+
+### Deprecated
+
+- Added deprecation warning for tabulate_mapping which will be removed in v11.0.0
+
+### Added
+
+- Added precision argument to filesize.decimal
+- Added separator argument to filesize.decimal
+- Added \_rich_traceback_guard to Traceback
+- Added emoji_variant to Console
+- Added -emoji and -text variant selectors to emoji code
+
+### Fixed
+
+- Fixed issue with adjoining color tags https://github.com/willmcgugan/rich/issues/1334
+
+### Changed
+
+- Changed Console.size to use unproxied stdin and stdout
+
+## [10.5.0] - 2021-07-05
+
+### Fixed
+
+- Fixed Pandas objects not pretty printing https://github.com/willmcgugan/rich/issues/1305
+- Fixed https://github.com/willmcgugan/rich/issues/1256
+- Fixed typing with rich.repr.auto decorator
+- Fixed repr error formatting https://github.com/willmcgugan/rich/issues/1326
+
+### Added
+
+- Added new_line_start argument to Console.print
+- Added Segment.divide method
+- Added Segment.split_cells method
+- Added segment.SegmentLines class
+
+## [10.4.0] - 2021-06-18
+
+### Added
+
+- Added Style.meta
+- Added rich.repr.auto decorator
+
+### Fixed
+
+- Fixed error pretty printing classes with special **rich_repr** method
+
+## [10.3.0] - 2021-06-09
+
+### Added
+
+- Added Console.size setter
+- Added Console.width setter
+- Added Console.height setter
+- Added angular style Rich reprs
+- Added an IPython extension. Load via `%load_ext rich`
+
+### Changed
+
+- Changed the logic for retrieving the calling frame in console logs to a faster one for the Python implementations that support it.
+
+## [10.2.2] - 2021-05-19
+
+### Fixed
+
+- Fixed status not rendering console markup https://github.com/willmcgugan/rich/issues/1244
+
+## [10.2.1] - 2021-05-17
+
+### Fixed
+
+- Fixed panel in Markdown exploding https://github.com/willmcgugan/rich/issues/1234
+
+## [10.2.0] - 2021-05-12
+
+### Added
+
+- Added syntax for call, i.e. "Foo(bar)"
+- Added Console.measure as a convenient alias for Measurement.get
+- Added support for pretty printing attrs objects
+- Added mappingproxy to pretty print
+- Added UserDict and UserList support to pretty printer
+
+### Changed
+
+- Changed colorama init to set strip=False
+- Changed highlighter for False, True, None to not match in the middle of a word. i.e. NoneType is no longer highlighted as None
+
+### Fixed
+
+- Fixed initial blank lines removed from Syntax https://github.com/willmcgugan/rich/issues/1214
+
+## [10.1.0] - 2021-04-03
+
+### Fixed
+
+- Fixed support for jupyter qtconsole and similar Jupyter environments
+
+## [10.0.1] - 2021-03-30
+
+### Fixed
+
+- Fixed race condition that duplicated lines in progress https://github.com/willmcgugan/rich/issues/1144
+
+## [10.0.0] - 2021-03-27
+
+### Changed
+
+- Made pydoc import lazy as at least one use found it slow to import https://github.com/willmcgugan/rich/issues/1104
+- Modified string highlighting to not match in the middle of a word, so that apostrophes are not considered strings
+- New way of encoding control codes in Segment
+- New signature for Control class
+- Changed Layout.split to use new Splitter class
+- Improved layout.tree
+- Changed default theme color for repr.number to cyan
+- `__rich_measure__` signature changed to accept ConsoleOptions rather than max_width
+- `text` parameter to rich.spinner.Spinner changed to RenderableType
+
+### Added
+
+- Added `__rich_repr__` protocol method to Pretty
+- Added rich.region.Region
+- Added ConsoleOptions.update_dimensions
+- Added rich.console.ScreenUpdate
+- Added Console.is_alt_screen
+- Added Control.segment, Control.bell, Control.home, Control.move_to, Control.clear, Control.show_cursor, Control.alt_screen
+- Added Console.update_screen and Console.update_screen_lines
+- Added Layout.add_split, Layout.split_column, Layout.split_row, layout.refresh
+- Added new Rich repr protocol `__rich_repr__`
+
+### Fixed
+
+- Fixed table style taking precedence over row style https://github.com/willmcgugan/rich/issues/1129
+- Fixed incorrect measurement of Text with new lines and whitespace https://github.com/willmcgugan/rich/issues/1133
+- Made type annotations consistent for various `total` keyword arguments in `rich.progress` and rich.`progress_bar`
+- Disabled Progress no longer displays itself when starting https://github.com/willmcgugan/rich/pull/1125
+- Animations no longer reset when updating rich.status.Status
+
+## [9.13.0] - 2021-03-06
+
+### Added
+
+- Pretty printer now supports dataclasses
+
+### Fixed
+
+- Fixed Syntax background https://github.com/willmcgugan/rich/issues/1088
+- Fix for double tracebacks when no formatter https://github.com/willmcgugan/rich/issues/1079
+
+### Changed
+
+- Added ws and wss to url highlighter
+
+## [9.12.4] - 2021-03-01
+
+### Fixed
+
+- Fixed custom formatters with rich tracebacks in RichHandler https://github.com/willmcgugan/rich/issues/1079
+
+### Changed
+
+- Allow highly compressed table cells to go to 0 width
+- Optimization to remove empty styles in various places
+
+## [9.12.3] - 2021-02-28
+
+### Changed
+
+- Optimized Padding
+
+## [9.12.2] - 2021-02-27
+
+### Added
+
+- Added ConsoleOptions.copy
+
+### Changed
+
+- Optimized ConsoleOptions.update
+
+## [9.12.1] - 2021-02-27
+
+### Fixed
+
+- Fixed deadlock in Progress https://github.com/willmcgugan/rich/issues/1061
+
+### Added
+
+- Added Task.finished_speed
+
+### Changed
+
+- Froze TransferSpeedColumn speed when task is finished
+- Added SIGINT handler to downloader.py example
+- Optimization for large tables
+
+## [9.12.0] - 2021-02-24
+
+### Fixed
+
+- Fixed issue with Syntax and missing lines in Layout https://github.com/willmcgugan/rich/issues/1050
+- Fixed issue with nested markdown elements https://github.com/willmcgugan/rich/issues/1036
+- Fixed new lines not invoking render hooks https://github.com/willmcgugan/rich/issues/1052
+- Fixed Align setting height to child https://github.com/willmcgugan/rich/issues/1057
+
+### Changed
+
+- Printing a table with no columns now result in a blank line https://github.com/willmcgugan/rich/issues/1044
+
+### Added
+
+- Added height to Panel
+
+## [9.11.1] - 2021-02-20
+
+### Fixed
+
+- Fixed table with expand=False not expanding when justify="center"
+- Fixed single renderable in Layout not respecting height
+- Fixed COLUMNS and LINES env var https://github.com/willmcgugan/rich/issues/1019
+- Layout now respects minimum_size when fixes sizes are greater than available space
+- HTML export now changes link underline score to match terminal https://github.com/willmcgugan/rich/issues/1009
+
+### Changed
+
+- python -m rich.markdown and rich.syntax show usage with no file
+
+### Added
+
+- Added height parameter to Layout
+- Added python -m rich.segment
+
+## [9.11.0] - 2021-02-15
+
+### Fixed
+
+- Fixed error message for tracebacks with broken `__str__` https://github.com/willmcgugan/rich/issues/980
+- Fixed markup edge case https://github.com/willmcgugan/rich/issues/987
+
+### Added
+
+- Added cheeky sponsorship request to test card
+- Added `quiet` argument to Console constructor
+- Added support for a callback function to format timestamps (allows presentation of milliseconds)
+- Added Console.set_alt_screen and Console.screen
+- Added height to ConsoleOptions
+- Added `vertical` parameter to Align
+- Added Layout class
+
+### Changed
+
+- Pretty.overflow now defaults to None
+- Panel now respects options.height
+- Traceback lexer defaults to Python if no extension on source
+- Added ConsoleDimensions size attribute to ConsoleOptions so that size can't change mid-render
+
+## [9.10.0] - 2021-01-27
+
+### Changed
+
+- Some optimizations for Text
+- Further optimized Tracebacks by not tokenizing code more that necessary
+- Table Column.header_style and Column.footer_style are now added to Table header/footer style
+
+## [9.9.0] - 2021-01-23
+
+### Changed
+
+- Extended Windows palette to 16 colors
+- Modified windows palette to Windows 10 colors
+- Change regex for attrib_name to be more performant
+- Optimized traceback generation
+
+### Fixed
+
+- Fix double line tree guides on Windows
+- Fixed Tracebacks ignoring initial blank lines
+- Partial fix for tracebacks not finding source after chdir
+- Fixed error message when code in tracebacks doesn't have an extension https://github.com/willmcgugan/rich/issues/996
+
+### Added
+
+- Added post_style argument to Segment.apply_style
+
+## [9.8.2] - 2021-01-15
+
+### Fixed
+
+- Fixed deadlock in live https://github.com/willmcgugan/rich/issues/927
+
+## [9.8.1] - 2021-01-13
+
+### Fixed
+
+- Fixed rich.inspect failing with attributes that claim to be callable but aren't https://github.com/willmcgugan/rich/issues/916
+
+## [9.8.0] - 2021-01-11
+
+### Added
+
+- Added **rich_measure** for tree
+- Added rich.align.VerticalCenter
+
+### Changed
+
+- The `style` argument on Align now applies to background only
+- Changed display of progress bars in no_color mode for clarity
+- Console property `size` will fall back to getting the terminal size of stdout it stdin fails, this allows size to be correctly determined when piping
+
+### Fixed
+
+- Fixed panel cropping when shrunk too bar
+- Allow passing markdown over STDIN when using `python -m rich.markdown`
+- Fix printing MagicMock.mock_calls https://github.com/willmcgugan/rich/issues/903
+
+## [9.7.0] - 2021-01-09
+
+### Added
+
+- Added rich.tree
+- Added no_color argument to Console
+
+## [9.6.2] - 2021-01-07
+
+### Fixed
+
+- Fixed markup escaping edge case https://github.com/willmcgugan/rich/issues/878
+- Double tag escape, i.e. `"\\[foo]"` results in a backslash plus `[foo]` tag
+- Fixed header_style not applying to headers in positional args https://github.com/willmcgugan/rich/issues/953
+
+## [9.6.1] - 2020-12-31
+
+### Fixed
+
+- Fixed encoding error on Windows when loading code for Tracebacks
+
+## [9.6.0] - 2020-12-30
+
+### Changed
+
+- MarkupError exception raise from None to omit internal exception
+- Factored out RichHandler.render and RichHandler.render_message for easier extending
+- Display pretty printed value in rich.inspect
+
+### Added
+
+- Added Progress.TimeElapsedColumn
+- Added IPython support to pretty.install
+
+### Fixed
+
+- Fixed display of locals in Traceback for stdin
+
+## [9.5.1] - 2020-12-19
+
+### Fixed
+
+- Fixed terminal size detection on Windows https://github.com/willmcgugan/rich/issues/836
+- Fixed hex number highlighting
+
+## [9.5.0] - 2020-12-18
+
+### Changed
+
+- If file is not specified on Console then the Console.file will return the current sys.stdout. Prior to 9.5.0 sys.stdout was cached on the Console, which could break code that wrapped sys.stdout after the Console was constructed.
+- Changed `Color.__str__` to not include ansi codes
+- Changed Console.size to get the terminal dimensions via sys.stdin. This means that if you set file to be an io.StringIO file then the width will be set to the current terminal dimensions and not a default of 80.
+
+### Added
+
+- Added stderr parameter to Console
+- Added rich.reconfigure
+- Added `Color.__rich__`
+- Added Console.soft_wrap
+- Added Console.style parameter
+- Added Table.highlight parameter to enable highlighting of cells
+- Added Panel.highlight parameter to enable highlighting of panel title
+- Added highlight to ConsoleOptions
+
+### Fixed
+
+- Fixed double output in rich.live https://github.com/willmcgugan/rich/issues/485
+- Fixed Console.out highlighting not reflecting defaults https://github.com/willmcgugan/rich/issues/827
+- FileProxy now raises TypeError for empty non-str arguments https://github.com/willmcgugan/rich/issues/828
+
+## [9.4.0] - 2020-12-12
+
+### Added
+
+- Added rich.live https://github.com/willmcgugan/rich/pull/382
+- Added algin parameter to Rule and Console.rule
+- Added rich.Status class and Console.status
+- Added getitem to Text
+- Added style parameter to Console.log
+- Added rich.diagnose command
+
+### Changed
+
+- Table.add_row style argument now applies to entire line and not just cells
+- Added end_section parameter to Table.add_row to force a line underneath row
+
+## Fixed
+
+- Fixed suppressed traceback context https://github.com/willmcgugan/rich/issues/468
+
+## [9.3.0] - 2020-12-1
+
+### Added
- Added get_datetime parameter to Console, to allow for repeatable tests
- Added get_time parameter to Console
@@ -25,6 +686,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Fixed redirecting of stderr in Progress
- Fixed broken expanded tuple of one https://github.com/willmcgugan/rich/issues/445
+- Fixed traceback message with `from` exceptions
- Fixed justify argument not working in console.log https://github.com/willmcgugan/rich/issues/460
## [9.2.0] - 2020-11-08
@@ -106,7 +768,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [8.0.0] - 2020-10-03
-### Added
+### Added
- Added Console.bell method
- Added Set to types that Console.print will automatically pretty print
@@ -131,7 +793,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Added Console.begin_capture, Console.end_capture and Console.capture
- Added Table.title_justify and Table.caption_justify https://github.com/willmcgugan/rich/issues/301
-### Changed
+### Changed
- Improved formatting of exceptions
- Enabled Rich exceptions in logging https://github.com/taliraj
@@ -150,7 +812,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Added Text.remove_suffix
- Added Text.append_tokens
-### Changed
+### Changed
- Text.tabs_to_spaces was renamed to Text.expand_tabs, which works in place rather than returning a new instance
- Renamed Column.index to Column.\_index
@@ -434,7 +1096,7 @@ Major version bump for a breaking change to `Text.stylize signature`, which corr
## [3.0.2] - 2020-07-02
-### Added
+### Added
- Added rich.styled.Styled class to apply styles to renderable
- Table.add_row now has an optional style parameter
@@ -547,7 +1209,7 @@ Major version bump for a breaking change to `Text.stylize signature`, which corr
- Added 'transient' option to Progress
-### Changed
+### Changed
- Truncated overly long text in Rule with ellipsis overflow
@@ -669,7 +1331,7 @@ Major version bump for a breaking change to `Text.stylize signature`, which corr
- Optimizations for Segment, Console and Table
-### Added
+### Added
- Added Console.clear method
- Added exporting of links to HTML
@@ -691,7 +1353,7 @@ Major version bump for a breaking change to `Text.stylize signature`, which corr
## [1.1.6] - 2020-05-17
-### Added
+### Added
- Added rich.align.Align class
- Added justify argument to Console.print and console.log
@@ -710,7 +1372,7 @@ Major version bump for a breaking change to `Text.stylize signature`, which corr
- Fixes for legacy windows: Bar, Panel, and Rule now use ASCII characters
- show_cursor is now a no-op on legacy windows
-### Added
+### Added
- Added Console.input
@@ -972,7 +1634,7 @@ Major version bump for a breaking change to `Text.stylize signature`, which corr
### Fixed
-- Readme links in Pypi
+- Readme links in PyPI
## [0.4.0] - 2020-02-22
@@ -1011,3 +1673,145 @@ Major version bump for a breaking change to `Text.stylize signature`, which corr
### Added
- First official release, API still to be stabilized
+
+[unreleased]: https://github.com/willmcgugan/rich/compare/v12.0.1...HEAD
+[12.0.1]: https://github.com/willmcgugan/rich/compare/v12.0.0...v12.0.1
+[12.0.0]: https://github.com/willmcgugan/rich/compare/v11.2.0...v12.0.0
+[11.2.0]: https://github.com/willmcgugan/rich/compare/v11.1.0...v11.2.0
+[11.1.0]: https://github.com/willmcgugan/rich/compare/v11.0.0...v11.1.0
+[11.0.0]: https://github.com/willmcgugan/rich/compare/v10.16.1...v11.0.0
+[10.16.2]: https://github.com/willmcgugan/rich/compare/v10.16.1...v10.16.2
+[10.16.1]: https://github.com/willmcgugan/rich/compare/v10.16.0...v10.16.1
+[10.16.0]: https://github.com/willmcgugan/rich/compare/v10.15.2...v10.16.0
+[10.15.2]: https://github.com/willmcgugan/rich/compare/v10.15.1...v10.15.2
+[10.15.1]: https://github.com/willmcgugan/rich/compare/v10.15.0...v10.15.1
+[10.15.0]: https://github.com/willmcgugan/rich/compare/v10.14.0...v10.15.0
+[10.14.0]: https://github.com/willmcgugan/rich/compare/v10.13.0...v10.14.0
+[10.13.0]: https://github.com/willmcgugan/rich/compare/v10.12.0...v10.13.0
+[10.12.0]: https://github.com/willmcgugan/rich/compare/v10.11.0...v10.12.0
+[10.11.0]: https://github.com/willmcgugan/rich/compare/v10.10.0...v10.11.0
+[10.10.0]: https://github.com/willmcgugan/rich/compare/v10.9.0...v10.10.0
+[10.9.0]: https://github.com/willmcgugan/rich/compare/v10.8.0...v10.9.0
+[10.8.0]: https://github.com/willmcgugan/rich/compare/v10.7.0...v10.8.0
+[10.7.0]: https://github.com/willmcgugan/rich/compare/v10.6.0...v10.7.0
+[10.6.0]: https://github.com/willmcgugan/rich/compare/v10.5.0...v10.6.0
+[10.5.0]: https://github.com/willmcgugan/rich/compare/v10.4.0...v10.5.0
+[10.4.0]: https://github.com/willmcgugan/rich/compare/v10.3.0...v10.4.0
+[10.3.0]: https://github.com/willmcgugan/rich/compare/v10.2.2...v10.3.0
+[10.2.2]: https://github.com/willmcgugan/rich/compare/v10.2.1...v10.2.2
+[10.2.1]: https://github.com/willmcgugan/rich/compare/v10.2.0...v10.2.1
+[10.2.0]: https://github.com/willmcgugan/rich/compare/v10.1.0...v10.2.0
+[10.1.0]: https://github.com/willmcgugan/rich/compare/v10.0.1...v10.1.0
+[10.0.1]: https://github.com/willmcgugan/rich/compare/v10.0.0...v10.0.1
+[10.0.0]: https://github.com/willmcgugan/rich/compare/v9.13.0...v10.0.0
+[9.13.0]: https://github.com/willmcgugan/rich/compare/v9.12.4...v9.13.0
+[9.12.4]: https://github.com/willmcgugan/rich/compare/v9.12.3...v9.12.4
+[9.12.3]: https://github.com/willmcgugan/rich/compare/v9.12.2...v9.12.3
+[9.12.2]: https://github.com/willmcgugan/rich/compare/v9.12.1...v9.12.2
+[9.12.1]: https://github.com/willmcgugan/rich/compare/v9.12.0...v9.12.1
+[9.12.0]: https://github.com/willmcgugan/rich/compare/v9.11.1...v9.12.0
+[9.11.1]: https://github.com/willmcgugan/rich/compare/v9.11.0...v9.11.1
+[9.11.0]: https://github.com/willmcgugan/rich/compare/v9.10.0...v9.11.0
+[9.10.0]: https://github.com/willmcgugan/rich/compare/v9.9.0...v9.10.0
+[9.9.0]: https://github.com/willmcgugan/rich/compare/v9.8.2...v9.9.0
+[9.8.2]: https://github.com/willmcgugan/rich/compare/v9.8.1...v9.8.2
+[9.8.1]: https://github.com/willmcgugan/rich/compare/v9.8.0...v9.8.1
+[9.8.0]: https://github.com/willmcgugan/rich/compare/v9.7.0...v9.8.0
+[9.7.0]: https://github.com/willmcgugan/rich/compare/v9.6.2...v9.7.0
+[9.6.2]: https://github.com/willmcgugan/rich/compare/v9.6.1...v9.6.2
+[9.6.1]: https://github.com/willmcgugan/rich/compare/v9.6.0...v9.6.1
+[9.6.0]: https://github.com/willmcgugan/rich/compare/v9.5.1...v9.6.0
+[9.5.1]: https://github.com/willmcgugan/rich/compare/v9.5.0...v9.5.1
+[9.5.0]: https://github.com/willmcgugan/rich/compare/v9.4.0...v9.5.0
+[9.4.0]: https://github.com/willmcgugan/rich/compare/v9.3.0...v9.4.0
+[9.3.0]: https://github.com/willmcgugan/rich/compare/v9.2.0...v9.3.0
+[9.2.0]: https://github.com/willmcgugan/rich/compare/v9.1.0...v9.2.0
+[9.1.0]: https://github.com/willmcgugan/rich/compare/v9.0.1...v9.1.0
+[9.0.1]: https://github.com/willmcgugan/rich/compare/v9.0.0...v9.0.1
+[9.0.0]: https://github.com/willmcgugan/rich/compare/v8.0.0...v9.0.0
+[8.0.0]: https://github.com/willmcgugan/rich/compare/v7.1.0...v8.0.0
+[7.1.0]: https://github.com/willmcgugan/rich/compare/v7.0.0...v7.1.0
+[7.0.0]: https://github.com/willmcgugan/rich/compare/v6.2.0...v7.0.0
+[6.2.0]: https://github.com/willmcgugan/rich/compare/v6.1.2...v6.2.0
+[6.1.2]: https://github.com/willmcgugan/rich/compare/v6.1.1...v6.1.2
+[6.1.1]: https://github.com/willmcgugan/rich/compare/v6.1.0...v6.1.1
+[6.1.0]: https://github.com/willmcgugan/rich/compare/v6.0.0...v6.1.0
+[6.0.0]: https://github.com/willmcgugan/rich/compare/v5.2.1...v6.0.0
+[5.2.1]: https://github.com/willmcgugan/rich/compare/v5.2.0...v5.2.1
+[5.2.0]: https://github.com/willmcgugan/rich/compare/v5.1.2...v5.2.0
+[5.1.2]: https://github.com/willmcgugan/rich/compare/v5.1.1...v5.1.2
+[5.1.1]: https://github.com/willmcgugan/rich/compare/v5.1.0...v5.1.1
+[5.1.0]: https://github.com/willmcgugan/rich/compare/v5.0.0...v5.1.0
+[5.0.0]: https://github.com/willmcgugan/rich/compare/v4.2.2...v5.0.0
+[4.2.2]: https://github.com/willmcgugan/rich/compare/v4.2.1...v4.2.2
+[4.2.1]: https://github.com/willmcgugan/rich/compare/v4.2.0...v4.2.1
+[4.2.0]: https://github.com/willmcgugan/rich/compare/v4.1.0...v4.2.0
+[4.1.0]: https://github.com/willmcgugan/rich/compare/v4.0.0...v4.1.0
+[4.0.0]: https://github.com/willmcgugan/rich/compare/v3.4.1...v4.0.0
+[3.4.1]: https://github.com/willmcgugan/rich/compare/v3.4.0...v3.4.1
+[3.4.0]: https://github.com/willmcgugan/rich/compare/v3.3.2...v3.4.0
+[3.3.2]: https://github.com/willmcgugan/rich/compare/v3.3.1...v3.3.2
+[3.3.1]: https://github.com/willmcgugan/rich/compare/v3.3.0...v3.3.1
+[3.3.0]: https://github.com/willmcgugan/rich/compare/v3.2.0...v3.3.0
+[3.2.0]: https://github.com/willmcgugan/rich/compare/v3.1.0...v3.2.0
+[3.1.0]: https://github.com/willmcgugan/rich/compare/v3.0.5...v3.1.0
+[3.0.5]: https://github.com/willmcgugan/rich/compare/v3.0.4...v3.0.5
+[3.0.4]: https://github.com/willmcgugan/rich/compare/v3.0.3...v3.0.4
+[3.0.3]: https://github.com/willmcgugan/rich/compare/v3.0.2...v3.0.3
+[3.0.2]: https://github.com/willmcgugan/rich/compare/v3.0.1...v3.0.2
+[3.0.1]: https://github.com/willmcgugan/rich/compare/v3.0.0...v3.0.1
+[3.0.0]: https://github.com/willmcgugan/rich/compare/v2.3.1...v3.0.0
+[2.3.1]: https://github.com/willmcgugan/rich/compare/v2.3.0...v2.3.1
+[2.3.0]: https://github.com/willmcgugan/rich/compare/v2.2.6...v2.3.0
+[2.2.6]: https://github.com/willmcgugan/rich/compare/v2.2.5...v2.2.6
+[2.2.5]: https://github.com/willmcgugan/rich/compare/v2.2.4...v2.2.5
+[2.2.4]: https://github.com/willmcgugan/rich/compare/v2.2.3...v2.2.4
+[2.2.3]: https://github.com/willmcgugan/rich/compare/v2.2.2...v2.2.3
+[2.2.2]: https://github.com/willmcgugan/rich/compare/v2.2.1...v2.2.2
+[2.2.1]: https://github.com/willmcgugan/rich/compare/v2.2.0...v2.2.1
+[2.2.0]: https://github.com/willmcgugan/rich/compare/v2.1.0...v2.2.0
+[2.1.0]: https://github.com/willmcgugan/rich/compare/v2.0.1...v2.1.0
+[2.0.1]: https://github.com/willmcgugan/rich/compare/v2.0.0...v2.0.1
+[2.0.0]: https://github.com/willmcgugan/rich/compare/v1.3.1...v2.0.0
+[1.3.1]: https://github.com/willmcgugan/rich/compare/v1.3.0...v1.3.1
+[1.3.0]: https://github.com/willmcgugan/rich/compare/v1.2.3...v1.3.0
+[1.2.3]: https://github.com/willmcgugan/rich/compare/v1.2.2...v1.2.3
+[1.2.2]: https://github.com/willmcgugan/rich/compare/v1.2.1...v1.2.2
+[1.2.1]: https://github.com/willmcgugan/rich/compare/v1.2.0...v1.2.1
+[1.2.0]: https://github.com/willmcgugan/rich/compare/v1.1.9...v1.2.0
+[1.1.9]: https://github.com/willmcgugan/rich/compare/v1.1.8...v1.1.9
+[1.1.8]: https://github.com/willmcgugan/rich/compare/v1.1.7...v1.1.8
+[1.1.7]: https://github.com/willmcgugan/rich/compare/v1.1.6...v1.1.7
+[1.1.6]: https://github.com/willmcgugan/rich/compare/v1.1.5...v1.1.6
+[1.1.5]: https://github.com/willmcgugan/rich/compare/v1.1.4...v1.1.5
+[1.1.4]: https://github.com/willmcgugan/rich/compare/v1.1.3...v1.1.4
+[1.1.3]: https://github.com/willmcgugan/rich/compare/v1.1.2...v1.1.3
+[1.1.2]: https://github.com/willmcgugan/rich/compare/v1.1.1...v1.1.2
+[1.1.1]: https://github.com/willmcgugan/rich/compare/v1.1.0...v1.1.1
+[1.1.0]: https://github.com/willmcgugan/rich/compare/v1.0.3...v1.1.0
+[1.0.3]: https://github.com/willmcgugan/rich/compare/v1.0.2...v1.0.3
+[1.0.2]: https://github.com/willmcgugan/rich/compare/v1.0.1...v1.0.2
+[1.0.1]: https://github.com/willmcgugan/rich/compare/v1.0.0...v1.0.1
+[1.0.0]: https://github.com/willmcgugan/rich/compare/v0.8.13...v1.0.0
+[0.8.13]: https://github.com/willmcgugan/rich/compare/v0.8.12...v0.8.13
+[0.8.12]: https://github.com/willmcgugan/rich/compare/v0.8.11...v0.8.12
+[0.8.11]: https://github.com/willmcgugan/rich/compare/v0.8.10...v0.8.11
+[0.8.10]: https://github.com/willmcgugan/rich/compare/v0.8.9...v0.8.10
+[0.8.9]: https://github.com/willmcgugan/rich/compare/v0.8.8...v0.8.9
+[0.8.8]: https://github.com/willmcgugan/rich/compare/v0.8.7...v0.8.8
+[0.8.7]: https://github.com/willmcgugan/rich/compare/v0.8.6...v0.8.7
+[0.8.6]: https://github.com/willmcgugan/rich/compare/v0.8.5...v0.8.6
+[0.8.5]: https://github.com/willmcgugan/rich/compare/v0.8.4...v0.8.5
+[0.8.4]: https://github.com/willmcgugan/rich/compare/v0.8.3...v0.8.4
+[0.8.3]: https://github.com/willmcgugan/rich/compare/v0.8.2...v0.8.3
+[0.8.2]: https://github.com/willmcgugan/rich/compare/v0.8.1...v0.8.2
+[0.8.1]: https://github.com/willmcgugan/rich/compare/v0.8.0...v0.8.1
+[0.8.0]: https://github.com/willmcgugan/rich/compare/v0.7.2...v0.8.0
+[0.7.2]: https://github.com/willmcgugan/rich/compare/v0.7.1...v0.7.2
+[0.7.1]: https://github.com/willmcgugan/rich/compare/v0.7.0...v0.7.1
+[0.7.0]: https://github.com/willmcgugan/rich/compare/v0.6.0...v0.7.0
+[0.6.0]: https://github.com/willmcgugan/rich/compare/v0.5.0...v0.6.0
+[0.5.0]: https://github.com/willmcgugan/rich/compare/v0.4.1...v0.5.0
+[0.4.1]: https://github.com/willmcgugan/rich/compare/v0.4.0...v0.4.1
+[0.4.0]: https://github.com/willmcgugan/rich/compare/v0.3.3...v0.4.0
+[0.3.3]: https://github.com/willmcgugan/rich/compare/v0.3.2...v0.3.3
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index b9650ceee2..2cd9ccaa4a 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -1,13 +1,24 @@
# Contributing to Rich
-This project welcomes contributions in the form of Pull Requests. For clear bug-fixes / typos etc. just submit a PR. For new features or if there is any doubt in how to fix a bug, you might want to open an issue prior to starting work, or email willmcgugan+rich@gmail.com to discuss it first.
+This project welcomes contributions in the form of Pull Requests.
+For clear bug-fixes / typos etc. just submit a PR.
+For new features or if there is any doubt in how to fix a bug, you might want
+to open an issue prior to starting work, or email willmcgugan+rich@gmail.com
+to discuss it first.
## Development Environment
-To start developing with Rich, first create a _virtual environment_ then run the following to install development requirements:
+Rich uses [poetry](https://python-poetry.org/docs/) for packaging and
+dependency management. To start developing with Rich, install Poetry
+using the [recommended method](https://python-poetry.org/docs/#installation) or run:
+
+```
+pip install poetry
+```
+
+Once Poetry is installed, install the dependencies with the following command:
```
-pip install -r requirements-dev.txt
poetry install
```
@@ -19,7 +30,7 @@ Run tests with the following command:
make test
```
-Or if you don't have make, run the following:
+Or if you don't have `make`, run the following:
```
pytest --cov-report term-missing --cov=rich tests/ -vv
@@ -29,7 +40,8 @@ New code should ideally have tests and not break existing tests.
### Type Checking
-Rich uses type annotations throughout, and `mypy` to do the checking. Run the following to type check Rich:
+Rich uses type annotations throughout, and `mypy` to do the checking.
+Run the following to type check Rich:
```
make typecheck
@@ -38,7 +50,7 @@ make typecheck
Or if you don't have `make`:
```
-mypy -p rich --ignore-missing-imports --warn-unreachable
+mypy -p rich --config-file= --ignore-missing-imports --no-implicit-optional --warn-unreachable
```
Please add type annotations for all new code.
@@ -49,4 +61,4 @@ Rich uses [`black`](https://github.com/psf/black) for code formatting.
I recommend setting up black in your editor to format on save.
To run black from the command line, use `make format-check` to check your formatting,
-and use `make format` to format and write to the files.
\ No newline at end of file
+and use `make format` to format and write to the files.
diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md
index de322cbf7e..140f77f431 100644
--- a/CONTRIBUTORS.md
+++ b/CONTRIBUTORS.md
@@ -4,6 +4,35 @@ The following people have contributed to the development of Rich:
+- [Patrick Arminio](https://github.com/patrick91)
+- [Gregory Beauregard](https://github.com/GBeauregard/pyffstream)
+- [Dennis Brakhane](https://github.com/brakhane)
+- [Darren Burns](https://github.com/darrenburns)
+- [Ed Davis](https://github.com/davised)
+- [Pete Davison](https://github.com/pd93)
+- [James Estevez](https://github.com/jstvz)
- [Oleksis Fraga](https://github.com/oleksis)
+- [Michał Górny](https://github.com/mgorny)
+- [Leron Gray](https://github.com/daddycocoaman)
+- [Kenneth Hoste](https://github.com/boegel)
+- [Finn Hughes](https://github.com/finnhughes)
+- [Josh Karpel](https://github.com/JoshKarpel)
+- [Andrew Kettmann](https://github.com/akettmann)
- [Hedy Li](https://github.com/hedythedev)
+- [Alexander Mancevice](https://github.com/amancevice)
- [Will McGugan](https://github.com/willmcgugan)
+- [Paul McGuire](https://github.com/ptmcg)
+- [Nathan Page](https://github.com/nathanrpage97)
+- [Avi Perl](https://github.com/avi-perl)
+- [Laurent Peuch](https://github.com/psycojoker)
+- [Kylian Point](https://github.com/p0lux)
+- [Kyle Pollina](https://github.com/kylepollina)
+- [Clément Robert](https://github.com/neutrinoceros)
+- [Brian Rutledge](https://github.com/bhrutledge)
+- [Tushar Sadhwani](https://github.com/tusharsadhwani)
+- [Paul Sanders](https://github.com/sanders41)
+- [Tim Savage](https://github.com/timsavage)
+- [Nicolas Simonds](https://github.com/0xDEC0DE)
+- [Aaron Stephens](https://github.com/aaronst)
+- [Gabriele N. Tornetta](https://github.com/p403n1x87)
+- [Arian Mollik Wasi](https://github.com/wasi-master)
diff --git a/LICENSE b/LICENSE
index 8d9e799c3d..4415505566 100644
--- a/LICENSE
+++ b/LICENSE
@@ -1,8 +1,19 @@
-Copyright 2020 Will McGugan
+Copyright (c) 2020 Will McGugan
-Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
-The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/Makefile b/Makefile
index 6bed4f767b..17ede92638 100644
--- a/Makefile
+++ b/Makefile
@@ -1,13 +1,13 @@
test:
- pytest --cov-report term-missing --cov=rich tests/ -vv
+ TERM=unknown pytest --cov-report term-missing --cov=rich tests/ -vv
format-check:
black --check .
format:
black .
typecheck:
- mypy -p rich --ignore-missing-imports --warn-unreachable
+ mypy -p rich --strict --no-incremental
typecheck-report:
- mypy -p rich --ignore-missing-imports --warn-unreachable --html-report mypy_report
+ mypy -p rich --strict --html-report mypy_report
.PHONY: docs
docs:
cd docs; make html
diff --git a/README.cn.md b/README.cn.md
index 1494c1ef3a..a5c7c5b66a 100644
--- a/README.cn.md
+++ b/README.cn.md
@@ -1,10 +1,26 @@
-# Rich
-
+[](https://pepy.tech/project/rich)
[](https://badge.fury.io/py/rich)
[](https://codecov.io/gh/willmcgugan/rich)
[](https://www.willmcgugan.com/tag/rich/)
[](https://twitter.com/willmcgugan)
+
+
+[English readme](https://github.com/willmcgugan/rich/blob/master/README.md)
+ • [简体中文 readme](https://github.com/willmcgugan/rich/blob/master/README.cn.md)
+ • [正體中文 readme](https://github.com/willmcgugan/rich/blob/master/README.zh-tw.md)
+ • [Lengua española readme](https://github.com/willmcgugan/rich/blob/master/README.es.md)
+ • [Deutsche readme](https://github.com/willmcgugan/rich/blob/master/README.de.md)
+ • [Läs på svenska](https://github.com/willmcgugan/rich/blob/master/README.sv.md)
+ • [日本語 readme](https://github.com/willmcgugan/rich/blob/master/README.ja.md)
+ • [한국어 readme](https://github.com/willmcgugan/rich/blob/master/README.kr.md)
+ • [Français readme](https://github.com/willmcgugan/rich/blob/master/README.fr.md)
+ • [Schwizerdütsch readme](https://github.com/willmcgugan/rich/blob/master/README.de-ch.md)
+ • [हिन्दी readme](https://github.com/willmcgugan/rich/blob/master/README.hi.md)
+ • [Português brasileiro readme](https://github.com/willmcgugan/rich/blob/master/README.pt-br.md)
+ • [Italian readme](https://github.com/willmcgugan/rich/blob/master/README.it.md)
+ • [Русский readme](https://github.com/willmcgugan/rich/blob/master/README.ru.md)
+
Rich 是一个 Python 库,可以为您在终端中提供富文本和精美格式。
[Rich API](https://rich.readthedocs.io/en/latest/) 可以很容易的在终端输出添加各种颜色和不同风格。Rich 还可以绘制漂亮的表格,进度条,markdown,突出显示语法的源代码及回溯等等,不胜枚举。
@@ -23,10 +39,10 @@ Rich 还可以与[Jupyter 笔记本](https://jupyter.org/)一起使用,而无
## 安装说明
-使用`pip`或其他 PyPi 软件包管理器进行安装。
+使用`pip`或其他 PyPI 软件包管理器进行安装。
-```
-pip install rich
+```sh
+python -m pip install rich
```
## Rich 的打印功能
@@ -52,7 +68,7 @@ from rich.console import Console
console = Console()
```
-Console 对象含有一个`print` 方法,它的界面与 python 内置的`print`功能界面相似。
+Console 对象含有一个`print`方法,它的界面与 python 内置的`print`功能界面相似。
您可以试试:
@@ -148,7 +164,7 @@ table.add_column("Title")
table.add_column("Production Budget", justify="right")
table.add_column("Box Office", justify="right")
table.add_row(
- "Dev 20, 2019", "Star Wars: The Rise of Skywalker", "$275,000,000", "$375,126,118"
+ "Dec 20, 2019", "Star Wars: The Rise of Skywalker", "$275,000,000", "$375,126,118"
)
table.add_row(
"May 25, 2018",
@@ -170,7 +186,7 @@ console.print(table)

-请注意,控制台标记的呈现方式与`print()`和`log()`相同。实际上,由 Rich 渲染的任何内容都可以添加到标题/行(甚至其他表格)中。
+请注意,控制台标记的呈现方式与`print()`和`log()`相同。实际上,由 Rich 渲染的任何内容都可以添加到标题/行(甚至其他表格)中。
`Table`类很聪明,可以调整列的大小以适合终端的可用宽度,并能根据需要环绕文本。下面是相同的示例,输出与比上表小的终端上:
@@ -205,6 +221,7 @@ Rich 可以将内容通过排列整齐的,具有相等或最佳的宽度的[
```python
import os
+import sys
from rich import print
from rich.columns import Columns
@@ -221,7 +238,7 @@ print(Columns(directory))
Rich 可以呈现[markdown](https://rich.readthedocs.io/en/latest/markdown.html),并可相当不错的将其格式转移到终端。
-为了渲染 markdown,请导入`Markdown` 类,并使用包含 markdown 代码的字符串来构造它,然后将其打印到控制台。例子如下:
+为了渲染 markdown,请导入`Markdown`类,并使用包含 markdown 代码的字符串来构造它,然后将其打印到控制台。例子如下:
```python
from rich.console import Console
@@ -277,30 +294,30 @@ Rich 可以渲染漂亮的回溯,比标准 Python 回溯更容易阅读,并

-## 使用Rich的项目
+## 使用 Rich 的项目
-这里是一些使用Rich的项目:
+这里是一些使用 Rich 的项目:
- [BrancoLab/BrainRender](https://github.com/BrancoLab/BrainRender)
- 一个用于三维神经解剖数据可视化的python包
+ 一个用于三维神经解剖数据可视化的 python 包
- [Ciphey/Ciphey](https://github.com/Ciphey/Ciphey)
自动解密工具
- [emeryberger/scalene](https://github.com/emeryberger/scalene)
- 一个高性能、高精度的Python CPU和内存剖析器
+ 一个高性能、高精度的 Python CPU 和内存剖析器
- [hedythedev/StarCli](https://github.com/hedythedev/starcli)
- 通过命令行浏览GitHub热门项目
+ 通过命令行浏览 GitHub 热门项目
- [intel/cve-bin-tool](https://github.com/intel/cve-bin-tool)
这个工具可以扫描一些常见的、有漏洞的组件(openssl、libpng、libxml2、expat和其他一些组件),让你知道你的系统是否包含有已知漏洞的常用库。
- [nf-core/tools](https://github.com/nf)
- 包含nf-core社区帮助工具的Python包
+ 包含 nf-core 社区帮助工具的 Python 包
- [cansarigol/pdbr](https://github.com/cansarigol/pdbr)
pdb + rich 的库,增强调试功能
- [plant99/felicette](https://github.com/plant99/felicette)
傻瓜式卫星图像
- [seleniumbase/SeleniumBase](https://github.com/seleniumbase/SeleniumBase)
- 使用Selenium和pytest使自动化和测试速度提高10倍,包括电池
+ 使用 Selenium 和 pytest 使自动化和测试速度提高10倍,包括电池
- [smacke/ffsubsync](https://github.com/smacke/ffsubsync)
自动将字幕与视频同步
- [tryolabs/norfair](https://github.com/tryolabs/norfair)
- 轻量级Python库,用于向任何检测器添加实时2D对象跟踪
+ 轻量级 Python 库,用于向任何检测器添加实时 2D 对象跟踪
- +[还有很多](https://github.com/willmcgugan/rich/network/dependents)!
diff --git a/README.de-ch.md b/README.de-ch.md
new file mode 100644
index 0000000000..6c1d7d278b
--- /dev/null
+++ b/README.de-ch.md
@@ -0,0 +1,457 @@
+[](https://pepy.tech/project/rich)
+[](https://badge.fury.io/py/rich)
+[](https://codecov.io/gh/willmcgugan/rich)
+[](https://www.willmcgugan.com/tag/rich/)
+[](https://twitter.com/willmcgugan)
+
+
+
+[English readme](https://github.com/willmcgugan/rich/blob/master/README.md)
+ • [简体中文 readme](https://github.com/willmcgugan/rich/blob/master/README.cn.md)
+ • [正體中文 readme](https://github.com/willmcgugan/rich/blob/master/README.zh-tw.md)
+ • [Lengua española readme](https://github.com/willmcgugan/rich/blob/master/README.es.md)
+ • [Deutsche readme](https://github.com/willmcgugan/rich/blob/master/README.de.md)
+ • [Läs på svenska](https://github.com/willmcgugan/rich/blob/master/README.sv.md)
+ • [日本語 readme](https://github.com/willmcgugan/rich/blob/master/README.ja.md)
+ • [한국어 readme](https://github.com/willmcgugan/rich/blob/master/README.kr.md)
+ • [Français readme](https://github.com/willmcgugan/rich/blob/master/README.fr.md)
+ • [Schwizerdütsch readme](https://github.com/willmcgugan/rich/blob/master/README.de-ch.md)
+ • [हिन्दी readme](https://github.com/willmcgugan/rich/blob/master/README.hi.md)
+ • [Português brasileiro readme](https://github.com/willmcgugan/rich/blob/master/README.pt-br.md)
+ • [Italian readme](https://github.com/willmcgugan/rich/blob/master/README.it.md)
+ • [Русский readme](https://github.com/willmcgugan/rich/blob/master/README.ru.md)
+
+Rich isch ä Python Library för _rich_ Text ond ganz schöni formatiärig im Törminäl
+
+D [Rich API](https://rich.readthedocs.io/en/latest/) machts ganz eifach zom Farbä ond Stiil zu de Törminälusgob hinzu z füäge. Rich cha au schöni Tabelle, Progressbare, Markdown, Syntax hervorhebe, Tracebäcks und meh darstelle — fix fertig usem Böxli.
+
+
+
+E Video Iifüärig öber Rich geds onder [calmcode.io](https://calmcode.io/rich/introduction.html) vo [@fishnets88](https://twitter.com/fishnets88).
+
+Lueg was [anderi öber Rich säged](https://www.willmcgugan.com/blog/pages/post/rich-tweets/).
+
+## Kompatibilität
+
+Rich funktioniert mit Linux, OSX ond Windows. True color / emoji funktioniert mit em neue Windows Törminäl, s klassische Törminäl isch of 16 Farbe limitiärt. Rich brucht Python 3.6.1 oder neuer.
+
+Rich funktioniert mit [Jupyter notebooks](https://jupyter.org/) ohni irgendwelchä zuäsätzloche konfiguration.
+
+## Installation
+
+Installation mit `pip` oder mit dim liäblings PyPI Päckli-Manager.
+
+```sh
+python -m pip install rich
+```
+
+Für das do us zum d Rich usgob im Törminäl z teste:
+
+```sh
+python -m rich
+```
+
+## Rich Print
+
+Zom ohni Ufwand Rich Usgob zu dinnere Applikation hinzuäfüäge, chasch eifach d [rich print](https://rich.readthedocs.io/en/latest/introduction.html#quick-start) Methodä importiäre, weli di glich Signatuur hed wiä d Builtin Python Funktion. Versuech das:
+
+```python
+from rich import print
+
+print("Hello, [bold magenta]World[/bold magenta]!", ":vampire:", locals())
+```
+
+
+
+## Rich REPL
+
+Rich cha i de Python REPL installiert werde so dass irgend e Datestruktuur hübsch usgeh ond Highlighted wird.
+
+```python
+>>> from rich import pretty
+>>> pretty.install()
+```
+
+
+
+## Console bruchä
+
+Für meh kontrolle öber de Törminäl inhalt, importiär und instanziär e [Console](https://rich.readthedocs.io/en/latest/reference/console.html#rich.console.Console) Objekt.
+
+```python
+from rich.console import Console
+
+console = Console()
+```
+
+S Console Objekt hät e `print` Methode mitäre absichtloch gliche Schnittstell wiä d Builtin `print` Funktion. Do es Bispiil wiä mos brucht:
+
+```python
+console.print("Hello", "World!")
+```
+
+Wiä erwartet wird `"Hello World!"` im Törminäl usgeh. Beach das im gägesatz zu de Builtin `print` Funktion, Rich de text so ombricht das es id Törminäl breiti ine passt.
+
+Es ged es paar Wäg zom Farb und Stiil zu de Usgob hinzuä z füäge. Me cha en stiil a de ganze Usgob zuäwiise i dem mo s Schlösselwortargument `style` verwendet. Do es Bispiil:
+
+```python
+console.print("Hello", "World!", style="bold red")
+```
+
+D Usgob gsiät öppe ä so us:
+
+
+
+Da isch guät für d Gstalltig vom Text pro Liniä. Vör ä granularäri Gstalltig hed Rich e spezielli Markup mitäre ähnloche Befehlsufbau wiä [bbcode](https://en.wikipedia.org/wiki/BBCode). Do es Bispiil:
+
+```python
+console.print("Where there is a [bold cyan]Will[/bold cyan] there [u]is[/u] a [i]way[/i].")
+```
+
+
+
+Du chasch mitmäne Console Objekt mit wenig Ufwand aasprechendi Usgob erziile. Lueg do d [Console API](https://rich.readthedocs.io/en/latest/console.html) Dokumentation für d Details a.
+
+## Rich Inspect
+
+Rich hät e [inspect](https://rich.readthedocs.io/en/latest/reference/init.html?highlight=inspect#rich.inspect) Funktion wo cha Bricht öber jeglochi Python Objekt, wie Class, Instanz oder Builtin erstelle.
+
+```python
+>>> my_list = ["foo", "bar"]
+>>> from rich import inspect
+>>> inspect(my_list, methods=True)
+```
+
+
+
+Lueg do d [inspect Dokumentation](https://rich.readthedocs.io/en/latest/reference/init.html#rich.inspect) für d Details a.
+
+# Rich-Bibliothek
+
+Rich häd ä Aazahl vo integriäte _renderables_ wo du chasch verwende zum eleganti Usgobe i dinner e CLI generiäre ond der hälfed bim debugge vo dim Code.
+
+Drock of di folgende Öberschrifte für d Details:
+
+
+Log
+
+S Console Objekt hät e `log()` Methode wo verglichbar zu de `print()` Schnittstell isch aber zuäsätzloch no e Spaltä för di aktuäll Zitt und d Datai mit de Zille wo de Ufruäf macht us git. Standardmässig tuät Rich es Syntax Highlighting für Python Strukturä sowiä repr Text machä. Went e Collection (wiä zum Bispiil dict oder list) loggsch wird Rich das hübsch Usgeh so dass es i de verfüägbari Platz ine passt. Do es Bispiil für e paar vo dene Funktionä.
+
+```python
+from rich.console import Console
+console = Console()
+
+test_data = [
+ {"jsonrpc": "2.0", "method": "sum", "params": [None, 1, 2, 4, False, True], "id": "1",},
+ {"jsonrpc": "2.0", "method": "notify_hello", "params": [7]},
+ {"jsonrpc": "2.0", "method": "subtract", "params": [42, 23], "id": "2"},
+]
+
+def test_log():
+ enabled = False
+ context = {
+ "foo": "bar",
+ }
+ movies = ["Deadpool", "Rise of the Skywalker"]
+ console.log("Hello from", console, "!")
+ console.log(test_data, log_locals=True)
+
+
+test_log()
+```
+
+Das do obe gid di folgend Usgob:
+
+
+
+Beachte s Argument `log_locals` wo innere Tabelle di lokalä Variable us gid zur Zitt wo d Methodä ufgruäfä worde isch.
+
+D log Methodä cha zum is Törminäl inne z Logge für langläbige Applikationä wie Server brucht werde isch aber au fürs Debuggä ganz e netti Hilf.
+
+
+
+Logging Handler
+
+Du chasch au d Builtin [Handler Class](https://rich.readthedocs.io/en/latest/logging.html) verwende zum d Usgob vom Python logging Module z formatiäre und iifärbe. Do es Bispiil vo de Usgob:
+
+
+
+
+
+
+Emoji
+
+Zom e Emoji i de Konsoleusgob iizfüäge tuä de name züschet zwei Doppelpünkt. Do es Bispiil:
+
+```python
+>>> console.print(":smiley: :vampire: :pile_of_poo: :thumbs_up: :raccoon:")
+😃 🧛 💩 👍 🦝
+```
+
+Bitte verwend diä Funktion gschiid.
+
+
+
+
+Tabelle
+
+Rich cha flexiibäl [Tabelle](https://rich.readthedocs.io/en/latest/tables.html) mit Boxä us Unicodezeiche generiäre. Es gid e Viilzahl vo Formatiärigsoptionä für Ränder, Stiil, Zelleusrichtig ond so witter.
+
+
+
+D Animation obe isch mit [table_movie.py](https://github.com/willmcgugan/rich/blob/master/examples/table_movie.py) us em Bispiil-Ordner erstellt worde.
+
+Do es eifachs Tabelle-Bispiil:
+
+```python
+from rich.console import Console
+from rich.table import Table
+
+console = Console()
+
+table = Table(show_header=True, header_style="bold magenta")
+table.add_column("Date", style="dim", width=12)
+table.add_column("Title")
+table.add_column("Production Budget", justify="right")
+table.add_column("Box Office", justify="right")
+table.add_row(
+ "Dec 20, 2019", "Star Wars: The Rise of Skywalker", "$275,000,000", "$375,126,118"
+)
+table.add_row(
+ "May 25, 2018",
+ "[red]Solo[/red]: A Star Wars Story",
+ "$275,000,000",
+ "$393,151,347",
+)
+table.add_row(
+ "Dec 15, 2017",
+ "Star Wars Ep. VIII: The Last Jedi",
+ "$262,000,000",
+ "[bold]$1,332,539,889[/bold]",
+)
+
+console.print(table)
+```
+
+Das gid di folgend Usgob:
+
+
+
+Beacht das d Konsole Markup glich wie bi `print()` ond `log()` generiärt wird. Ond zwor cha alles wo vo Rich generiert werde cha au im Chopf / Zille iigfüägt werde (sogar anderi Tabellene).
+
+D Klass `Table` isch gschiid gnuäg yum d Spaltebreite am verfüägbare Platz im Törminäl aazpasse und de Text gegäbenefalls umzbreche. Do isch s gliche Bispiil mit em Törminäl chlinner als d Tabelle vo obe:
+
+
+
+
+
+
+Progress Bars
+
+Rich cha meereri flackerfreii [Progress](https://rich.readthedocs.io/en/latest/progress.html) Bars darstelle zum langläbigi Tasks verfolgä.
+
+Zur eifache Benutzig irgend e Sequenz id `track` Funktion ine packe und über s Resultat iteriäre. Do es Bispiil:
+
+```python
+from rich.progress import track
+
+for step in track(range(100)):
+ do_step(step)
+```
+
+Es isch nöd vill schwiriger zum mehräri Progress Bars hinzuä zfüäge. Do es Bispiil us de Doku:
+
+
+
+D Spaltä cha so konfiguriärt werde das alli gwünschte Details aazeigt werded. D Built-in Spalte beinhaltät Prozentsatz, Dateigrössi, Dateigschwindikeit ond öbrigi Zitt. Do isch e andos Bispiil wo en laufände Download zeigt:
+
+
+
+Zums selber usprobiäre lueg [examples/downloader.py](https://github.com/willmcgugan/rich/blob/master/examples/downloader.py) a, wo cha glichzittig mehräri URLs abelade und de Fortschritt aazeige.
+
+
+
+
+Status
+
+För Situatione wos schwär isch zum de Fortschritt z berechne, chasch d [status](https://rich.readthedocs.io/en/latest/reference/console.html#rich.console.Console.status) Methode verwende wo en 'spinner' animiärt und e Nochricht darstellt. D Animation haltet di nöd ab d Konsole witter normal z bruche. Do es Bispiil:
+
+```python
+from time import sleep
+from rich.console import Console
+
+console = Console()
+tasks = [f"task {n}" for n in range(1, 11)]
+
+with console.status("[bold green]Working on tasks...") as status:
+ while tasks:
+ task = tasks.pop(0)
+ sleep(1)
+ console.log(f"{task} complete")
+```
+
+Das gid di folgendi Usgob im Törminäl.
+
+
+
+D Spinner Animatione sind vo [cli-spinners](https://www.npmjs.com/package/cli-spinners) usglehnt. Du chasch en speziifischä Spinner mit em `spinner` Parameter uswähle. Start de folgend Befehl zom die verfüägbare Wert z gsiä:
+
+```
+python -m rich.spinner
+```
+
+De Befehl obe generiärt di folgändi Usgob im Törminäl:
+
+
+
+
+
+
+Tree
+
+Rich cha en [tree](https://rich.readthedocs.io/en/latest/tree.html) mit Hilfsliniä generiäre. En Tree isch ideal zom darstelle vo Dateistruktuure oder anderi hirarchischi Date.
+
+S Label vom Tree cha en eifache Text or alles andere wo Rich cha rendere. Start das Folgendi für e Demonstation:
+
+```
+python -m rich.tree
+```
+
+Das generiärt di folgend Usgob:
+
+
+
+Lueg s Bispiil Script [tree.py](https://github.com/willmcgugan/rich/blob/master/examples/tree.py) für e Darstellig vo irgend eim Ordner als Tree, glich wie de Linux Befehl `tree`.
+
+
+
+
+Spaltene
+
+Rich cha Inhalt i hübsche [Spaltene](https://rich.readthedocs.io/en/latest/columns.html) darstelle mit glichä oder optimale Breiti. Do isch e ganz eifachi kopii vom (MacOS / Linux) `ls` Befehl wo Ordner in Spaltene darstellt
+
+```python
+import os
+import sys
+
+from rich import print
+from rich.columns import Columns
+
+directory = os.listdir(sys.argv[1])
+print(Columns(directory))
+```
+
+De folgend Screenshot isch d Usgob vom [Spalte-Bispiil](https://github.com/willmcgugan/rich/blob/master/examples/columns.py), wo Date vonnere API hollt ond in Spaltene darstellt:
+
+
+
+
+
+
+Markdown
+
+Rich cha [markdown](https://rich.readthedocs.io/en/latest/markdown.html) übersetze ond leistet vernünftigi Ärbät bim formatiärige is Törminäl z übersetze.
+
+Zum Markdown z übersetze importier d Klass `Markdown` und instanzier es mitem Markdown Text. Nocher gid mos uf de Konsolä us. Do es Bispiil:
+
+```python
+from rich.console import Console
+from rich.markdown import Markdown
+
+console = Console()
+with open("README.md") as readme:
+ markdown = Markdown(readme.read())
+console.print(markdown)
+```
+
+Das wird d Usgob ungefär wie s Folgende geh:
+
+
+
+
+
+
+Syntax Highlighting
+
+Rich brucht d [pygments](https://pygments.org/) Library für d [Syntax Highlighting](https://rich.readthedocs.io/en/latest/syntax.html). S Bruche isch ähnloch zum Markdown übersetze; instanziär e `Syntax` Objekt ond gibs uf de Konsolä us. Do es Bispiil:
+
+```python
+from rich.console import Console
+from rich.syntax import Syntax
+
+my_code = '''
+def iter_first_last(values: Iterable[T]) -> Iterable[Tuple[bool, bool, T]]:
+ """Iterate and generate a tuple with a flag for first and last value."""
+ iter_values = iter(values)
+ try:
+ previous_value = next(iter_values)
+ except StopIteration:
+ return
+ first = True
+ for value in iter_values:
+ yield first, False, previous_value
+ first = False
+ previous_value = value
+ yield first, True, previous_value
+'''
+syntax = Syntax(my_code, "python", theme="monokai", line_numbers=True)
+console = Console()
+console.print(syntax)
+```
+
+Das wird d Usgob ungefär wie s Folgende geh:
+
+
+
+
+
+
+Tracebacks
+
+Rich cha [wunderschöni Tracebacks](https://rich.readthedocs.io/en/latest/traceback.html) generiäre wo eifach zum läse sind und meh Code als de Standard-Python-Traceback darstellt. Du chasch Rich als default Traceback Handler setzä ond alli nöd abfangene Exceptions werded mit Rich dargstellt.
+
+So gsiets ungefär ufemen OSX (ähnloch uf Linux) us:
+
+
+
+
+
+Alli Rich Renderables bruched s [Console-Protokoll](https://rich.readthedocs.io/en/latest/protocol.html), wo mo au für d eige Entwicklig vo Rich-Inhalt cha bruche.
+
+# Rich für Ondernemä
+
+Verfüägbar als Tidelift Abo.
+
+De Betreue vo Rich ond tuusigi anderi Päkli schaffed mit Tidelift zum komerziälle Support und Wartig für Open Source Päkli wo du zum Baue vo dinnere Applikation bruchsch. Spar Zit, reduziär s Risiko ond verbessere d Code Health mit em bezahle vo de Wartig für gnau die Päkli wo mo brucht. [Lärn meh.](https://tidelift.com/subscription/pkg/pypi-rich?utm_source=pypi-rich&utm_medium=referral&utm_campaign=enterprise&utm_term=repo)
+
+# Projekt wo Rich bruched
+
+Do es paar Projekt wo Rich verwended:
+
+- [BrancoLab/BrainRender](https://github.com/BrancoLab/BrainRender)
+ a python package for the visualization of three dimensional neuro-anatomical data
+- [Ciphey/Ciphey](https://github.com/Ciphey/Ciphey)
+ Automated decryption tool
+- [emeryberger/scalene](https://github.com/emeryberger/scalene)
+ a high-performance, high-precision CPU and memory profiler for Python
+- [hedythedev/StarCli](https://github.com/hedythedev/starcli)
+ Browse GitHub trending projects from your command line
+- [intel/cve-bin-tool](https://github.com/intel/cve-bin-tool)
+ This tool scans for a number of common, vulnerable components (openssl, libpng, libxml2, expat and a few others) to let you know if your system includes common libraries with known vulnerabilities.
+- [nf-core/tools](https://github.com/nf-core/tools)
+ Python package with helper tools for the nf-core community.
+- [cansarigol/pdbr](https://github.com/cansarigol/pdbr)
+ pdb + Rich library for enhanced debugging
+- [plant99/felicette](https://github.com/plant99/felicette)
+ Satellite imagery for dummies.
+- [seleniumbase/SeleniumBase](https://github.com/seleniumbase/SeleniumBase)
+ Automate & test 10x faster with Selenium & pytest. Batteries included.
+- [smacke/ffsubsync](https://github.com/smacke/ffsubsync)
+ Automagically synchronize subtitles with video.
+- [tryolabs/norfair](https://github.com/tryolabs/norfair)
+ Lightweight Python library for adding real-time 2D object tracking to any detector.
+- [ansible/ansible-lint](https://github.com/ansible/ansible-lint) Ansible-lint checks playbooks for practices and behaviour that could potentially be improved
+- [ansible-community/molecule](https://github.com/ansible-community/molecule) Ansible Molecule testing framework
+- +[Vieli meh](https://github.com/willmcgugan/rich/network/dependents)!
+
+
diff --git a/README.de.md b/README.de.md
new file mode 100644
index 0000000000..34a99a64e8
--- /dev/null
+++ b/README.de.md
@@ -0,0 +1,455 @@
+[](https://pepy.tech/project/rich)
+[](https://badge.fury.io/py/rich)
+[](https://codecov.io/gh/willmcgugan/rich)
+[](https://www.willmcgugan.com/tag/rich/)
+[](https://twitter.com/willmcgugan)
+
+
+
+[English readme](https://github.com/willmcgugan/rich/blob/master/README.md)
+ • [简体中文 readme](https://github.com/willmcgugan/rich/blob/master/README.cn.md)
+ • [正體中文 readme](https://github.com/willmcgugan/rich/blob/master/README.zh-tw.md)
+ • [Lengua española readme](https://github.com/willmcgugan/rich/blob/master/README.es.md)
+ • [Deutsche readme](https://github.com/willmcgugan/rich/blob/master/README.de.md)
+ • [Läs på svenska](https://github.com/willmcgugan/rich/blob/master/README.sv.md)
+ • [日本語 readme](https://github.com/willmcgugan/rich/blob/master/README.ja.md)
+ • [한국어 readme](https://github.com/willmcgugan/rich/blob/master/README.kr.md)
+ • [Français readme](https://github.com/willmcgugan/rich/blob/master/README.fr.md)
+ • [Schwizerdütsch readme](https://github.com/willmcgugan/rich/blob/master/README.de-ch.md)
+ • [हिन्दी readme](https://github.com/willmcgugan/rich/blob/master/README.hi.md)
+ • [Português brasileiro readme](https://github.com/willmcgugan/rich/blob/master/README.pt-br.md)
+ • [Italian readme](https://github.com/willmcgugan/rich/blob/master/README.it.md)
+ • [Русский readme](https://github.com/willmcgugan/rich/blob/master/README.ru.md)
+
+Rich ist eine Python-Bibliothek für _rich_ Text und schöne Formatierung im Terminal.
+
+Die [Rich API](https://rich.readthedocs.io/en/latest/) erleichtert das Hinzufügen von Farbe und Stil zur Terminalausgabe. Rich kann auch schöne Tabellen, Fortschrittsbalken, Markdowns, durch Syntax hervorgehobenen Quellcode, Tracebacks und mehr sofort rendern.
+
+
+
+Eine Video-Einführung in Rich findest du unter [quietcode.io](https://calmcode.io/rich/introduction.html) von [@ fishnets88](https://twitter.com/fishnets88).
+
+Schau hier, was [andere über Rich sagen](https://www.willmcgugan.com/blog/pages/post/rich-tweets/).
+
+## Kompatibilität
+
+Rich läuft unter Linux, OSX und Windows. True Color / Emoji funktionieren mit dem neuen Windows-Terminal. Das klassische Terminal ist auf 16 Farben beschränkt. Rich benötigt Python 3.6.1 oder höher.
+
+Rich funktioniert ohne zusätzliche Konfiguration mit [Jupyter Notebooks](https://jupyter.org/).
+
+## Installation
+
+Installation mit `pip` oder deinem bevorzugten PyPI-Paketmanager.
+
+```sh
+python -m pip install rich
+```
+
+Führe die folgenden Schritte aus, um die Rich-Ausgabe auf deinem Terminal zu testen:
+
+```sh
+python -m rich
+```
+
+## Rich Print
+
+Um deiner Anwendung mühelos eine Rich-Ausgabe hinzuzufügen, kannst du die Methode [rich print](https://rich.readthedocs.io/en/latest/introduction.html#quick-start) importieren, die dieselbe Signatur wie die integrierte Python-Funktion hat. Versuche das:
+
+```python
+from rich import print
+
+print("Hello, [bold magenta]World[/bold magenta]!", ":vampire:", locals())
+```
+
+
+
+## Rich REPL
+
+Rich kann in Python REPL installiert werden, so dass alle Datenstrukturen schön ausgegeben und hervorgehoben werden.
+
+```python
+>>> from rich import pretty
+>>> pretty.install()
+```
+
+
+
+## Verwenden der Konsole
+
+Importiere und erstelle ein [Konsolen-Objekt](https://rich.readthedocs.io/en/latest/reference/console.html#rich.console.Console), um mehr Kontrolle über umfangreiche Terminalinhalte zu erhalten.
+
+```python
+from rich.console import Console
+
+console = Console()
+```
+
+Das Konsolenobjekt verfügt über eine `print`-Methode, die eine absichtlich gleiche Schnittstelle zur integrierten `print`-Funktion aufweist. Hier ein Anwendungsbeispiel:
+
+```python
+console.print("Hello", "World!")
+```
+
+Wie zu erwarten, wird `"Hello World!"` im Terminal ausgegeben. Beachte, dass Rich im Gegensatz zur integrierten `print`-Funktion deinen Text so umbricht, dass er in die Terminalbreite passt.
+
+Es gibt verschiedene Möglichkeiten, deiner Ausgabe Farbe und Stil hinzuzufügen. Du kannst einen Stil für die gesamte Ausgabe festlegen, indem du ein Schlüsselwortargument `style` hinzufügst. Hier ein Beispiel:
+
+```python
+console.print("Hello", "World!", style="bold red")
+```
+
+Die Ausgabe wird in etwa wie folgt aussehen:
+
+
+
+Das ist gut, um jeweils eine Textzeile zu stylen. Für eine detailliertere Gestaltung bietet Rich ein spezielles Markup an, das in der Syntax ähnlich [bbcode](https://en.wikipedia.org/wiki/BBCode) ist. Hier ein Beispiel:
+
+```python
+console.print("Where there is a [bold cyan]Will[/bold cyan] there [u]is[/u] a [i]way[/i].")
+```
+
+
+
+Du kannst ein Console-Objekt verwenden, um mit minimalem Aufwand anspruchsvolle Ausgaben zu erzeugen. Siehe [Konsolen-API](https://rich.readthedocs.io/en/latest/console.html) für Details.
+
+## Rich Inspect
+
+Rich hat eine Funktion [inspect](https://rich.readthedocs.io/en/latest/reference/init.html?highlight=inspect#rich.inspect), die einen Bericht über jedes Python-Objekt, wie Klasse, Instanz oder builtin, erzeugen kann.
+
+```python
+>>> my_list = ["foo", "bar"]
+>>> from rich import inspect
+>>> inspect(my_list, methods=True)
+```
+
+
+
+Siehe [Doks Inspektor](https://rich.readthedocs.io/en/latest/reference/init.html#rich.inspect) für Details.
+
+# Rich-Bibliothek
+
+Rich enthält eine Reihe von eingebauten _renderables_, die du verwenden kannst, um elegante Ausgaben in deiner CLI zu erzeugen und dir beim Debuggen deines Codes zu helfen.
+
+Klicke auf die folgenden Überschriften, um Details zu erfahren:
+
+
+Log
+
+Das Console-Objekt hat eine `log()`-Methode, die die gleiche Schnittstelle wie `print()` hat, aber zusätzlich eine Spalte für die aktuelle Zeit und die Datei und Zeile, die den Aufruf gemacht hat, ausgibt. Standardmäßig führt Rich die Syntaxhervorhebung für Python-Strukturen und für repr-Strings durch. Wenn du eine Sammlung (z.B. ein Diktat oder eine Liste) protokollierst, wird Rich diese so hübsch ausgeben, dass sie in den verfügbaren Platz passt. Hier ein Beispiel für einige dieser Funktionen.
+
+```python
+from rich.console import Console
+console = Console()
+
+test_data = [
+ {"jsonrpc": "2.0", "method": "sum", "params": [None, 1, 2, 4, False, True], "id": "1",},
+ {"jsonrpc": "2.0", "method": "notify_hello", "params": [7]},
+ {"jsonrpc": "2.0", "method": "subtract", "params": [42, 23], "id": "2"},
+]
+
+def test_log():
+ enabled = False
+ context = {
+ "foo": "bar",
+ }
+ movies = ["Deadpool", "Rise of the Skywalker"]
+ console.log("Hello from", console, "!")
+ console.log(test_data, log_locals=True)
+
+
+test_log()
+```
+
+Die obige Funktion erzeugt die folgende Ausgabe:
+
+
+
+Beachte das Argument `log_locals`, das eine Tabelle mit den lokalen Variablen ausgibt, in der die log-Methode aufgerufen wurde.
+
+Die log-Methode kann für die Protokollierung auf dem Terminal für langlaufende Anwendungen wie Server verwendet werden, ist aber auch eine sehr schöne Hilfe bei der Fehlersuche.
+
+
+
+Logging Handler
+
+Du kannst auch die eingebaute [Handler-Klasse](https://rich.readthedocs.io/en/latest/logging.html) verwenden, um die Ausgabe von Pythons Logging-Modul zu formatieren und einzufärben. Hier ein Beispiel für die Ausgabe:
+
+
+
+
+
+
+Emoji
+
+Um ein Emoji in die Konsolenausgabe einzufügen, setze den Namen zwischen zwei Doppelpunkte. Hier ein Beispiel:
+
+```python
+>>> console.print(":smiley: :vampire: :pile_of_poo: :thumbs_up: :raccoon:")
+😃 🧛 💩 👍 🦝
+```
+
+Bitte verwenden Sie diese Funktion mit Bedacht.
+
+
+
+
+Tabellen
+
+Rich kann flexible [Tabellen](https://rich.readthedocs.io/en/latest/tables.html) mit Unicode-Box-Characters darstellen. Es gibt eine Vielzahl von Formatierungsmöglichkeiten für Rahmen, Stile, Zellausrichtung usw.
+
+
+
+Die obige Animation wurde mit [table_movie.py](https://github.com/willmcgugan/rich/blob/master/examples/table_movie.py) im Verzeichnis `examples` erzeugt.
+
+Hier ist ein einfacheres Tabellenbeispiel:
+
+```python
+from rich.console import Console
+from rich.table import Table
+
+console = Console()
+
+table = Table(show_header=True, header_style="bold magenta")
+table.add_column("Date", style="dim", width=12)
+table.add_column("Title")
+table.add_column("Production Budget", justify="right")
+table.add_column("Box Office", justify="right")
+table.add_row(
+ "Dec 20, 2019", "Star Wars: The Rise of Skywalker", "$275,000,000", "$375,126,118"
+)
+table.add_row(
+ "May 25, 2018",
+ "[red]Solo[/red]: A Star Wars Story",
+ "$275,000,000",
+ "$393,151,347",
+)
+table.add_row(
+ "Dec 15, 2017",
+ "Star Wars Ep. VIII: The Last Jedi",
+ "$262,000,000",
+ "[bold]$1,332,539,889[/bold]",
+)
+
+console.print(table)
+```
+
+Dies erzeugt diese Ausgabe:
+
+
+
+Beachte, dass das Konsolen-Markup auf die gleiche Weise gerendert wird wie `print()` und `log()`. Tatsächlich kann alles, was von Rich gerendert werden kann, in den Kopfzeilen/Zeilen enthalten sein (sogar andere Tabellen).
+
+Die Klasse `Table` ist intelligent genug, um die Größe der Spalten an die verfügbare Breite des Terminals anzupassen und den Text wie erforderlich umzubrechen. Hier ist das gleiche Beispiel, wobei das Terminal kleiner als bei der obigen Tabelle ist:
+
+
+
+
+
+
+Fortschrittsbalken
+
+Rich kann mehrere flackerfreie [Fortschrittsbalken](https://rich.readthedocs.io/en/latest/progress.html) darstellen, um langlaufende Aufgaben zu verfolgen.
+
+Einfachste Anwendung ist, eine beliebige Sequenz in die Funktion `track` einzupacken und über das Ergebnis zu iterieren. Hier ein Beispiel:
+
+```python
+from rich.progress import track
+
+for step in track(range(100)):
+ do_step(step)
+```
+
+Es ist nicht viel schwieriger, mehrere Fortschrittsbalken hinzuzufügen. Hier ein Beispiel aus der Doku:
+
+
+
+Die Spalten können so konfiguriert werden, dass sie alle gewünschten Details anzeigen. Zu den eingebauten Spalten gehören Prozentsatz der Fertigstellung, Dateigröße, Downloadgeschwindigkeit und verbleibende Zeit. Hier ist ein weiteres Beispiel, das einen laufenden Download anzeigt:
+
+
+
+Um dies selbst auszuprobieren, sieh dir [examples/downloader.py](https://github.com/willmcgugan/rich/blob/master/examples/downloader.py) an, das mehrere URLs gleichzeitig herunterladen kann und dabei den Fortschritt anzeigt.
+
+
+
+
+Status
+
+Für Situationen, in denen es schwierig ist, den Fortschritt zu berechnen, kannst du die Methode [status](https://rich.readthedocs.io/en/latest/reference/console.html#rich.console.Console.status) verwenden, die eine 'Spinner'-Animation und eine Meldung anzeigt. Die Animation hindert dich nicht daran, die Konsole wie gewohnt zu verwenden. Hier ein Beispiel:
+
+```python
+from time import sleep
+from rich.console import Console
+
+console = Console()
+tasks = [f"task {n}" for n in range(1, 11)]
+
+with console.status("[bold green]Working on tasks...") as status:
+ while tasks:
+ task = tasks.pop(0)
+ sleep(1)
+ console.log(f"{task} complete")
+```
+
+Dies erzeugt diese Ausgabe im Terminal.
+
+
+
+Die Spinner-Animationen wurden von [cli-spinners](https://www.npmjs.com/package/cli-spinners) geliehen. Du kannst einen Spinner auswählen, indem du den Parameter `spinner` angibst. Führe den folgenden Befehl aus, um die verfügbaren Werte zu sehen:
+
+```
+python -m rich.spinner
+```
+
+Der obige Befehl erzeugt die folgende Ausgabe im Terminal:
+
+
+
+
+
+
+Baum
+
+Rich kann einen [Baum](https://rich.readthedocs.io/en/latest/tree.html) mit Hilfslinien darstellen. Ein Baum ist ideal, um eine Dateistruktur oder andere hierarchische Daten darzustellen.
+
+Die Beschriftungen des Baums können einfacher Text oder alles andere sein, was Rich rendern kann. Führe den folgenden Befehl zur Demonstration aus:
+
+```
+python -m rich.tree
+```
+
+Dies erzeugt diese Ausgabe:
+
+
+
+Siehe das Beispiel [tree.py](https://github.com/willmcgugan/rich/blob/master/examples/tree.py) für ein Skript, das eine Baumansicht eines beliebigen Verzeichnisses anzeigt, ähnlich dem Linux-Befehl `tree`.
+
+
+
+
+Spalten
+
+Rich kann Inhalte sauber in [Spalten](https://rich.readthedocs.io/en/latest/columns.html) mit gleicher oder optimaler Breite darstellen. Hier ist ein sehr einfacher Klon des (MacOS / Linux) `ls`-Befehls, der eine Verzeichnisliste in Spalten anzeigt:
+
+```python
+import os
+import sys
+
+from rich import print
+from rich.columns import Columns
+
+directory = os.listdir(sys.argv[1])
+print(Columns(directory))
+```
+
+Der folgende Screenshot ist die Ausgabe von [Spalten-Beispiel](https://github.com/willmcgugan/rich/blob/master/examples/columns.py), das Daten, die aus einer API kommen, in Spalten anzeigt:
+
+
+
+
+
+
+Markdown
+
+Rich kann [Markdown](https://rich.readthedocs.io/en/latest/markdown.html) rendern und leistet vernünftige Arbeit bei der Übersetzung der Formatierung ins Terminal.
+
+Um Markdown zu rendern, importiere die Klasse `Markdown` und konstruiere einen String mit Markdown-Code. Gib ihn dann auf der Konsole aus. Hier ein Beispiel:
+
+```python
+from rich.console import Console
+from rich.markdown import Markdown
+
+console = Console()
+with open("README.md") as readme:
+ markdown = Markdown(readme.read())
+console.print(markdown)
+```
+
+Dies erzeugt diese Ausgabe:
+
+
+
+
+
+
+Syntax-Hervorhebung
+
+Rich verwendet die Bibliothek [pygments](https://pygments.org/) zur Implementierung von [Syntax-Hervorhebung](https://rich.readthedocs.io/en/latest/syntax.html). Die Verwendung ist gleich dem Rendern von Markdown; konstruieren Sie ein `Syntax`-Objekt und gib es auf der Konsole aus. Hier ein Beispiel:
+
+```python
+from rich.console import Console
+from rich.syntax import Syntax
+
+my_code = '''
+def iter_first_last(values: Iterable[T]) -> Iterable[Tuple[bool, bool, T]]:
+ """Iterate and generate a tuple with a flag for first and last value."""
+ iter_values = iter(values)
+ try:
+ previous_value = next(iter_values)
+ except StopIteration:
+ return
+ first = True
+ for value in iter_values:
+ yield first, False, previous_value
+ first = False
+ previous_value = value
+ yield first, True, previous_value
+'''
+syntax = Syntax(my_code, "python", theme="monokai", line_numbers=True)
+console = Console()
+console.print(syntax)
+```
+
+Dies erzeugt die folgende Ausgabe:
+
+
+
+
+
+
+Tracebacks
+
+Rich kann [schöne Tracebacks](https://rich.readthedocs.io/en/latest/traceback.html) rendern, die einfacher zu lesen sind und mehr Code anzeigen, als die Standard-Python-Tracebacks. Du kannst Rich als Standard-Traceback-Handler festlegen, so dass alle nicht abgefangenen Exceptions von Rich gerendert werden.
+
+So sieht es unter OSX aus (ähnlich unter Linux):
+
+
+
+
+
+Alle Rich-Renderables verwenden das [Konsolen-Protokoll](https://rich.readthedocs.io/en/latest/protocol.html), das du auch für die Implementierung deiner eigenen Rich-Inhalte verwenden kannst.
+
+# Rich für Unternehmen
+
+Verfügbar als Teil des Tidelift-Abonnements.
+
+Die Betreuer von Rich und tausenden anderen Paketen arbeiten mit Tidelift zusammen, um kommerziellen Support und Wartung für die Open-Source-Pakete zu bieten, die du zur Erstellung deiner Anwendungen verwendest. Spare Zeit, reduziere Risiken und verbessere den Zustand des Codes, während du die Betreuer genau der Pakete bezahlen, die du verwendest. [Erfahre hier mehr.](https://tidelift.com/subscription/pkg/pypi-rich?utm_source=pypi-rich&utm_medium=referral&utm_campaign=enterprise&utm_term=repo)
+
+# Projekte, die Rich verwenden
+
+Hier sind ein paar Projekte, die Rich verwenden:
+
+- [BrancoLab/BrainRender](https://github.com/BrancoLab/BrainRender)
+ ein Python-Paket zur Visualisierung dreidimensionaler neuro-anatomischer Daten
+- [Ciphey/Ciphey](https://github.com/Ciphey/Ciphey)
+ Automatisiertes Entschlüsselungswerkzeug
+- [emeryberger/scalene](https://github.com/emeryberger/scalene)
+ ein leistungsstarker, hochpräziser CPU- und Speicher-Profiler für Python
+- [hedythedev/StarCli](https://github.com/hedythedev/starcli)
+ Durchsuchen von GitHub-Trending-Projekten in der Kommandozeile
+- [intel/cve-bin-tool](https://github.com/intel/cve-bin-tool)
+ Dieses Tool scannt nach einer Reihe von verbreiteten, verwundbaren Komponenten (openssl, libpng, libxml2, expat und ein paar andere), um dir mitzuteilen, ob dein System verbreitete Bibliotheken mit bekannten Sicherheitslücken enthält.
+- [nf-core/tools](https://github.com/nf-core/tools)
+ Python-Paket mit Hilfswerkzeugen für die nf-core-Gemeinschaft.
+- [cansarigol/pdbr](https://github.com/cansarigol/pdbr)
+ pdb + Rich-Bibliothek für erweitertes Debugging
+- [plant99/felicette](https://github.com/plant99/felicette)
+ Satellitenbilder für Dummies.
+- [seleniumbase/SeleniumBase](https://github.com/seleniumbase/SeleniumBase)
+ Automatisiere & Teste 10x schneller mit Selenium & pytest. Inklusive Batterien.
+- [smacke/ffsubsync](https://github.com/smacke/ffsubsync)
+ Automatisch Untertitel mit Video synchronisieren.
+- [tryolabs/norfair](https://github.com/tryolabs/norfair)
+ Leichtgewichtige Python-Bibliothek zum Hinzufügen von 2D-Objektverfolgung in Echtzeit zu jedem Detektor.
+- [ansible/ansible-lint](https://github.com/ansible/ansible-lint) Ansible-lint prüft Playbooks auf Praktiken und Verhalten, die möglicherweise verbessert werden könnten
+- [ansible-community/molecule](https://github.com/ansible-community/molecule) Ansible Molecule-Testing-Framework
+- +[Viele weitere](https://github.com/willmcgugan/rich/network/dependents)!
diff --git a/README.es.md b/README.es.md
index f8035358c3..c9cb2af141 100644
--- a/README.es.md
+++ b/README.es.md
@@ -1,10 +1,26 @@
-# Rich
-
+[](https://pepy.tech/project/rich)
[](https://badge.fury.io/py/rich)
[](https://codecov.io/gh/willmcgugan/rich)
[](https://www.willmcgugan.com/tag/rich/)
[](https://twitter.com/willmcgugan)
+
+
+[English readme](https://github.com/willmcgugan/rich/blob/master/README.md)
+ • [简体中文 readme](https://github.com/willmcgugan/rich/blob/master/README.cn.md)
+ • [正體中文 readme](https://github.com/willmcgugan/rich/blob/master/README.zh-tw.md)
+ • [Lengua española readme](https://github.com/willmcgugan/rich/blob/master/README.es.md)
+ • [Deutsche readme](https://github.com/willmcgugan/rich/blob/master/README.de.md)
+ • [Läs på svenska](https://github.com/willmcgugan/rich/blob/master/README.sv.md)
+ • [日本語 readme](https://github.com/willmcgugan/rich/blob/master/README.ja.md)
+ • [한국어 readme](https://github.com/willmcgugan/rich/blob/master/README.kr.md)
+ • [Français readme](https://github.com/willmcgugan/rich/blob/master/README.fr.md)
+ • [Schwizerdütsch readme](https://github.com/willmcgugan/rich/blob/master/README.de-ch.md)
+ • [हिन्दी readme](https://github.com/willmcgugan/rich/blob/master/README.hi.md)
+ • [Português brasileiro readme](https://github.com/willmcgugan/rich/blob/master/README.pt-br.md)
+ • [Italian readme](https://github.com/willmcgugan/rich/blob/master/README.it.md)
+ • [Русский readme](https://github.com/willmcgugan/rich/blob/master/README.ru.md)
+
Rich es un paquete de Python para texto _enriquecido_ y un hermoso formato en la terminal.
La [API Rich](https://rich.readthedocs.io/en/latest/) facilita la adición de color y estilo a la salida del terminal. Rich también puede representar tablas bonitas, barras de progreso, markdown, código fuente resaltado por sintaxis, trazas y más — listo para usar.
@@ -23,10 +39,16 @@ Rich funciona con [Jupyter notebooks](https://jupyter.org/) sin necesidad de con
## Instalación
-Instale con `pip` o su administrador de paquetes PyPi favorito.
+Instale con `pip` o su administrador de paquetes PyPI favorito.
+```sh
+python -m pip install rich
```
-pip install rich
+
+Ejecute lo siguiente para probar la salida de Rich sobre su terminal:
+
+```sh
+python -m rich
```
## Función print de Rich
@@ -88,7 +110,30 @@ console.print("Where there is a [bold cyan]Will[/bold cyan] there [u]is[/u] a [i

-### Registro de consola
+Usted puede usar el objeto Console para generar salida sofisticada con mínimo esfuerzo. Ver la [API Console](https://rich.readthedocs.io/en/latest/console.html) docs para detalles.
+
+## Rich Inspector
+
+Rich tiene ua función [inspeccionar](https://rich.readthedocs.io/en/latest/reference/init.html?highlight=inspect#rich.inspect) cual puede producir un reporte sobre cualquier objeto Python, como clases, instancia o builtin.
+
+```python
+>>> my_list = ["foo", "bar"]
+>>> from rich import inspect
+>>> inspect(my_list, methods=True)
+```
+
+
+
+Ver la [docs inspector](https://rich.readthedocs.io/en/latest/reference/init.html#rich.inspect) para detalles.
+
+# Paquete Rich
+
+Rich contiene un número de builtin _renderables_ que puedes usar para crear salida elegante en su CLI y ayudarle a depurar su código.
+
+Haga clic en los siguientes títulos para obtener más detalles:
+
+
+Registro de consola
El objeto Console tiene un método `log()` que tiene una interfaz similar a `print()`, pero también muestra una columna para la hora actual y el archivo y la línea que realizó la llamada. De forma predeterminada, Rich resaltará la sintaxis de las estructuras de Python y de las cadenas de reproducción. Si registra una colección (es decir, un diccionario o una lista), Rich la imprimirá de forma bonita para que quepa en el espacio disponible. A continuación, se muestra un ejemplo de algunas de estas funciones.
@@ -123,13 +168,17 @@ Tenga en cuenta el argumento `log_locals`, que genera una tabla que contiene las
El método de registro podría usarse para iniciar sesión en el terminal para aplicaciones de larga ejecución, como servidores, pero también es una ayuda de depuración muy buena.
-### Controlador de registro
+
+
+Controlador de registro
También puede usar la [Handler class](https://rich.readthedocs.io/en/latest/logging.html) incorporada para formatear y colorear la salida del módulo de registro de Python. Aquí hay un ejemplo de la salida:

+
-## Emoji
+
+Emoji
Para insertar un emoji en la salida de la consola, coloque el nombre entre dos puntos. He aquí un ejemplo:
@@ -139,8 +188,10 @@ Para insertar un emoji en la salida de la consola, coloque el nombre entre dos p
```
Utilice esta función con prudencia.
+
-## Tablas
+
+Tablas
Rich puede renderizar [tablas](https://rich.readthedocs.io/en/latest/tables.html) flexibles con caracteres de cuadro Unicode. Existe una gran variedad de opciones de formato para bordes, estilos, alineación de celdas, etc.
@@ -162,7 +213,7 @@ table.add_column("Title")
table.add_column("Production Budget", justify="right")
table.add_column("Box Office", justify="right")
table.add_row(
- "Dev 20, 2019", "Star Wars: The Rise of Skywalker", "$275,000,000", "$375,126,118"
+ "Dec 20, 2019", "Star Wars: The Rise of Skywalker", "$275,000,000", "$375,126,118"
)
table.add_row(
"May 25, 2018",
@@ -190,7 +241,10 @@ La clase `Table` es lo suficientemente inteligente como para cambiar el tamaño

-## Barras de progreso
+
+
+
+Barras de progreso
Rich puede representar varias barras de [progreso](https://rich.readthedocs.io/en/latest/progress.html) sin parpadeos para realizar un seguimiento de las tareas de larga duración.
@@ -213,12 +267,70 @@ Las columnas pueden configurarse para mostrar los detalles que desee. Las column
Para probar esto usted mismo, consulte [examples/downloader.py](https://github.com/willmcgugan/rich/blob/master/examples/downloader.py) que puede descargar varias URL simultáneamente mientras muestra el progreso.
-## Columnas
+
+
+
+Estado
+
+Para situaciones en las que es difícil calcular el progreso, puede utilizar el método [status](https://rich.readthedocs.io/en/latest/reference/console.html#rich.console.Console.status) que mostrará una animación y un mensaje de "spinner". La animación no le impedirá usar la consola con normalidad. He aquí un ejemplo:
+
+```python
+from time import sleep
+from rich.console import Console
+
+console = Console()
+tasks = [f"task {n}" for n in range(1, 11)]
+
+with console.status("[bold green]Working on tasks...") as status:
+ while tasks:
+ task = tasks.pop(0)
+ sleep(1)
+ console.log(f"{task} complete")
+```
+
+Esto genera la siguiente salida en el terminal.
+
+
+
+Las animaciones de spinner fueron tomadas de [cli-spinners](https://www.npmjs.com/package/cli-spinners). Puede seleccionar un spinner especificando el `spinner` parameter. Ejecute el siguiente comando para ver los valores disponibles:
+
+```
+python -m rich.spinner
+```
+
+El comando anterior genera la siguiente salida en la terminal:
+
+
+
+
+
+
+Árbol
+
+Rich genera un [tree](https://rich.readthedocs.io/en/latest/tree.html) con líneas de guía. Un árbol es ideal para mostrar una estructura de archivos, o cualquier otro dato jerárquico.
+
+Las etiquetas del árbol pueden ser texto simple o cualquier otra cosa que Rich pueda mostar. Ejecuta lo siguiente para una demostración:
+
+```
+python -m rich.tree
+```
+
+Esto genera la siguiente salida:
+
+
+
+Ver el ejemplo [tree.py](https://github.com/willmcgugan/rich/blob/master/examples/tree.py) para un script que muestra una vista de árbol de cualquier directorio, similar a el comando de linux `tree`.
+
+
+
+
+Columnas
Rich puede representar contenido en [columnas](https://rich.readthedocs.io/en/latest/columns.html) ordenadas con un ancho igual u óptimo. Aquí hay un clon muy básico del comando (MacOS / Linux) `ls` que muestra una lista de directorios en columnas:
```python
import os
+import sys
from rich import print
from rich.columns import Columns
@@ -231,7 +343,10 @@ La siguiente captura de pantalla es el resultado del [ejemplo de columnas](https

-## Markdown
+
+
+
+Markdown
Rich puede renderizar [markdown](https://rich.readthedocs.io/en/latest/markdown.html) y hace un trabajo razonable al traducir el formato al terminal.
@@ -251,7 +366,10 @@ Esto producirá una salida similar a la siguiente:

-## Resaltado de sintaxis
+
+
+
+Resaltado de sintaxis
Rich usa el paquete [pygments](https://pygments.org/) para implementar [resaltado de sintaxis](https://rich.readthedocs.io/en/latest/syntax.html). El uso es similar a renderizar markdown; construya un objeto `Syntax` e imprímalo en la consola. He aquí un ejemplo:
@@ -283,7 +401,10 @@ Esto producirá el siguiente resultado:

-## Tracebacks
+
+
+
+Tracebacks
Rich puede representar [tracebacks hermosos](https://rich.readthedocs.io/en/latest/traceback.html) que son más fáciles de leer y muestran más código que los tracebacks estándar de Python. Puede configurar Rich como el controlador tracebacks predeterminado para que todas las excepciones sin capturar sean procesadas por Rich.
@@ -291,7 +412,17 @@ Así es como se ve en OSX (similar en Linux):

-## Proyecto usando Rich
+
+
+Todos los renderizables enriquecidos utilizan el [Console Protocol](https://rich.readthedocs.io/en/latest/protocol.html), que también puede utilizar para implementar su propio contenido Rich.
+
+# Rich para empresas
+
+Disponible como parte de la suscripción a Tidelift.
+
+Los mantenedores de Rich y miles de otros paquetes están trabajando con Tidelift para brindar soporte comercial y mantenimiento para los paquetes de código abierto que usa para construir sus aplicaciones. Ahorre tiempo, reduzca el riesgo y mejore el estado del código, mientras paga a los mantenedores de los paquetes exactos que utiliza. [Más información](https://tidelift.com/subscription/pkg/pypi-rich?utm_source=pypi-rich&utm_medium=referral&utm_campaign=enterprise&utm_term=repo)
+
+# Proyecto usando Rich
Aquí hay algunos proyectos que usan Rich:
@@ -316,5 +447,7 @@ Aquí hay algunos proyectos que usan Rich:
- [smacke/ffsubsync](https://github.com/smacke/ffsubsync)
Sincronice automáticamente los subtítulos con el video.
- [tryolabs/norfair](https://github.com/tryolabs/norfair)
-- Libreria de Python para agregar tracking a cualquier detector.
+ Libreria de Python para agregar tracking a cualquier detector.
+- [ansible/ansible-lint](https://github.com/ansible/ansible-lint) Ansible-lint comprueba los playbooks en busca de prácticas y comportamientos que podrían mejorarse
+- [ansible-community/molecule](https://github.com/ansible-community/molecule) Marco de prueba de Ansible Molecule
- +¡[Muchos más](https://github.com/willmcgugan/rich/network/dependents)!
diff --git a/README.fr.md b/README.fr.md
new file mode 100644
index 0000000000..1a09c054a1
--- /dev/null
+++ b/README.fr.md
@@ -0,0 +1,447 @@
+[](https://pepy.tech/project/rich)
+[](https://badge.fury.io/py/rich)
+[](https://codecov.io/gh/willmcgugan/rich)
+[](https://www.willmcgugan.com/tag/rich/)
+[](https://twitter.com/willmcgugan)
+
+
+
+[English readme](https://github.com/willmcgugan/rich/blob/master/README.md)
+ • [简体中文 readme](https://github.com/willmcgugan/rich/blob/master/README.cn.md)
+ • [正體中文 readme](https://github.com/willmcgugan/rich/blob/master/README.zh-tw.md)
+ • [Lengua española readme](https://github.com/willmcgugan/rich/blob/master/README.es.md)
+ • [Deutsche readme](https://github.com/willmcgugan/rich/blob/master/README.de.md)
+ • [Läs på svenska](https://github.com/willmcgugan/rich/blob/master/README.sv.md)
+ • [日本語 readme](https://github.com/willmcgugan/rich/blob/master/README.ja.md)
+ • [한국어 readme](https://github.com/willmcgugan/rich/blob/master/README.kr.md)
+ • [Français readme](https://github.com/willmcgugan/rich/blob/master/README.fr.md)
+ • [Schwizerdütsch readme](https://github.com/willmcgugan/rich/blob/master/README.de-ch.md)
+ • [हिन्दी readme](https://github.com/willmcgugan/rich/blob/master/README.hi.md)
+ • [Português brasileiro readme](https://github.com/willmcgugan/rich/blob/master/README.pt-br.md)
+ • [Italian readme](https://github.com/willmcgugan/rich/blob/master/README.it.md)
+ • [Русский readme](https://github.com/willmcgugan/rich/blob/master/README.ru.md)
+
+Rich est une bibliothèque Python pour le _rich_ texte et la mise en forme dans le terminal.
+
+L'[API Rich](https://rich.readthedocs.io/en/latest/) permet d'ajouter facilement de la couleur et du style sur la sortie du terminal. Rich peut également rendre de jolis tableaux, des barres de progression, du markdown, du code source avec de la coloration syntaxique, des traçeurs d'erreurs et bien d'autres choses encore, et ce dès le départ.
+
+
+
+Pour une introduction vidéo à Rich, voir [camelcode.io](https://calmcode.io/rich/introduction.html) par [@ fishnets88](https://twitter.com/fishnets88)
+
+Voyez ce que [les gens disent de Rich](https://www.willmcgugan.com/blog/pages/post/rich-tweets/)
+
+## Compatibilité
+
+Rich fonctionne avec Linux, OSX et Windows. True color / emoji fonctionne avec le nouveau Terminal Windows, le terminal classique est limité à 16 couleurs. Rich nécessite Python 3.6.1 ou plus.
+
+Rich fonctionne avec les notebooks Jupyter sans configuration supplémentaire.
+
+## Installation
+
+Installez avec `pip` ou votre gestionnaire de paquets PyPI préféré.
+
+```sh
+python -m pip install rich
+```
+
+Exécutez ce qui suit pour tester la sortie de Rich sur votre terminal :
+
+```sh
+python -m rich
+```
+
+## Rich Print
+
+Pour ajouter sans effort une sortie Rich à votre application, vous pouvez importer la méthode [rich print](https://rich.readthedocs.io/en/latest/introduction.html#quick-start), qui a la même signature que la fonction Python intégrée. Essayez ceci :
+
+```python
+from rich import print
+
+print("Hello, [bold magenta]World[/bold magenta]!", ":vampire:", locals())
+```
+
+
+
+## Rich REPL
+
+Rich peut être installé dans le REPL de Python, de sorte que toutes les structures de données seront joliment affichées et mises en évidence.
+
+```python
+>>> from rich import pretty
+>>> pretty.install()
+```
+
+
+
+## Utilisation de Console
+
+Pour mieux contrôler le contenu rich du terminal, importez et construisez un objet [Console](https://rich.readthedocs.io/en/latest/reference/console.html#rich.console.Console)
+
+```python
+from rich.console import Console
+
+console = Console()
+```
+
+L'objet Console possède une méthode `print` dont l'interface est intentionnellement similaire à celle de la fonction `print` native. Voici un exemple d'utilisation :
+
+```python
+console.print("Hello", "World!")
+```
+
+Comme vous pouvez vous y attendre, cela va afficher "Hello World !" sur le terminal. Notez que, contrairement à la fonction d'affichage intégrée, Rich mettra votre texte en forme pour qu'il tienne dans la largeur du terminal.
+
+Il y a plusieurs façons d'ajouter de la couleur et du style à votre sortie. Vous pouvez définir un style pour l'ensemble de la sortie en ajoutant un argument de mot-clé style. Voici un exemple :
+
+```python
+console.print("Hello", "World!", style="bold red")
+```
+
+La sortie sera quelque chose comme ce qui suit :
+
+
+
+C'est très bien pour styliser une ligne de texte à la fois. Pour un style plus fin, Rich rend un balisage spécial dont la syntaxe est similaire à celle du [bbcode](https://en.wikipedia.org/wiki/BBCode). Voici un exemple :
+
+```python
+console.print("Where there is a [bold cyan]Will[/bold cyan] there [u]is[/u] a [i]way[/i].")
+```
+
+
+
+Vous pouvez utiliser un objet Console pour générer une sortie sophistiquée avec un effort minimal. Consultez la documentation de l'[API Console](https://rich.readthedocs.io/en/latest/console.html) pour plus de détails.
+
+## Rich Inspect
+
+Rich possède une fonction [inspect](https://rich.readthedocs.io/en/latest/reference/init.html?highlight=inspect#rich.inspect) qui peut produire un rapport sur n'importe quel objet Python, comme une classe, une instance ou une fonction intégrée.
+
+```python
+>>> my_list = ["foo", "bar"]
+>>> from rich import inspect
+>>> inspect(my_list, methods=True)
+```
+
+
+
+Consultez la [documentation d'inspect](https://rich.readthedocs.io/en/latest/reference/init.html#rich.inspect) pour plus de détails.
+
+## Bibliothèque Rich
+Rich contient un certain nombre _d'éléments de rendu_ intégrés que vous pouvez utiliser pour créer une sortie élégante dans votre CLI et vous aider à déboguer votre code.
+
+Cliquez sur les rubriques suivantes pour plus de détails :
+
+
+Log
+
+L'objet Console a une méthode `log()` qui a une interface similaire à `print()`, mais qui rend aussi une colonne pour l'heure actuelle, le fichier et la ligne qui ont fait l'appel. Par défaut, Rich fera la coloration syntaxique des structures Python et des chaînes repr. Si vous enregistrez une collection (i.e. un dict ou une liste) Rich affichera la collection de façon à ce qu'elle tienne dans l'espace disponible. Voici un exemple de certaines de ces fonctionnalités.
+
+```python
+from rich.console import Console
+console = Console()
+
+test_data = [
+ {"jsonrpc": "2.0", "method": "sum", "params": [None, 1, 2, 4, False, True], "id": "1",},
+ {"jsonrpc": "2.0", "method": "notify_hello", "params": [7]},
+ {"jsonrpc": "2.0", "method": "subtract", "params": [42, 23], "id": "2"},
+]
+
+def test_log():
+ enabled = False
+ context = {
+ "foo": "bar",
+ }
+ movies = ["Deadpool", "Rise of the Skywalker"]
+ console.log("Hello from", console, "!")
+ console.log(test_data, log_locals=True)
+
+
+test_log()
+```
+
+L'opération ci-dessus produit le résultat suivant :
+
+
+
+Notez l'argument `log_locals`, qui produit un tableau contenant les variables locales où la méthode log a été appelée.
+
+La méthode log peut être utilisée pour la journalisation vers le terminal pour les applications qui tournent longtemps, comme les serveurs, mais c'est aussi une très bonne aide au débogage.
+
+
+
+Journalisation
+
+Vous pouvez également utiliser la classe intégrée [Handler](https://rich.readthedocs.io/en/latest/logging.html) pour formater et coloriser les sorties du module de journalisation de Python. Voici un exemple de sortie :
+
+
+
+
+
+Emoji
+
+Pour insérer un emoji dans la sortie de la console, placez le nom entre deux points. Voici un exemple :
+
+```python
+>>> console.print(":smiley: :vampire: :pile_of_poo: :thumbs_up: :raccoon:")
+😃 🧛 💩 👍 🦝
+```
+
+Veuillez utiliser cette fonction à bon escient.
+
+
+
+Tableaux
+
+Rich peut rendre des [tableaux](https://rich.readthedocs.io/en/latest/tables.html) flexibles avec des caractères de boîte unicode. Il existe une grande variété d'options de formatage pour les bordures, les styles, l'alignement des cellules, etc.
+
+
+
+L'animation ci-dessus a été générée avec [table_movie.py](https://github.com/willmcgugan/rich/blob/master/examples/table_movie.py) dans le répertoire des exemples.
+
+Voici un exemple de tableau plus simple :
+
+```python
+from rich.console import Console
+from rich.table import Table
+
+console = Console()
+
+table = Table(show_header=True, header_style="bold magenta")
+table.add_column("Date", style="dim", width=12)
+table.add_column("Title")
+table.add_column("Production Budget", justify="right")
+table.add_column("Box Office", justify="right")
+table.add_row(
+ "Dec 20, 2019", "Star Wars: The Rise of Skywalker", "$275,000,000", "$375,126,118"
+)
+table.add_row(
+ "May 25, 2018",
+ "[red]Solo[/red]: A Star Wars Story",
+ "$275,000,000",
+ "$393,151,347",
+)
+table.add_row(
+ "Dec 15, 2017",
+ "Star Wars Ep. VIII: The Last Jedi",
+ "$262,000,000",
+ "[bold]$1,332,539,889[/bold]",
+)
+
+console.print(table)
+```
+
+Cela produit le résultat suivant :
+
+
+
+Notez que les balises de la console sont rendues de la même manière que `print()` et `log()`. En fait, tout ce qui peut être rendu par Rich peut être inclus dans les en-têtes / lignes (même d'autres tables).
+
+La classe `Table` est suffisamment intelligente pour redimensionner les colonnes en fonction de la largeur disponible du terminal, en enveloppant le texte si nécessaire. Voici le même exemple, avec un terminal plus petit que le tableau ci-dessus :
+
+
+
+
+
+Barres de progression
+
+Rich peut afficher plusieurs [barres de progression](https://rich.readthedocs.io/en/latest/progress.html) sans scintillement pour suivre les tâches de longue haleine.
+
+Pour une utilisation basique, bouclez sur n'importe quelle séquence dans la fonction `track` et itérez sur le résultat. Voici un exemple :
+
+```python
+from rich.progress import track
+
+for step in track(range(100)):
+ do_step(step)
+```
+
+Il n'est pas beaucoup plus difficile d'ajouter plusieurs barres de progression. Voici un exemple tiré de la documentation :
+
+
+
+Les colonnes peuvent être configurées pour afficher tous les détails que vous souhaitez. Les colonnes intégrées comprennent le pourcentage d'achèvement, la taille du fichier, la vitesse du fichier et le temps restant. Voici un autre exemple montrant un téléchargement en cours :
+
+
+
+Pour l'essayer vous-même, voyez [examples/downloader.py](https://github.com/willmcgugan/rich/blob/master/examples/downloader.py) qui peut télécharger plusieurs URL simultanément tout en affichant la progression.
+
+
+
+
+Statut
+
+Pour les situations où il est difficile de calculer la progression, vous pouvez utiliser la méthode [status](https://rich.readthedocs.io/en/latest/reference/console.html#rich.console.Console.status) qui affichera une animation et un message de type "spinner". L'animation ne vous empêchera pas d'utiliser la console normalement. Voici un exemple :
+
+```python
+from time import sleep
+from rich.console import Console
+
+console = Console()
+tasks = [f"task {n}" for n in range(1, 11)]
+
+with console.status("[bold green]Working on tasks...") as status:
+ while tasks:
+ task = tasks.pop(0)
+ sleep(1)
+ console.log(f"{task} complete")
+```
+
+Cela génère la sortie suivante dans le terminal.
+
+
+
+Les animations des toupies ont été empruntées à [cli-spinners](https://www.npmjs.com/package/cli-spinners). Vous pouvez sélectionner un spinner en spécifiant le paramètre `spinner`. Exécutez la commande suivante pour voir les valeurs disponibles :
+
+```
+python -m rich.spinner
+```
+
+La commande ci-dessus génère la sortie suivante dans le terminal :
+
+
+
+
+
+Arborescence
+
+Rich peut affiché une [arborescence](https://rich.readthedocs.io/en/latest/tree.html) avec des lignes de repère. Une arborescence est idéale pour afficher une structure de fichiers, ou toute autre donnée hiérarchique.
+
+Les étiquettes de cette arborescence peuvent être du texte simple ou tout autre élément que Rich peut rendre. Exécutez ce qui suit pour une démonstration :
+
+```
+python -m rich.tree
+```
+
+La commande ci-dessus génère la sortie suivante dans le terminal :
+
+
+
+Voir l'exemple [tree.py](https://github.com/willmcgugan/rich/blob/master/examples/tree.py) pour un script qui affiche une vue arborescente de n'importe quel répertoire, similaire à la commande linux `tree`.
+
+
+
+
+Colonnes
+
+Rich peut rendre le contenu en [colonnes](https://rich.readthedocs.io/en/latest/columns.html) avec une largeur égale ou optimale. Voici un clone très basique de la commande `ls` (MacOS / Linux) qui affiche une liste de répertoires en colonnes :
+
+```python
+import os
+import sys
+
+from rich import print
+from rich.columns import Columns
+
+directory = os.listdir(sys.argv[1])
+print(Columns(directory))
+```
+
+La capture d'écran suivante est le résultat de [columns example](https://github.com/willmcgugan/rich/blob/master/examples/columns.py) qui affiche les données extraites d'une API en colonnes :
+
+
+
+
+
+
+Markdown
+
+Rich peut rendre le [markdown](https://rich.readthedocs.io/en/latest/markdown.html) et fait un travail raisonnable pour traduire le formatage dans le terminal.
+
+Pour rendre du markdown, importez la classe `Markdown` et construisez-la avec une chaîne contenant du code markdown. Ensuite, affichez-la dans la console. Voici un exemple :
+
+```python
+from rich.console import Console
+from rich.markdown import Markdown
+
+console = Console()
+with open("README.md") as readme:
+ markdown = Markdown(readme.read())
+console.print(markdown)
+```
+
+Cela produira un résultat semblable à ce qui suit :
+
+
+
+
+
+
+Mise en couleur de la syntaxe
+
+Rich utilise la bibliothèque [pygments](https://pygments.org/) pour implémenter la [coloration syntaxique](https://rich.readthedocs.io/en/latest/syntax.html). L'utilisation est similaire au rendu de markdown ; construire un objet `Syntax` et afficher celui-ci sur la console. Voici un exemple :
+
+```python
+from rich.console import Console
+from rich.syntax import Syntax
+
+my_code = '''
+def iter_first_last(values: Iterable[T]) -> Iterable[Tuple[bool, bool, T]]:
+ """Iterate and generate a tuple with a flag for first and last value."""
+ iter_values = iter(values)
+ try:
+ previous_value = next(iter_values)
+ except StopIteration:
+ return
+ first = True
+ for value in iter_values:
+ yield first, False, previous_value
+ first = False
+ previous_value = value
+ yield first, True, previous_value
+'''
+syntax = Syntax(my_code, "python", theme="monokai", line_numbers=True)
+console = Console()
+console.print(syntax)
+```
+
+Cela produira le résultat suivant :
+
+
+
+
+
+Tracebacks
+
+Rich peut rendre des [traçages d'erreurs](https://rich.readthedocs.io/en/latest/traceback.html) plus faciles à lire et montrent plus de code que les traçages d'erreurs standard de Python. Vous pouvez définir Rich comme le gestionnaire d'erreurs par défaut afin que toutes les exceptions non capturées soient rendues par Rich.
+
+Voici à quoi cela ressemble sous OSX (similaire sous Linux) :
+
+
+
+
+
+Tous les éléments de rendu utilisent le [Console Protocol](https://rich.readthedocs.io/en/latest/protocol.html), que vous pouvez également utiliser pour mettre en œuvre votre propre contenu Rich.
+
+# Rich pour les entreprises
+
+Disponible dans le cadre de l'abonnement Tidelift.
+
+Les mainteneurs de Rich et de milliers d'autres paquets collaborent avec Tidelift pour fournir un support et une maintenance commerciale pour les paquets open source que vous utilisez pour construire vos applications. Gagnez du temps, réduisez les risques et améliorez la qualité du code, tout en payant les mainteneurs des paquets que vous utilisez. [En savoir plus](https://tidelift.com/subscription/pkg/pypi-rich?utm_source=pypi-rich&utm_medium=referral&utm_campaign=enterprise&utm_term=repo)
+
+# Projets utilisant Rich
+
+- [BrancoLab/BrainRender](https://github.com/BrancoLab/BrainRender)
+ un package python pour la visualisation de données neuro-anatomiques tridimensionnelles
+- [Ciphey/Ciphey](https://github.com/Ciphey/Ciphey)
+ Outil de déchiffrage automatisé
+- [emeryberger/scalene](https://github.com/emeryberger/scalene)
+ un profileur de CPU et de mémoire haute performance et haute précision pour Python
+- [hedythedev/StarCli](https://github.com/hedythedev/starcli)
+ Parcourir les projets tendances de GitHub à partir de votre ligne de commande
+- [intel/cve-bin-tool](https://github.com/intel/cve-bin-tool)
+ Cet outil recherche un certain nombre de composants courants et vulnérables (openssl, libpng, libxml2, expat et quelques autres) pour vous indiquer si votre système comprend des bibliothèques présentant des vulnérabilités connues.
+- [nf-core/tools](https://github.com/nf-core/tools)
+ Paquet Python contenant des outils d'aide pour la communauté nf-core.
+- [cansarigol/pdbr](https://github.com/cansarigol/pdbr)
+ pdb + bibliothèque Rich pour un débogage amélioré
+- [plant99/felicette](https://github.com/plant99/felicette)
+ L'imagerie satellite pour les nuls.
+- [seleniumbase/SeleniumBase](https://github.com/seleniumbase/SeleniumBase)
+ Automatisez et testez 10 fois plus vite avec Selenium et pytest. Piles incluses.
+- [smacke/ffsubsync](https://github.com/smacke/ffsubsync)
+ Synchronisation automatique des sous-titres avec la vidéo.
+- [tryolabs/norfair](https://github.com/tryolabs/norfair)
+ Bibliothèque Python légère pour ajouter le suivi d'objets 2D en temps réel à n'importe quel détecteur.
+- [ansible/ansible-lint](https://github.com/ansible/ansible-lint) Ansible-lint vérifie dans les playbooks les pratiques et comportements qui pourraient être améliorés.
+- [ansible-community/molecule](https://github.com/ansible-community/molecule) Cadre de test Ansible Molecule.
+- [Beaucoup d'autres](https://github.com/willmcgugan/rich/network/dependents) !
diff --git a/README.hi.md b/README.hi.md
new file mode 100644
index 0000000000..c3c62f5321
--- /dev/null
+++ b/README.hi.md
@@ -0,0 +1,444 @@
+[](https://pepy.tech/project/rich)
+[](https://badge.fury.io/py/rich)
+[](https://codecov.io/gh/willmcgugan/rich)
+[](https://www.willmcgugan.com/tag/rich/)
+[](https://twitter.com/willmcgugan)
+
+
+
+[English readme](https://github.com/willmcgugan/rich/blob/master/README.md)
+ • [简体中文 readme](https://github.com/willmcgugan/rich/blob/master/README.cn.md)
+ • [正體中文 readme](https://github.com/willmcgugan/rich/blob/master/README.zh-tw.md)
+ • [Lengua española readme](https://github.com/willmcgugan/rich/blob/master/README.es.md)
+ • [Deutsche readme](https://github.com/willmcgugan/rich/blob/master/README.de.md)
+ • [Läs på svenska](https://github.com/willmcgugan/rich/blob/master/README.sv.md)
+ • [日本語 readme](https://github.com/willmcgugan/rich/blob/master/README.ja.md)
+ • [한국어 readme](https://github.com/willmcgugan/rich/blob/master/README.kr.md)
+ • [Français readme](https://github.com/willmcgugan/rich/blob/master/README.fr.md)
+ • [Schwizerdütsch readme](https://github.com/willmcgugan/rich/blob/master/README.de-ch.md)
+ • [हिन्दी readme](https://github.com/willmcgugan/rich/blob/master/README.hi.md)
+ • [Português brasileiro readme](https://github.com/willmcgugan/rich/blob/master/README.pt-br.md)
+ • [Italian readme](https://github.com/willmcgugan/rich/blob/master/README.it.md)
+ • [Русский readme](https://github.com/willmcgugan/rich/blob/master/README.ru.md)
+
+Rich टर्मिनल में _समृद्ध_ पाठ और सुंदर स्वरूपण के लिए एक Python संग्रह है।
+
+
+[Rich API](https://rich.readthedocs.io/en/latest/) टर्मिनल उत्पादन में रंग और शैली डालना आसान बनाता है। Rich सुंदर सारणियाँ, प्रगति सूचक डंडे, markdown, रचनाक्रम चिन्हांकित स्त्रोत कोड, ट्रेसबैक आदि प्रस्तुत कर सकता है - बिना कुछ बदले।
+
+
+
+Rich के वीडियो परिचय के लिए देखें [@fishnets88](https://twitter.com/fishnets88) द्वारा बनाई गई [calmcode.io](https://calmcode.io/rich/introduction.html)।
+
+
+देखें [लोग रिच के बारे में क्या कह रहे हैं](https://www.willmcgugan.com/blog/pages/post/rich-tweets/)।
+
+## अनुकूलता
+
+Rich Linux, OSX, और Windows के साथ चल सकता है। सच्चा रंग/इमोजी नए Windows टर्मिनल के साथ काम करता है, पुराना टर्मिनल १६ रंगों तक ही सीमित है। Rich के लिए Python ३.६.१ या बाद का होना आवश्यक है।
+
+Rich बिना किसी अतिरिक्त विन्यास के [Jupyter नोटबुक](https://jupyter.org/) के साथ काम करता है।
+
+## स्थापना करना
+
+`pip` या अपने पसंदीदा PyPI संकुल प्रबंधक (package manager) के द्वारा आप इसे स्थापित कर सकते हैं।
+
+```sh
+python -m pip install rich
+```
+
+आपके टर्मिनल पर Rich उत्पादन का परीक्षण करने के लिए यह चलाएं:
+```sh
+python -m rich
+```
+
+## Rich Print
+
+अपने अनुप्रयोग में सरलता से समृद्ध उत्पादन जोड़ने के लिए, आप [rich print](https://rich.readthedocs.io/en/latest/introduction.html#quick-start) क्रिया को आयात कर सकते हैं, जिसका हस्ताक्षर अंतर्निहित Python क्रिया के समान है। यह चलाने की कोशिश करें:
+
+```python
+from rich import print
+
+print("Hello, [bold magenta]World[/bold magenta]!", ":vampire:", locals())
+```
+
+
+
+## Rich REPL
+
+Rich को Python REPL में स्थापित किया जा सकता है, ताकि कोई भी डेटा संरचनाएं सुंदरता से छपे तथा चिह्नांकित हों।
+```python
+>>> from rich import pretty
+>>> pretty.install()
+```
+
+
+
+## कॉनसोल (Console) का इस्तेमाल करना
+
+समृद्ध टर्मिनल वस्तुओं पर अधिक नियंत्रण के लिए, आयात और निर्मित करें एक [Console](https://rich.readthedocs.io/en/latest/reference/console.html#rich.console.Console) वस्तु को।
+
+```python
+from rich.console import Console
+
+console = Console()
+```
+
+Console वस्तु के पास एक `print` क्रिया है जिसका अंतरापृष्ठ जानबूझ कर अंतर्निहित `print` क्रिया के सामान है। इसके इस्तेमाल का एक उदाहरण :
+```python
+console.print("Hello", "World!")
+```
+
+
+जैसा आप उम्मीद कर रहे होंगे, यह टर्मिनल पर `"Hello World!"` छाप देगा। ध्यान दें की अंतर्निहित `print` क्रिया के भिन्न, Rich आपके पाठ को "वर्ड-रैप" कर देगा ताकि वह टर्मिनल की चौड़ाई में फस सके।
+
+अपने उत्पादन में रंग और शैली डालने के लिए एक से अधिक तरीके हैं। `style` कीवर्ड तर्क जोड़कर आप सम्पूर्ण उत्पादन के लिए शैली निर्धारित कर सकते हैं। इसका एक उदाहरण:
+```python
+console.print("Hello", "World!", style="bold red")
+```
+
+उत्पादन कुछ इस प्रकार का होगा:
+
+
+
+ये एक बारी में एक पंक्ति का शैलीकरण करने के लिए तो ठीक है। अधिक बारीकी से शैलीकरण करने के लिए, Rich एक विशेष मार्कअप को प्रदर्शित करता है जो रचनाक्रम में [bbcode](https://en.wikipedia.org/wiki/BBCode) से मिलता-जुलता है। इसका एक उदाहरण:
+
+```python
+console.print("Where there is a [bold cyan]Will[/bold cyan] there [u]is[/u] a [i]way[/i].")
+```
+
+
+
+कम-से-कम मेहनत में परिष्कृत उत्पादन उत्पन्न करने के लिए आप एक Console वस्तु का उपयोग कर सकते हैं। अधिक जानकारी के लिए आप [Console API](https://rich.readthedocs.io/en/latest/console.html) का प्रलेख पढ़ सकते हैं।
+
+## Rich Inspect
+
+Rich में एक [inspect](https://rich.readthedocs.io/en/latest/reference/init.html?highlight=inspect#rich.inspect) फलन उपलब्ध है जो किसी भी Python वस्तु, जैसे की क्लास, इन्स्टैन्स या अंतर्निहित पर प्रतिवेदन उत्पादित कर सकता है।
+```python
+>>> my_list = ["foo", "bar"]
+>>> from rich import inspect
+>>> inspect(my_list, methods=True)
+```
+
+
+
+अधिक जानकारी के लिए [inspect का प्रलेखन](https://rich.readthedocs.io/en/latest/reference/init.html#rich.inspect) पढ़ें।
+
+# Rich संग्रह
+
+Rich में कई अंतर्निहित _प्रतिपाद्य_ मौजूद हैं जिनका इस्तेमाल करके आप अपने CLI में सुंदर उत्पादन उत्पन्न कर सकते हैं तथा अपने कोड का दोषमार्जन (डीबग) करने में सहायता प सकते हैं।
+
+
+जानकारी के लिए निम्न शीर्षकों पर क्लिक करें:
+
+
+लॉग (Log)
+
+Console वस्तु के पास एक `log()` फलन होता है जिसका अंतरापृष्ठ `print()` से मिलता है, पर साथ में वर्तमान समय और आवाहन करने वाली पंक्ति के लिए एक खाना प्रस्तुत करता है। व्यक्तिक्रम तौर पर Rich Python संरचनाएं एवं repr मालाओं (स्ट्रिंगों) पर रचनाक्रम चिह्नांकन करेगा। यदि आप एक संग्रह (यानि एक डिक्शनेरी या एक सूची) को लॉग करते हैं तो Rich उसे सुंदरता से छापेगा ताकि वह उपलब्ध जगह में फस सके। इनमें से कुछ विशेषताओं का उदहरण प्रस्तुत है:
+
+```python
+from rich.console import Console
+console = Console()
+
+test_data = [
+ {"jsonrpc": "2.0", "method": "sum", "params": [None, 1, 2, 4, False, True], "id": "1",},
+ {"jsonrpc": "2.0", "method": "notify_hello", "params": [7]},
+ {"jsonrpc": "2.0", "method": "subtract", "params": [42, 23], "id": "2"},
+]
+
+def test_log():
+ enabled = False
+ context = {
+ "foo": "bar",
+ }
+ movies = ["Deadpool", "Rise of the Skywalker"]
+ console.log("Hello from", console, "!")
+ console.log(test_data, log_locals=True)
+
+
+test_log()
+```
+
+उपर्युक्त कोड से निम्न उत्पादन उत्पन्न होता है:
+
+
+
+ध्यान दें `log_levels` तर्क की तरफ, जो एक सारणी उत्पादित करता है जिसमे लॉग फलन के आवाहन के स्थान के स्थानिये चर युक्त हैं।
+
+लॉग फलन का इस्तेमाल परिसेवकों (सर्वर) जैसे लंबे समय के लिये चलने वाले अनुप्रयोगों के लिए टर्मिनल पर प्रचालेखन के लिए किया जा सकता है, पर यह एक बहुत अच्छा दोषमार्जन सहायक भी है।
+
+
+
+प्रचालेखन संचालक
+
+Python के `logging` मापांक से आए हुए उत्पादन का संरूपण एवं रंगीकरण करने के लिए आप अंतर्निहित [Handler वर्ग](https://rich.readthedocs.io/en/latest/logging.html) का भी इस्तेमाल कर सकते हैं। उत्पादन का एक उपहरण प्रस्तुत है:
+
+
+
+
+
+
+इमोजी
+
+Console उत्पादन में इमोजी डालने के लिए नाम को दो अपूर्ण विरामों (:) के बीच रखें। इसका एक उदाहरण:
+```python
+>>> console.print(":smiley: :vampire: :pile_of_poo: :thumbs_up: :raccoon:")
+😃 🧛 💩 👍 🦝
+```
+
+कृपया इसका इस्तेमाल समझदारी से करें।
+
+
+
+सारणियाँ
+
+Rich यूनिकोड डिब्बा अक्षरों की सहायता से लचीली [सारणियाँ](https://rich.readthedocs.io/en/latest/tables.html) प्रदर्शित कर सकता है। सीमाएँ, शैलियाँ, कक्ष संरेखण आदि के लिए कई सारे स्वरूपण विकल्प उपलब्ध हैं।
+
+
+
+उपर्युक्त अनुप्राणन examples डायरेक्टरी के [table_movie.py](https://github.com/willmcgugan/rich/blob/master/examples/table_movie.py) से बनाया गया है।
+
+इससे सरल संचिका का उदाहरण:
+```python
+from rich.console import Console
+from rich.table import Table
+
+console = Console()
+
+table = Table(show_header=True, header_style="bold magenta")
+table.add_column("Date", style="dim", width=12)
+table.add_column("Title")
+table.add_column("Production Budget", justify="right")
+table.add_column("Box Office", justify="right")
+table.add_row(
+ "Dec 20, 2019", "Star Wars: The Rise of Skywalker", "$275,000,000", "$375,126,118"
+)
+table.add_row(
+ "May 25, 2018",
+ "[red]Solo[/red]: A Star Wars Story",
+ "$275,000,000",
+ "$393,151,347",
+)
+table.add_row(
+ "Dec 15, 2017",
+ "Star Wars Ep. VIII: The Last Jedi",
+ "$262,000,000",
+ "[bold]$1,332,539,889[/bold]",
+)
+
+console.print(table)
+```
+
+इससे निम्नलिखित उत्पादन उत्पन्न होता है:
+
+
+
+ध्यान दें की कॉनसोल मार्कअप `print()` और `log()` की तरह ही प्रदर्शित होते हैं। वास्तव में, कोई भी वस्तु जो Rich के द्वारा प्रदर्शनीय है वह शीर्षकों / पंक्तियों (दूसरी संचिकाओं में भी) में युक्त किया जा सकता है।
+
+`Table` वर्ग इतनी बुद्धिमान है की वह टर्मिनल की उपलब्ध चौड़ाई में फ़साने के लिए स्तंभों का आकार बदल सकता है, आवश्यकता के अनुसार पाठ को लपेटते हुए। यह वही उदाहरण है, टर्मिनल को उपर्युक्त संचिका से छोटा रखते हुए:
+
+
+
+
+
+
+प्रगति सूचक डंडे
+
+लंबे समय तक चलने वाले कार्यों पर नज़र रखने के लिए Rich अनेक झिलमिलाहट-मुक्त [प्रगति सूचक](https://rich.readthedocs.io/en/latest/progress.html) डंडे प्रदर्शित कर सकता है।
+
+बुनियादी उपयोग के लिए, किसी भी क्रम को `track` फलन में लपेटें और परिणाम पर पुनरावर्तन करें। इसका एक उदाहरण:
+```python
+from rich.progress import track
+
+for step in track(range(100)):
+ do_step(step)
+```
+
+अनेक प्रगति सूचक डंडे जोड़ने इससे अधिक कठिन नहीं है। ये रहा एक उदाहरण जो प्रलेखन से उठाया गया है:
+
+
+स्तंभों का विन्यास इस प्रकार किया जा सकता है की आपकी इच्छानुसार विवरण दिखाए जाएँ। अंतर्निहित स्तंभ में प्रतिशत पूरा, संचिका आकार, संचिका गति तथा शेष समय युक्त होते हैं। ये रहा एक और उदाहरण एक चालू डाउनलोड को दर्शाते हुए।
+
+
+इसे स्वयं आजमाने के लिए, देखें [examples/downloader.py](https://github.com/willmcgugan/rich/blob/master/examples/downloader.py) जो अनेक URL एक साथ डाउनलोड करते हुए प्रगति दर्शाता है।
+
+
+
+स्थिति
+
+ऐसी परिस्थितियों में जहां प्रगति की गणना करना कठिन हों, आप [status](https://rich.readthedocs.io/en/latest/reference/console.html#rich.console.Console.status) (स्थिति) फलन का उपयोग कर सकते हैं जो एक 'स्पिनर' अनुप्राणन और संदेश दर्शाएगा। अनुप्राणन आपको सामान्य तरीके से कॉनसोल को इस्तेमाल करने से नहीं रोकेगा। ये एक उदाहरण:
+```python
+from time import sleep
+from rich.console import Console
+
+console = Console()
+tasks = [f"task {n}" for n in range(1, 11)]
+
+with console.status("[bold green]Working on tasks...") as status:
+ while tasks:
+ task = tasks.pop(0)
+ sleep(1)
+ console.log(f"{task} complete")
+```
+
+इससे टर्मिनल में निम्नलिखित उत्पादन उत्पन्न होता है:
+
+
+स्पिनर अनुप्राणन [cli-spinners](https://www.npmjs.com/package/cli-spinners) से उधारे गए थे। आप `spinner` प्राचल को उल्लिखित करके स्पिनर चुन सकते हैं। उपलब्ध विकल्प देखने के लिए निम्नलिखित आदेश चलकर देखें:
+```
+python -m rich.spinner
+```
+
+उपर्युक्त आदेश टर्मिनल में निम्नलिखित उत्पादन उतपन्न करता है:
+
+
+
+
+
+वृक्ष
+
+Rich मरकदर्शक रेखाओं से [tree](https://rich.readthedocs.io/en/latest/tree.html) (वृक्ष) प्रदर्शित कर सकता है। संचिता संरचना, अथवा कोई भी और पदानुक्रमित डेटा दर्शाने के लिए वृक्ष एक आदर्श विकल्प है।
+
+वृक्ष के नाम सरल पाठ्यांश या कुछ भी और जो Rich प्रदर्शित कर सके। इसके एक प्रदर्शन के लिए निम्नलिखित को चलाएं:
+```
+python -m rich.tree
+```
+
+इससे निम्न उत्पादन उत्पन्न होता है:
+
+
+
+देखें उदाहरण [tree.py](https://github.com/willmcgugan/rich/blob/master/examples/tree.py) एक क्रमादेश के लिए जो किसी भी डायरेक्टरी का वृक्ष दृश्य (ट्री व्यू) दर्शाएगा, लिनक्स के `tree` आदेश के समान।
+
+
+
+
+स्तंभ
+
+
+Rich सामग्री को समान अथवा श्रेष्ट चौड़ाई के साथ स्पष्ट [स्तंभ](https://rich.readthedocs.io/en/latest/columns.html) प्रदर्शित कार सकता है। यही (MacOS / Linux) `ls` आदेश का बहुत बुनियादी प्रतिरूप प्रस्तुत किया गया है जो स्तंभों में डायरेक्टरी सूची को दर्शाता है।
+
+```python
+import os
+import sys
+
+from rich import print
+from rich.columns import Columns
+
+directory = os.listdir(sys.argv[1])
+print(Columns(directory))
+```
+
+निम्न स्क्रीनशॉट [स्तंभों के उदाहरण](https://github.com/willmcgugan/rich/blob/master/examples/columns.py) का उत्पादन है जो एक API से खींचे गए डेटा को स्तंभों में प्रदर्शित करता है:
+
+
+
+
+
+Markdown
+
+Rich [markdown](https://rich.readthedocs.io/en/latest/markdown.html) को प्रदर्शित कार सकता है और स्वरूपण का अनुवाद टर्मिनल पर करने में उचित कार्य करता है।
+
+
+Markdown प्रदर्शित करने के लिए आप `Markdown` वर्ग को आयात कार सकते हैं और उसे markdown कोड युक्त अक्षरमाला के साथ निर्मित कर सकते हैं। फिर उसे कॉनसोल पर छापें। एक उदाहरण प्रस्तुत है:
+```python
+from rich.console import Console
+from rich.markdown import Markdown
+
+console = Console()
+with open("README.md") as readme:
+ markdown = Markdown(readme.read())
+console.print(markdown)
+```
+
+इससे कुछ इस प्रकार का उत्पादन उत्पन्न होगा:
+
+
+
+
+
+
+रचनाक्रम चिह्नांकन
+
+Rich [रचनाक्रम चिह्नांकन](https://rich.readthedocs.io/en/latest/syntax.html) के लिए [pygments](https://pygments.org/) संग्रह का उपयोग करता है। उपयोग markdown को प्रदर्शित करने से मिलता-जुलता है; एक `Syntax` वस्तु निर्मित करें और उसे कॉनसोल पर छापें। एक उदाहरण:
+```python
+from rich.console import Console
+from rich.syntax import Syntax
+
+my_code = '''
+def iter_first_last(values: Iterable[T]) -> Iterable[Tuple[bool, bool, T]]:
+ """Iterate and generate a tuple with a flag for first and last value."""
+ iter_values = iter(values)
+ try:
+ previous_value = next(iter_values)
+ except StopIteration:
+ return
+ first = True
+ for value in iter_values:
+ yield first, False, previous_value
+ first = False
+ previous_value = value
+ yield first, True, previous_value
+'''
+syntax = Syntax(my_code, "python", theme="monokai", line_numbers=True)
+console = Console()
+console.print(syntax)
+```
+
+This will produce the following output:
+इससे निम्न उत्पादन उत्पन्न होता है:
+
+
+
+
+
+
+ट्रेसबैक
+
+Rich [खूबसूरत ट्रेसबैक](https://rich.readthedocs.io/en/latest/traceback.html) दर्शा सकता है जो पढ़ने में आसान तथा मानक Python ट्रेसबैकों से अधिक कोड दिखाता है। आप Rich को व्यक्तीक्रम ट्रेसबैक संचालक भी निर्धारित कार सकते हैं ताकि सभी बेपकड़ अपवाद Rich के द्वारा प्रदर्शित हों।
+
+OSX (Linux पर समान) पर यह कुछ इस प्रकार दिखता है:
+
+
+
+
+सभी Rich प्रतिपाद्य [कॉनसोल प्रोटोकॉल](https://rich.readthedocs.io/en/latest/protocol.html) का उपयोग करते हैं, जिसे आप स्वयं की Rich सामग्री बनाने के लिए भी इस्तेमाल कार सकते हैं।
+
+# उद्यम के लिए Rich
+
+Tidelift Subscription के हिस्से के तौर पर उपलब्ध।
+
+Rich एवं सहस्त्रों और संग्रहों के पालक आपके अनुप्रयोगों को बनाने के लिए इस्तेमाल किए जाने वाले खुले स्त्रोत संग्रहों के लिए व्यावसायिक सहायता तथा रखरखाव देने के लिए Tidelift के साथ काम कार रहे हैं। समय बचाइए, जोखिम काम कीजिए, और कोड स्वास्थ सुधारें, और साथ में जिन संग्रहों को आप इस्तेमाल करते हैं उनके पालकों को भुगतान करें। [अधिक जानें।](https://tidelift.com/subscription/pkg/pypi-rich?utm_source=pypi-rich&utm_medium=referral&utm_campaign=enterprise&utm_term=repo)
+
+# Rich का उपयोग करने वाली परियोजनाएँ
+
+ये रहे कुछ परियोजनाएँ जो Rich इस्तेमाल करते हैं।
+- [BrancoLab/BrainRender](https://github.com/BrancoLab/BrainRender)
+ त्रिविम न्यूरो-संरचनात्मक डेटा का चित्रण करने के लिए एक Python संग्रह
+- [Ciphey/Ciphey](https://github.com/Ciphey/Ciphey)
+ स्वचालित विकोडन उपकरण
+- [emeryberger/scalene](https://github.com/emeryberger/scalene)
+ Python के लिए एक उच्च-प्रदर्शन, उच्च-सूक्ष्मता CPU एवं स्मृति प्रोफाइलर
+- [hedythedev/StarCli](https://github.com/hedythedev/starcli)
+ अपनी आदेश पंक्ति (कमांड लाइन) से GitHub रुझानि परियोजिनाएं ब्राउज़ करें
+- [intel/cve-bin-tool](https://github.com/intel/cve-bin-tool)
+ यह उपकरण कई साधारण, भेद्य घटकों (openssl, libpng, libxml2, expat और कुछ और) के लिए जांच करता है ताकि आपको बता सके की क्या आपके तंत्र में जानी हुई कमज़ोरियों वाले संग्रह युक्त हैं।
+- [nf-core/tools](https://github.com/nf-core/tools)
+ nf-core समुदाय के लिए सहायक उपकरणों युक्त Python संग्रह
+- [cansarigol/pdbr](https://github.com/cansarigol/pdbr)
+ उन्नत दोषमार्जन के लिए pdb + Rich संग्रह
+- [plant99/felicette](https://github.com/plant99/felicette)
+ पुतलों के लिए उपग्रह चित्र
+- [seleniumbase/SeleniumBase](https://github.com/seleniumbase/SeleniumBase)
+ Selenium और pytest के साथ १० गुना तेज़ स्वचालन एवं परीक्षण करें। बैटरी शामिल।
+- [smacke/ffsubsync](https://github.com/smacke/ffsubsync)
+ स्वतः उपशीर्षकों को वीडियो के साथ समकालित करें।
+- [tryolabs/norfair](https://github.com/tryolabs/norfair)
+ किसी भी संसूचक में सद्य-अनुक्रिया द्विविम वस्तु ट्रैकिंग जोड़ने के लिए एक हल्का Python संग्रह।
+- [ansible/ansible-lint](https://github.com/ansible/ansible-lint)
+ Ansible-lint उन आचरणों और व्यवहारों के लिए प्लेबुकों में जाँच करता है जिन्हे संभावित रूप से सुधारा जा सकता है
+- [ansible-community/molecule](https://github.com/ansible-community/molecule) Ansible Molecule testing framework
+ Ansible Molecule परीक्षण ढांचा
+- +[कई और](https://github.com/willmcgugan/rich/network/dependents)!
+
+
diff --git a/README.it.md b/README.it.md
new file mode 100644
index 0000000000..c6e8b5620c
--- /dev/null
+++ b/README.it.md
@@ -0,0 +1,457 @@
+[](https://pepy.tech/project/rich)
+[](https://codecov.io/gh/willmcgugan/rich)
+[](https://www.willmcgugan.com/tag/rich/)
+[](https://twitter.com/willmcgugan)
+
+
+
+[English readme](https://github.com/willmcgugan/rich/blob/master/README.md)
+ • [简体中文 readme](https://github.com/willmcgugan/rich/blob/master/README.cn.md)
+ • [正體中文 readme](https://github.com/willmcgugan/rich/blob/master/README.zh-tw.md)
+ • [Lengua española readme](https://github.com/willmcgugan/rich/blob/master/README.es.md)
+ • [Deutsche readme](https://github.com/willmcgugan/rich/blob/master/README.de.md)
+ • [Läs på svenska](https://github.com/willmcgugan/rich/blob/master/README.sv.md)
+ • [日本語 readme](https://github.com/willmcgugan/rich/blob/master/README.ja.md)
+ • [한국어 readme](https://github.com/willmcgugan/rich/blob/master/README.kr.md)
+ • [Français readme](https://github.com/willmcgugan/rich/blob/master/README.fr.md)
+ • [Schwizerdütsch readme](https://github.com/willmcgugan/rich/blob/master/README.de-ch.md)
+ • [हिन्दी readme](https://github.com/willmcgugan/rich/blob/master/README.hi.md)
+ • [Português brasileiro readme](https://github.com/willmcgugan/rich/blob/master/README.pt-br.md)
+ • [Italian readme](https://github.com/willmcgugan/rich/blob/master/README.it.md)
+ • [Русский readme](https://github.com/willmcgugan/rich/blob/master/README.ru.md)
+
+
+Rich è una libreria Python per un testo _rich_ e con una piacevole formattazione nel terminale.
+
+Le [Rich API](https://rich.readthedocs.io/en/latest/) permettono di aggiungere facilmente colore e stile all'output del terminale. Rich permette di visualizzare tabelle, barre di avanzamento, markdown, evidenziazione della sintassi, tracebacks, e molto altro ancora — tutto già pronto all'uso.
+
+
+
+Per una video-introduzione di Rich puoi vedere [calmcode.io](https://calmcode.io/rich/introduction.html) by [@fishnets88](https://twitter.com/fishnets88).
+
+Guarda cosa [le persone dicono su Rich](https://www.willmcgugan.com/blog/pages/post/rich-tweets/).
+
+## Compatibilità
+
+Rich funziona su Linux, OSX, e Windows. True color / emoji funzionano con il nuovo Windows Terminal, il terminale classico è limitato a 16 colori. Rich richiede Python 3.6.1 o superiore.
+
+Rich funziona con i [Jupyter notebooks](https://jupyter.org/) senza configurazioni aggiuntive.
+
+## Installazione
+
+Installa con `pip` o il tuo PyPI package manager preferito.
+
+```sh
+python -m pip install rich
+```
+
+Esegui il seguente comando per testare l'output di Rich sul tuo terminale:
+
+```sh
+python -m rich
+```
+
+## Rich Print
+
+Utilizzare rich è semplicissimo, ti basta importare il metodo [rich print](https://rich.readthedocs.io/en/latest/introduction.html#quick-start), che ha la stessa signature della funzione builtin in Python. Prova:
+
+```python
+from rich import print
+
+print("Hello, [bold magenta]World[/bold magenta]!", ":vampire:", locals())
+```
+
+
+
+## Rich REPL
+
+Rich può essere installo in Python REPL, in questo modo ogni struttura dati sarà visualizzata in modo gradevole ed evidenziato.
+
+```python
+>>> from rich import pretty
+>>> pretty.install()
+```
+
+
+
+## Utilizzo di Console
+
+Per un maggiore personalizzazione dei contenuti puoi importare ed instanziare un oggetto [Console](https://rich.readthedocs.io/en/latest/reference/console.html#rich.console.Console).
+
+```python
+from rich.console import Console
+
+console = Console()
+```
+
+L'oggetto Console ha il metodo `print` che utilizza volutamente un interfaccia simile a quella del `print` originale. Ad esempio:
+
+```python
+console.print("Hello", "World!")
+```
+
+Come puoi immaginare, questo stamperà `"Hello World!"` sul terminale. Nota che diversamente dalla funzione builtin `print`, Rich potrebbe portare a capo il testo per rispettare le dimensioni del terminale.
+
+Ci sono diversi modi di aggiungere stile e colore al tuo output. Puoi impostare uno stile per l'intero output utilizzando l'argomento keyword `style`. Ad esempio:
+
+```python
+console.print("Hello", "World!", style="bold red")
+```
+
+L'output sarà qualcosa tipo:
+
+
+
+Questo va bene per applicare uno stile ad una linea di testo alla volta. Per uno stile più ricercato, puoi utilizzare uno speciale linguaggio di markup che è simile nella sintassi a [bbcode](https://en.wikipedia.org/wiki/BBCode). Ad esempio:
+
+```python
+console.print("Where there is a [bold cyan]Will[/bold cyan] there [u]is[/u] a [i]way[/i].")
+```
+
+
+
+Puoi utilizzare l'oggetto Console per generare output sofisticati con il minimo sforzo. Vedi la docs di [Console API](https://rich.readthedocs.io/en/latest/console.html) per ulteriori dettagli.
+
+## Rich Inspect
+
+Rich ha una funzione [inspect](https://rich.readthedocs.io/en/latest/reference/init.html?highlight=inspect#rich.inspect) che può produrre un report per un qualsiasi oggetto Python, come una classe, un instanza, o un builtin.
+
+```python
+>>> my_list = ["foo", "bar"]
+>>> from rich import inspect
+>>> inspect(my_list, methods=True)
+```
+
+
+
+Vedi [inspect docs](https://rich.readthedocs.io/en/latest/reference/init.html#rich.inspect) per ulteriori dettagli.
+
+# Rich Library
+
+Rich contiene alcuni builtin _renderables_ che puoi utilizzare per creare eleganti output nella tua CLI e aiutarti nel debug del tuo codice.
+
+Fai click sulle seguenti intestazioni per ulteriori dettagli:
+
+
+Log
+
+L'oggetto Console ha un metodo `log()` che utilizza un'interfaccia simile a `print()`, ma visualizza anche una colonna con l'ora corrente, il file e la linea che hanno generato la chiamata. Di default Rich evidenzierà le strutture Python e le stringhe repr. Se logghi un oggetto di tipo collection (e.s. un dict o una lista) Rich automaticamente abbellirà l'output in modo che possa entrare nello spazio disponibile. Ecco qui un esempio di alcune delle feature discusse:
+
+```python
+from rich.console import Console
+console = Console()
+
+test_data = [
+ {"jsonrpc": "2.0", "method": "sum", "params": [None, 1, 2, 4, False, True], "id": "1",},
+ {"jsonrpc": "2.0", "method": "notify_hello", "params": [7]},
+ {"jsonrpc": "2.0", "method": "subtract", "params": [42, 23], "id": "2"},
+]
+
+def test_log():
+ enabled = False
+ context = {
+ "foo": "bar",
+ }
+ movies = ["Deadpool", "Rise of the Skywalker"]
+ console.log("Hello from", console, "!")
+ console.log(test_data, log_locals=True)
+
+
+test_log()
+```
+
+Il codice appena mostrato produce il seguente output:
+
+
+
+Nota l'argomento `log_locals`, che visualizza una tabella contenente le variabili locali dove il metodo log è stato chiamato.
+
+Il metodo log può essere usato per il logging su terminale di applicazioni che solitamente girano su server, ma ha anche uno scopo orientato al debugging.
+
+
+
+Logging Handler
+
+Puoi anche utilizzare la classe builtin [Handler](https://rich.readthedocs.io/en/latest/logging.html) per formattare e colorare l'output dal modulo logging di Python. Ecco un esempio dell'output:
+
+
+
+
+
+
+Emoji
+
+Per inserire un emoji nell'output della console inseriscine il nome in mezzo a due ':'. Ad esempio:
+
+```python
+>>> console.print(":smiley: :vampire: :pile_of_poo: :thumbs_up: :raccoon:")
+😃 🧛 💩 👍 🦝
+```
+
+Usa questa feature saggiamente.
+
+
+
+
+Tables
+
+Rich può visualizzare [tabelle](https://rich.readthedocs.io/en/latest/tables.html) flessibili con caratteri unicode. C'è una vasta gamma di opzioni per la formattazione di bordi, stili, allineamenti di celle etc.
+
+
+
+Questa animazione è stata realizzata con [table_movie.py](https://github.com/willmcgugan/rich/blob/master/examples/table_movie.py) presente nella directory examples.
+
+Ecco qui un semplice esempio di tabella:
+
+```python
+from rich.console import Console
+from rich.table import Table
+
+console = Console()
+
+table = Table(show_header=True, header_style="bold magenta")
+table.add_column("Date", style="dim", width=12)
+table.add_column("Title")
+table.add_column("Production Budget", justify="right")
+table.add_column("Box Office", justify="right")
+table.add_row(
+ "Dec 20, 2019", "Star Wars: The Rise of Skywalker", "$275,000,000", "$375,126,118"
+)
+table.add_row(
+ "May 25, 2018",
+ "[red]Solo[/red]: A Star Wars Story",
+ "$275,000,000",
+ "$393,151,347",
+)
+table.add_row(
+ "Dec 15, 2017",
+ "Star Wars Ep. VIII: The Last Jedi",
+ "$262,000,000",
+ "[bold]$1,332,539,889[/bold]",
+)
+
+console.print(table)
+```
+
+Questo produce il seguente output:
+
+
+
+Nota che il console markup è visualizzato nello stesso modo di `print()` e `log()`. Infatti, tutto ciò che è visualizzabile da Rich può essere incluso nelle intestazioni / righe (anche altre tabelle).
+
+La classe `Table` è abbastanza smart da ridimensionare le colonne per entrare nello spazio residuo del terminale, wrappando il testo come richiesto. Ad esempio, con il terminale reso più piccolo della tabella sopra:
+
+
+
+
+
+
+Barre di avanzamento
+
+Rich può visualizzare, senza sfarfallio, multiple barre [di avanzamento](https://rich.readthedocs.io/en/latest/progress.html) per tenere traccia di task di lunga durata.
+
+Per un utilizzo base, wrappa ogni 'step' con la funzione `track` e itera sul risultato. Ad esempio:
+
+```python
+from rich.progress import track
+
+for step in track(range(100)):
+ do_step(step)
+```
+
+Non è difficile aggiungere barre di avanzamento multiple. Ecco un esempio dalla documentazione:
+
+
+
+Le colonne possono essere configurate per visualizzare qualsiasi dettaglio tu voglia. Le colonne built-in includono percentuale di completamente, dimensione del file, velocità, e tempo rimasto. Ecco un altro esempio che mostra un download in corso:
+
+
+
+Per testare tu stesso, vedi [examples/downloader.py](https://github.com/willmcgugan/rich/blob/master/examples/downloader.py) che può scaricare multipli URL simultaneamente mentre mostra lo stato di avanzamento.
+
+
+
+
+Status
+
+Per situazioni in cui è difficile calcolare l'avanzamento, puoi utilizzare il metodo [status](https://rich.readthedocs.io/en/latest/reference/console.html#rich.console.Console.status) che mostrerà un animazione 'spinner' e un messaggio. L'animazione non ti impedisce di utilizzare la console normalmente. Ad esempio:
+
+```python
+from time import sleep
+from rich.console import Console
+
+console = Console()
+tasks = [f"task {n}" for n in range(1, 11)]
+
+with console.status("[bold green]Working on tasks...") as status:
+ while tasks:
+ task = tasks.pop(0)
+ sleep(1)
+ console.log(f"{task} complete")
+```
+
+Questo produrrà il seguente output nel terminale.
+
+
+
+L'animazione dello spinner è ispirata da [cli-spinners](https://www.npmjs.com/package/cli-spinners). Puoi selezionarne uno specificando `spinner` tra i parametri. Esegui il seguente comando per visualizzare le possibili opzioni:
+
+```shell
+python -m rich.spinner
+```
+
+Questo produrrà il seguente output nel terminale.
+
+
+
+
+
+
+Albero
+
+Rich può visualizzare un [albero](https://rich.readthedocs.io/en/latest/tree.html) con linee guida. Un albero è ideale per mostrare la struttura di un file, o altri dati gerarchici.
+
+Le etichette dell'albero possono essere semplice testo o qualsiasi altra cosa che Rich può visualizzare. Esegui il seguente comando per una dimostrazione:
+
+```shell
+python -m rich.tree
+```
+
+Questo produrrà il seguente output:
+
+
+
+Vedi l'esempio [tree.py](https://github.com/willmcgugan/rich/blob/master/examples/tree.py) per uno script che mostra una vista ad albero di ogni directory, simile a quella del comando linux `tree`.
+
+
+
+
+Colonne
+
+Rich può visualizzare contenuti in [colonne](https://rich.readthedocs.io/en/latest/columns.html) ordinate con larghezza uguale o ottimale. Ecco qui un clone base del comando (MacOS / Linux) `ls` che mostra il contenuto di una directory in colonna:
+
+```python
+import os
+import sys
+
+from rich import print
+from rich.columns import Columns
+
+directory = os.listdir(sys.argv[1])
+print(Columns(directory))
+```
+
+Il seguente screenshot è l'output dell'[esempio di columns](https://github.com/willmcgugan/rich/blob/master/examples/columns.py) che visualizza i dati ottenuti da un API in colonna:
+
+
+
+
+
+
+Markdown
+
+Rich può visualizzare [markdown](https://rich.readthedocs.io/en/latest/markdown.html) e tradurlo in modo da visualizzarlo su terminale.
+
+Per visualizzare markdown importa la classe `Markdown` e instanziala con una stringa contenente codice markdown. Dopo stampala sulla console. Ad esempio:
+
+```python
+from rich.console import Console
+from rich.markdown import Markdown
+
+console = Console()
+with open("README.md") as readme:
+ markdown = Markdown(readme.read())
+console.print(markdown)
+```
+
+Questo produrrà un output simile al seguente:
+
+
+
+
+
+
+Evidenziazione della sintassi
+
+Rich utilizza la libreria [pygments](https://pygments.org/) per implementare il [syntax highlighting](https://rich.readthedocs.io/en/latest/syntax.html). L'utilizzo è simile a quello per visualizzare markdown; instanzia un oggetto `Syntax` e stampalo sulla console. Ad esempio:
+
+```python
+from rich.console import Console
+from rich.syntax import Syntax
+
+my_code = '''
+def iter_first_last(values: Iterable[T]) -> Iterable[Tuple[bool, bool, T]]:
+ """Itera e genera una tupla con un flag per il primo e ultimo valore."""
+ iter_values = iter(values)
+ try:
+ previous_value = next(iter_values)
+ except StopIteration:
+ return
+ first = True
+ for value in iter_values:
+ yield first, False, previous_value
+ first = False
+ previous_value = value
+ yield first, True, previous_value
+'''
+syntax = Syntax(my_code, "python", theme="monokai", line_numbers=True)
+console = Console()
+console.print(syntax)
+```
+
+Questo produrrà il seguente output:
+
+
+
+
+
+
+Tracebacks
+
+Rich può visualizzare [gradevoli tracebacks](https://rich.readthedocs.io/en/latest/traceback.html) che sono più semplici da leggere e che mostrano più codice rispetto ai Python tracebacks. Puoi impostare Rich come il traceback handler di default, in questo modo tutte le eccezioni non gestiti saranno visualizzate da Rich.
+
+Ecco come appare su OSX (simile a Linux):
+
+
+
+
+
+Tutti i Rich renderables utilizzano [Console Protocol](https://rich.readthedocs.io/en/latest/protocol.html), che puoi utilizzare per implementare nuovi contenuti su Rich.
+
+# Rich per le aziende
+
+Disponibile come parte dell'iscrizione a Tidelift.
+
+Lo sviluppatore di Rich e migliaia di altri packages lavorano con Tidelift per garantire supporto commerciale e mantenimento per i pacchetti open source che utilizzi per costruire le tue applicazioni. Risparmia tempo, riduci i rischi, e migliora la vita del codice, pagando i mantenitori dello stesso package che utilizzi. [Ulteriori informazioni.](https://tidelift.com/subscription/pkg/pypi-rich?utm_source=pypi-rich&utm_medium=referral&utm_campaign=enterprise&utm_term=repo)
+
+# Progetti che usano Rich
+
+Ecco alcuni progetti che utilizzano Rich:
+
+- [BrancoLab/BrainRender](https://github.com/BrancoLab/BrainRender)
+ a python package for the visualization of three dimensional neuro-anatomical data
+- [Ciphey/Ciphey](https://github.com/Ciphey/Ciphey)
+ Automated decryption tool
+- [emeryberger/scalene](https://github.com/emeryberger/scalene)
+ a high-performance, high-precision CPU and memory profiler for Python
+- [hedythedev/StarCli](https://github.com/hedythedev/starcli)
+ Browse GitHub trending projects from your command line
+- [intel/cve-bin-tool](https://github.com/intel/cve-bin-tool)
+ This tool scans for a number of common, vulnerable components (openssl, libpng, libxml2, expat and a few others) to let you know if your system includes common libraries with known vulnerabilities.
+- [nf-core/tools](https://github.com/nf-core/tools)
+ Python package with helper tools for the nf-core community.
+- [cansarigol/pdbr](https://github.com/cansarigol/pdbr)
+ pdb + Rich library for enhanced debugging
+- [plant99/felicette](https://github.com/plant99/felicette)
+ Satellite imagery for dummies.
+- [seleniumbase/SeleniumBase](https://github.com/seleniumbase/SeleniumBase)
+ Automate & test 10x faster with Selenium & pytest. Batteries included.
+- [smacke/ffsubsync](https://github.com/smacke/ffsubsync)
+ Automagically synchronize subtitles with video.
+- [tryolabs/norfair](https://github.com/tryolabs/norfair)
+ Lightweight Python library for adding real-time 2D object tracking to any detector.
+- [ansible/ansible-lint](https://github.com/ansible/ansible-lint) Ansible-lint checks playbooks for practices and behaviour that could potentially be improved
+- [ansible-community/molecule](https://github.com/ansible-community/molecule) Ansible Molecule testing framework
+- +[Many more](https://github.com/willmcgugan/rich/network/dependents)!
+
+
diff --git a/README.ja.md b/README.ja.md
new file mode 100644
index 0000000000..300f779d31
--- /dev/null
+++ b/README.ja.md
@@ -0,0 +1,409 @@
+[](https://pepy.tech/project/rich)
+[](https://badge.fury.io/py/rich)
+[](https://codecov.io/gh/willmcgugan/rich)
+[](https://www.willmcgugan.com/tag/rich/)
+[](https://twitter.com/willmcgugan)
+
+
+
+[English readme](https://github.com/willmcgugan/rich/blob/master/README.md)
+ • [简体中文 readme](https://github.com/willmcgugan/rich/blob/master/README.cn.md)
+ • [正體中文 readme](https://github.com/willmcgugan/rich/blob/master/README.zh-tw.md)
+ • [Lengua española readme](https://github.com/willmcgugan/rich/blob/master/README.es.md)
+ • [Deutsche readme](https://github.com/willmcgugan/rich/blob/master/README.de.md)
+ • [Läs på svenska](https://github.com/willmcgugan/rich/blob/master/README.sv.md)
+ • [日本語 readme](https://github.com/willmcgugan/rich/blob/master/README.ja.md)
+ • [한국어 readme](https://github.com/willmcgugan/rich/blob/master/README.kr.md)
+ • [Français readme](https://github.com/willmcgugan/rich/blob/master/README.fr.md)
+ • [Schwizerdütsch readme](https://github.com/willmcgugan/rich/blob/master/README.de-ch.md)
+ • [हिन्दी readme](https://github.com/willmcgugan/rich/blob/master/README.hi.md)
+ • [Português brasileiro readme](https://github.com/willmcgugan/rich/blob/master/README.pt-br.md)
+ • [Italian readme](https://github.com/willmcgugan/rich/blob/master/README.it.md)
+ • [Русский readme](https://github.com/willmcgugan/rich/blob/master/README.ru.md)
+
+Richは、 _リッチ_ なテキストや美しい書式設定をターミナルで行うためのPythonライブラリです。
+
+[Rich API](https://rich.readthedocs.io/en/latest/)を使用すると、ターミナルの出力に色やスタイルを簡単に追加することができます。 Richはきれいなテーブル、プログレスバー、マークダウン、シンタックスハイライトされたソースコード、トレースバックなどをすぐに生成・表示することもできます。
+
+
+
+Richの紹介動画はこちらをご覧ください。 [calmcode.io](https://calmcode.io/rich/introduction.html) by [@fishnets88](https://twitter.com/fishnets88).
+
+[Richについての人々の感想を見る。](https://www.willmcgugan.com/blog/pages/post/rich-tweets/)
+
+## 互換性
+
+RichはLinux、OSX、Windowsに対応しています。True colorと絵文字は新しい Windows ターミナルで動作しますが、古いターミナルでは8色に制限されています。Richを使用するにはPythonのバージョンは3.6.1以降が必要です。
+
+Richは追加の設定を行わずとも、[Jupyter notebooks](https://jupyter.org/)で動作します。
+
+## インストール
+
+`pip` や、あなたのお気に入りのPyPIパッケージマネージャを使ってインストールしてください。
+
+```sh
+python -m pip install rich
+```
+
+以下のコマンドを実行して、ターミナルでリッチの出力をテストできます:
+
+```sh
+python -m rich
+```
+
+## Richのprint関数
+
+簡単にリッチな出力をアプリケーションに追加するには、Pythonの組み込み関数と同じ名前を持つ [rich print](https://rich.readthedocs.io/en/latest/introduction.html#quick-start) メソッドをインポートすることで実現できます。こちらを試してみてください:
+
+```python
+from rich import print
+
+print("Hello, [bold magenta]World[/bold magenta]!", ":vampire:", locals())
+```
+
+
+
+## Rich REPL
+
+RichはPythonのREPLでインストールすることができ、データ構造がきれいに表示され、ハイライトされます。
+
+```python
+>>> from rich import pretty
+>>> pretty.install()
+```
+
+
+
+## Rich Inspect
+
+RichにはPythonオブジェクトやクラス、インスタンス、組み込み関数などに関するレポートを作成することができる、[inspect関数](https://rich.readthedocs.io/en/latest/reference/init.html?highlight=inspect#rich.inspect)があります。
+
+```python
+>>> from rich import inspect
+>>> inspect(str, methods=True)
+```
+
+## Consoleの使い方
+
+リッチなターミナルコンテンツをより制御していくには、[Console](https://rich.readthedocs.io/en/latest/reference/console.html#rich.console.Console) オブジェクトをインポートして構築していきます。
+
+
+```python
+from rich.console import Console
+
+console = Console()
+```
+
+Console オブジェクトには `print` メソッドがあり、これは組み込み関数の `print` と意図的に似たインターフェイスを持っています。
+以下に使用例を示します:
+
+```python
+console.print("Hello", "World!")
+```
+
+あなたが予想した通り、これは `"Hello World!"` をターミナルに表示します。組み込み関数の `print` とは異なり、Rich はターミナルの幅に合わせてテキストをワードラップすることに注意してください。
+
+出力結果に色やスタイルを追加する方法はいくつかあります。キーワード引数に `style` を追加することで、出力結果全体のスタイルを設定することができます。以下に例を示します:
+
+```python
+console.print("Hello", "World!", style="bold red")
+```
+
+以下のように出力されます:
+
+
+
+この方法は一行のテキストを一度にスタイリングするのに適しています。
+より細かくスタイリングを行うために、Richは[bbcode](https://en.wikipedia.org/wiki/BBCode)に似た構文の特別なマークアップを表示することができます。
+これはその例です:
+
+```python
+console.print("Where there is a [bold cyan]Will[/bold cyan] there [u]is[/u] a [i]way[/i].")
+```
+
+
+
+### Console logging
+
+Consoleオブジェクトには `log()` メソッドがあり、これは `print()` と同じインターフェイスを持ちますが、現在の時刻と呼び出しを行ったファイルと行数についてもカラムに表示します。デフォルトでは、RichはPythonの構造体とrepr文字列のシンタックスハイライトを行います。もしコレクション(例: dictやlist)をログに記録した場合、Richはそれを利用可能なスペースに収まるようにきれいに表示します。以下に、これらの機能のいくつかの例を示します。
+
+```python
+from rich.console import Console
+console = Console()
+
+test_data = [
+ {"jsonrpc": "2.0", "method": "sum", "params": [None, 1, 2, 4, False, True], "id": "1",},
+ {"jsonrpc": "2.0", "method": "notify_hello", "params": [7]},
+ {"jsonrpc": "2.0", "method": "subtract", "params": [42, 23], "id": "2"},
+]
+
+def test_log():
+ enabled = False
+ context = {
+ "foo": "bar",
+ }
+ movies = ["Deadpool", "Rise of the Skywalker"]
+ console.log("Hello from", console, "!")
+ console.log(test_data, log_locals=True)
+
+
+test_log()
+```
+
+上の例では以下のような出力が得られます:
+
+
+
+`log_locals`という引数についてですが、これは、logメソッドが呼び出されたローカル変数を含むテーブルを出力します。
+
+logメソッドはサーバのような長時間稼働しているアプリケーションのターミナルへのloggingとして使用できますが、デバッグ時に非常に役に立つ手段でもあります。
+
+### Logging Handler
+
+また、内蔵されている[Handler class](https://rich.readthedocs.io/en/latest/logging.html)を用いて、Pythonのloggingモジュールからの出力をフォーマットしたり、色付けしたりすることもできます。以下に出力の例を示します。
+
+
+
+## 絵文字(Emoji)
+
+コンソールの出力に絵文字を挿入するには、2つのコロンの間に名前を入れます。例を示します:
+
+```python
+>>> console.print(":smiley: :vampire: :pile_of_poo: :thumbs_up: :raccoon:")
+😃 🧛 💩 👍 🦝
+```
+
+この機能をうまく活用してみてください。
+
+## テーブル
+
+Richはユニコードの枠を用いて柔軟に[テーブル](https://rich.readthedocs.io/en/latest/tables.html)を表示することができます。 罫線、スタイル、セルの配置などの書式設定のためのオプションが豊富にあります。
+
+
+
+上のアニメーションは、examplesディレクトリの[table_movie.py](https://github.com/willmcgugan/rich/blob/master/examples/table_movie.py)で生成したものです。
+
+もう少し簡単な表の例を示します:
+
+```python
+from rich.console import Console
+from rich.table import Table
+
+console = Console()
+
+table = Table(show_header=True, header_style="bold magenta")
+table.add_column("Date", style="dim", width=12)
+table.add_column("Title")
+table.add_column("Production Budget", justify="right")
+table.add_column("Box Office", justify="right")
+table.add_row(
+ "Dec 20, 2019", "Star Wars: The Rise of Skywalker", "$275,000,000", "$375,126,118"
+)
+table.add_row(
+ "May 25, 2018",
+ "[red]Solo[/red]: A Star Wars Story",
+ "$275,000,000",
+ "$393,151,347",
+)
+table.add_row(
+ "Dec 15, 2017",
+ "Star Wars Ep. VIII: The Last Jedi",
+ "$262,000,000",
+ "[bold]$1,332,539,889[/bold]",
+)
+
+console.print(table)
+```
+
+これにより、以下のような出力が得られます:
+
+
+
+コンソール上でのマークアップは`print()` や `log()` と同じように表示されることに注意してください。実際には、Rich が表示可能なものはすべてヘッダや行に含めることができます (それが他のテーブルであっても、です)。
+
+`Table`クラスは、ターミナルの利用可能な幅に合わせてカラムのサイズを変更したり、必要に応じてテキストを折り返したりするのに十分なスマートさを持っています。
+これは先ほどと同じ例で、ターミナルを上のテーブルよりも小さくしたものです。
+
+
+
+## プログレスバー
+
+Richでは複数のちらつきのないの[プログレスバー](https://rich.readthedocs.io/en/latest/progress.html)を表示して、長時間のタスクを追跡することができます。
+
+基本的な使い方としては、任意のシーケンスを `track` 関数でラップし、その結果を繰り返し処理します。以下に例を示します:
+
+```python
+from rich.progress import track
+
+for step in track(range(100)):
+ do_step(step)
+```
+
+複数のプログレスバーを追加するのはそれほど大変ではありません。以下はドキュメントから抜粋した例です:
+
+
+
+カラムには任意の詳細を表示するように設定することができます。組み込まれているカラムには、完了率、ファイルサイズ、ファイル速度、残り時間が含まれています。ここでは、進行中のダウンロードを表示する別の例を示します:
+
+
+
+こちらを自分で試して見るには、進捗状況を表示しながら複数のURLを同時にダウンロードできる [examples/downloader.py](https://github.com/willmcgugan/rich/blob/master/examples/downloader.py) を参照してみてください。
+
+## ステータス
+
+進捗状況を計算するのが難しい場合は、[status](https://rich.readthedocs.io/en/latest/reference/console.html#rich.console.Console.status)メソッドを使用して、「スピナー」アニメーションとメッセージを表示させることができます。通常、アニメーションはコンソールの使用を妨げることはありません。ここに例を示します:
+
+```python
+from time import sleep
+from rich.console import Console
+
+console = Console()
+tasks = [f"task {n}" for n in range(1, 11)]
+
+with console.status("[bold green]Working on tasks...") as status:
+ while tasks:
+ task = tasks.pop(0)
+ sleep(1)
+ console.log(f"{task} complete")
+```
+
+これにより、ターミナルには以下のような出力が生成されます。
+
+
+
+スピナーのアニメーションは [cli-spinners](https://www.npmjs.com/package/cli-spinners) から拝借しました。`spinner`パラメータを指定することでスピナーを選択することができます。以下のコマンドを実行して、利用可能な値を確認してください:
+
+```
+python -m rich.spinner
+```
+
+上記コマンドは、ターミナルで以下のような出力を生成します:
+
+
+
+## ツリー
+
+Richはガイドライン付きの[ツリー](https://rich.readthedocs.io/en/latest/tree.html)を表示することができます。ツリーはファイル構造などの階層データを表示するのに適しています。
+
+ツリーのラベルは、シンプルなテキストや、Richが表示できるものであれば何でも表示することができます。以下を実行してデモを行います:
+
+```
+python -m rich.tree
+```
+
+これにより、次のような出力が生成されます:
+
+
+
+linuxの `tree` コマンドと同様に、任意のディレクトリのツリー表示を行うスクリプトについては、[tree.py](https://github.com/willmcgugan/rich/blob/master/examples/tree.py)の例を参照してください。
+
+## カラム
+
+Rich は、コンテンツをきれいな [カラム](https://rich.readthedocs.io/en/latest/columns.html) で等幅、または最適な幅で表示することができます。これは(MacOS / Linux) の `ls` コマンドのとても基本的なクローンで、ディレクトリ一覧をカラムで表示します。
+
+```python
+import os
+import sys
+
+from rich import print
+from rich.columns import Columns
+
+directory = os.listdir(sys.argv[1])
+print(Columns(directory))
+```
+
+以下のスクリーンショットは、APIから引っ張ってきたデータをカラムで表示する[columns example](https://github.com/willmcgugan/rich/blob/master/examples/columns.py)による出力です:
+
+
+
+## マークダウン
+
+Richは[マークダウン](https://rich.readthedocs.io/en/latest/markdown.html)を使用することができ、フォーマットをターミナル向けに変換するための良い仕事をしてくれます。
+
+マークダウンを使用するには、`Markdown`クラスをインポートし、マークダウンコードを含む文字列で構成します。そしてそれをコンソールに表示します。これは例です:
+
+```python
+from rich.console import Console
+from rich.markdown import Markdown
+
+console = Console()
+with open("README.md") as readme:
+ markdown = Markdown(readme.read())
+console.print(markdown)
+```
+
+これにより、以下のような出力が得られます:
+
+
+
+## シンタックスハイライト
+
+Richは [シンタックスハイライト](https://rich.readthedocs.io/en/latest/syntax.html) を実装するために [pygments](https://pygments.org/) ライブラリを使用しています。使い方はマークダウンを使用するのと似ています。 `Syntax` オブジェクトを構築してコンソールに表示します。以下にその例を示します:
+
+```python
+from rich.console import Console
+from rich.syntax import Syntax
+
+my_code = '''
+def iter_first_last(values: Iterable[T]) -> Iterable[Tuple[bool, bool, T]]:
+ """Iterate and generate a tuple with a flag for first and last value."""
+ iter_values = iter(values)
+ try:
+ previous_value = next(iter_values)
+ except StopIteration:
+ return
+ first = True
+ for value in iter_values:
+ yield first, False, previous_value
+ first = False
+ previous_value = value
+ yield first, True, previous_value
+'''
+syntax = Syntax(my_code, "python", theme="monokai", line_numbers=True)
+console = Console()
+console.print(syntax)
+```
+
+これにより、以下のような出力が得られます:
+
+
+
+## トレースバック
+
+Rich は [美しいトレースバック](https://rich.readthedocs.io/en/latest/traceback.html) を表示することができ、通常のPythonのトレースバックよりも読みやすく、より多くのコードを表示することができます。Richをデフォルトのトレースバックハンドラとして設定することで、捕捉されなかった例外はすべてRichによって表示されるようになります。
+
+OSXではこのような表示となります(Linuxでも似たような表示になります):
+
+
+
+## Richを使用したプロジェクト
+
+ここでは、Richを使用したいくつかのプロジェクトを紹介します:
+
+- [BrancoLab/BrainRender](https://github.com/BrancoLab/BrainRender)
+ 3次元の神経解剖学的データを可視化するpythonパッケージ
+- [Ciphey/Ciphey](https://github.com/Ciphey/Ciphey)
+ 自動化された復号化ツール
+- [emeryberger/scalene](https://github.com/emeryberger/scalene)
+ Python用の高性能・高精度 CPU/メモリプロファイラ
+- [hedythedev/StarCli](https://github.com/hedythedev/starcli)
+ コマンドラインから GitHub のトレンドプロジェクトを閲覧できます
+- [intel/cve-bin-tool](https://github.com/intel/cve-bin-tool)
+ このツールは、一般的な脆弱性のあるコンポーネント(openssl, libpng, libxml2, expat, その他いくつか)をスキャンし、お使いのシステムに既知の脆弱性のある一般的なライブラリが含まれているかどうかを知らせてくれます。
+- [nf-core/tools](https://github.com/nf-core/tools)
+ nf-core コミュニティのためのヘルパーツールを含む Python パッケージ。
+- [cansarigol/pdbr](https://github.com/cansarigol/pdbr)
+ pdb + Richライブラリによる、強化されたデバッグツール。
+- [plant99/felicette](https://github.com/plant99/felicette)
+ ダミーのための衛星画像。
+- [seleniumbase/SeleniumBase](https://github.com/seleniumbase/SeleniumBase)
+ Seleniumとpytestで10倍速の自動化とテスト。バッテリーも含まれています。
+- [smacke/ffsubsync](https://github.com/smacke/ffsubsync)
+ 字幕を自動的にビデオと同期させます。
+- [tryolabs/norfair](https://github.com/tryolabs/norfair)
+ あらゆる検出器にリアルタイムの2Dオブジェクトトラッキングを追加するための軽量なPythonライブラリ。
+- [ansible/ansible-lint](https://github.com/ansible/ansible-lint)
+ Ansible-lint がplaybooksをチェックして、改善できる可能性のあるプラクティスや動作を確認します。
+- [ansible-community/molecule](https://github.com/ansible-community/molecule)
+ Ansible Moleculeのテストフレームワーク
+- +[Many more](https://github.com/willmcgugan/rich/network/dependents)!
diff --git a/README.kr.md b/README.kr.md
new file mode 100644
index 0000000000..b55529af72
--- /dev/null
+++ b/README.kr.md
@@ -0,0 +1,460 @@
+[](https://pepy.tech/project/rich)
+[](https://badge.fury.io/py/rich)
+[](https://codecov.io/gh/willmcgugan/rich)
+[](https://www.willmcgugan.com/tag/rich/)
+[](https://twitter.com/willmcgugan)
+
+
+
+[English readme](https://github.com/willmcgugan/rich/blob/master/README.md)
+ • [简体中文 readme](https://github.com/willmcgugan/rich/blob/master/README.cn.md)
+ • [正體中文 readme](https://github.com/willmcgugan/rich/blob/master/README.zh-tw.md)
+ • [Lengua española readme](https://github.com/willmcgugan/rich/blob/master/README.es.md)
+ • [Deutsche readme](https://github.com/willmcgugan/rich/blob/master/README.de.md)
+ • [Läs på svenska](https://github.com/willmcgugan/rich/blob/master/README.sv.md)
+ • [日本語 readme](https://github.com/willmcgugan/rich/blob/master/README.ja.md)
+ • [한국어 readme](https://github.com/willmcgugan/rich/blob/master/README.kr.md)
+ • [Français readme](https://github.com/willmcgugan/rich/blob/master/README.fr.md)
+ • [Schwizerdütsch readme](https://github.com/willmcgugan/rich/blob/master/README.de-ch.md)
+ • [हिन्दी readme](https://github.com/willmcgugan/rich/blob/master/README.hi.md)
+ • [Português brasileiro readme](https://github.com/willmcgugan/rich/blob/master/README.pt-br.md)
+ • [Italian readme](https://github.com/willmcgugan/rich/blob/master/README.it.md)
+ • [Русский readme](https://github.com/willmcgugan/rich/blob/master/README.ru.md)
+
+Rich는 터미널에서 _풍부한(rich)_ 텍스트와 아름다운 서식을 지원하기 위한 파이썬 라이브러리입니다.
+
+[Rich API](https://rich.readthedocs.io/en/latest/)는 터미널 출력에 색깔과 스타일을 입히기 쉽게 도와줍니다. 또한 Rich는 별다른 설정 없이 표, 진행 바, 마크다운, 소스코드 구문 강조, tracebacks 등을 예쁘게 보여줄 수 있습니다.
+
+
+
+Rich에 대한 동영상 설명을 보시려면 [@fishnets88](https://twitter.com/fishnets88)의 [calmcode.io](https://calmcode.io/rich/introduction.html)를 확인 바랍니다.
+
+[사람들의 Rich에 대한 의견](https://www.willmcgugan.com/blog/pages/post/rich-tweets/)을 확인해보세요.
+
+## 호환성
+
+Rich는 리눅스, OSX, 윈도우에서 동작합니다. 트루 컬러 / 이모지는 새로운 윈도우 터미널에서 동작하지만 구형 터미널에서는 16가지 색으로 제한됩니다. Rich는 파이썬 3.6.1 버전 혹은 그 이후 버전이 필요합니다.
+
+Rich는 [Jupyter notebooks](https://jupyter.org/)에서 별도의 설정없이 바로 동작합니다.
+
+## 설치
+
+`pip` 또는 좋아하는 PyPI 패키지 매니저로 설치하세요.
+
+```sh
+python -m pip install rich
+```
+
+아래 명령어를 통해 터미널에서 Rich 출력을 테스트해보세요.
+
+```sh
+python -m rich
+```
+
+## Rich Print
+
+간단하게 당신의 어플리케이션에 rich한 출력을 추가하려면, 파이썬 내장 함수와 signature가 같은 [rich print](https://rich.readthedocs.io/en/latest/introduction.html#quick-start) 메서드를 import 할 수 있습니다.
+따라해보세요:
+
+```python
+from rich import print
+
+print("Hello, [bold magenta]World[/bold magenta]!", ":vampire:", locals())
+```
+
+
+
+## Rich REPL
+
+Rich는 파이썬 REPL에도 설치할 수 있습니다. 어떤 데이터 구조라도 예쁘게 출력하거나 강조할 수 있습니다.
+
+```python
+>>> from rich import pretty
+>>> pretty.install()
+```
+
+
+
+## 콘솔 사용하기
+
+rich 터미널을 더욱 잘 활용하려면, import 한 뒤 [Console](https://rich.readthedocs.io/en/latest/reference/console.html#rich.console.Console) 객체를 생성해주세요.
+
+```python
+from rich.console import Console
+
+console = Console()
+```
+
+콘솔 객체에는 `print` 메서드가 있는데, 내부적으로 내장 `print` 함수와 유사한 인터페이스를 가지고 있습니다. 아래는 예제입니다:
+
+```python
+console.print("Hello", "World!")
+```
+
+예상대로 `"Hello World!"`이 터미널에 출력될 것입니다. 내장 `print` 함수와 달리, Rich는 터미널 폭에 맞춰 자동 줄바꿈(word-wrap)을 적용하는 것에 유의하세요.
+
+출력에 색깔과 스타일을 입히는 방법은 몇가지가 있습니다. `style` 키워드 전달인자를 추가해 전체 출력에 대해 스타일을 변경할 수 있습니다. 예제는 다음과 같습니다:
+
+```python
+console.print("Hello", "World!", style="bold red")
+```
+
+다음과 같이 출력됩니다:
+
+
+
+텍스트 한 줄을 한 번에 수정하는 것도 좋습니다. 더욱 세세하게 스타일을 변경하기 위해, Rich는 [bbcode](https://en.wikipedia.org/wiki/BBCode)와 구문이 비슷한 별도의 마크업을 렌더링 할 수 있습니다. 예제는 다음과 같습니다.
+
+```python
+console.print("Where there is a [bold cyan]Will[/bold cyan] there [u]is[/u] a [i]way[/i].")
+```
+
+
+
+Console 객체를 활용해 적은 노력으로 복잡한 출력을 손쉽게 만들 수 있습니다. 자세한 내용은 [Console API](https://rich.readthedocs.io/en/latest/console.html) 문서를 확인해주세요.
+
+## Rich Inspect
+
+Rich는 class나 instance, builtin 같은 파이썬 객체의 레포트를 생성하는 [inspect](https://rich.readthedocs.io/en/latest/reference/init.html?highlight=inspect#rich.inspect) 함수를 포함합니다
+
+```python
+>>> my_list = ["foo", "bar"]
+>>> from rich import inspect
+>>> inspect(my_list, methods=True)
+```
+
+
+
+자세한 내용은 [inspect docs](https://rich.readthedocs.io/en/latest/reference/init.html#rich.inspect) 문서를 확인해주세요.
+
+# Rich Library
+
+Rich는 CLI에서 우아하게 출력하거나 코드 디버깅을 돕도록 다양한 빌트인 _렌더링을_ 포함하고 있습니다.
+
+자세한 내용을 확인하려면 제목을 눌러주세요:
+
+
+Log
+
+Console 객체는 `print()`와 인터페이스가 유사한 `log()` 메서드를 가지고 있습니다. `Log()`는 호출이 이루어진 파일과 라인, 현재 시간도 같이 출력합니다. 기본적으로 Rich는 파이썬 구조체와 repr string에 대해 신택스 하이라이팅을 지원합니다. 만약 당신이 collection(예를 들어 dict나 list)을 로깅한다면, Rich는 표현 가능한 공간에 맞춰 예쁘게 출력해줍니다. 이러한 기능들에 대한 예시입니다:
+
+```python
+from rich.console import Console
+console = Console()
+
+test_data = [
+ {"jsonrpc": "2.0", "method": "sum", "params": [None, 1, 2, 4, False, True], "id": "1",},
+ {"jsonrpc": "2.0", "method": "notify_hello", "params": [7]},
+ {"jsonrpc": "2.0", "method": "subtract", "params": [42, 23], "id": "2"},
+]
+
+def test_log():
+ enabled = False
+ context = {
+ "foo": "bar",
+ }
+ movies = ["Deadpool", "Rise of the Skywalker"]
+ console.log("Hello from", console, "!")
+ console.log(test_data, log_locals=True)
+
+
+test_log()
+```
+
+위 코드의 실행 결과는 다음과 같습니다:
+
+
+
+`log_locals` 인자를 사용하면 log 메서드가 호출된 곳의 로컬 변수들을 표로 보여준다는 것도 알아두세요.
+
+로그 메서드는 서버처럼 오랫동안 실행되는 어플리케이션을 터미널로 로깅할때 사용할 수 있지만 디버깅 할 때도 매우 좋습니다.
+
+
+
+Logging Handler
+
+또한 내장된 [Handler class](https://rich.readthedocs.io/en/latest/logging.html)를 사용해 파이썬의 로깅 모듈의 출력을 형태를 꾸미거나 색을 입힐 수 있습니다. 다음은 예제입니다:
+
+
+
+
+
+
+Emoji(이모지)
+
+콘솔 출력에 이모지를 넣으려면 두 콜론(:) 사이에 이모지 이름을 넣어주세요. 다음은 예제입니다:
+
+```python
+>>> console.print(":smiley: :vampire: :pile_of_poo: :thumbs_up: :raccoon:")
+😃 🧛 💩 👍 🦝
+```
+
+부디 이 기능을 잘 사용해주세요.
+
+
+
+
+Tables(표)
+
+Rich는 유니코드 박스 문자와 함께 [표](https://rich.readthedocs.io/en/latest/tables.html)를 자유롭게 렌더링할 수 있습니다. 가장자리, 스타일, 셀 정렬 등을 정말 다양하게 구성할 수 있습니다.
+
+
+
+위의 애니메이션은 example 디렉토리의 [table_movie.py](https://github.com/willmcgugan/rich/blob/master/examples/table_movie.py)로 생성되었습니다.
+
+더 간단한 표 예제입니다:
+
+```python
+from rich.console import Console
+from rich.table import Table
+
+console = Console()
+
+table = Table(show_header=True, header_style="bold magenta")
+table.add_column("Date", style="dim", width=12)
+table.add_column("Title")
+table.add_column("Production Budget", justify="right")
+table.add_column("Box Office", justify="right")
+table.add_row(
+ "Dec 20, 2019", "Star Wars: The Rise of Skywalker", "$275,000,000", "$375,126,118"
+)
+table.add_row(
+ "May 25, 2018",
+ "[red]Solo[/red]: A Star Wars Story",
+ "$275,000,000",
+ "$393,151,347",
+)
+table.add_row(
+ "Dec 15, 2017",
+ "Star Wars Ep. VIII: The Last Jedi",
+ "$262,000,000",
+ "[bold]$1,332,539,889[/bold]",
+)
+
+console.print(table)
+```
+
+이는 다음과 같이 출력됩니다:
+
+
+
+콘솔 출력은 `print()`나 `log()`와 같은 방식으로 렌더링 된다는 것을 주의하세요. 사실, Rich로 표현할 수 있는 것은 무엇이든 headers / rows (심지어 다른 표들도)에 포함할 수 있습니다.
+
+`Table` 클래스는 터미널의 폭에 맞춰 필요한 만큼 줄을 내리고 열 길이를 스스로 조절합니다. 위의 표보다 작은 터미널에서 만들어진 표 예시입니다:
+
+
+
+
+
+
+Progress Bars(진행 바)
+
+Rich는 오래 걸리는 작업들을 위해 깜빡임 없는 [진행](https://rich.readthedocs.io/en/latest/progress.html) 바를 여러개 표현할 수 있습니다.
+
+기본적인 사용을 위해선 아무 sequence나 `track` 함수로 감싸고 결과를 반복해주세요. 다음은 예제입니다:
+
+```python
+from rich.progress import track
+
+for step in track(range(100)):
+ do_step(step)
+```
+
+여러개의 진행 바를 추가하는 것도 어렵지 않습니다. 아래는 공식문서에서 따온 예시입니다:
+
+
+
+칼럼들은 수정해 원하는 세부정보를 보여줄 수도 있습니다. 기본으로 내장된 칼럼들은 완료 퍼센티지, 파일 크기, 파일 속도, 남은 시간입니다. 다운로드 진행을 보여주는 다른 예제입니다:
+
+
+
+직접 해보시려면, 진행 바와 함께 여러개의 URL들을 동시에 다운로드 받는 예제인 [examples/downloader.py](https://github.com/willmcgugan/rich/blob/master/examples/downloader.py)를 확인해주세요.
+
+
+
+
+Status(상태)
+
+진행 상황을 계산하기 어려운 경우, [상태](https://rich.readthedocs.io/en/latest/reference/console.html#rich.console.Console.status) 메서드를 사용할 수 있습니다. 이 메서드는 '스피너' 애니메이션과 메세지를 표시합니다. 애니메이션은 당신이 콘솔을 정상적으로 사용하는 것을 막지 못합니다. 다음은 예제입니다:
+
+```python
+from time import sleep
+from rich.console import Console
+
+console = Console()
+tasks = [f"task {n}" for n in range(1, 11)]
+
+with console.status("[bold green]Working on tasks...") as status:
+ while tasks:
+ task = tasks.pop(0)
+ sleep(1)
+ console.log(f"{task} complete")
+```
+
+이 예제는 터미널에 아래와 같이 출력합니다.
+
+
+
+스피너 애니메이션은 [cli-spinners](https://www.npmjs.com/package/cli-spinners)에서 빌려왔습니다. `spinner` 파라미터를 선택해서 특정 스피너를 선택할 수도 있습니다. 어떤 값을 선택할 수 있는지는 아래 명령어를 통해 확인할 수 있습니다:
+
+```
+python -m rich.spinner
+```
+
+위의 명령어를 입력하면 아래와 같은 출력됩니다:
+
+
+
+
+
+
+Tree(트리)
+
+Rich는 가이드라인과 함께 [트리](https://rich.readthedocs.io/en/latest/tree.html)를 표현할 수 있습니다. 파일 구조나, 계층적 데이터를 보여주는데 적합합니다.
+
+트리의 라벨은 간단한 텍스트나 Rich로 표현할 수 있는 것은 모든지 가능합니다. 아래의 예시를 따라해보세요:
+
+```
+python -m rich.tree
+```
+
+이는 아래와 같이 출력됩니다:
+
+
+
+리눅스의 `tree` 명령어처럼 아무 디렉토리의 트리를 보여주는 스크립트 예제를 보시려면 [tree.py](https://github.com/willmcgugan/rich/blob/master/examples/tree.py)를 확인해주세요.
+
+
+
+
+Columns(칼럼)
+
+Rich는 내용을 같거나 적절한 폭으로 깔끔하게 [칼럼](https://rich.readthedocs.io/en/latest/columns.html)을 표현할 수 있습니다. 아래 예제는 종렬로 디렉토리 리스트를 보여주는 (MacOS / Linux)의 `ls` 명령어의 기본적인 클론입니다:
+
+```python
+import os
+import sys
+
+from rich import print
+from rich.columns import Columns
+
+directory = os.listdir(sys.argv[1])
+print(Columns(directory))
+```
+
+아래 스크린샷은 API에서 뽑은 데이터를 종렬로 표현하는 [칼럼 예제](https://github.com/willmcgugan/rich/blob/master/examples/columns.py)의 출력 결과입니다:
+
+
+
+
+
+
+Markdown(마크다운)
+
+Rich는 [마크다운](https://rich.readthedocs.io/en/latest/markdown.html)을 표현하거나 형태를 터미널에 맞추어 적절히 변환할 수 있습니다.
+
+마크다운을 표현하기 위해서는 `Markdown` 클래스를 import하고 마크다운을 포함하고 있는 문자열을 통해 객체를 생성해주세요. 다음은 예제입니다:
+
+```python
+from rich.console import Console
+from rich.markdown import Markdown
+
+console = Console()
+with open("README.md") as readme:
+ markdown = Markdown(readme.read())
+console.print(markdown)
+```
+
+위 코드는 아래와 같은 출력 결과를 만들 것입니다:
+
+
+
+
+
+
+Syntax Highlighting(구문 강조)
+
+Rich는 [구문 강조](https://rich.readthedocs.io/en/latest/syntax.html) 기능을 수행하기 위해 [pygments](https://pygments.org/) 라이브러리를 사용합니다. 사용법은 마크다운과 유사합니다. `Syntax` 객체를 생성하고 콘솔에 출력하세요. 예제는 다음과 같습니다:
+
+```python
+from rich.console import Console
+from rich.syntax import Syntax
+
+my_code = '''
+def iter_first_last(values: Iterable[T]) -> Iterable[Tuple[bool, bool, T]]:
+ """Iterate and generate a tuple with a flag for first and last value."""
+ iter_values = iter(values)
+ try:
+ previous_value = next(iter_values)
+ except StopIteration:
+ return
+ first = True
+ for value in iter_values:
+ yield first, False, previous_value
+ first = False
+ previous_value = value
+ yield first, True, previous_value
+'''
+syntax = Syntax(my_code, "python", theme="monokai", line_numbers=True)
+console = Console()
+console.print(syntax)
+```
+
+위 코드는 아래와 같은 출력 결과를 만들 것입니다:
+
+
+
+
+
+
+Tracebacks
+
+Rich는 [예쁜 tracebacks](https://rich.readthedocs.io/en/latest/traceback.html)을 표현할 수 있습니다. 이것은 읽기도 더 쉽고 일반적인 파이썬 tracebacks 보다 더 많은 코드를 보여줍니다. uncaught exceptions가 Rich로 출력되도록 Rich를 기본 Traceback 핸들러로 설정할 수도 있습니다.
+
+OSX에서는 이렇게 출력됩니다 (리눅스도 유사함):
+
+
+
+
+
+모든 Rich로 표현 가능한 것들은 [Console Protocol](https://rich.readthedocs.io/en/latest/protocol.html)를 사용합니다. 이것을 사용해서 자신의 Rich 컨텐츠를 렌더링할 수도 있습니다.
+
+# 엔터프라이즈를 위한 Rich
+
+Tidelift 구독의 일환으로 가능합니다.
+
+Rich를 포함한 수천가지 다른 패키지들의 메인테이너들은 당신이 앱을 만들기 위해 사용하는 오픈소스 패키지의 상업적인 지원과 유지보수를 위해 Tidelift와 함께 일하고 있습니다. 당신이 사용하는 패키지의 메인테이너에게 비용을 지불하는 대신 시간을 절약하고, 리스크를 줄이고, 코드의 품질을 향상시킬 수 있습니다. [더 자세한 정보는 여기를 참고바랍니다.](https://tidelift.com/subscription/pkg/pypi-rich?utm_source=pypi-rich&utm_medium=referral&utm_campaign=enterprise&utm_term=repo)
+
+# Rich를 사용하는 프로젝트들
+
+Rich를 사용하는 몇가지 프로젝트들입니다:
+
+- [BrancoLab/BrainRender](https://github.com/BrancoLab/BrainRender)
+ 신경해부학 데이터의 3차원 시각화를 위한 파이썬 패키지
+- [Ciphey/Ciphey](https://github.com/Ciphey/Ciphey)
+ 자동 암호해독 툴
+- [emeryberger/scalene](https://github.com/emeryberger/scalene)
+ 파이썬을 위한 고성능, 높은 정밀도의 CPU / Memory 프로파일러
+- [hedythedev/StarCli](https://github.com/hedythedev/starcli)
+ 당신의 커맨드라인에서 GitHub 트렌딩 프로젝트들을 검색해보세요
+- [intel/cve-bin-tool](https://github.com/intel/cve-bin-tool)
+ 이 툴은 여러 공통적이고 취약한 컴포넨트들(openssl, libpng, libxml2, expat 과 몇가지 더)을 스캔해, 이미 알려진 취약점을 가진 일반 라이브러리가 당신의 시스템에 있는지 알려줍니다.
+- [nf-core/tools](https://github.com/nf-core/tools)
+ nf-core 커뮤니티를 위한 도우미 도구를 포함한 파이썬 패키지.
+- [cansarigol/pdbr](https://github.com/cansarigol/pdbr)
+ 개선된 디버깅을 위한 pdb + Rich 라이브러리
+- [plant99/felicette](https://github.com/plant99/felicette)
+ 더미 위성 이미지
+- [seleniumbase/SeleniumBase](https://github.com/seleniumbase/SeleniumBase)
+ Selenium & pytest로 10배 더 빠르게 자동화 & 테스트하세요. 배터리도 포함되어 있습니다.
+- [smacke/ffsubsync](https://github.com/smacke/ffsubsync)
+ 자동으로 자막과 영상의 싱크를 맞추세요.
+- [tryolabs/norfair](https://github.com/tryolabs/norfair)
+ 모든 탐지된 것에 실시간으로 2D 오브젝트 트래킹을 추가하는 경량화된 파이썬 라이브러리.
+- [ansible/ansible-lint](https://github.com/ansible/ansible-lint)
+ Ansible-lint가 playbooks를 확인해 잠재적으로 개선될 수 있는 practices나 동작을 확인합니다.
+- [ansible-community/molecule](https://github.com/ansible-community/molecule)
+ Ansible Molecule의 테스트 프레임워크
+- +[Many more](https://github.com/willmcgugan/rich/network/dependents)!
+
+
diff --git a/README.md b/README.md
index 21ca742142..97fca8ade5 100644
--- a/README.md
+++ b/README.md
@@ -1,11 +1,26 @@
-# Rich
+[](https://pypi.org/project/rich/) [](https://badge.fury.io/py/rich)
-[](https://badge.fury.io/py/rich)
-[](https://codecov.io/gh/willmcgugan/rich)
+[](https://pepy.tech/project/rich)
+[](https://codecov.io/gh/willmcgugan/rich)
[](https://www.willmcgugan.com/tag/rich/)
[](https://twitter.com/willmcgugan)
-[中文 readme](https://github.com/willmcgugan/rich/blob/master/README.cn.md) • [lengua española readme](https://github.com/willmcgugan/rich/blob/master/README.es.md)
+
+
+[English readme](https://github.com/willmcgugan/rich/blob/master/README.md)
+ • [简体中文 readme](https://github.com/willmcgugan/rich/blob/master/README.cn.md)
+ • [正體中文 readme](https://github.com/willmcgugan/rich/blob/master/README.zh-tw.md)
+ • [Lengua española readme](https://github.com/willmcgugan/rich/blob/master/README.es.md)
+ • [Deutsche readme](https://github.com/willmcgugan/rich/blob/master/README.de.md)
+ • [Läs på svenska](https://github.com/willmcgugan/rich/blob/master/README.sv.md)
+ • [日本語 readme](https://github.com/willmcgugan/rich/blob/master/README.ja.md)
+ • [한국어 readme](https://github.com/willmcgugan/rich/blob/master/README.kr.md)
+ • [Français readme](https://github.com/willmcgugan/rich/blob/master/README.fr.md)
+ • [Schwizerdütsch readme](https://github.com/willmcgugan/rich/blob/master/README.de-ch.md)
+ • [हिन्दी readme](https://github.com/willmcgugan/rich/blob/master/README.hi.md)
+ • [Português brasileiro readme](https://github.com/willmcgugan/rich/blob/master/README.pt-br.md)
+ • [Italian readme](https://github.com/willmcgugan/rich/blob/master/README.it.md)
+ • [Русский readme](https://github.com/willmcgugan/rich/blob/master/README.ru.md)
Rich is a Python library for _rich_ text and beautiful formatting in the terminal.
@@ -19,19 +34,25 @@ See what [people are saying about Rich](https://www.willmcgugan.com/blog/pages/p
## Compatibility
-Rich works with Linux, OSX, and Windows. True color / emoji works with new Windows Terminal, classic terminal is limited to 8 colors. Rich requires Python 3.6.1 or later.
+Rich works with Linux, OSX, and Windows. True color / emoji works with new Windows Terminal, classic terminal is limited to 16 colors. Rich requires Python 3.6.1 or later.
Rich works with [Jupyter notebooks](https://jupyter.org/) with no additional configuration required.
## Installing
-Install with `pip` or your favorite PyPi package manager.
+Install with `pip` or your favorite PyPI package manager.
+```sh
+python -m pip install rich
```
-pip install rich
+
+Run the following to test Rich output on your terminal:
+
+```sh
+python -m rich
```
-## Rich print function
+## Rich Print
To effortlessly add rich output to your application, you can import the [rich print](https://rich.readthedocs.io/en/latest/introduction.html#quick-start) method, which has the same signature as the builtin Python function. Try this:
@@ -54,15 +75,6 @@ Rich can be installed in the Python REPL, so that any data structures will be pr

-## Rich Inspect
-
-Rich has an [inspect](https://rich.readthedocs.io/en/latest/reference/init.html?highlight=inspect#rich.inspect) function which can produce a report on any Python object, such as class, instance, or builtin.
-
-```python
->>> from rich import inspect
->>> inspect(str, methods=True)
-```
-
## Using the Console
For more control over rich terminal content, import and construct a [Console](https://rich.readthedocs.io/en/latest/reference/console.html#rich.console.Console) object.
@@ -99,7 +111,30 @@ console.print("Where there is a [bold cyan]Will[/bold cyan] there [u]is[/u] a [i

-### Console logging
+You can use a Console object to generate sophisticated output with minimal effort. See the [Console API](https://rich.readthedocs.io/en/latest/console.html) docs for details.
+
+## Rich Inspect
+
+Rich has an [inspect](https://rich.readthedocs.io/en/latest/reference/init.html?highlight=inspect#rich.inspect) function which can produce a report on any Python object, such as class, instance, or builtin.
+
+```python
+>>> my_list = ["foo", "bar"]
+>>> from rich import inspect
+>>> inspect(my_list, methods=True)
+```
+
+
+
+See the [inspect docs](https://rich.readthedocs.io/en/latest/reference/init.html#rich.inspect) for details.
+
+# Rich Library
+
+Rich contains a number of builtin _renderables_ you can use to create elegant output in your CLI and help you debug your code.
+
+Click the following headings for details:
+
+
+Log
The Console object has a `log()` method which has a similar interface to `print()`, but also renders a column for the current time and the file and line which made the call. By default Rich will do syntax highlighting for Python structures and for repr strings. If you log a collection (i.e. a dict or a list) Rich will pretty print it so that it fits in the available space. Here's an example of some of these features.
@@ -134,13 +169,18 @@ Note the `log_locals` argument, which outputs a table containing the local varia
The log method could be used for logging to the terminal for long running applications such as servers, but is also a very nice debugging aid.
-### Logging Handler
+
+
+Logging Handler
You can also use the builtin [Handler class](https://rich.readthedocs.io/en/latest/logging.html) to format and colorize output from Python's logging module. Here's an example of the output:

-## Emoji
+
+
+
+Emoji
To insert an emoji in to console output place the name between two colons. Here's an example:
@@ -151,7 +191,10 @@ To insert an emoji in to console output place the name between two colons. Here'
Please use this feature wisely.
-## Tables
+
+
+
+Tables
Rich can render flexible [tables](https://rich.readthedocs.io/en/latest/tables.html) with unicode box characters. There is a large variety of formatting options for borders, styles, cell alignment etc.
@@ -173,7 +216,7 @@ table.add_column("Title")
table.add_column("Production Budget", justify="right")
table.add_column("Box Office", justify="right")
table.add_row(
- "Dev 20, 2019", "Star Wars: The Rise of Skywalker", "$275,000,000", "$375,126,118"
+ "Dec 20, 2019", "Star Wars: The Rise of Skywalker", "$275,000,000", "$375,126,118"
)
table.add_row(
"May 25, 2018",
@@ -201,7 +244,10 @@ The `Table` class is smart enough to resize columns to fit the available width o

-## Progress Bars
+
+
+
+Progress Bars
Rich can render multiple flicker-free [progress](https://rich.readthedocs.io/en/latest/progress.html) bars to track long-running tasks.
@@ -224,12 +270,70 @@ The columns may be configured to show any details you want. Built-in columns inc
To try this out yourself, see [examples/downloader.py](https://github.com/willmcgugan/rich/blob/master/examples/downloader.py) which can download multiple URLs simultaneously while displaying progress.
-## Columns
+
+
+
+Status
+
+For situations where it is hard to calculate progress, you can use the [status](https://rich.readthedocs.io/en/latest/reference/console.html#rich.console.Console.status) method which will display a 'spinner' animation and message. The animation won't prevent you from using the console as normal. Here's an example:
+
+```python
+from time import sleep
+from rich.console import Console
+
+console = Console()
+tasks = [f"task {n}" for n in range(1, 11)]
+
+with console.status("[bold green]Working on tasks...") as status:
+ while tasks:
+ task = tasks.pop(0)
+ sleep(1)
+ console.log(f"{task} complete")
+```
+
+This generates the following output in the terminal.
+
+
+
+The spinner animations were borrowed from [cli-spinners](https://www.npmjs.com/package/cli-spinners). You can select a spinner by specifying the `spinner` parameter. Run the following command to see the available values:
+
+```
+python -m rich.spinner
+```
+
+The above command generates the following output in the terminal:
+
+
+
+
+
+
+Tree
+
+Rich can render a [tree](https://rich.readthedocs.io/en/latest/tree.html) with guide lines. A tree is ideal for displaying a file structure, or any other hierarchical data.
+
+The labels of the tree can be simple text or anything else Rich can render. Run the following for a demonstration:
+
+```
+python -m rich.tree
+```
+
+This generates the following output:
+
+
+
+See the [tree.py](https://github.com/willmcgugan/rich/blob/master/examples/tree.py) example for a script that displays a tree view of any directory, similar to the linux `tree` command.
+
+
+
+
+Columns
Rich can render content in neat [columns](https://rich.readthedocs.io/en/latest/columns.html) with equal or optimal width. Here's a very basic clone of the (MacOS / Linux) `ls` command which displays a directory listing in columns:
```python
import os
+import sys
from rich import print
from rich.columns import Columns
@@ -242,7 +346,10 @@ The following screenshot is the output from the [columns example](https://github

-## Markdown
+
+
+
+Markdown
Rich can render [markdown](https://rich.readthedocs.io/en/latest/markdown.html) and does a reasonable job of translating the formatting to the terminal.
@@ -262,7 +369,10 @@ This will produce output something like the following:

-## Syntax Highlighting
+
+
+
+Syntax Highlighting
Rich uses the [pygments](https://pygments.org/) library to implement [syntax highlighting](https://rich.readthedocs.io/en/latest/syntax.html). Usage is similar to rendering markdown; construct a `Syntax` object and print it to the console. Here's an example:
@@ -294,7 +404,10 @@ This will produce the following output:

-## Tracebacks
+
+
+
+Tracebacks
Rich can render [beautiful tracebacks](https://rich.readthedocs.io/en/latest/traceback.html) which are easier to read and show more code than standard Python tracebacks. You can set Rich as the default traceback handler so all uncaught exceptions will be rendered by Rich.
@@ -302,7 +415,20 @@ Here's what it looks like on OSX (similar on Linux):

-## Project using Rich
+
+
+All Rich renderables make use of the [Console Protocol](https://rich.readthedocs.io/en/latest/protocol.html), which you can also use to implement your own Rich content.
+
+# Rich CLI
+
+
+See also [Rich CLI](https://github.com/textualize/rich-cli) for a command line application powered by Rich. Syntax highlight code, render markdown, display CSVs in tables, and more, directly from the command prompt.
+
+
+
+
+
+# Projects using Rich
Here are a few projects using Rich:
@@ -331,3 +457,5 @@ Here are a few projects using Rich:
- [ansible/ansible-lint](https://github.com/ansible/ansible-lint) Ansible-lint checks playbooks for practices and behaviour that could potentially be improved
- [ansible-community/molecule](https://github.com/ansible-community/molecule) Ansible Molecule testing framework
- +[Many more](https://github.com/willmcgugan/rich/network/dependents)!
+
+
diff --git a/README.pt-br.md b/README.pt-br.md
new file mode 100644
index 0000000000..55f366cafd
--- /dev/null
+++ b/README.pt-br.md
@@ -0,0 +1,457 @@
+[](https://pepy.tech/project/rich)
+[](https://badge.fury.io/py/rich)
+[](https://codecov.io/gh/willmcgugan/rich)
+[](https://www.willmcgugan.com/tag/rich/)
+[](https://twitter.com/willmcgugan)
+
+
+
+[English readme](https://github.com/willmcgugan/rich/blob/master/README.md)
+ • [简体中文 readme](https://github.com/willmcgugan/rich/blob/master/README.cn.md)
+ • [正體中文 readme](https://github.com/willmcgugan/rich/blob/master/README.zh-tw.md)
+ • [Lengua española readme](https://github.com/willmcgugan/rich/blob/master/README.es.md)
+ • [Deutsche readme](https://github.com/willmcgugan/rich/blob/master/README.de.md)
+ • [Läs på svenska](https://github.com/willmcgugan/rich/blob/master/README.sv.md)
+ • [日本語 readme](https://github.com/willmcgugan/rich/blob/master/README.ja.md)
+ • [한국어 readme](https://github.com/willmcgugan/rich/blob/master/README.kr.md)
+ • [Français readme](https://github.com/willmcgugan/rich/blob/master/README.fr.md)
+ • [Schwizerdütsch readme](https://github.com/willmcgugan/rich/blob/master/README.de-ch.md)
+ • [हिन्दी readme](https://github.com/willmcgugan/rich/blob/master/README.hi.md)
+ • [Português brasileiro readme](https://github.com/willmcgugan/rich/blob/master/README.pt-br.md)
+ • [Русский readme](https://github.com/willmcgugan/rich/blob/master/README.ru.md)
+
+Rich é uma biblioteca Python para _rich_ text e formatação de estilos no terminal.
+
+A [API do Rich](https://rich.readthedocs.io/en/latest/) permite adicionar cores e estilos no output do terminal de forma fácil. Rich também permite formataçao de tabelas, barra de progresso, markdown, highlight de sintaxe de código fonte, rastreio de erros (traceback) e muito mais.
+
+
+
+Para mais detalhes, veja um vídeo de introdução so Rich em [calmcode.io](https://calmcode.io/rich/introduction.html) por [@fishnets88](https://twitter.com/fishnets88).
+
+Veja aqui [o que estão falando sobre o Rich](https://www.willmcgugan.com/blog/pages/post/rich-tweets/).
+
+## Compatibilidade
+
+Rich funciona no Linux, OSX e Windows. True color / emoji funciona no novo Terminal do Windows, o terminal classico é limitado a 16 cores. Rich requer Python 3.6.1 ou superior.
+
+Rich funciona com [Jupyter notebooks](https://jupyter.org/) sem a necessidade de configurações adicionais.
+
+## Instalação
+
+Instale usando `pip` ou seu gerenciador de pacotes PyPI favorito.
+
+```sh
+python -m pip install rich
+```
+
+Execute o seguinte comando para testar o output do Rich no seu terminal:
+
+```sh
+python -m rich
+```
+
+## Print do Rich
+
+Para adicionar as as funções de formatação do rich na sua aplicação de forma fácil, simplesmente importe o metodo [rich print](https://rich.readthedocs.io/en/latest/introduction.html#quick-start) que tem a mesma assinatura da função nativa do Python. Por exemplo:
+
+```python
+from rich import print
+
+print("Hello, [bold magenta]World[/bold magenta]!", ":vampire:", locals())
+```
+
+
+
+## REPL do Rich
+
+O Rich pode ser instalado no REPL do Python fazendo com que qualquer estrutura de dados seja exibida formatada e com highlights.
+
+```python
+>>> from rich import pretty
+>>> pretty.install()
+```
+
+
+
+## Usando o Console
+
+Para ter mais controle sobre a formatação do conteudo no terminal, importe e instancie um objeto do [Console](https://rich.readthedocs.io/en/latest/reference/console.html#rich.console.Console).
+
+```python
+from rich.console import Console
+
+console = Console()
+```
+
+Objetos do tipo Console tem um metodo `print` que tem a interface intencionalmente similar à função `print` nativa. Veja a seguir um exeplo de uso:
+
+```python
+console.print("Hello", "World!")
+```
+
+Como esperado, este comando vai imprimir `"Hello World!"` no terminal. Porém, observe que, diferente da função `print` nativa, o Rich vai quebrar a linha entre palavras (word-wrap) no seu texto para caber na largura do terminal.
+
+Existem algumas formas de adicionar cores e estilos nos outputs. É possivel aplicar um estilo para todo output adicionando o argumento nomeado `style`. Por exemplo:
+
+```python
+console.print("Hello", "World!", style="bold red")
+```
+
+O resultado vai ser algo como:
+
+
+
+Isso funciona bem para formatar cada linha do texto individualmente. Para maior controle sobre a formatação, o Rich renderiza um markup especial com uma sintaxe similar ao [bbcode](https://en.wikipedia.org/wiki/BBCode). Veja o exemplo a seguir:
+
+```python
+console.print("Where there is a [bold cyan]Will[/bold cyan] there [u]is[/u] a [i]way[/i].")
+```
+
+
+
+Voce pode usar o objeto do Console para gerar facilmente uma saída para o terminal sofisticada. Veja a documentação da [API do Console](https://rich.readthedocs.io/en/latest/console.html) para mais detalhes.
+
+## Inspect do Rich
+
+O Rich tem uma função [inspect](https://rich.readthedocs.io/en/latest/reference/init.html?highlight=inspect#rich.inspect) que gera um relatório de qualquer objeto no Python, como classes, instâncias ou funções nativas.
+
+```python
+>>> my_list = ["foo", "bar"]
+>>> from rich import inspect
+>>> inspect(my_list, methods=True)
+```
+
+
+
+Confira a [documentação do inspect](https://rich.readthedocs.io/en/latest/reference/init.html#rich.inspect) para mais detalhes.
+
+# A biblioteca Rich
+
+O Rich possui vários _renderizáveis_ nativos que podem ser usados para criar outputs elegantes no seu CLI e ajudar a debugar o código.
+
+Clique nos itens a seguir para expandir os detalhes:
+
+
+Log
+
+O objeto Console tem um método `log()` com uma interface similar ao `print()` mas que também imprime uma coluna com a hora atual, nome do arquivo e linha onde foi executado. Por padrão, o Rich vai fazer highlight de sintaxe para extruturas do Python e para repr strings. Se você usar o `log()` para imprimir uma _collection_ (por exemplo um dicionário ou uma lista), o Rich vai imprimir formatado de uma forma que caiba no espaço disponível. Veja a seguir alguns exemplos dessas funções:
+
+```python
+from rich.console import Console
+console = Console()
+
+test_data = [
+ {"jsonrpc": "2.0", "method": "sum", "params": [None, 1, 2, 4, False, True], "id": "1",},
+ {"jsonrpc": "2.0", "method": "notify_hello", "params": [7]},
+ {"jsonrpc": "2.0", "method": "subtract", "params": [42, 23], "id": "2"},
+]
+
+def test_log():
+ enabled = False
+ context = {
+ "foo": "bar",
+ }
+ movies = ["Deadpool", "Rise of the Skywalker"]
+ console.log("Hello from", console, "!")
+ console.log(test_data, log_locals=True)
+
+
+test_log()
+```
+
+O código acima vai produzir algo parecido com:
+
+
+
+Note o argumento `log_locals` que imprime uma tabela com as variáveis locais no contexto em que o método `log()` foi chamado.
+
+O método `log()` pode ser usado para logar no terminal em aplicações de processos longos como servidores, mas é também uma ferramenta ótima para debugar.
+
+
+
+Logging Handler
+
+Você também pode usar a [classe Handler](https://rich.readthedocs.io/en/latest/logging.html) nativa para formatar e colorir o output do módulo `logging` do Python. Veja aqui um exemplo do output:
+
+
+
+
+
+
+Emoji
+
+Para imprimir um emoji no console, coloque o nome do emoji entre dois ":" (dois pontos). Por exemplo:
+
+```python
+>>> console.print(":smiley: :vampire: :pile_of_poo: :thumbs_up: :raccoon:")
+😃 🧛 💩 👍 🦝
+```
+
+Por favor use esse recurso com sabedoria.
+
+
+
+
+Tabelas
+
+O Rich pode imprimir [tables](https://rich.readthedocs.io/en/latest/tables.html) flexíveis usando caracteres unicode como bordas. Existem várias opções de formatação de bordas, estilos, alinhamento das celulas, etc.
+
+
+
+A animação acima foi gerada com o arquivo [table_movie.py](https://github.com/willmcgugan/rich/blob/master/examples/table_movie.py) da pasta de exemplos.
+
+Veja um exemplo mais simple:
+
+```python
+from rich.console import Console
+from rich.table import Table
+
+console = Console()
+
+table = Table(show_header=True, header_style="bold magenta")
+table.add_column("Date", style="dim", width=12)
+table.add_column("Title")
+table.add_column("Production Budget", justify="right")
+table.add_column("Box Office", justify="right")
+table.add_row(
+ "Dec 20, 2019", "Star Wars: The Rise of Skywalker", "$275,000,000", "$375,126,118"
+)
+table.add_row(
+ "May 25, 2018",
+ "[red]Solo[/red]: A Star Wars Story",
+ "$275,000,000",
+ "$393,151,347",
+)
+table.add_row(
+ "Dec 15, 2017",
+ "Star Wars Ep. VIII: The Last Jedi",
+ "$262,000,000",
+ "[bold]$1,332,539,889[/bold]",
+)
+
+console.print(table)
+```
+
+Que gera o seguinte resultado:
+
+
+
+Observe que o markup é renderizado da mesma for que em `print()` e `log()`. De fato, tudo que é renderizável pelo Rich pode ser incluído nos cabeçalhos ou linhas (até mesmo outras tabelas).
+
+A classe `Table` é inteligente o suficiente para ajustar o tamanho das colunas para caber na largura do terminal, quebrando o texto em novas linhas quando necessário. Veja a seguir o mesmo exemplo, só que desta vez com um terminal menor do que o tamanho original da tabela:
+
+
+
+
+
+
+Barra de Progresso
+
+O Rich consegue renderizar de forma eficiente multiplas barras de [progresso](https://rich.readthedocs.io/en/latest/progress.html) que podem ser usadas para rastrear o estado de processos longos.
+
+Uma forma simples de usar é passando o iterável para a função `track` e iterar normalmente sobre o retorno. Veja o exemplo a seguir:
+
+```python
+from rich.progress import track
+
+for step in track(range(100)):
+ do_step(step)
+```
+
+Adicionar multiplas barras de progresso também é simples. Veja outro exemplo que existe na documentação:
+
+
+
+As colunas podem ser configuradas pra mostrar qualquer detalho necessário. As colunas nativas incluem a porcentagem completa, tamanho de arquivo, velocidade do arquivo e tempo restante. O exemplo a seguir mostra o progresso de um download:
+
+
+
+Para testar isso no seu terminal, use o arquivo [examples/downloader.py](https://github.com/willmcgugan/rich/blob/master/examples/downloader.py) para fazer o download de multiplas URLs simultaneamente, exibindo o progresso de cada download.
+
+
+
+
+Status
+
+Em casos em que é dificil de calcular o progresso da tarefa, você pode usar o método [status](https://rich.readthedocs.io/en/latest/reference/console.html#rich.console.Console.status) que exibe uma animação de um "spinner" e a mensagem. A animação não impede em nada o uso do `console`. Veja o exemplo a seguir:
+
+```python
+from time import sleep
+from rich.console import Console
+
+console = Console()
+tasks = [f"task {n}" for n in range(1, 11)]
+
+with console.status("[bold green]Working on tasks...") as status:
+ while tasks:
+ task = tasks.pop(0)
+ sleep(1)
+ console.log(f"{task} complete")
+```
+
+Este código resultará no seguinte output no terminal:
+
+
+
+As animações do "spinner" foram emprestadas do [cli-spinners](https://www.npmjs.com/package/cli-spinners). É possível escolher um estilo de "spinner" usando o parametro `spinner`. Execute o comando a seguir para ver todos os tipos de "spinner" disponíveis.
+
+```
+python -m rich.spinner
+```
+
+O comando acima deve exibir o seguinte no seu terminal:
+
+
+
+
+
+
+Árvore
+
+O Rich pode renderizar [árvores](https://rich.readthedocs.io/en/latest/tree.html) com linhas de identação. Uma árvore é a forma ideal de exibir uma extrutura de arquivos ou qualquer outra apresentação hierárquica de dados.
+
+Os titulos dos itens da árvore podem ser textos simples ou qualquer coisa que o Rich pode renderizar. Execute o comando a seguir para uma demonstração:
+
+```
+python -m rich.tree
+```
+
+Isso gera o seguinte resultado:
+
+
+
+Veja o exemplo em [tree.py](https://github.com/willmcgugan/rich/blob/master/examples/tree.py) de um código que gera uma árvore de exibição de um dicionário, semelhante ao comando `tree` do linux.
+
+
+
+
+Colunas
+
+O Rich pode renderizar conteúdos em [colunas](https://rich.readthedocs.io/en/latest/columns.html) bem formatadas com tamanhos iguais ou otimizados. O exemplo a seguir é uma cópia básica do comando `ls` (presente no MacOS / Linux) que mostra o conteúdo de uma pasta organizado em colunas:
+
+```python
+import os
+import sys
+
+from rich import print
+from rich.columns import Columns
+
+directory = os.listdir(sys.argv[1])
+print(Columns(directory))
+```
+
+O screenshot a seguir é do resultado do [exemplo de colunas](https://github.com/willmcgugan/rich/blob/master/examples/columns.py) formatando em colunas os dados extraidos de uma API:
+
+
+
+
+
+
+Markdown
+
+O Rich pode renderizar [markdown](https://rich.readthedocs.io/en/latest/markdown.html) e faz um bom trabalho de conversão do formato para o terminal.
+
+Para renderizar markdowm, importe a classe `Markdown` e instancie com a string que contem o código markdown. Depois, imprima o objeto no console. Por exemplo:
+
+```python
+from rich.console import Console
+from rich.markdown import Markdown
+
+console = Console()
+with open("README.md") as readme:
+ markdown = Markdown(readme.read())
+console.print(markdown)
+```
+
+Isso produzirá um resultado como:
+
+
+
+
+
+
+Highlight de Sintaxe
+
+O Rich usa a biblioteca [pygments](https://pygments.org/) para implementar o [highlight de sintaxe](https://rich.readthedocs.io/en/latest/syntax.html). O uso é similar à renderização de markdown, instancie um objeto da classe `Syntax` imprima no console. Por exemplo:
+
+```python
+from rich.console import Console
+from rich.syntax import Syntax
+
+my_code = '''
+def iter_first_last(values: Iterable[T]) -> Iterable[Tuple[bool, bool, T]]:
+ """Iterate and generate a tuple with a flag for first and last value."""
+ iter_values = iter(values)
+ try:
+ previous_value = next(iter_values)
+ except StopIteration:
+ return
+ first = True
+ for value in iter_values:
+ yield first, False, previous_value
+ first = False
+ previous_value = value
+ yield first, True, previous_value
+'''
+syntax = Syntax(my_code, "python", theme="monokai", line_numbers=True)
+console = Console()
+console.print(syntax)
+```
+
+Este código gerará o seguinte resultado:
+
+
+
+
+
+
+Rastreio de Erros (tracebacks)
+
+O Rich renderiza [tracebacks formatados](https://rich.readthedocs.io/en/latest/traceback.html) que são fáceis de ler e mostra mais código do que os tracebacks padrão do Python. É possivel configurar o Rich como o gerenciador padrão de tracebacks para que todas as excessões inesperadas sejam renderizadas pelo Rich.
+
+Veja o resultado disso no OSX (resultados semelhantes no Linux):
+
+
+
+
+
+Todos os renderizaveis do Rich usam o [Protocolo do Console](https://rich.readthedocs.io/en/latest/protocol.html), que você pode usar para implementar o seu próprio conteúdo Rich.
+
+# Rich para empresas
+
+Disponível como parte da assinatura Tidelift.
+
+Os mantenedores do Rich e milhares de outros pacotes estão trabalhando com o Tidelift para disponibilizar suporte comercial e manutenção de projetos de código aberto usados nas suas aplicações. Economise tempo, reduza riscos e melhore a saúde do código enquanto paga os mantenedores dos pacotes exatos que você usa. [Mais detalhes.](https://tidelift.com/subscription/pkg/pypi-rich?utm_source=pypi-rich&utm_medium=referral&utm_campaign=enterprise&utm_term=repo)
+
+# Projetos usando Rich
+
+Aqui estão alguns projetos que usam o Rich:
+
+- [BrancoLab/BrainRender](https://github.com/BrancoLab/BrainRender)
+ a python package for the visualization of three dimensional neuro-anatomical data
+ um pacote python para visualisação tridimensional de dados neuro-atômicos.
+- [Ciphey/Ciphey](https://github.com/Ciphey/Ciphey)
+ ferramenta de descriptografia autoatizada.
+- [emeryberger/scalene](https://github.com/emeryberger/scalene)
+ um analisador de CPU e memória de alta performance e alta precisão para Python
+- [hedythedev/StarCli](https://github.com/hedythedev/starcli)
+ Explore projetos de destaque no GitHub pela linha de comando do terminal
+- [intel/cve-bin-tool](https://github.com/intel/cve-bin-tool)
+ Essa ferramenta verifica a vulnerabilidade de diversos componentes populares (openssl, libpng, libxml2, expat e outros) presentes no seu sistema e alerta para possíveis vulnerabilidades conhecidas.
+- [nf-core/tools](https://github.com/nf-core/tools)
+ pacote Python com ferramentas auxiliares par a comunidade nf-core.
+- [cansarigol/pdbr](https://github.com/cansarigol/pdbr)
+ pdb + Rich para auxiliar no debug
+- [plant99/felicette](https://github.com/plant99/felicette)
+ Imagem de satélites para iniciantes.
+- [seleniumbase/SeleniumBase](https://github.com/seleniumbase/SeleniumBase)
+ Automatize & teste 10x mais rápido com Selenium & pytest. Baterias inclusas.
+- [smacke/ffsubsync](https://github.com/smacke/ffsubsync)
+ Automagicamente sincronize legendas com vídeos.
+- [tryolabs/norfair](https://github.com/tryolabs/norfair)
+ Biblioteca Python para adicionar rastreio em tempo real de objetos 2D em qualquer detector.
+- [ansible/ansible-lint](https://github.com/ansible/ansible-lint) Ansible-lint verifica boas práticas e comportamento que podem ser melhorados.
+- [ansible-community/molecule](https://github.com/ansible-community/molecule) Framework de test para Ansible Molecule
+- +[Muitos outros](https://github.com/willmcgugan/rich/network/dependents)!
+
+
diff --git a/README.ru.md b/README.ru.md
new file mode 100644
index 0000000000..b6ff2d255e
--- /dev/null
+++ b/README.ru.md
@@ -0,0 +1,458 @@
+[](https://pypi.org/project/rich/) [](https://badge.fury.io/py/rich)
+
+[](https://pepy.tech/project/rich)
+[](https://codecov.io/gh/willmcgugan/rich)
+[](https://www.willmcgugan.com/tag/rich/)
+[](https://twitter.com/willmcgugan)
+
+
+
+[English readme](https://github.com/willmcgugan/rich/blob/master/README.md)
+ • [简体中文 readme](https://github.com/willmcgugan/rich/blob/master/README.cn.md)
+ • [正體中文 readme](https://github.com/willmcgugan/rich/blob/master/README.zh-tw.md)
+ • [Lengua española readme](https://github.com/willmcgugan/rich/blob/master/README.es.md)
+ • [Deutsche readme](https://github.com/willmcgugan/rich/blob/master/README.de.md)
+ • [Läs på svenska](https://github.com/willmcgugan/rich/blob/master/README.sv.md)
+ • [日本語 readme](https://github.com/willmcgugan/rich/blob/master/README.ja.md)
+ • [한국어 readme](https://github.com/willmcgugan/rich/blob/master/README.kr.md)
+ • [Français readme](https://github.com/willmcgugan/rich/blob/master/README.fr.md)
+ • [Schwizerdütsch readme](https://github.com/willmcgugan/rich/blob/master/README.de-ch.md)
+ • [हिन्दी readme](https://github.com/willmcgugan/rich/blob/master/README.hi.md)
+ • [Português brasileiro readme](https://github.com/willmcgugan/rich/blob/master/README.pt-br.md)
+ • [Italian readme](https://github.com/willmcgugan/rich/blob/master/README.it.md)
+ • [Русский readme](https://github.com/willmcgugan/rich/blob/master/README.ru.md)
+
+Rich это Python библиотека позволяющая отображать _красивый_ текст и форматировать терминал.
+
+[Rich API](https://rich.readthedocs.io/en/latest/) упрощает добавление цветов и стилей к выводу терминала. Rich также позволяет отображать красивые таблицы, прогресс бары, markdown, код с отображением синтаксиса, ошибки, и т.д. — прямо после установки.
+
+
+
+Для видео инструкции смотрите [calmcode.io](https://calmcode.io/rich/introduction.html) от [@fishnets88](https://twitter.com/fishnets88).
+
+Посмотрите [что люди думают о Rich](https://www.willmcgugan.com/blog/pages/post/rich-tweets/).
+
+## Cовместимость
+
+Rich работает с Linux, OSX, и Windows. True color / эмоджи работают с новым терминалом Windows, классический терминал лимитирован 16 цветами. Rich требует Python 3.6.1 или более новый.
+
+Rich работает с [Jupyter notebooks](https://jupyter.org/) без дополнительной конфигурации.
+
+## Установка
+
+Установите с `pip` или вашим любимым PyPI менеджером пакетов.
+
+```sh
+python -m pip install rich
+```
+
+Запустите следующею команду чтобы проверить Rich вывод в вашем терминале:
+
+```sh
+python -m rich
+```
+
+## Rich Print
+
+Простейший способ получить красивый вывод это импортировать метод [rich print](https://rich.readthedocs.io/en/latest/introduction.html#quick-start), он принимает такие же аргументы что и стандартный метод print. Попробуйте:
+
+```python
+from rich import print
+
+print("Hello, [bold magenta]World[/bold magenta]!", ":vampire:", locals())
+```
+
+
+
+## Rich REPL
+
+Rich может быть установлен в Python REPL, так, все данные будут выведены через Rich.
+
+```python
+>>> from rich import pretty
+>>> pretty.install()
+```
+
+
+
+## Использование класса Console
+
+Для большего контроля над терминалом Rich, импортируйте и инициализируйте класс [Console](https://rich.readthedocs.io/en/latest/reference/console.html#rich.console.Console).
+
+```python
+from rich.console import Console
+
+console = Console()
+```
+
+У класса console есть метод `print` который имеет идентичный функционал к встроеной функции `print`. Вот пример использования:
+
+```python
+console.print("Hello", "World!")
+```
+
+Как вы могли подумать, этот выведет `"Hello World!"` в терминал. Запомните что, в отличии от встроеной функции `print`, Rich увеличит ваш текст так, чтобы он распространялся на всю ширину терминала.
+
+Есть несколько способов добавить цвет и стиль к вашему выводу. Вы можете выбрать стиль для всего вывода добавив аргумент `style`. Вот пример:
+
+```python
+console.print("Hello", "World!", style="bold red")
+```
+
+Вывод будет выглядить примерно так:
+
+
+
+Этого достаточно чтобы стилизовать 1 строку. Для более детального стилизования, Rich использует специальную разметку похожую по синтаксису на [bbcode](https://en.wikipedia.org/wiki/BBCode). Вот пример:
+
+```python
+console.print("Where there is a [bold cyan]Will[/bold cyan] there [u]is[/u] a [i]way[/i].")
+```
+
+
+
+Вы можете использовать класс Console чтобы генерировать утонченный вывод с минимальными усилиями. Смотрите [документацию Console API](https://rich.readthedocs.io/en/latest/console.html) для детального объяснения.
+
+## Rich Inspect
+
+В Rich есть функция [inspect](https://rich.readthedocs.io/en/latest/reference/init.html?highlight=inspect#rich.inspect) которая может украсить любой Python объект, например класс, переменная, или функция.
+
+```python
+>>> my_list = ["foo", "bar"]
+>>> from rich import inspect
+>>> inspect(my_list, methods=True)
+```
+
+
+
+Смотрите [документацию inspect](https://rich.readthedocs.io/en/latest/reference/init.html#rich.inspect) для детального объяснения.
+
+# Библиотека Rich
+
+Rich содержит несколько встроенных _визуализаций_ которые вы можете использовать чтобы сделать элегантный вывод в важем CLI или помочь в дебаггинге кода.
+
+Вот несколько вещей которые может делать Rich (нажмите чтобы узнать больше):
+
+
+Лог
+
+В классе console есть метод `log()` который похож на `print()`, но также изображает столбец для текущего времени, файла и линии кода которая вызвала метод. По умолчанию Rich будет подсвечивать синтаксис для структур Python и для строк repr. Если вы передадите в метод коллекцию (т.е. dict или list) Rich выведет её так, чтобы она помещалась в доступном месте. Вот пример использования этого метода.
+
+```python
+from rich.console import Console
+console = Console()
+
+test_data = [
+ {"jsonrpc": "2.0", "method": "sum", "params": [None, 1, 2, 4, False, True], "id": "1",},
+ {"jsonrpc": "2.0", "method": "notify_hello", "params": [7]},
+ {"jsonrpc": "2.0", "method": "subtract", "params": [42, 23], "id": "2"},
+]
+
+def test_log():
+ enabled = False
+ context = {
+ "foo": "bar",
+ }
+ movies = ["Deadpool", "Rise of the Skywalker"]
+ console.log("Hello from", console, "!")
+ console.log(test_data, log_locals=True)
+
+
+test_log()
+```
+
+Код выше выведет это:
+
+
+
+Запомните аргумент `log_locals`, он выводит таблицу имеющую локальные переменные функции в которой метод был вызван.
+
+Метод может быть использован для вывода данных в терминал в длинно-работающих программ, таких как сервера, но он также может помочь в дебаггинге.
+
+
+
+Обработчик Логов
+
+Вы также можете использовать встроенный [класс Handler](https://rich.readthedocs.io/en/latest/logging.html) чтобы форматировать и раскрашивать вывод из встроенной библиотеки logging. Вот пример вывода:
+
+
+
+
+
+
+Эмоджи
+
+Чтобы вставить эмоджи в вывод консоли поместите название между двумя двоеточиями. Вот пример:
+
+```python
+>>> console.print(":smiley: :vampire: :pile_of_poo: :thumbs_up: :raccoon:")
+😃 🧛 💩 👍 🦝
+```
+
+Пожалуйста, используйте это мудро.
+
+
+
+
+Таблицы
+
+Rich может отображать гибкие [таблицы](https://rich.readthedocs.io/en/latest/tables.html) с символами unicode. Есть большое количество форматов границ, стилей, выравниваний ячеек и т.п.
+
+
+
+Эта анимация была сгенерирована с помощью [table_movie.py](https://github.com/willmcgugan/rich/blob/master/examples/table_movie.py) в директории примеров.
+
+Вот пример более простой таблицы:
+
+```python
+from rich.console import Console
+from rich.table import Table
+
+console = Console()
+
+table = Table(show_header=True, header_style="bold magenta")
+table.add_column("Date", style="dim", width=12)
+table.add_column("Title")
+table.add_column("Production Budget", justify="right")
+table.add_column("Box Office", justify="right")
+table.add_row(
+ "Dec 20, 2019", "Star Wars: The Rise of Skywalker", "$275,000,000", "$375,126,118"
+)
+table.add_row(
+ "May 25, 2018",
+ "[red]Solo[/red]: A Star Wars Story",
+ "$275,000,000",
+ "$393,151,347",
+)
+table.add_row(
+ "Dec 15, 2017",
+ "Star Wars Ep. VIII: The Last Jedi",
+ "$262,000,000",
+ "[bold]$1,332,539,889[/bold]",
+)
+
+console.print(table)
+```
+
+Этот пример выводит:
+
+
+
+Запомните что разметка консоли отображается таким же способом что и `print()` и `log()`. На самом деле, всё, что может отобразить Rich может быть в заголовках или рядах (даже другие таблицы).
+
+Класс `Table` достаточно умный чтобы менять размер столбцов, так, чтобы они заполняли доступную ширину терминала, обёртывая текст как нужно. Вот тот же самый пример с терминалом меньше таблицы:
+
+
+
+
+
+
+Прогресс Бары
+
+Rich может отображать несколько плавных [прогресс](https://rich.readthedocs.io/en/latest/progress.html) баров чтобы отслеживать долго-идущие задания.
+
+Для базового использования, оберните любую последовательность в функции `track` и переберите результат. Вот пример:
+
+```python
+from rich.progress import track
+
+for step in track(range(100)):
+ do_step(step)
+```
+
+Отслеживать больше чем 1 задание не сложнее. Вот пример взятый из документации:
+
+
+
+Столбцы могут быть настроены чтобы показывать любые детали. Стандартные столбцы содержат проценты исполнения, размер файлы, скорость файла, и оставшееся время. Вот ещё пример показывающий загрузку в прогрессе:
+
+
+
+Чтобы попробовать самому, скачайте [examples/downloader.py](https://github.com/willmcgugan/rich/blob/master/examples/downloader.py) который может скачать несколько URL одновременно пока отображая прогресс.
+
+
+
+
+Статус
+
+Для ситуаций где сложно высчитать прогресс, вы можете использовать метод [статус](https://rich.readthedocs.io/en/latest/reference/console.html#rich.console.Console.status) который будет отображать крутящуюся анимацию и сообщение. Анимация не перекроет вам доступ к консоли. Вот пример:
+
+```python
+from time import sleep
+from rich.console import Console
+
+console = Console()
+tasks = [f"task {n}" for n in range(1, 11)]
+
+with console.status("[bold green]Working on tasks...") as status:
+ while tasks:
+ task = tasks.pop(0)
+ sleep(1)
+ console.log(f"{task} complete")
+```
+
+Это генерирует вот такой вывод в консоль.
+
+
+
+Крутящиеся анимации были взяты из [cli-spinners](https://www.npmjs.com/package/cli-spinners). Вы можете выбрать одну из них указав параметр `spinner`. Запустите следующую команду чтобы узнать доступные анимации:
+
+```
+python -m rich.spinner
+```
+
+Эта команда выдаёт вот такой вывод в терминал:
+
+
+
+
+
+
+Дерево
+
+Rich может отобразить [дерево](https://rich.readthedocs.io/en/latest/tree.html) с указаниями. Дерево идеально подходит для отображения структуры файлов или любых других иерархических данных.
+
+Ярлыки дерева могут быть простым текстом или любой другой вещью Rich может отобразить. Запустите следующую команду для демонстрации:
+
+```
+python -m rich.tree
+```
+
+Это генерирует следующий вывод:
+
+
+
+Смотрите пример [tree.py](https://github.com/willmcgugan/rich/blob/master/examples/tree.py) для скрипта который отображает дерево любой директории, похоже на команду linux `tree`.
+
+
+
+
+Столбцы
+
+Rich может отображать контент в [столбцах](https://rich.readthedocs.io/en/latest/columns.html) с равной или оптимальной шириной. Вот очень простой пример клона команды `ls` (MacOS / Linux) который отображает a файлы директории в столбцах:
+
+```python
+import os
+import sys
+
+from rich import print
+from rich.columns import Columns
+
+directory = os.listdir(sys.argv[1])
+print(Columns(directory))
+```
+
+Следующий скриншот это вывод из [примера столбцов](https://github.com/willmcgugan/rich/blob/master/examples/columns.py) который изображает данные взятые из API в столбцах:
+
+
+
+
+
+
+Markdown
+
+Rich может отображать [markdown](https://rich.readthedocs.io/en/latest/markdown.html) и делает неплохую работу в форматировании под терминал.
+
+Чтобы отобразить markdown импортируйте класс `Markdown` и инициализируйте его с помощью строки содержащей код markdown. После чего выведите его в консоль. Вот пример:
+
+```python
+from rich.console import Console
+from rich.markdown import Markdown
+
+console = Console()
+with open("README.md") as readme:
+ markdown = Markdown(readme.read())
+console.print(markdown)
+```
+
+Это выведет что-то похожее на это:
+
+
+
+
+
+
+Подсвечивание Синтаксиса
+
+Rich использует библиотеку [pygments](https://pygments.org/) чтобы имплементировать [подсвечивание синтаксиса](https://rich.readthedocs.io/en/latest/syntax.html). Использование похоже на отображение markdown; инициализируйте класс `Syntax` и выводите его в консоль. Вот пример:
+
+```python
+from rich.console import Console
+from rich.syntax import Syntax
+
+my_code = '''
+def iter_first_last(values: Iterable[T]) -> Iterable[Tuple[bool, bool, T]]:
+ """Iterate and generate a tuple with a flag for first and last value."""
+ iter_values = iter(values)
+ try:
+ previous_value = next(iter_values)
+ except StopIteration:
+ return
+ first = True
+ for value in iter_values:
+ yield first, False, previous_value
+ first = False
+ previous_value = value
+ yield first, True, previous_value
+'''
+syntax = Syntax(my_code, "python", theme="monokai", line_numbers=True)
+console = Console()
+console.print(syntax)
+```
+
+Это выведет что-то похожее на это:
+
+
+
+
+
+
+Ошибки
+
+Rich может отображать [красивые ошибки](https://rich.readthedocs.io/en/latest/traceback.html) которые проще читать и показывают больше кода чем стандартные ошибки Python. Вы можете установить Rich как стандартный обработчик ошибок чтобы все непойманные ошибки отображал Rich.
+
+Вот как это выглядит на OSX (похоже на Linux):
+
+
+
+
+
+Все визуализации Rich используют [протокол Console](https://rich.readthedocs.io/en/latest/protocol.html), который также позволяет вам добавлять свой Rich контент.
+
+# Rich для предприятий
+
+Rich доступен как часть подписки Tidelift.
+
+Поддержатели проекта Rich и тысячи других работают над подпиской Tidelift чтобы предоставить коммерческую поддержку и поддержание для проектов с открытым кодом вы используете чтобы построить своё приложение. Сохраните время, избавьтесь от риска, и улучшите состояние кода, пока вы платите поддержателям проектов вы используете. [Узнайте больше.](https://tidelift.com/subscription/pkg/pypi-rich?utm_source=pypi-rich&utm_medium=referral&utm_campaign=enterprise&utm_term=repo)
+
+# Проекты использующие Rich
+
+Вот пару проектов использующих Rich:
+
+- [BrancoLab/BrainRender](https://github.com/BrancoLab/BrainRender)
+ библиотека Python для визуализации нейроанатомических данных в 3 измерениях
+- [Ciphey/Ciphey](https://github.com/Ciphey/Ciphey)
+ автоматизированная утилита для расшифровки
+- [emeryberger/scalene](https://github.com/emeryberger/scalene)
+ Высокая производительность, высокая точность CPU и профилировщик памяти для Python
+- [hedythedev/StarCli](https://github.com/hedythedev/starcli)
+ Просматривайте трендовые проекты GitHub прямо из вашего терминала
+- [intel/cve-bin-tool](https://github.com/intel/cve-bin-tool)
+ Эта утилита сканирует известные уязвимости (openssl, libpng, libxml2, expat and a few others) чтобы уведомить вас если ваша система использует библиотеки с известными уязвимостями.
+- [nf-core/tools](https://github.com/nf-core/tools)
+ Библиотека Python с полезными инструментами для сообщества nf-core.
+- [cansarigol/pdbr](https://github.com/cansarigol/pdbr)
+ pdb + Rich библиотека для улучшенного дебаггинга
+- [plant99/felicette](https://github.com/plant99/felicette)
+ Изображения со спутников для чайников.
+- [seleniumbase/SeleniumBase](https://github.com/seleniumbase/SeleniumBase)
+ Автоматизируйте и тестируйте в 10 раз быстрее с Selenium и pytest. Батарейки включены.
+- [smacke/ffsubsync](https://github.com/smacke/ffsubsync)
+ Автоматически синхронизируйте субтитры с видео.
+- [tryolabs/norfair](https://github.com/tryolabs/norfair)
+ Простая библиотека Python для добавления 2D отслеживания к любому детектеру в реальном времени.
+- [ansible/ansible-lint](https://github.com/ansible/ansible-lint) Ansible-lint проверяет пьесы для практик и поведений которые могут быть исправлены
+- [ansible-community/molecule](https://github.com/ansible-community/molecule) Ansible Molecule тестинг фреймворк
+- +[Ещё больше](https://github.com/willmcgugan/rich/network/dependents)!
+
+
diff --git a/README.sv.md b/README.sv.md
new file mode 100644
index 0000000000..b2685a705e
--- /dev/null
+++ b/README.sv.md
@@ -0,0 +1,454 @@
+[](https://pepy.tech/project/rich)
+[](https://badge.fury.io/py/rich)
+[](https://codecov.io/gh/willmcgugan/rich)
+[](https://www.willmcgugan.com/tag/rich/)
+[](https://twitter.com/willmcgugan)
+
+
+
+[English readme](https://github.com/willmcgugan/rich/blob/master/README.md)
+ • [简体中文 readme](https://github.com/willmcgugan/rich/blob/master/README.cn.md)
+ • [正體中文 readme](https://github.com/willmcgugan/rich/blob/master/README.zh-tw.md)
+ • [Lengua española readme](https://github.com/willmcgugan/rich/blob/master/README.es.md)
+ • [Deutsche readme](https://github.com/willmcgugan/rich/blob/master/README.de.md)
+ • [Läs på svenska](https://github.com/willmcgugan/rich/blob/master/README.sv.md)
+ • [日本語 readme](https://github.com/willmcgugan/rich/blob/master/README.ja.md)
+ • [한국어 readme](https://github.com/willmcgugan/rich/blob/master/README.kr.md)
+ • [Français readme](https://github.com/willmcgugan/rich/blob/master/README.fr.md)
+ • [Schwizerdütsch readme](https://github.com/willmcgugan/rich/blob/master/README.de-ch.md)
+ • [हिन्दी readme](https://github.com/willmcgugan/rich/blob/master/README.hi.md)
+ • [Português brasileiro readme](https://github.com/willmcgugan/rich/blob/master/README.pt-br.md)
+ • [Русский readme](https://github.com/willmcgugan/rich/blob/master/README.ru.md)
+
+Rich är ett Python bibliotek för _rich_ text och vacker formattering i terminalen.
+
+[Rich API](https://rich.readthedocs.io/en/latest/) gör det enkelt att lägga till färg och stil till terminal utmatning. Rich kan också framställa fina tabeller, framstegsfält, märkspråk, syntaxmarkerad källkod, tillbaka-spårning, och mera - redo att använda.
+
+
+
+För en video demonstration av Rich kolla [calmcode.io](https://calmcode.io/rich/introduction.html) av [@fishnets88](https://twitter.com/fishnets88).
+
+Se vad [folk pratar om Rich](https://www.willmcgugan.com/blog/pages/post/rich-tweets/).
+
+## Kompatibilitet
+
+Rich funkar med Linux, OSX, och Windows. Sann färg / emoji funkar med nya Windows Terminalen, klassiska terminal är begränsad till 8 färger. Rich kräver Python 3.6.1 eller senare.
+
+Rich funkar med [Jupyter notebooks](https://jupyter.org/) utan någon ytterligare konfiguration behövd.
+
+## Installering
+
+Installera med `pip` eller din favorita PyPI packet hanterare.
+
+```sh
+python -m pip install rich
+```
+
+Kör följade följande för att testa Rich utmatning i din terminal:
+
+```sh
+python -m rich
+```
+
+## Rich utskrivningsfunktion
+
+För att enkelt lägga till rich utmatning i din applikation, kan du importera [rich print](https://rich.readthedocs.io/en/latest/introduction.html#quick-start) metoden, vilket har den samma signatur som den inbyggda Python funktionen. Testa detta:
+
+```python
+from rich import print
+
+print("Hello, [bold magenta]World[/bold magenta]!", ":vampire:", locals())
+```
+
+
+
+## Rich REPL
+
+Rich kan installeras i Python REPL, så att varje datastruktur kommer att skrivas ut fint och markeras.
+
+```python
+>>> from rich import pretty
+>>> pretty.install()
+```
+
+
+
+## Användning av konsolen
+
+För mer kontroll över rich terminal innehållsutmatning, importera och konstruera ett [Console](https://rich.readthedocs.io/en/latest/reference/console.html#rich.console.Console) objekt.
+
+```python
+from rich.console import Console
+
+console = Console()
+```
+
+`Console` objektet har en `print` metod vilket har ett avsiktligt liknande gränssnitt till den inbyggda `print` funktionen. Här är ett exempel av användningen:
+
+```python
+console.print("Hello", "World!")
+```
+
+Som du möjligtvis anar, detta kommer skriva ut `"Hello World!"` till terminalen. Notera att till skillnad från den inbyggda `print` funktionen, Rich kommer att radbryta din text så att den passar inom terminalbredden.
+
+Det finns ett par sätt att lägga till färg och stil till din utmatning. Du kan sätta en stil för hela utmatningen genom att addera ett `style` nyckelord argument. Här är ett exempel:
+
+```python
+console.print("Hello", "World!", style="bold red")
+```
+
+Utmatningen kommer bli något liknande:
+
+
+
+Det är bra för att ge stil till en textrad åt gången. För mer finkornad stilisering, Rich framställer en speciell märkspråk vilket liknar [bbcode](https://en.wikipedia.org/wiki/BBCode) i syntax. Här är ett exempel:
+
+```python
+console.print("Where there is a [bold cyan]Will[/bold cyan] there [u]is[/u] a [i]way[/i].")
+```
+
+
+
+Du kan använda ett `Console` objekt för att generera sofistikerad utmatning med minimal ansträngning. Se [Console API](https://rich.readthedocs.io/en/latest/console.html) dokument för detaljer.
+
+## Rich Inspektera
+
+Rich har en [inspektionsfunktion](https://rich.readthedocs.io/en/latest/reference/init.html?highlight=inspect#rich.inspect) som kan producera en rapport om vilket Python objekt som helst, till exempel klass, instans, eller inbyggt.
+
+```python
+>>> my_list = ["foo", "bar"]
+>>> from rich import inspect
+>>> inspect(my_list, methods=True)
+```
+
+
+
+See [inspektionsdokumentationen](https://rich.readthedocs.io/en/latest/reference/init.html#rich.inspect) för detaljer.
+
+# Rich Library
+
+Rich innehåller ett antal av inbyggda _renderables_ som du kan använda för att skapa elegant utmatning i din kommandotolk och hjälpa dig felsöka din kod.
+
+Klicka på följande rubriker för detaljer:
+
+
+Logga
+
+`Console` objektet har en `log()` metod vilket har liknande gränssnitt som `print()`, men framställer även en kolumn för den nuvarande tid och fil samt rad vilket gjorde anroppet. Som standard kommer Rich att markera syntax för Python strukturer och för repr strängar. Ifall du loggar en samling (det vill säga en ordbok eller en lista) kommer Rich att finskriva ut det så att det passar i det tillgängliga utrymme. Här är ett exempel av dessa funktioner.
+
+```python
+from rich.console import Console
+console = Console()
+
+test_data = [
+ {"jsonrpc": "2.0", "method": "sum", "params": [None, 1, 2, 4, False, True], "id": "1",},
+ {"jsonrpc": "2.0", "method": "notify_hello", "params": [7]},
+ {"jsonrpc": "2.0", "method": "subtract", "params": [42, 23], "id": "2"},
+]
+
+def test_log():
+ enabled = False
+ context = {
+ "foo": "bar",
+ }
+ movies = ["Deadpool", "Rise of the Skywalker"]
+ console.log("Hello from", console, "!")
+ console.log(test_data, log_locals=True)
+
+
+test_log()
+```
+
+Det ovanstående har följande utmatning:
+
+
+
+Notera `log_locals` argumentet, vilket utmatar en tabell innehållandes de lokala variablerna varifrån log metoden kallades från.
+
+Log metoden kan användas för att logga till terminal för långkörande applikationer så som servrar, men är också en väldigt bra felsökningsverktyg.
+
+
+
+Loggningshanterare
+
+Du kan också använda den inbyggda [Handler klassen](https://rich.readthedocs.io/en/latest/logging.html) för att formatera och färglägga utmatningen från Pythons loggningsmodul. Här är ett exempel av utmatningen:
+
+
+
+
+
+
+Emoji
+
+För att infoga en emoji till konsolutmatningen placera namnet mellan två kolon. Här är ett exempel:
+
+```python
+>>> console.print(":smiley: :vampire: :pile_of_poo: :thumbs_up: :raccoon:")
+😃 🧛 💩 👍 🦝
+```
+
+Vänligen använd denna funktion klokt.
+
+
+
+
+Tabeller
+
+Rich kan framställa flexibla [tabeller](https://rich.readthedocs.io/en/latest/tables.html) med unicode boxkaraktärer. Det finns en stor mängd av formateringsalternativ för gränser, stilar, och celljustering etc.
+
+
+
+Animationen ovan genererades utav [table_movie.py](https://github.com/willmcgugan/rich/blob/master/examples/table_movie.py) i exempelkatalogen.
+
+Här är ett exempel av en enklare tabell:
+
+```python
+from rich.console import Console
+from rich.table import Table
+
+console = Console()
+
+table = Table(show_header=True, header_style="bold magenta")
+table.add_column("Date", style="dim", width=12)
+table.add_column("Title")
+table.add_column("Production Budget", justify="right")
+table.add_column("Box Office", justify="right")
+table.add_row(
+ "Dec 20, 2019", "Star Wars: The Rise of Skywalker", "$275,000,000", "$375,126,118"
+)
+table.add_row(
+ "May 25, 2018",
+ "[red]Solo[/red]: A Star Wars Story",
+ "$275,000,000",
+ "$393,151,347",
+)
+table.add_row(
+ "Dec 15, 2017",
+ "Star Wars Ep. VIII: The Last Jedi",
+ "$262,000,000",
+ "[bold]$1,332,539,889[/bold]",
+)
+
+console.print(table)
+```
+
+Detta producerar följande utmatning:
+
+
+
+Notera att konsol märkspråk är framställt på samma sätt som `print()` och `log()`. I själva verket, vad som helst som är framställt av Rich kan inkluderas i rubriker / rader (även andra tabeller).
+
+`Table` klassen är smart nog att storleksändra kolumner att passa den tillgängliga bredden av terminalen, och slår in text ifall det behövs. Här är samma exempel, med terminalen gjord mindre än tabell ovan:
+
+
+
+
+
+
+Framstegsfält
+
+Rich kan framställa flera flimmerfria [framstegsfält](https://rich.readthedocs.io/en/latest/progress.html) för att följa långvariga uppgifter.
+
+För grundläggande användning, slå in valfri sekvens i `track` funktion och iterera över resultatet. Här är ett exempel:
+
+```python
+from rich.progress import track
+
+for step in track(range(100)):
+ do_step(step)
+```
+
+Det är inte mycket svårare att lägga till flera framstegsfält. Här är ett exempel tagen från dokumentationen:
+
+
+
+Dessa kolumner kan konfigureras att visa vilka detaljer du vill. Inbyggda kolumner inkluderar procentuell färdig, filstorlek, filhastighet, och återstående tid. Här är ännu ett exempel som visar en pågående nedladdning:
+
+
+
+För att själv testa detta, kolla [examples/downloader.py](https://github.com/willmcgugan/rich/blob/master/examples/downloader.py) vilket kan ladda ner flera URLs samtidigt medan visar framsteg.
+
+
+
+
+Status
+
+För situationer där det är svårt att beräkna framsteg, kan du använda [status](https://rich.readthedocs.io/en/latest/reference/console.html#rich.console.Console.status) metoden vilket kommer visa en 'snurra' animation och meddelande. Animationen hindrar dig inte från att använda konsolen som normalt. Här är ett exempel:
+
+```python
+from time import sleep
+from rich.console import Console
+
+console = Console()
+tasks = [f"task {n}" for n in range(1, 11)]
+
+with console.status("[bold green]Working on tasks...") as status:
+ while tasks:
+ task = tasks.pop(0)
+ sleep(1)
+ console.log(f"{task} complete")
+```
+
+Detta genererar följande utmatning i terminalen.
+
+
+
+Snurra animationen är lånad ifrån [cli-spinners](https://www.npmjs.com/package/cli-spinners). Du kan välja en snurra genom att specifiera `spinner` parametern. Kör följande kommando för att se tillgängliga värden:
+
+```
+python -m rich.spinner
+```
+
+Kommandot ovan genererar följande utmatning i terminalen:
+
+
+
+
+
+
+Träd
+
+Rich kan framställa ett [träd](https://rich.readthedocs.io/en/latest/tree.html) med riktlinjer. Ett träd är idealt för att visa en filstruktur, eller andra hierarkiska data.
+
+Etiketter på trädet kan vara enkelt text eller något annat som Rich kan framställa. Kör följande för en demonstration:
+
+```
+python -m rich.tree
+```
+
+Detta genererar följande utmatning:
+
+
+
+Se [tree.py](https://github.com/willmcgugan/rich/blob/master/examples/tree.py) exemplet för ett skript som visar en trädvy av vilken katalog som helst, som liknar linux `tree` kommandot.
+
+
+
+
+Kolumner
+
+Rich kan framställa innehåll i prydliga [kolumner](https://rich.readthedocs.io/en/latest/columns.html) med lika eller optimal bredd. Här är en grundläggande klon av (MacOS / Linux) `ls` kommandot vilket visar en kataloglista i kolumner:
+
+```python
+import os
+import sys
+
+from rich import print
+from rich.columns import Columns
+
+directory = os.listdir(sys.argv[1])
+print(Columns(directory))
+```
+
+Följande skärmdump är resultatet från [kolumner exempelet](https://github.com/willmcgugan/rich/blob/master/examples/columns.py) vilket visar data tagen från ett API i kolumner:
+
+
+
+
+
+
+Märkspråk
+
+Rich kan framställa [märkspråk](https://rich.readthedocs.io/en/latest/markdown.html) och gör ett rimligt jobb med att översätta formateringen till terminalen.
+
+För att framställa märkspråk importera `Markdown` klassen och konstruera den med en sträng innehållandes märkspråkskod. Mata sedan ut det till konsolen. Här är ett exempel:
+
+```python
+from rich.console import Console
+from rich.markdown import Markdown
+
+console = Console()
+with open("README.md") as readme:
+ markdown = Markdown(readme.read())
+console.print(markdown)
+```
+
+Detta kommer att producera utmatning som liknar följande:
+
+
+
+
+
+
+Syntaxmarkering
+
+Rich använder [pygments](https://pygments.org/) biblioteket för att implementera [syntax markering](https://rich.readthedocs.io/en/latest/syntax.html). Användningen är liknande till framställa märkspråk; konstruera ett `Syntax` objekt och skriv ut den till konsolen. Här är ett exempel:
+
+```python
+from rich.console import Console
+from rich.syntax import Syntax
+
+my_code = '''
+def iter_first_last(values: Iterable[T]) -> Iterable[Tuple[bool, bool, T]]:
+ """Iterate and generate a tuple with a flag for first and last value."""
+ iter_values = iter(values)
+ try:
+ previous_value = next(iter_values)
+ except StopIteration:
+ return
+ first = True
+ for value in iter_values:
+ yield first, False, previous_value
+ first = False
+ previous_value = value
+ yield first, True, previous_value
+'''
+syntax = Syntax(my_code, "python", theme="monokai", line_numbers=True)
+console = Console()
+console.print(syntax)
+```
+
+Detta kommer producera följande utmatning:
+
+
+
+
+
+
+Tillbaka-spårning
+
+Rich kan framställa [vackra tillbaka-spårningar](https://rich.readthedocs.io/en/latest/traceback.html) vilket är enklare att läsa och visar mer kod än vanliga Python tillbaka-spårningar. Du kan sätta Rich som standard tillbaka-spårningshanterare så att alla ofångade undantag kommer att framställas av Rich.
+
+Så här ser det ut på OSX (liknande på Linux):
+
+
+
+
+
+Alla Rich framställsbara använder sig av [konsolprotokollet](https://rich.readthedocs.io/en/latest/protocol.html), som du också kan använda för att implementera ditt eget Rich-innehåll.
+
+# Rich för företag
+
+Tillgänglig som en del av Tidelift-prenumerationen.
+
+Underhållarna av Rich och tusentals andra paket arbetar med Tidelift för att leverera kommersiellt stöd och underhåll för de öppen källkodspaket som du kan använda för att bygga dina applikationer. Spara tid, reducera risk, och förbättra kodhälsan, samtidigt som du betalar underhållarna för exakt de paket du använder [Lär dig mer.](https://tidelift.com/subscription/pkg/pypi-rich?utm_source=pypi-rich&utm_medium=referral&utm_campaign=enterprise&utm_term=repo)
+
+# Projekt som använder sig av Rich
+
+Här är ett par projekt som använder Rich:
+
+- [BrancoLab/BrainRender](https://github.com/BrancoLab/BrainRender)
+ ett python packet för visualisering av tredimensionell neuro-anatomiska data
+- [Ciphey/Ciphey](https://github.com/Ciphey/Ciphey)
+ Automatiserat dekrypteringsverktyg
+- [emeryberger/scalene](https://github.com/emeryberger/scalene)
+ en högpresterande processor med hög precision och minnesprofilerare för Python
+- [hedythedev/StarCli](https://github.com/hedythedev/starcli)
+ Bläddra bland trendande projekt i Github från din kommandotolk
+- [intel/cve-bin-tool](https://github.com/intel/cve-bin-tool)
+ Detta verktyg skannar efter vanliga, sårbara komponenter (openssl, libpng, libxml2, expat och en del andra) för att låta dig veta ifall ditt system inkluderar vanliga bibliotek med kända sårbarheter.
+- [nf-core/tools](https://github.com/nf-core/tools)
+ Python packet med hjälpverktyg för nf-core gemenskapen.
+- [cansarigol/pdbr](https://github.com/cansarigol/pdbr)
+ pdb + Rich bibliotek för förbättrad felsökning.
+- [plant99/felicette](https://github.com/plant99/felicette)
+ Satellitbilder för nybörjare.
+- [seleniumbase/SeleniumBase](https://github.com/seleniumbase/SeleniumBase)
+ Automatisera & testa 10x snabbare med Selenium & pytest. Batterier inkluderat.
+- [smacke/ffsubsync](https://github.com/smacke/ffsubsync)
+ Automagiskt synkronisera undertexter med video.
+- [tryolabs/norfair](https://github.com/tryolabs/norfair)
+ Lättvikt Python bibliotek för att addera 2d-objektspårning i realtid till vilken detektor som helst.
+- [ansible/ansible-lint](https://github.com/ansible/ansible-lint) Ansible-lint kontroller playbooks för dess metoder och beteenden som potentiellt kan förbättras
+- [ansible-community/molecule](https://github.com/ansible-community/molecule) Ansible Molecule ramverk för testning
+- +[Many more](https://github.com/willmcgugan/rich/network/dependents)!
diff --git a/README.zh-tw.md b/README.zh-tw.md
new file mode 100644
index 0000000000..207f3260f7
--- /dev/null
+++ b/README.zh-tw.md
@@ -0,0 +1,457 @@
+[](https://pepy.tech/project/rich)
+[](https://badge.fury.io/py/rich)
+[](https://codecov.io/gh/willmcgugan/rich)
+[](https://www.willmcgugan.com/tag/rich/)
+[](https://twitter.com/willmcgugan)
+
+
+
+[English readme](https://github.com/willmcgugan/rich/blob/master/README.md)
+ • [简体中文 readme](https://github.com/willmcgugan/rich/blob/master/README.cn.md)
+ • [正體中文 readme](https://github.com/willmcgugan/rich/blob/master/README.zh-tw.md)
+ • [Lengua española readme](https://github.com/willmcgugan/rich/blob/master/README.es.md)
+ • [Deutsche readme](https://github.com/willmcgugan/rich/blob/master/README.de.md)
+ • [Läs på svenska](https://github.com/willmcgugan/rich/blob/master/README.sv.md)
+ • [日本語 readme](https://github.com/willmcgugan/rich/blob/master/README.ja.md)
+ • [한국어 readme](https://github.com/willmcgugan/rich/blob/master/README.kr.md)
+ • [Français readme](https://github.com/willmcgugan/rich/blob/master/README.fr.md)
+ • [Schwizerdütsch readme](https://github.com/willmcgugan/rich/blob/master/README.de-ch.md)
+ • [हिन्दी readme](https://github.com/willmcgugan/rich/blob/master/README.hi.md)
+ • [Português brasileiro readme](https://github.com/willmcgugan/rich/blob/master/README.pt-br.md)
+ • [Italian readme](https://github.com/willmcgugan/rich/blob/master/README.it.md)
+ • [Русский readme](https://github.com/willmcgugan/rich/blob/master/README.ru.md)
+
+Rich 是一款提供終端機介面中 _豐富的_ 文字效果及精美的格式設定的 Python 函式庫。
+
+[Rich API](https://rich.readthedocs.io/en/latest/) 讓終端機介面加上色彩及樣式變得易如反掌。Rich 也可以繪製漂亮的表格、進度條、Markdown、語法醒目標示的程式碼、Traceback(追溯)……。
+
+
+
+關於 Rich 的介紹,請參見 [@fishnets88](https://twitter.com/fishnets88) 在 [calmcode.io](https://calmcode.io/rich/introduction.html) 錄製的影片。
+
+[看看其他人對於 Rich 的討論](https://www.willmcgugan.com/blog/pages/post/rich-tweets/)。
+
+## 相容性
+
+Rich 可在 Linux、macOS、Windows 上運作。在新的 Windows Terminal 中可支援顯示全彩及 Emoji,但傳統的終端機中僅支援 16 色。Rich 最低需要的 Python 版本為 3.6.1。
+
+Rich 可在 [Jupyter notebooks](https://jupyter.org/) 上使用,無須額外設定。
+
+## 安裝
+
+以 `pip` 或 PyPI 套件管理器安裝。
+
+```sh
+python -m pip install rich
+```
+
+以此命令測試 Rich 在終端機的輸出效果:
+
+```sh
+python -m rich
+```
+
+## Rich Print
+
+匯入 [rich print](https://rich.readthedocs.io/en/latest/introduction.html#quick-start) 方法就可以輕鬆地讓程式進行 rich 輸出,rich print 與 Python 內建的函式用法相似。試試:
+
+```python
+from rich import print
+
+print("Hello, [bold magenta]World[/bold magenta]!", ":vampire:", locals())
+```
+
+
+
+## Rich REPL
+
+Rich 可以安裝在 Python REPL 中,如此一來就可以漂亮的輸出與突顯標示任何資料結構。
+
+```python
+>>> from rich import pretty
+>>> pretty.install()
+```
+
+
+
+## 使用 Console
+
+匯入並建構 [Console](https://rich.readthedocs.io/en/latest/reference/console.html#rich.console.Console) 物件,以更全面地控制 rich 終端機內容。
+
+```python
+from rich.console import Console
+
+console = Console()
+```
+
+Console 物件有個 `print` 方法,且刻意設計的與內建 `print` 函式相似。參考此範例:
+
+```python
+console.print("Hello", "World!")
+```
+
+如同預期的,這會將 `"Hello World!"` 印在終端機。須注意不同於內建的 `print` 函式,Rich 會自動將過長的文字換行,以符合終端機的寬度。
+
+有幾種加上顏色及樣式的方式。您可以用 `style` 引數設定輸出內容的樣式,參考此範例:
+
+```python
+console.print("Hello", "World!", style="bold red")
+```
+
+輸出結果如下圖:
+
+
+
+介紹完了如何對整行文字設定樣式,接著來看看更細部的使用。Rich 可以接受類似 [bbcode](https://en.wikipedia.org/wiki/BBCode) 的語法,對個別文字設定樣式。參考此範例:
+
+```python
+console.print("Where there is a [bold cyan]Will[/bold cyan] there [u]is[/u] a [i]way[/i].")
+```
+
+
+
+您可以用 Console 物件不費吹灰之力地達成細膩的輸出效果。參閱 [Console API](https://rich.readthedocs.io/en/latest/console.html) 說明文件以了解細節。
+
+## Rich Inspect
+
+Rich 提供了 [inspect](https://rich.readthedocs.io/en/latest/reference/init.html?highlight=inspect#rich.inspect) 函式,可以對任何 Python 物件,如 class、instance 或 builtin ,為其產生一份報告。
+
+```python
+>>> my_list = ["foo", "bar"]
+>>> from rich import inspect
+>>> inspect(my_list, methods=True)
+```
+
+
+
+參閱 [inspect 說明文件](https://rich.readthedocs.io/en/latest/reference/init.html#rich.inspect) 以了解細節。
+
+# Rich 函式庫
+
+Rich 包含了一系列可繪製的物件,您可以使用它們來印出精美的畫面,或者協助偵錯程式碼。
+
+按一下子標題以了解細節:
+
+
+Log
+
+Console 物件提供了 `log()` 方法,使用方式與 `print()` 類似,但還多了一欄來顯示目前時間、進行呼叫的檔案及行號。預設情況下 Rich 會語法醒目標示 Python 的結構及 repr 字串。若使用於字典或串列這類集合性物件,Rich 會將其漂亮地印出來,以符合可用空間。此範例示範了這些功能。
+
+```python
+from rich.console import Console
+console = Console()
+
+test_data = [
+ {"jsonrpc": "2.0", "method": "sum", "params": [None, 1, 2, 4, False, True], "id": "1",},
+ {"jsonrpc": "2.0", "method": "notify_hello", "params": [7]},
+ {"jsonrpc": "2.0", "method": "subtract", "params": [42, 23], "id": "2"},
+]
+
+def test_log():
+ enabled = False
+ context = {
+ "foo": "bar",
+ }
+ movies = ["Deadpool", "Rise of the Skywalker"]
+ console.log("Hello from", console, "!")
+ console.log(test_data, log_locals=True)
+
+
+test_log()
+```
+
+上面的程式碼會產生下圖結果:
+
+
+
+注意到 `log_locals` 引數,可用來輸出一張表格,用來顯示 log 方法被呼叫時,區域變數的內容。
+
+log 方法可用於伺服器上長時間運作的程式,也很適合一般程式偵錯用途。
+
+
+
+Logging Handler
+
+您也可以使用內建的 [Handler 類別](https://rich.readthedocs.io/en/latest/logging.html) 來將 Python logging 模組的輸出內容格式化並賦予色彩:
+
+
+
+
+
+
+Emoji
+
+以一對冒號包住表情符號的名稱,來透過 console 插入 Emoji。參考範例:
+
+```python
+>>> console.print(":smiley: :vampire: :pile_of_poo: :thumbs_up: :raccoon:")
+😃 🧛 💩 👍 🦝
+```
+
+請謹慎使用此功能。
+
+
+
+
+表格
+
+Rich 可以用 unicode box 字元繪製彈性的 [表格](https://rich.readthedocs.io/en/latest/tables.html)。格式設定十分多元,包含框線、樣式、儲存格對齊……。
+
+
+
+上圖的動畫效果是以 [table_movie.py](https://github.com/willmcgugan/rich/blob/master/examples/table_movie.py) 產生的,該檔案位於 examples 資料夾。
+
+參考這個簡單的表格範例:
+
+```python
+from rich.console import Console
+from rich.table import Table
+
+console = Console()
+
+table = Table(show_header=True, header_style="bold magenta")
+table.add_column("Date", style="dim", width=12)
+table.add_column("Title")
+table.add_column("Production Budget", justify="right")
+table.add_column("Box Office", justify="right")
+table.add_row(
+ "Dec 20, 2019", "Star Wars: The Rise of Skywalker", "$275,000,000", "$375,126,118"
+)
+table.add_row(
+ "May 25, 2018",
+ "[red]Solo[/red]: A Star Wars Story",
+ "$275,000,000",
+ "$393,151,347",
+)
+table.add_row(
+ "Dec 15, 2017",
+ "Star Wars Ep. VIII: The Last Jedi",
+ "$262,000,000",
+ "[bold]$1,332,539,889[/bold]",
+)
+
+console.print(table)
+```
+
+執行結果如圖:
+
+
+
+請留意,主控台標記的呈現方式與 `print()`、`log()` 相同。事實上,由 Rich 繪製的任何東西都可以被放在任何標題、列,甚至其他表格裡。
+
+`Table` 類別很聰明,能夠自動調整欄寬來配合終端機的大小,也會在需要時自動將文字換行。此範例的程式碼與上一個相同,然而終端機變小了一點:
+
+
+
+
+
+
+進度條
+
+Rich 可繪製多個不閃爍的 [進度條](https://rich.readthedocs.io/en/latest/progress.html),以追蹤需時較久的工作。
+
+基本的使用方式,是將序列放在 `track` 函式中,再對其結果疊代。參考此範例:
+
+```python
+from rich.progress import track
+
+for step in track(range(100)):
+ do_step(step)
+```
+
+新增多個進度條也不是難事,來看看說明文件中的範例:
+
+
+
+您可以調整要顯示的狀態欄位。內建的欄位包含完成百分比、檔案大小、讀寫速度及剩餘時間。來看看另一個用來顯示下載進度的範例:
+
+
+
+想嘗試看看嗎?您可以在 [examples/downloader.py](https://github.com/willmcgugan/rich/blob/master/examples/downloader.py) 取得此範例程式。此程式可以在下載多個檔案時顯示各自的進度。
+
+
+
+
+狀態
+
+有些狀況下很難估計進度,就可以使用 [status](https://rich.readthedocs.io/en/latest/reference/console.html#rich.console.Console.status) 方法,此方法會顯示「spinner」動畫及訊息。該動畫播放時,仍可正常操作主控台。參考此範例:
+
+```python
+from time import sleep
+from rich.console import Console
+
+console = Console()
+tasks = [f"task {n}" for n in range(1, 11)]
+
+with console.status("[bold green]Working on tasks...") as status:
+ while tasks:
+ task = tasks.pop(0)
+ sleep(1)
+ console.log(f"{task} complete")
+```
+
+終端機的顯示效果如下:
+
+
+
+該 spinner 動畫乃借用自 [cli-spinners](https://www.npmjs.com/package/cli-spinners)。可以用 `spinner` 參數指定 spinner 樣式。執行此命令以顯示可用的值:
+
+```
+python -m rich.spinner
+```
+
+此命令在終端機的輸出結果如下圖:
+
+
+
+
+
+
+樹
+
+Rich 可以用導引線繪製一棵 [樹](https://rich.readthedocs.io/en/latest/tree.html)。樹很適合用來顯示檔案結構,或其他繼承性的資料。
+
+可以用文字或其他 Rich 能繪製的元素作為樹的標籤。執行下列程式碼來看看效果:
+
+```
+python -m rich.tree
+```
+
+這會產生下圖的結果:
+
+
+
+您可以參考 [tree.py](https://github.com/willmcgugan/rich/blob/master/examples/tree.py) 範例程式,此程式可以樹狀圖展示目錄結構,如同 Linux 的 `tree` 命令。
+
+
+
+
+資料欄
+
+Rich 可以將內容呈現於整齊的 [資料欄](https://rich.readthedocs.io/en/latest/columns.html) 中,其欄寬可為等寬或最適寬度。此範例仿作了 macOS / Linux 系統中 `ls` 命令的基本功能,可以用資料欄列出目錄:
+
+```python
+import os
+import sys
+
+from rich import print
+from rich.columns import Columns
+
+directory = os.listdir(sys.argv[1])
+print(Columns(directory))
+```
+
+此螢幕截圖為 [資料欄範例](https://github.com/willmcgugan/rich/blob/master/examples/columns.py) 的輸出結果。此程式從某 API 取得資料,並以資料欄呈現:
+
+
+
+
+
+
+Markdown
+
+Rich 可以繪製 [Markdown](https://rich.readthedocs.io/en/latest/markdown.html) 並處理了將其轉換為終端機格式的大量工作。
+
+先匯入 `Markdown` 類別,再以內容為 Markdown 語言的字串建構一個物件,接著將其印到 console。參考此範例:
+
+```python
+from rich.console import Console
+from rich.markdown import Markdown
+
+console = Console()
+with open("README.md") as readme:
+ markdown = Markdown(readme.read())
+console.print(markdown)
+```
+
+執行結果如下圖:
+
+
+
+
+
+
+語法醒目標示
+
+Rich 使用了 [pygments](https://pygments.org/) 函式庫來實作 [語法醒目標示](https://rich.readthedocs.io/en/latest/syntax.html) 功能。使用方式與繪製 Markdown 相似,先建構 `Syntax` 物件並將其印到 console。參考此範例:
+
+```python
+from rich.console import Console
+from rich.syntax import Syntax
+
+my_code = '''
+def iter_first_last(values: Iterable[T]) -> Iterable[Tuple[bool, bool, T]]:
+ """Iterate and generate a tuple with a flag for first and last value."""
+ iter_values = iter(values)
+ try:
+ previous_value = next(iter_values)
+ except StopIteration:
+ return
+ first = True
+ for value in iter_values:
+ yield first, False, previous_value
+ first = False
+ previous_value = value
+ yield first, True, previous_value
+'''
+syntax = Syntax(my_code, "python", theme="monokai", line_numbers=True)
+console = Console()
+console.print(syntax)
+```
+
+執行結果如下圖:
+
+
+
+
+
+
+Tracebacks(追溯)
+
+Rich 可以繪製 [漂亮的 tracebacks](https://rich.readthedocs.io/en/latest/traceback.html),相較標準的 Python traceback 顯示了更多程式碼且更好懂。您可以將 Rich 設為預設的 traceback handler(處理常式),如此一來所有未接住的例外都由 Rich 呈現。
+
+它在 macOS 上執行的效果如圖(Linux 上差異不大):
+
+
+
+
+
+所有可由 Rich 繪製的物件都用到了 [Console 協定](https://rich.readthedocs.io/en/latest/protocol.html),您也可以依此實作自訂的 Rich 內容。
+
+# Rich 企業版
+
+可在 Tidelift 訂閱方案取得。
+
+Rich 及其他數以千計的套件維護者正與 Tidelift 合作,以提供開放原始碼套件的商業性支援。此計畫能協助您節省時間、避開風險,同時也讓套件的維護者獲得報酬。[了解更多。](https://tidelift.com/subscription/pkg/pypi-rich?utm_source=pypi-rich&utm_medium=referral&utm_campaign=enterprise&utm_term=repo)
+
+# 使用 Rich 的專案
+
+以下列出幾個使用 Rich 的專案:
+
+- [BrancoLab/BrainRender](https://github.com/BrancoLab/BrainRender)
+ a python package for the visualization of three dimensional neuro-anatomical data
+- [Ciphey/Ciphey](https://github.com/Ciphey/Ciphey)
+ Automated decryption tool
+- [emeryberger/scalene](https://github.com/emeryberger/scalene)
+ a high-performance, high-precision CPU and memory profiler for Python
+- [hedythedev/StarCli](https://github.com/hedythedev/starcli)
+ Browse GitHub trending projects from your command line
+- [intel/cve-bin-tool](https://github.com/intel/cve-bin-tool)
+ This tool scans for a number of common, vulnerable components (openssl, libpng, libxml2, expat and a few others) to let you know if your system includes common libraries with known vulnerabilities.
+- [nf-core/tools](https://github.com/nf-core/tools)
+ Python package with helper tools for the nf-core community.
+- [cansarigol/pdbr](https://github.com/cansarigol/pdbr)
+ pdb + Rich library for enhanced debugging
+- [plant99/felicette](https://github.com/plant99/felicette)
+ Satellite imagery for dummies.
+- [seleniumbase/SeleniumBase](https://github.com/seleniumbase/SeleniumBase)
+ Automate & test 10x faster with Selenium & pytest. Batteries included.
+- [smacke/ffsubsync](https://github.com/smacke/ffsubsync)
+ Automagically synchronize subtitles with video.
+- [tryolabs/norfair](https://github.com/tryolabs/norfair)
+ Lightweight Python library for adding real-time 2D object tracking to any detector.
+- [ansible/ansible-lint](https://github.com/ansible/ansible-lint) Ansible-lint checks playbooks for practices and behaviour that could potentially be improved
+- [ansible-community/molecule](https://github.com/ansible-community/molecule) Ansible Molecule testing framework
+- +[Many more](https://github.com/willmcgugan/rich/network/dependents)!
+
+
diff --git a/SECURITY.md b/SECURITY.md
new file mode 100644
index 0000000000..5f0bd51bf2
--- /dev/null
+++ b/SECURITY.md
@@ -0,0 +1,3 @@
+## Security contact information
+
+To report a security vulnerability, please use the [Tidelift security contact](https://tidelift.com/security). Tidelift will coordinate the fix and disclosure.
diff --git a/assets/logo.ai b/assets/logo.ai
new file mode 100644
index 0000000000..778b71bb60
--- /dev/null
+++ b/assets/logo.ai
@@ -0,0 +1,5759 @@
+%PDF-1.6
%����
+1 0 obj
<>/OCGs[31 0 R]>>/Pages 3 0 R/Type/Catalog>>
endobj
2 0 obj
<>stream
+
+
+
+
+ application/pdf
+
+
+ logo
+
+
+ 2021-02-21T11:24:41Z
+ 2021-02-21T11:24:41Z
+ 2021-02-21T11:24:41Z
+ Adobe Illustrator 25.2 (Macintosh)
+
+
+
+ 256
+ 148
+ JPEG
+ /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA
AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK
DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f
Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgAlAEAAwER
AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA
AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB
UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE
1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ
qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy
obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp
0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo
+DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FUq1fzX5W0
WWKHWNZsdNlm/uY7y5hgZ6mnwiRlJ+jFU1xV2KuxV2KuxV2KpXqnmvyvpN5BZarrFjp95cittbXV
zDDLIK0qiSMrNvtsMVTQEEAg1B3BGKuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Ku
xV2KuxV2KvAvzw/NbzRJ5tH5beSrtdPu/q4n1/WlqZraOUf3UVQOL+m6NzQ1qy0ZSCcUPBfNflby
V5dhg0i202bWPMN8jtbvJM6lAagSSCNkXiDWg49jU5GUxEWeTKMTI0OaZaZ+bH5neTdE0/Qh52ex
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
+
+
+
+ uuid:0edba0c7-0a0f-ad4d-b978-239c9d4f9d29
+ xmp.did:5026a078-6e9e-4f7b-ac16-6a7f1655d4e4
+ uuid:5D20892493BFDB11914A8590D31508C8
+ proof:pdf
+
+ uuid:76b108ec-dcfe-4d12-8a05-9b34b1fd2c86
+ xmp.did:5cace282-7b96-2943-a43d-1dd8c9914347
+ uuid:5D20892493BFDB11914A8590D31508C8
+ proof:pdf
+
+
+
+
+ EmbedByReference
+
+ /Users/willmcgugan/Desktop/eg7fso9i.jpg
+ 0
+ 0
+
+
+
+
+
+
+
+ /Users/willmcgugan/Desktop/eg7fso9i.jpg
+ 0
+ 0
+
+
+
+
+
+
+ saved
+ xmp.iid:5026a078-6e9e-4f7b-ac16-6a7f1655d4e4
+ 2021-02-21T11:24:34Z
+ Adobe Illustrator 25.2 (Macintosh)
+ /
+
+
+
+ Document
+ Print
+ AIRobin
+ False
+ False
+ 1
+
+ 595.276000
+ 841.890000
+ Points
+
+
+
+ Cyan
+ Magenta
+ Yellow
+ Black
+
+
+
+
+
+ Default Swatch Group
+ 0
+
+
+
+ White
+ CMYK
+ PROCESS
+ 0.000000
+ 0.000000
+ 0.000000
+ 0.000000
+
+
+ Black
+ CMYK
+ PROCESS
+ 0.000000
+ 0.000000
+ 0.000000
+ 100.000000
+
+
+ CMYK Red
+ CMYK
+ PROCESS
+ 0.000000
+ 100.000000
+ 100.000000
+ 0.000000
+
+
+ CMYK Yellow
+ CMYK
+ PROCESS
+ 0.000000
+ 0.000000
+ 100.000000
+ 0.000000
+
+
+ CMYK Green
+ CMYK
+ PROCESS
+ 100.000000
+ 0.000000
+ 100.000000
+ 0.000000
+
+
+ CMYK Cyan
+ CMYK
+ PROCESS
+ 100.000000
+ 0.000000
+ 0.000000
+ 0.000000
+
+
+ CMYK Blue
+ CMYK
+ PROCESS
+ 100.000000
+ 100.000000
+ 0.000000
+ 0.000000
+
+
+ CMYK Magenta
+ CMYK
+ PROCESS
+ 0.000000
+ 100.000000
+ 0.000000
+ 0.000000
+
+
+ C=15 M=100 Y=90 K=10
+ CMYK
+ PROCESS
+ 15.000000
+ 100.000000
+ 90.000000
+ 10.000000
+
+
+ C=0 M=90 Y=85 K=0
+ CMYK
+ PROCESS
+ 0.000000
+ 90.000000
+ 85.000000
+ 0.000000
+
+
+ C=0 M=80 Y=95 K=0
+ CMYK
+ PROCESS
+ 0.000000
+ 80.000000
+ 95.000000
+ 0.000000
+
+
+ C=0 M=50 Y=100 K=0
+ CMYK
+ PROCESS
+ 0.000000
+ 50.000000
+ 100.000000
+ 0.000000
+
+
+ C=0 M=35 Y=85 K=0
+ CMYK
+ PROCESS
+ 0.000000
+ 35.000000
+ 85.000000
+ 0.000000
+
+
+ C=5 M=0 Y=90 K=0
+ CMYK
+ PROCESS
+ 5.000000
+ 0.000000
+ 90.000000
+ 0.000000
+
+
+ C=20 M=0 Y=100 K=0
+ CMYK
+ PROCESS
+ 20.000000
+ 0.000000
+ 100.000000
+ 0.000000
+
+
+ C=50 M=0 Y=100 K=0
+ CMYK
+ PROCESS
+ 50.000000
+ 0.000000
+ 100.000000
+ 0.000000
+
+
+ C=75 M=0 Y=100 K=0
+ CMYK
+ PROCESS
+ 75.000000
+ 0.000000
+ 100.000000
+ 0.000000
+
+
+ C=85 M=10 Y=100 K=10
+ CMYK
+ PROCESS
+ 85.000000
+ 10.000000
+ 100.000000
+ 10.000000
+
+
+ C=90 M=30 Y=95 K=30
+ CMYK
+ PROCESS
+ 90.000000
+ 30.000000
+ 95.000000
+ 30.000000
+
+
+ C=75 M=0 Y=75 K=0
+ CMYK
+ PROCESS
+ 75.000000
+ 0.000000
+ 75.000000
+ 0.000000
+
+
+ C=80 M=10 Y=45 K=0
+ CMYK
+ PROCESS
+ 80.000000
+ 10.000000
+ 45.000000
+ 0.000000
+
+
+ C=70 M=15 Y=0 K=0
+ CMYK
+ PROCESS
+ 70.000000
+ 15.000000
+ 0.000000
+ 0.000000
+
+
+ C=85 M=50 Y=0 K=0
+ CMYK
+ PROCESS
+ 85.000000
+ 50.000000
+ 0.000000
+ 0.000000
+
+
+ C=100 M=95 Y=5 K=0
+ CMYK
+ PROCESS
+ 100.000000
+ 95.000000
+ 5.000000
+ 0.000000
+
+
+ C=100 M=100 Y=25 K=25
+ CMYK
+ PROCESS
+ 100.000000
+ 100.000000
+ 25.000000
+ 25.000000
+
+
+ C=75 M=100 Y=0 K=0
+ CMYK
+ PROCESS
+ 75.000000
+ 100.000000
+ 0.000000
+ 0.000000
+
+
+ C=50 M=100 Y=0 K=0
+ CMYK
+ PROCESS
+ 50.000000
+ 100.000000
+ 0.000000
+ 0.000000
+
+
+ C=35 M=100 Y=35 K=10
+ CMYK
+ PROCESS
+ 35.000000
+ 100.000000
+ 35.000000
+ 10.000000
+
+
+ C=10 M=100 Y=50 K=0
+ CMYK
+ PROCESS
+ 10.000000
+ 100.000000
+ 50.000000
+ 0.000000
+
+
+ C=0 M=95 Y=20 K=0
+ CMYK
+ PROCESS
+ 0.000000
+ 95.000000
+ 20.000000
+ 0.000000
+
+
+ C=25 M=25 Y=40 K=0
+ CMYK
+ PROCESS
+ 25.000000
+ 25.000000
+ 40.000000
+ 0.000000
+
+
+ C=40 M=45 Y=50 K=5
+ CMYK
+ PROCESS
+ 40.000000
+ 45.000000
+ 50.000000
+ 5.000000
+
+
+ C=50 M=50 Y=60 K=25
+ CMYK
+ PROCESS
+ 50.000000
+ 50.000000
+ 60.000000
+ 25.000000
+
+
+ C=55 M=60 Y=65 K=40
+ CMYK
+ PROCESS
+ 55.000000
+ 60.000000
+ 65.000000
+ 40.000000
+
+
+ C=25 M=40 Y=65 K=0
+ CMYK
+ PROCESS
+ 25.000000
+ 40.000000
+ 65.000000
+ 0.000000
+
+
+ C=30 M=50 Y=75 K=10
+ CMYK
+ PROCESS
+ 30.000000
+ 50.000000
+ 75.000000
+ 10.000000
+
+
+ C=35 M=60 Y=80 K=25
+ CMYK
+ PROCESS
+ 35.000000
+ 60.000000
+ 80.000000
+ 25.000000
+
+
+ C=40 M=65 Y=90 K=35
+ CMYK
+ PROCESS
+ 40.000000
+ 65.000000
+ 90.000000
+ 35.000000
+
+
+ C=40 M=70 Y=100 K=50
+ CMYK
+ PROCESS
+ 40.000000
+ 70.000000
+ 100.000000
+ 50.000000
+
+
+ C=50 M=70 Y=80 K=70
+ CMYK
+ PROCESS
+ 50.000000
+ 70.000000
+ 80.000000
+ 70.000000
+
+
+
+
+
+ Grays
+ 1
+
+
+
+ C=0 M=0 Y=0 K=100
+ CMYK
+ PROCESS
+ 0.000000
+ 0.000000
+ 0.000000
+ 100.000000
+
+
+ C=0 M=0 Y=0 K=90
+ CMYK
+ PROCESS
+ 0.000000
+ 0.000000
+ 0.000000
+ 89.999400
+
+
+ C=0 M=0 Y=0 K=80
+ CMYK
+ PROCESS
+ 0.000000
+ 0.000000
+ 0.000000
+ 79.998800
+
+
+ C=0 M=0 Y=0 K=70
+ CMYK
+ PROCESS
+ 0.000000
+ 0.000000
+ 0.000000
+ 69.999700
+
+
+ C=0 M=0 Y=0 K=60
+ CMYK
+ PROCESS
+ 0.000000
+ 0.000000
+ 0.000000
+ 59.999100
+
+
+ C=0 M=0 Y=0 K=50
+ CMYK
+ PROCESS
+ 0.000000
+ 0.000000
+ 0.000000
+ 50.000000
+
+
+ C=0 M=0 Y=0 K=40
+ CMYK
+ PROCESS
+ 0.000000
+ 0.000000
+ 0.000000
+ 39.999400
+
+
+ C=0 M=0 Y=0 K=30
+ CMYK
+ PROCESS
+ 0.000000
+ 0.000000
+ 0.000000
+ 29.998800
+
+
+ C=0 M=0 Y=0 K=20
+ CMYK
+ PROCESS
+ 0.000000
+ 0.000000
+ 0.000000
+ 19.999700
+
+
+ C=0 M=0 Y=0 K=10
+ CMYK
+ PROCESS
+ 0.000000
+ 0.000000
+ 0.000000
+ 9.999100
+
+
+ C=0 M=0 Y=0 K=5
+ CMYK
+ PROCESS
+ 0.000000
+ 0.000000
+ 0.000000
+ 4.998800
+
+
+
+
+
+ Brights
+ 1
+
+
+
+ C=0 M=100 Y=100 K=0
+ CMYK
+ PROCESS
+ 0.000000
+ 100.000000
+ 100.000000
+ 0.000000
+
+
+ C=0 M=75 Y=100 K=0
+ CMYK
+ PROCESS
+ 0.000000
+ 75.000000
+ 100.000000
+ 0.000000
+
+
+ C=0 M=10 Y=95 K=0
+ CMYK
+ PROCESS
+ 0.000000
+ 10.000000
+ 95.000000
+ 0.000000
+
+
+ C=85 M=10 Y=100 K=0
+ CMYK
+ PROCESS
+ 85.000000
+ 10.000000
+ 100.000000
+ 0.000000
+
+
+ C=100 M=90 Y=0 K=0
+ CMYK
+ PROCESS
+ 100.000000
+ 90.000000
+ 0.000000
+ 0.000000
+
+
+ C=60 M=90 Y=0 K=0
+ CMYK
+ PROCESS
+ 60.000000
+ 90.000000
+ 0.003100
+ 0.003100
+
+
+
+
+
+
+ Adobe PDF library 15.00
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
endstream
endobj
3 0 obj
<>
endobj
5 0 obj
<>/Resources<>/ExtGState<>/Properties<>>>/Thumb 36 0 R/TrimBox[0.0 0.0 595.276 841.89]/Type/Page>>
endobj
33 0 obj
<>stream
+H���I�c�D�<ſ �b�*Z �Ћ> �ݵ�j�U���c 3+!!&=����_�����ϯ���߿^��n��9�>�2���^�e��ۯן�/_�����]˕���v>������C��?~������WJم��b�8����~�~�����
�
�T�k����T�{�Յ\��Z4��X���1_^hŅ��1\ٶ`%�+x�F�Ӳ�Eѕ��n~�M�ܛK� Od�ֹ-�Q�Y����|�+ogeT��-��]���
+ijM�w�X+��Ot�$N*Ʌ2.^�:�!+�S���v�.��
+�@�;`�s��A�x��=����#6�뻅�z��k�O�u����M�/)p��]v}�j�I��Wî�E�Z���@XI��:�R
9���o�~U���x�*rϯ�r��{r �g�a�TpY�%(��&������]��v�߈��x�n)Q�r֎{�c�����|{��ǵ���)
+��9Rh��
+s�qm0��}�J%�����<ǟ�y�2u �2�2��
�u�BQ�e�����.cg��;�{a�5��>��c�S��*$�C�K����c~]~�VI.�$#u>�� ^߳Ꚅ��[P˃=���]@چ=���;��"O;�x�{I�H���_�
+�Y���S���t��k��U,��|��1x~�Nv�ٛ�NT�b;>�����3
+{��'NPrޙX+�y¬��3�ǡ���͂C��ڷ�?��PR4��'���-���=w����\�w�
+�7 a���Nu� ��op��̰��d��YYT�
Z@��&�����
+�c�=�
+��EGkOf�'Q��e?�ckAT
�n��\�����b�,��^V��{���l<,"�+3�I�*���L�.�c��D) D����=�i9��kk�}���2X���gJ��Rޚ���`�
�'e��s�D-B���z)�YQ
jc��`��7h�(qs�[{�V
I�W9"�V`x���)6j��м��[�[�1ï��@��Ft
+ F�X� r"EsQ�"������JQ��+��ݛ@�
E�*�x@=��6��kTy�ˋ�Y�/&��j�?�.���1�{'J�4�(�"ɚ�t���$3�{�An.�=�95앳��E���8)�
�:
�-��V>�?Z"�Y��)��"�:U9ȫ+AR� ;ؘ�
�ց��VLN�P$�Y�L�2�Z�����'� î��U \�X�(5�L���7�s��'����3
:}�4$���#���&�f7ۼ����o$L���\��v���IH<�4aKA+2� ��P�"1�5B��H3���6����Y1�o�R��fL,F�L���z�AɹxA
+���I��>wgpa�^�v��ǡVNs_!��@�� Ke=sP�P>
F@Vu��<��x���$wQ�/�'�l�2W�֓eڊ���,�"��.��6HW���젙�T�:Yww�c��Bs�T�NJ�L�*���Uo�U���Lh.�kf��R��D�[ֳ�`��vg�����;5l��� ��m��z�6�i�H_�r�)�Z���Ւ��B� �J��"������F4%L�بY{�GU���Fj���Y�j`��2��b`�����Ǟ�a��Bs���� ;4����H�:��$L�e���h�Ph;R���L,�J�o���m�C˶��r�^jڅ�̑86�����/��0Dp'�>.������}I��6�F��}UH�!�d������J��#��DfӔʄ�Y0�)-�FKq��:M��`�B[ !�S�{���b�(aG{�y{�m�)������z�]'�4��ץ.�I�F��¼o��p[k=k������F`n�{�
+�,�
+6�'
+���ZM"Qm�9^c��}��wE����:��J� ^���=-S0̦nJ��als�(<���w��i.UxMׁ���j��
+@Q��U�$W�c����Uݛ1�:�[��p����0����1��m^kQ�p5i� >����^�jx��.y��Hr�� F��0 �x �`^ Sb}�YO��\e 06�Z>�zn�w9�����?�>f�'t��S𘠬�-d�:��� R���
X�c�h^�F�\!�T�`䙜u���"� ���]�B�4r=�C��mڻ����R�M�̺��<�:8Q]C�\�E�8�H�y�$�
+��
7�*�L\kh5��D��b����u�$gc^Tr--o7Iʠ}����hm����_�$(}#I�j^7�gSu�N.���w��z���,�s9ɝ�}]u�|8������s�MJP?��s)Ž�zI���.�s� ��M���s&�枻|��m=�S{Au���Jz���