diff --git a/.coveragerc b/.coveragerc index ff1a046c08..2afac8dc60 100644 --- a/.coveragerc +++ b/.coveragerc @@ -2,7 +2,8 @@ omit = rich/jupyter.py rich/_windows.py rich/_timer.py - + rich/diagnose.py + [report] exclude_lines = pragma: no cover diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml index fd623f58c2..7c92f61f11 100644 --- a/.github/FUNDING.yml +++ b/.github/FUNDING.yml @@ -1,5 +1,3 @@ # These are supported funding model platforms -github: willmcgugan -ko_fi: willmcgugan -tidelift: "pypi/rich" +ko_fi: textualize diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index b19a15c10e..6d6f45677f 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -6,27 +6,35 @@ labels: Needs triage assignees: "" --- -**Read the docs** -You might find a solution to your problem in the [docs](https://rich.readthedocs.io/en/latest/introduction.html) -- consider using the search function there. +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** +
+Click to expand + What platform (Win/Linux/Mac) are you running on? What terminal software are you using? -**Diagnose** -I may ask you to cut and paste the output of the following commands. It may save some time if you do it now. +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 -python -m rich._windows pip freeze | grep rich ``` -**Did I help?** +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() +``` -If I was able to resolve your problem, consider [sponsoring](https://github.com/sponsors/willmcgugan) my work on Rich, or [buy me a coffee](https://ko-fi.com/willmcgugan) to say thanks. +
diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md index f6e942e5de..6e2ca38c29 100644 --- a/.github/ISSUE_TEMPLATE/feature_request.md +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -18,7 +18,3 @@ Give as much detail as you can. Example code of how you would like it to work wo **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. - -**Did I help** - -If I was able to resolve your problem, consider [sponsoring](https://github.com/sponsors/willmcgugan) my work on Rich, or [buy me a coffee](https://ko-fi.com/willmcgugan) to say thanks. 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 index 95daf9d31b..c21f7a6420 100644 --- a/.github/workflows/codespell.yml +++ b/.github/workflows/codespell.yml @@ -4,7 +4,7 @@ jobs: codespell: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - 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,*.svg" + --skip="./README.*.md,*.svg,./benchmarks/snippets.py" diff --git a/.github/workflows/comment.yml b/.github/workflows/comment.yml index 5c2bd86b79..8da8617c52 100644 --- a/.github/workflows/comment.yml +++ b/.github/workflows/comment.yml @@ -15,11 +15,4 @@ jobs: body: | Did I solve your problem? - Consider [sponsoring](https://github.com/sponsors/willmcgugan) the ongoing work on Rich and Textual. - - Or buy me a [coffee](https://ko-fi.com/willmcgugan) to say thanks. - - – [Will McGugan](https://twitter.com/willmcgugan) - - - + 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 f2c7c61b3a..93b44bc377 100644 --- a/.github/workflows/pythonpackage.yml +++ b/.github/workflows/pythonpackage.yml @@ -8,21 +8,21 @@ 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.1.6 + uses: snok/install-poetry@v1 with: - version: 1.1.8 + version: 1.1.11 virtualenvs-in-project: true - name: Install dependencies run: poetry install @@ -40,7 +40,7 @@ jobs: 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/update_benchmark_website.yml b/.github/workflows/update_benchmark_website.yml new file mode 100644 index 0000000000..d2185039c1 --- /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: cpina/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 bc0dfdb715..b291d4c2a5 100644 --- a/.gitignore +++ b/.gitignore @@ -2,6 +2,7 @@ .pytype .DS_Store .vscode +.idea/ mypy_report docs/build docs/source/_build @@ -112,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 987eba8c02..ca4c406606 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,288 @@ 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). +## [12.4.3] - 2022-05-23 + +### Changed + +- Further tweaks to SVG character matrix +- Added clip rect to SVG to prevent box characters overlapping bottom of terminal + +## [12.4.2] - 2022-05-23 + +### Fixed + +- Fix for SVG on Firefox + +### Changed + +- Removed excess margin from SVG, tweaked cell sizes to better render block characters + +## [12.4.1] - 2022-05-08 + +### Fixed + +- Fix for default background color in SVG export https://github.com/Textualize/rich/issues/2260 + +### Changed + +- Added a keyline around SVG terminals which is visible on dark backgrounds + +### Changed + +- Added a keyline around SVG terminals which is visible on dark backgrounds + +## [12.4.0] - 2022-05-07 + +### Changed + +- Rebuilt SVG export to create a simpler SVG that is more portable +- Fix render_lines crash when render height was negative https://github.com/Textualize/rich/pull/2246 + +### Added + +- Add `padding` to Syntax constructor https://github.com/Textualize/rich/pull/2247 + +## [12.3.0] - 2022-04-26 + +### Added + +- Ability to change terminal window title https://github.com/Textualize/rich/pull/2200 +- Added show_speed parameter to progress.track which will show the speed when the total is not known +- Python blocks can now opt out from being rendered in tracebacks's frames, by setting a `_rich_traceback_omit = True` in their local scope https://github.com/Textualize/rich/issues/2207 + +### Fixed + +- Fall back to `sys.__stderr__` on POSIX systems when trying to get the terminal size (fix issues when Rich is piped to another process) +- Fixed markup escaping issue https://github.com/Textualize/rich/issues/2187 +- Safari - Box appearing around SVG export https://github.com/Textualize/rich/pull/2201 +- Fixed recursion error in Jupyter progress bars https://github.com/Textualize/rich/issues/2047 +- Complex numbers are now identified by the highlighter https://github.com/Textualize/rich/issues/2214 +- Fix crash on IDLE and forced is_terminal detection to False because IDLE can't do escape codes https://github.com/Textualize/rich/issues/2222 +- Fixed missing blank line in traceback rendering https://github.com/Textualize/rich/issues/2206 +- Fixed running Rich with the current working dir was deleted https://github.com/Textualize/rich/issues/2197 + +### Changed + +- Setting `total=None` on progress is now possible, and will display pulsing animation +- Micro-optimization for Segment.divide + +## [12.2.0] - 2022-04-05 + +### Changed + +- Bumped typing-extensions minimum to 4.0.0 +- Bumped minimum Python version to 3.6.3 + +## [12.1.0] - 2022-04-03 + +### Added + +- Progress.open and Progress.wrap_file method to track the progress while reading from a file or file-like object https://github.com/willmcgugan/rich/pull/1759 +- SVG export functionality https://github.com/Textualize/rich/pull/2101 +- Adding Indonesian translation + +### Fixed + +- Add missing `end` keyword argument to `Text.from_markup` https://github.com/Textualize/rich/pull/2095 +- Fallback to text lexer when no lexer guessed https://github.com/Textualize/rich/pull/2133 +- Fixed issue with decoding ANSI reset https://github.com/Textualize/rich/issues/2112 + +## [12.0.1] - 2022-03-22 + +### 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 @@ -248,7 +530,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [9.12.1] - 2021-02-27 -### Fixed +### Fixed - Fixed deadlock in Progress https://github.com/willmcgugan/rich/issues/1061 @@ -305,7 +587,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - 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 - Added cheeky sponsorship request to test card - Added `quiet` argument to Console constructor @@ -364,7 +646,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [9.8.0] - 2021-01-11 -### Added +### Added - Added **rich_measure** for tree - Added rich.align.VerticalCenter @@ -453,7 +735,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [9.4.0] - 2020-12-12 -### Added +### Added - Added rich.live https://github.com/willmcgugan/rich/pull/382 - Added algin parameter to Rule and Console.rule @@ -462,7 +744,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Added style parameter to Console.log - Added rich.diagnose command -### Changed +### 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 @@ -473,7 +755,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [9.3.0] - 2020-12-1 -### Added +### Added - Added get_datetime parameter to Console, to allow for repeatable tests - Added get_time parameter to Console @@ -573,7 +855,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 @@ -598,7 +880,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 @@ -617,7 +899,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 @@ -901,7 +1183,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 @@ -1014,7 +1296,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 @@ -1136,7 +1418,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 @@ -1158,7 +1440,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 @@ -1177,7 +1459,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 @@ -1439,7 +1721,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 @@ -1478,3 +1760,150 @@ 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.4.1...HEAD +[12.4.1]: https://github.com/willmcgugan/rich/compare/v12.4.0...v12.4.1 +[12.4.0]: https://github.com/willmcgugan/rich/compare/v12.3.0...v12.4.0 +[12.3.0]: https://github.com/willmcgugan/rich/compare/v12.2.0...v12.3.0 +[12.2.0]: https://github.com/willmcgugan/rich/compare/v12.1.0...v12.2.0 +[12.1.0]: https://github.com/willmcgugan/rich/compare/v12.0.1...v12.1.0 +[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/CONTRIBUTORS.md b/CONTRIBUTORS.md index c3dc1983cc..c24f21b1a6 100644 --- a/CONTRIBUTORS.md +++ b/CONTRIBUTORS.md @@ -4,16 +4,39 @@ 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) +- [Martin Larralde](https://github.com/althonos) - [Hedy Li](https://github.com/hedythedev) +- [Luka Mamukashvili](https://github.com/UltraStudioLTD) - [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) +- [Olivier Philippon](https://github.com/DrBenton) - [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) +- [Handhika Yanuar Pratama](https://github.com/theDreamer911) 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 56977d2c8c..1183bc00c8 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 --strict --no-incremental + mypy -p rich --no-incremental typecheck-report: - mypy -p rich --strict --html-report mypy_report + mypy -p rich --html-report mypy_report .PHONY: docs docs: cd docs; make html diff --git a/README.cn.md b/README.cn.md index 2bbb293314..a5c7c5b66a 100644 --- a/README.cn.md +++ b/README.cn.md @@ -7,7 +7,8 @@ ![Logo](https://github.com/willmcgugan/rich/raw/master/imgs/logo.svg) [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.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) @@ -17,6 +18,8 @@ • [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 库,可以为您在终端中提供富文本和精美格式。 @@ -36,10 +39,10 @@ Rich 还可以与[Jupyter 笔记本](https://jupyter.org/)一起使用,而无 ## 安装说明 -使用`pip`或其他 PyPi 软件包管理器进行安装。 +使用`pip`或其他 PyPI 软件包管理器进行安装。 -``` -pip install rich +```sh +python -m pip install rich ``` ## Rich 的打印功能 @@ -161,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", diff --git a/README.de-ch.md b/README.de-ch.md index d41186029f..c5413808e3 100644 --- a/README.de-ch.md +++ b/README.de-ch.md @@ -7,7 +7,8 @@ ![Logo](https://github.com/willmcgugan/rich/raw/master/imgs/logo.svg) [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.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) @@ -17,6 +18,8 @@ • [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 @@ -30,21 +33,21 @@ Lueg was [anderi öber Rich säged](https://www.willmcgugan.com/blog/pages/post/ ## 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 Pzthon 3.6.1 oder neuer. +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.3 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-Mangager. +Installation mit `pip` oder mit dim liäblings PyPI Päckli-Manager. -``` -pip install rich +```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 ``` @@ -73,7 +76,7 @@ Rich cha i de Python REPL installiert werde so dass irgend e Datestruktuur hübs ## 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. +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 @@ -123,7 +126,7 @@ Rich hät e [inspect](https://rich.readthedocs.io/en/latest/reference/init.html? Lueg do d [inspect Dokumentation](https://rich.readthedocs.io/en/latest/reference/init.html#rich.inspect) für d Details a. -# Rich Library +# 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. @@ -132,7 +135,7 @@ 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. Standartmä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ä. +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 @@ -196,9 +199,9 @@ Rich cha flexiibäl [Tabelle](https://rich.readthedocs.io/en/latest/tables.html) ![table movie](https://github.com/willmcgugan/rich/raw/master/imgs/table_movie.gif) -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. +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: +Do es eifachs Tabelle-Bispiil: ```python from rich.console import Console @@ -212,7 +215,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", @@ -297,7 +300,7 @@ D Spinner Animatione sind vo [cli-spinners](https://www.npmjs.com/package/cli-sp python -m rich.spinner ``` -De Befehlt obe generiärt di folgändi Usgob im Törminäl: +De Befehl obe generiärt di folgändi Usgob im Törminäl: ![spinners](https://github.com/willmcgugan/rich/raw/master/imgs/spinners.gif) @@ -323,9 +326,9 @@ Lueg s Bispiil Script [tree.py](https://github.com/willmcgugan/rich/blob/master/
-Columns +Spaltene -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: +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 @@ -338,7 +341,7 @@ directory = os.listdir(sys.argv[1]) print(Columns(directory)) ``` -De folgend Screenshot isch d Usgob vom [columns example](https://github.com/willmcgugan/rich/blob/master/examples/columns.py) Bispiil, wo Date vonnere API hollt ond in Colums darstellt: +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: ![columns](https://github.com/willmcgugan/rich/raw/master/imgs/columns.png) @@ -349,7 +352,7 @@ De folgend Screenshot isch d Usgob vom [columns example](https://github.com/will 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 Markdonw z übersetze importier d Klass `Markdown` und instanzier es mitem Markdown Text. Nocher gid mos uf de Konsolä us. Do es Bispiil: +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 @@ -405,7 +408,7 @@ 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 standart Python Traceback darstellt. Du chasch Rich als default Traceback Handler setzä ond alli nöd abfangene Exceptions werded mit Rich dargstellt. +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: @@ -413,7 +416,7 @@ 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. +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ä @@ -449,6 +452,6 @@ Do es paar Projekt wo Rich verwended: 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)! +- +[Vieli meh](https://github.com/willmcgugan/rich/network/dependents)! diff --git a/README.de.md b/README.de.md index 555027a48f..c14a61b699 100644 --- a/README.de.md +++ b/README.de.md @@ -7,7 +7,8 @@ ![Logo](https://github.com/willmcgugan/rich/raw/master/imgs/logo.svg) [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.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) @@ -17,6 +18,8 @@ • [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. @@ -30,21 +33,21 @@ Schau hier, was [andere über Rich sagen](https://www.willmcgugan.com/blog/pages ## 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 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.3 oder höher. Rich funktioniert ohne zusätzliche Konfiguration mit [Jupyter Notebooks](https://jupyter.org/). ## Installation -Installation mit `pip` oder deinem bevorzugten PyPi-Paketmanager. +Installation mit `pip` oder deinem bevorzugten PyPI-Paketmanager. -``` -python -m rich +```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 ``` @@ -212,7 +215,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", diff --git a/README.es.md b/README.es.md index 8a10188aae..99cdb63600 100644 --- a/README.es.md +++ b/README.es.md @@ -7,7 +7,8 @@ ![Logo](https://github.com/willmcgugan/rich/raw/master/imgs/logo.svg) [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.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) @@ -17,6 +18,8 @@ • [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. @@ -30,21 +33,21 @@ Vea lo que [la gente dice sobre Rich](https://www.willmcgugan.com/blog/pages/pos ## Compatibilidad -Rich funciona con Linux, OSX y Windows. True color / emoji funciona con la nueva Terminal de Windows, la terminal clásica está limitada a 8 colores. Rich requiere Python 3.6.1 o posterior. +Rich funciona con Linux, OSX y Windows. True color / emoji funciona con la nueva Terminal de Windows, la terminal clásica está limitada a 8 colores. Rich requiere Python 3.6.3 o posterior. Rich funciona con [Jupyter notebooks](https://jupyter.org/) sin necesidad de configuración adicional. ## Instalación -Instale con `pip` o su administrador de paquetes PyPi favorito. +Instale con `pip` o su administrador de paquetes PyPI favorito. -``` -pip install rich +```sh +python -m pip install rich ``` Ejecute lo siguiente para probar la salida de Rich sobre su terminal: -``` +```sh python -m rich ``` @@ -210,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", diff --git a/README.fr.md b/README.fr.md index 639eb010ac..0b1d092dfe 100644 --- a/README.fr.md +++ b/README.fr.md @@ -7,7 +7,8 @@ ![Logo](https://github.com/willmcgugan/rich/raw/master/imgs/logo.svg) [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.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) @@ -17,6 +18,8 @@ • [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. @@ -30,21 +33,21 @@ Voyez ce que [les gens disent de Rich](https://www.willmcgugan.com/blog/pages/po ## 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 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.3 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é. +Installez avec `pip` ou votre gestionnaire de paquets PyPI préféré. -``` -pip install rich +```sh +python -m pip install rich ``` Exécutez ce qui suit pour tester la sortie de Rich sur votre terminal : -``` +```sh python -m rich ``` @@ -123,7 +126,7 @@ Rich possède une fonction [inspect](https://rich.readthedocs.io/en/latest/refer Consultez la [documentation d'inspect](https://rich.readthedocs.io/en/latest/reference/init.html#rich.inspect) pour plus de détails. -## Bibliothèque Rich +## 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 : @@ -209,7 +212,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", diff --git a/README.hi.md b/README.hi.md index ecca6c2164..c3c62f5321 100644 --- a/README.hi.md +++ b/README.hi.md @@ -7,7 +7,8 @@ ![Logo](https://github.com/willmcgugan/rich/raw/master/imgs/logo.svg) [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.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) @@ -17,6 +18,8 @@ • [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 संग्रह है। @@ -40,12 +43,12 @@ Rich बिना किसी अतिरिक्त विन्यास `pip` या अपने पसंदीदा PyPI संकुल प्रबंधक (package manager) के द्वारा आप इसे स्थापित कर सकते हैं। -``` -pip install rich +```sh +python -m pip install rich ``` आपके टर्मिनल पर Rich उत्पादन का परीक्षण करने के लिए यह चलाएं: -``` +```sh python -m rich ``` @@ -208,7 +211,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", diff --git a/README.id.md b/README.id.md new file mode 100644 index 0000000000..165b27c38e --- /dev/null +++ b/README.id.md @@ -0,0 +1,462 @@ +[![Supported Python Versions](https://img.shields.io/pypi/pyversions/rich/10.11.0)](https://pypi.org/project/rich/) [![PyPI version](https://badge.fury.io/py/rich.svg)](https://badge.fury.io/py/rich) + +[![Downloads](https://pepy.tech/badge/rich/month)](https://pepy.tech/project/rich) +[![codecov](https://img.shields.io/codecov/c/github/Textualize/rich?label=codecov&logo=codecov)](https://codecov.io/gh/willmcgugan/rich) +[![Rich blog](https://img.shields.io/badge/blog-rich%20news-yellowgreen)](https://www.willmcgugan.com/tag/rich/) +[![Twitter Follow](https://img.shields.io/twitter/follow/willmcgugan.svg?style=social)](https://twitter.com/willmcgugan) + +![Logo](https://github.com/willmcgugan/rich/raw/master/imgs/logo.svg) + +[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) + • [Indonesian readme](https://github.com/willmcgugan/rich/blob/master/README.id.md) + +Rich adalah library Python yang membantu _memperindah_ tampilan output suatu program di terminal. + +[Rich API](https://rich.readthedocs.io/en/latest/) dapat digunakan untuk mempermudah dalam penambahan gaya dan pewarnaan output di terminal. Rich juga mendukung fitur lain seperti pembuatan tabel, bar progress, penulisan markdown, penghighitan syntax source code, tracebacks, dan masih banyak lagi. + +![Features](https://github.com/willmcgugan/rich/raw/master/imgs/features.png) + +Sebagai pengenalan Rich saksikan video berikut [calmcode.io](https://calmcode.io/rich/introduction.html) oleh [@fishnets88](https://twitter.com/fishnets88). + +Lihat pendapat [pengguna yang telah menggunakan Rich](https://www.willmcgugan.com/blog/pages/post/rich-tweets/). + +## Kompabilitas + +Rich dapat berjalan di Linux, OSX, dan Windows. Warna tambahan / emoji dapat berjalan di Windows Terminal baru, untuk terminal lama pewarnaan terbatas ke dalam 16 warna. Rich memerlukan versi Python 3.6.3 atau ke atas. + +Rich dapat berjalan di [Jupyter notebooks](https://jupyter.org/) tanpa memerlukan konfigurasi tambahan. + +## Instalasi + +Install dengan `pip` atau paket manager favorit anda. + +```sh +python -m pip install rich +``` + +Jalankan perintah berikut untuk menguji Rich di terminal anda: + +```sh +python -m rich +``` + +## Rich Print + +Untuk menambahkan rich sebagai output program anda, lakukan import method [rich print](https://rich.readthedocs.io/en/latest/introduction.html#quick-start), yang memiliki signature sama dengan fungsi built-in Python. Coba jalankan program berikut: + +```python +from rich import print + +print("Hello, [bold magenta]World[/bold magenta]!", ":vampire:", locals()) +``` + +![Hello World](https://github.com/willmcgugan/rich/raw/master/imgs/print.png) + +## Rich REPL + +Rich dapat diinstal ke dalam Python REPL sehingga setiap struktur data akan ditampilkan dengan indah dan terhighlight. + +```python +>>> from rich import pretty +>>> pretty.install() +``` + +![REPL](https://github.com/willmcgugan/rich/raw/master/imgs/repl.png) + +## Penggunaan Console + +Untuk kontrol lebih terhadap konten terminal, lakukan import dan susun suatu [Console](https://rich.readthedocs.io/en/latest/reference/console.html#rich.console.Console) object. + +```python +from rich.console import Console + +console = Console() +``` + +Console object memiliki method `print` yang berfungsi serupa dengan built-in `print`. Berikut adalah contoh penggunaannya: + +```python +console.print("Hello", "World!") +``` + +Seperti yang anda perkirakan, perintah tersebut akan menampilkan `"Hello World!"` sebagai output di terminal. Catatan, perbedaan dengan fungsi built-in `print`, Rich membuat teks termampatkan disesuaikan dengan lebar terminal. + +Terdapat beberapa cara untuk melakukan penambahan warna dan gaya output dari program anda. Anda dapat mengatur keseluruhan output dengan menambahkan keyword argumen `style`. Berikut adalah contoh penerapannya: + +```python +console.print("Hello", "World!", style="bold red") +``` + +Output dari perintah tersebut akan tampak sebagai berikut: + +![Hello World](https://github.com/willmcgugan/rich/raw/master/imgs/hello_world.png) + +Melakukan perubahan tampilan teks output dalam satu waktu mungkin sudah baik. Tetapi untuk membuat tampilan lebih rapi, Rich mendukung fitur rendering menggunakan pemformatan spesial dimana syntaxnya serupa dengan [bbcode](https://en.wikipedia.org/wiki/BBCode). Berikut adalah contoh penerapannya: + +```python +console.print("Where there is a [bold cyan]Will[/bold cyan] there [u]is[/u] a [i]way[/i].") +``` + +![Console Markup](https://github.com/willmcgugan/rich/raw/master/imgs/where_there_is_a_will.png) + +Anda dapat menggunakan console object untuk menciptakan keluaran yang indah dengan usaha yang sedikit. Kunjungi [Console API](https://rich.readthedocs.io/en/latest/console.html) untuk informasi lebih lengkap. + +## Rich Inspect + +Rich memiliki fungsi [inspect](https://rich.readthedocs.io/en/latest/reference/init.html?highlight=inspect#rich.inspect) yang dapat membuat laporan untuk setiap Python object, seperti class, instance, atau built-in. + +```python +>>> my_list = ["foo", "bar"] +>>> from rich import inspect +>>> inspect(my_list, methods=True) +``` + +![Log](https://github.com/willmcgugan/rich/raw/master/imgs/inspect.png) + +Kunjungi [dokumentasi inspect](https://rich.readthedocs.io/en/latest/reference/init.html#rich.inspect) untuk detail lebih lanjut. + +# Rich Library + +Rich mengandung sejumlah built-in yang bersifat _renderables_, artinya anda dapat menciptakan output yang elegant pda program CLI anda serta dapat membantu dalam proses debugging program anda. + +Klik pilihan berikut untuk detail lebih lanjut: + +
+Log + +Console object mempunyai method bernama `log()` yang serupa dengan `print()`, tetapi juga mendukung fitur perenderan kolom waktu terkini serta baris file yang melakukan pemanggilan fungsi tertentu. Secara default Rich akan menghilight syntax untuk struktur python dan REPR strings. Jika anda melakukan log pada sekumpulan data (misal dictionary atau list) Rich akan memperindah output yang ditampilkan serta disesuaikan dengan ukuran terminal yang tersedia. Berikut adalah contoh penerapan dari beberapa fitur ini. + +```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() +``` + +Perintah di atas akan menampilkan output sebagai berikut: + +![Log](https://github.com/willmcgugan/rich/raw/master/imgs/log.png) + +Sebagai catatan, argumen `log_locals` berupa tabel yang berisikan variabel lokal yang menunjukkan lokasi dimana log tersebut dipanggil. + +Method log ini dapat digunakan untuk mencatat aktivitas terminal yang berjalan lama seperti servers, tetapi method ini juga sangat baik untuk membantu dalam proses debugging. + +
+
+Penanganan Logging + +Anda dapat juga menggunakan builtin [Handler class](https://rich.readthedocs.io/en/latest/logging.html) untuk memformat dan mewarnai output dari module logging Python. Berikut adalah contoh penerapannya: + +![Logging](https://github.com/willmcgugan/rich/raw/master/imgs/logging.png) + +
+ +
+Emoji + +Untuk menambahkan emoji sebagai output di console, tuliskan nama emoji diantara dua buah titik dua (:). Berikut adalah contoh penerapannya: + +```python +>>> console.print(":smiley: :vampire: :pile_of_poo: :thumbs_up: :raccoon:") +😃 🧛 💩 👍 🦝 +``` + +Mohon gunakan fitur ini dengan bijak. + +
+ +
+Tabel + +Rich mendukung perenderan [tabel](https://rich.readthedocs.io/en/latest/tables.html) secara fleksibel dengan karakter unicode. Terdapat variasi sangat besar untuk opsi pemformatan seperti pengaturan border, gaya tabel, perataan teks di dalam cell, dan lain sebagainya. + +![table movie](https://github.com/willmcgugan/rich/raw/master/imgs/table_movie.gif) + +Animasi di atas dibuat dengan program [table_movie.py](https://github.com/willmcgugan/rich/blob/master/examples/table_movie.py) pada direktori examples. + +Berikut adalah contoh tabel sederhana: + +```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) +``` + +Program di atas akan menghasilkan output sebagai berikut: + +![tabel](https://github.com/willmcgugan/rich/raw/master/imgs/table.png) + +Sebagai catatan console markup dirender sama seperti `print()` dan `log()`. Faktanya, untuk segala bentuk hal yang dapat dirender menggunakan Rich dapat disisipkan ke dalam header / baris (bahkan tabel lain). + +Class `Table` memiliki kemampuan yang baik untuk mengatur ukuran kolom supaya sesuai dengan lebar yang disediakan oleh terminal. Berikut adalah contoh penerapannya, dengan terminal memiliki ukuran yang lebih kecil dibandingkan tabel di atas: + +![table2](https://github.com/willmcgugan/rich/raw/master/imgs/table2.png) + +
+ +
+Bar Progress + +Rich dapat merender beragam bar [progress](https://rich.readthedocs.io/en/latest/progress.html) interaktif untuk memantau kemajuan yang telah dicapai oleh program yang berjalan lama. + +Untuk penggunaan dasar, masukan setiap urutan yang hendak dijadikan ke dalam bentuk progress ke dalam fungsi 'track' dan iterasikan urutan tersebut di atas outputnya. Berikut adalah contoh penerapannya: + +```python +from rich.progress import track + +for step in track(range(100)): + do_step(step) +``` + +Tidaklah sulit untuk menambahkan beberapa bar progress sekaligus. Berikut adalah contoh implementasi yang diambil dari file dokumentasi: + +![progress](https://github.com/willmcgugan/rich/raw/master/imgs/progress.gif) + +Bagian kolom dapat dikonfigurasikan sesuai dengan kebutuhan. Built-in kolom juga memiliki fitur presentasi seleasi, ukuran file, kecepatan file, dan waktu sisa. Berikut adalah contoh menampilkan bar progress ketika mengunduh suatu file: + +![progress](https://github.com/willmcgugan/rich/raw/master/imgs/downloader.gif) + +Untuk bereksperimen, periksa [examples/downloader.py](https://github.com/willmcgugan/rich/blob/master/examples/downloader.py) yang dapat menampilkan beberapa progress bar pengunduhan dari beberapa alamat URL sekaligus. + +
+ +
+Status + +Untuk kondisi dimana perhitungan sulit dilakukan dengan perhitunggan progress, gunakan method [status](https://rich.readthedocs.io/en/latest/reference/console.html#rich.console.Console.status) berikut yang menampilkan animasi 'spinner' dan pesan. Animasi tersebut tidak mencegah penggunaan console seperti keadaan normal. Berikut adalah contoh penerapannya: + +```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") +``` + +Program di atas akan menghasilkan output sebagai berikut. + +![status](https://github.com/willmcgugan/rich/raw/master/imgs/status.gif) + +Animasi spinner tersebut diambil dari [cli-spinners](https://www.npmjs.com/package/cli-spinners). Anda dapat menentukan spinner yang hendak digunakan dengan menspesifikannya di parameter `spinner`. Jalankan perintah berikut untuk melihat parameter yang tersedia: + +``` +python -m rich.spinner +``` + +Perintah di atas akan menghasilkan output sebagai berikut: + +![spinners](https://github.com/willmcgugan/rich/raw/master/imgs/spinners.gif) + +
+ +
+Tree + +Rich dapat merender perintah [tree](https://rich.readthedocs.io/en/latest/tree.html) beserta dengan garis penunjuk. Suatu perintah tree idealnya digunakan untuk menampilkan struktur suatu file atau data hierarki lainnya. + +Label dari tree dapat berupa teks sederhana atau apapun yang dapat dirender oleh Rich, untuk contoh, jalankan perintah berikut: + +``` +python -m rich.tree +``` + +Program di atas akan menghasilkan output sebagai berikut: + +![markdown](https://github.com/willmcgugan/rich/raw/master/imgs/tree.png) + +Periksa contoh program [tree.py](https://github.com/willmcgugan/rich/blob/master/examples/tree.py) untuk menampilkan tampilan tree view dari direktori apapun, perintah ini serupa dengan `tree` pada linux. + +
+ +
+Kolom + +Rich dapat merender konten [kolom](https://rich.readthedocs.io/en/latest/columns.html) secara rapi dengan ukuran lebar yang sama atau optimal. Berikut adalah hasil kloning perintah dasar dari (MacOS / Linux) yaitu `ls` untuk melakukan listing direktori menggunakan kolom: + +```python +import os +import sys + +from rich import print +from rich.columns import Columns + +directory = os.listdir(sys.argv[1]) +print(Columns(directory)) +``` + +Screenshot berikut merupakan output dari [contoh kolom](https://github.com/willmcgugan/rich/blob/master/examples/columns.py) yang menampilkan data yang diambil melalui API ke dalam bentuk kolom: + +![columns](https://github.com/willmcgugan/rich/raw/master/imgs/columns.png) + +
+ +
+Markdown + +Rich dapat merender [markdown](https://rich.readthedocs.io/en/latest/markdown.html) dan melakukan tugasnya untuk menerjemahkan format tersebut supaya dapat ditampilkan di terminal. + +Untuk dapat merender markdown, import class `Markdown` dan inputkan string yang mengandung markdown tersebut. Lalu cetak ke dalam console. Berikut adalah contoh penerapannya: + +```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) +``` + +Program di atas akan menghasilkan output seperti berikut: + +![markdown](https://github.com/willmcgugan/rich/raw/master/imgs/markdown.png) + +
+ +
+Penghilightan Syntax + +Rich memanfaatkan library [pygments](https://pygments.org/) supaya dapat melakukan [penghilightan syntax](https://rich.readthedocs.io/en/latest/syntax.html). Penggunaannya serupa dengan merender markdown; susun object `Syntax` dan cetak output pada console. Berikut adalah contoh penerapannya: + +```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) +``` + +Program di atas akan menghasilkan output sebagai berikut: + +![syntax](https://github.com/willmcgugan/rich/raw/master/imgs/syntax.png) + +
+ +
+Tracebacks + +Rich dapat merender [tracebacks dengan indah](https://rich.readthedocs.io/en/latest/traceback.html) yang membuatnya mudah untuk dibaca dan menampilkan program yang dibuat lebih baik dibandingkan fitur standar Python. Anda dapat mengatur Rich sebagai traceback handler secara default sehingga setiap pesan exceptions akan dirender melalui Rich. + +Berikut adalah tampilannya pada OSX (serupa dengan Linux): + +![traceback](https://github.com/willmcgugan/rich/raw/master/imgs/traceback.png) + +
+ +Semua perenderan Rich menggunakan [Console Protocol](https://rich.readthedocs.io/en/latest/protocol.html), anda dapat juga mengimplementasikannya pada konten Rich milik anda. + +# Rich CLI + + +Baca juga [Rich CLI](https://github.com/textualize/rich-cli) sebuah program command line yang dibuat menggunakan Rich. Penghilightan syntax, perenderan markdown, menampilkan CSVs ke dalam tabel, dan masih banyak lagi, secara langsung melalui command prompt. + + +![Rich CLI](https://raw.githubusercontent.com/Textualize/rich-cli/main/imgs/rich-cli-splash.jpg) + + +# Projek yang telah menggunakan Rich + +Berikut adalah beberpa projek yang menggunakan Rich: + +- [BrancoLab/BrainRender](https://github.com/BrancoLab/BrainRender) + Sebuah package Python untuk visualisasi data neuro-anatomi tiga dimensi. +- [Ciphey/Ciphey](https://github.com/Ciphey/Ciphey) + Tools yang digunakan untuk melakukan deskripsi otomatis. +- [emeryberger/scalene](https://github.com/emeryberger/scalene) + profiler memori dan CPU untuk Python yang memiliki nilai performa dan presisi tinggi. +- [hedythedev/StarCli](https://github.com/hedythedev/starcli) + Melakukan penelusuran projek terkenal GitHub melalui command line. +- [intel/cve-bin-tool](https://github.com/intel/cve-bin-tool) + Tools ini dapat digunakan untuk melakukan scanning pada komponen yang rentan (openssl, libpng, libxml2, expat and a few others) untuk membuat anda mengetahui sistem anda mempunyai library yang telah diketahui kerentanannya. +- [nf-core/tools](https://github.com/nf-core/tools) + package Python dengan tools bantuan untuk komunitas nf-core. +- [cansarigol/pdbr](https://github.com/cansarigol/pdbr) + gabungan library pdb + Rich library untuk memperindah proses debugging. +- [plant99/felicette](https://github.com/plant99/felicette) + gambar citra satelit untuk pemula. +- [seleniumbase/SeleniumBase](https://github.com/seleniumbase/SeleniumBase) + tools otomatisasi dan test testing 10x lebih cepat dibandingkan dengan Selenium & pytest. Termasuk didalamnya baterai. +- [smacke/ffsubsync](https://github.com/smacke/ffsubsync) + tools sinkronisasi subtitle dengan video. +- [tryolabs/norfair](https://github.com/tryolabs/norfair) + Library Python ringan untuk menambahkan deteksi objek secara real-time pada objek 2D pada suatu detektor. +- [ansible/ansible-lint](https://github.com/ansible/ansible-lint) Sebuah ansible-lint untuk memeriksa playbooks yang digunakan sebagai practices and behaviour yang secara potensial dapat ditingkatkan. +- [ansible-community/molecule](https://github.com/ansible-community/molecule) Ansible Molecule untuk framework testing +- +[Lebih banyak lagi](https://github.com/willmcgugan/rich/network/dependents)! + + diff --git a/README.it.md b/README.it.md new file mode 100644 index 0000000000..5df37b8942 --- /dev/null +++ b/README.it.md @@ -0,0 +1,457 @@ +[![Downloads](https://pepy.tech/badge/rich/month)](https://pepy.tech/project/rich) +[![codecov](https://codecov.io/gh/willmcgugan/rich/branch/master/graph/badge.svg)](https://codecov.io/gh/willmcgugan/rich) +[![Rich blog](https://img.shields.io/badge/blog-rich%20news-yellowgreen)](https://www.willmcgugan.com/tag/rich/) +[![Twitter Follow](https://img.shields.io/twitter/follow/willmcgugan.svg?style=social)](https://twitter.com/willmcgugan) + +![Logo](https://github.com/willmcgugan/rich/raw/master/imgs/logo.svg) + +[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. + +![Features](https://github.com/willmcgugan/rich/raw/master/imgs/features.png) + +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.3 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()) +``` + +![Hello World](https://github.com/willmcgugan/rich/raw/master/imgs/print.png) + +## 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() +``` + +![REPL](https://github.com/willmcgugan/rich/raw/master/imgs/repl.png) + +## 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: + +![Hello World](https://github.com/willmcgugan/rich/raw/master/imgs/hello_world.png) + +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].") +``` + +![Console Markup](https://github.com/willmcgugan/rich/raw/master/imgs/where_there_is_a_will.png) + +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) +``` + +![Log](https://github.com/willmcgugan/rich/raw/master/imgs/inspect.png) + +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: + +![Log](https://github.com/willmcgugan/rich/raw/master/imgs/log.png) + +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: + +![Logging](https://github.com/willmcgugan/rich/raw/master/imgs/logging.png) + +
+ +
+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. + +![table movie](https://github.com/willmcgugan/rich/raw/master/imgs/table_movie.gif) + +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: + +![table](https://github.com/willmcgugan/rich/raw/master/imgs/table.png) + +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: + +![table2](https://github.com/willmcgugan/rich/raw/master/imgs/table2.png) + +
+ +
+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: + +![progress](https://github.com/willmcgugan/rich/raw/master/imgs/progress.gif) + +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: + +![progress](https://github.com/willmcgugan/rich/raw/master/imgs/downloader.gif) + +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. + +![status](https://github.com/willmcgugan/rich/raw/master/imgs/status.gif) + +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. + +![spinners](https://github.com/willmcgugan/rich/raw/master/imgs/spinners.gif) + +
+ +
+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: + +![markdown](https://github.com/willmcgugan/rich/raw/master/imgs/tree.png) + +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: + +![columns](https://github.com/willmcgugan/rich/raw/master/imgs/columns.png) + +
+ +
+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: + +![markdown](https://github.com/willmcgugan/rich/raw/master/imgs/markdown.png) + +
+ +
+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: + +![syntax](https://github.com/willmcgugan/rich/raw/master/imgs/syntax.png) + +
+ +
+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): + +![traceback](https://github.com/willmcgugan/rich/raw/master/imgs/traceback.png) + +
+ +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 index c6d0ecf9fe..ce28b48c9a 100644 --- a/README.ja.md +++ b/README.ja.md @@ -7,7 +7,8 @@ ![Logo](https://github.com/willmcgugan/rich/raw/master/imgs/logo.svg) [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.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) @@ -17,8 +18,10 @@ • [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は、 _リッチ_ なテキストや美しい書式設定をターミナルで行うためのPythonライブラリです。 [Rich API](https://rich.readthedocs.io/en/latest/)を使用すると、ターミナルの出力に色やスタイルを簡単に追加することができます。 Richはきれいなテーブル、プログレスバー、マークダウン、シンタックスハイライトされたソースコード、トレースバックなどをすぐに生成・表示することもできます。 @@ -30,21 +33,21 @@ Richの紹介動画はこちらをご覧ください。 [calmcode.io](https://ca ## 互換性 -RichはLinux、OSX、Windowsに対応しています。True colorと絵文字は新しい Windows ターミナルで動作しますが、古いターミナルでは8色に制限されています。Richを使用するにはPythonのバージョンは3.6.1以降が必要です。 +RichはLinux、OSX、Windowsに対応しています。True colorと絵文字は新しい Windows ターミナルで動作しますが、古いターミナルでは8色に制限されています。Richを使用するにはPythonのバージョンは3.6.3以降が必要です。 Richは追加の設定を行わずとも、[Jupyter notebooks](https://jupyter.org/)で動作します。 ## インストール -`pip` や、あなたのお気に入りのPyPiパッケージマネージャを使ってインストールしてください。 +`pip` や、あなたのお気に入りのPyPIパッケージマネージャを使ってインストールしてください。 -``` -pip install rich +```sh +python -m pip install rich ``` 以下のコマンドを実行して、ターミナルでリッチの出力をテストできます: -``` +```sh python -m rich ``` @@ -194,7 +197,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", diff --git a/README.kr.md b/README.kr.md index 97e29bf6df..3b0be88785 100644 --- a/README.kr.md +++ b/README.kr.md @@ -7,7 +7,8 @@ ![Logo](https://github.com/willmcgugan/rich/raw/master/imgs/logo.svg) [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.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) @@ -17,10 +18,12 @@ • [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 API](https://rich.readthedocs.io/en/latest/)는 터미널 출력에 색깔과 스타일을 입히기 쉽게 도와줍니다. 또한 Rich는 별다른 설정 없이 표, 진행 바, 마크다운, 소스코드 구문 강조, tracebacks 등을 예쁘게 보여줄 수 있습니다. ![Features](https://github.com/willmcgugan/rich/raw/master/imgs/features.png) @@ -30,27 +33,27 @@ Rich에 대한 동영상 설명을 보시려면 [@fishnets88](https://twitter.co ## 호환성 -Rich는 리눅스, OSX, 윈도우에서 동작합니다. 트루 컬러 / 이모지는 새로운 윈도우 터미널에서 동작하지만 구형 터미널에서는 16가지 색으로 제한됩니다. Rich는 파이썬 3.6.1 버전 혹은 그 이후 버전이 필요합니다. +Rich는 리눅스, OSX, 윈도우에서 동작합니다. 트루 컬러 / 이모지는 새로운 윈도우 터미널에서 동작하지만 구형 터미널에서는 16가지 색으로 제한됩니다. Rich는 파이썬 3.6.3 버전 혹은 그 이후 버전이 필요합니다. Rich는 [Jupyter notebooks](https://jupyter.org/)에서 별도의 설정없이 바로 동작합니다. ## 설치 -`pip` 또는 좋아하는 Pypi 패키지 매니저로 설치하세요. +`pip` 또는 좋아하는 PyPI 패키지 매니저로 설치하세요. -``` -pip install rich +```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 할 수 있습니다. +간단하게 당신의 어플리케이션에 rich한 출력을 추가하려면, 파이썬 내장 함수와 signature가 같은 [rich print](https://rich.readthedocs.io/en/latest/introduction.html#quick-start) 메서드를 import 할 수 있습니다. 따라해보세요: ```python @@ -81,13 +84,13 @@ from rich.console import Console console = Console() ``` - + 콘솔 객체에는 `print` 메서드가 있는데, 내부적으로 내장 `print` 함수와 유사한 인터페이스를 가지고 있습니다. 아래는 예제입니다: ```python console.print("Hello", "World!") ``` - + 예상대로 `"Hello World!"`이 터미널에 출력될 것입니다. 내장 `print` 함수와 달리, Rich는 터미널 폭에 맞춰 자동 줄바꿈(word-wrap)을 적용하는 것에 유의하세요. 출력에 색깔과 스타일을 입히는 방법은 몇가지가 있습니다. `style` 키워드 전달인자를 추가해 전체 출력에 대해 스타일을 변경할 수 있습니다. 예제는 다음과 같습니다: @@ -126,13 +129,13 @@ Rich는 class나 instance, builtin 같은 파이썬 객체의 레포트를 생 # Rich Library -Rich는 CLI에서 우아하게 출력하거나 코드 디버깅을 돕도록 다양한 빌트인 _렌더링을_ 포함하고 있습니다. +Rich는 CLI에서 우아하게 출력하거나 코드 디버깅을 돕도록 다양한 빌트인 _렌더링을_ 포함하고 있습니다. 자세한 내용을 확인하려면 제목을 눌러주세요:
Log - + Console 객체는 `print()`와 인터페이스가 유사한 `log()` 메서드를 가지고 있습니다. `Log()`는 호출이 이루어진 파일과 라인, 현재 시간도 같이 출력합니다. 기본적으로 Rich는 파이썬 구조체와 repr string에 대해 신택스 하이라이팅을 지원합니다. 만약 당신이 collection(예를 들어 dict나 list)을 로깅한다면, Rich는 표현 가능한 공간에 맞춰 예쁘게 출력해줍니다. 이러한 기능들에 대한 예시입니다: ```python @@ -164,7 +167,7 @@ test_log() `log_locals` 인자를 사용하면 log 메서드가 호출된 곳의 로컬 변수들을 표로 보여준다는 것도 알아두세요. -로그 메서드는 서버처럼 오랫동안 실행되는 어플리케이션을 터미널로 로깅할때 사용할 수 있지만 디버깅 할 때도 매우 좋습니다. +로그 메서드는 서버처럼 오랫동안 실행되는 어플리케이션을 터미널로 로깅할때 사용할 수 있지만 디버깅 할 때도 매우 좋습니다.
@@ -213,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", @@ -235,7 +238,7 @@ console.print(table) ![table](https://github.com/willmcgugan/rich/raw/master/imgs/table.png) -콘솔 출력은 `print()`나 `log()`와 같은 방식으로 렌더링 된다는 것을 주의하세요. 사실, Rich로 표현할 수 있는 것은 무엇이든 headers / rows (심지어 다른 표들도)에 포함할 수 있습니다. +콘솔 출력은 `print()`나 `log()`와 같은 방식으로 렌더링 된다는 것을 주의하세요. 사실, Rich로 표현할 수 있는 것은 무엇이든 headers / rows (심지어 다른 표들도)에 포함할 수 있습니다. `Table` 클래스는 터미널의 폭에 맞춰 필요한 만큼 줄을 내리고 열 길이를 스스로 조절합니다. 위의 표보다 작은 터미널에서 만들어진 표 예시입니다: @@ -306,7 +309,7 @@ python -m rich.spinner
Tree(트리) - + Rich는 가이드라인과 함께 [트리](https://rich.readthedocs.io/en/latest/tree.html)를 표현할 수 있습니다. 파일 구조나, 계층적 데이터를 보여주는데 적합합니다. 트리의 라벨은 간단한 텍스트나 Rich로 표현할 수 있는 것은 모든지 가능합니다. 아래의 예시를 따라해보세요: @@ -318,7 +321,7 @@ python -m rich.tree 이는 아래와 같이 출력됩니다: ![markdown](https://github.com/willmcgugan/rich/raw/master/imgs/tree.png) - + 리눅스의 `tree` 명령어처럼 아무 디렉토리의 트리를 보여주는 스크립트 예제를 보시려면 [tree.py](https://github.com/willmcgugan/rich/blob/master/examples/tree.py)를 확인해주세요.
@@ -405,8 +408,8 @@ console.print(syntax)
Tracebacks - -Rich는 [예쁜 tracebacks](https://rich.readthedocs.io/en/latest/traceback.html)을 표현할 수 있습니다. 이것은 읽기도 더 쉽고 일반적인 파이썬 tracebacks 보다 더 많은 코드를 보여줍니다. uncaught exceptions가 Rich로 출력되도록 Rich를 기본 Traceback 핸들러로 설정할 수도 있습니다. + +Rich는 [예쁜 tracebacks](https://rich.readthedocs.io/en/latest/traceback.html)을 표현할 수 있습니다. 이것은 읽기도 더 쉽고 일반적인 파이썬 tracebacks 보다 더 많은 코드를 보여줍니다. uncaught exceptions가 Rich로 출력되도록 Rich를 기본 Traceback 핸들러로 설정할 수도 있습니다. OSX에서는 이렇게 출력됩니다 (리눅스도 유사함): @@ -420,7 +423,7 @@ OSX에서는 이렇게 출력됩니다 (리눅스도 유사함): Tidelift 구독의 일환으로 가능합니다. -Rich를 포함한 수천가지 다른 패키지들의 메인테이너들은 당신이 앱을 만들기 위해 사용하는 오픈소스 패키지의 상업적인 지원과 유지보수를 위해 Tidelift와 함께 일하고 있습니다. 당신이 사용하는 패키지의 메인테이너에게 비용을 지불하는 대신 시간을 절약하고, 리스크를 줄이고, 코드의 품질을 향상시킬 수 있습니다. [더 자세한 정보는 여기를 참고바랍니다.](https://tidelift.com/subscription/pkg/pypi-rich?utm_source=pypi-rich&utm_medium=referral&utm_campaign=enterprise&utm_term=repo) +Rich를 포함한 수천가지 다른 패키지들의 메인테이너들은 당신이 앱을 만들기 위해 사용하는 오픈소스 패키지의 상업적인 지원과 유지보수를 위해 Tidelift와 함께 일하고 있습니다. 당신이 사용하는 패키지의 메인테이너에게 비용을 지불하는 대신 시간을 절약하고, 리스크를 줄이고, 코드의 품질을 향상시킬 수 있습니다. [더 자세한 정보는 여기를 참고바랍니다.](https://tidelift.com/subscription/pkg/pypi-rich?utm_source=pypi-rich&utm_medium=referral&utm_campaign=enterprise&utm_term=repo) # Rich를 사용하는 프로젝트들 @@ -448,7 +451,7 @@ Rich를 사용하는 몇가지 프로젝트들입니다: 자동으로 자막과 영상의 싱크를 맞추세요. - [tryolabs/norfair](https://github.com/tryolabs/norfair) 모든 탐지된 것에 실시간으로 2D 오브젝트 트래킹을 추가하는 경량화된 파이썬 라이브러리. -- [ansible/ansible-lint](https://github.com/ansible/ansible-lint) +- [ansible/ansible-lint](https://github.com/ansible/ansible-lint) Ansible-lint가 playbooks를 확인해 잠재적으로 개선될 수 있는 practices나 동작을 확인합니다. - [ansible-community/molecule](https://github.com/ansible-community/molecule) Ansible Molecule의 테스트 프레임워크 diff --git a/README.md b/README.md index 90609aaab0..db2719003a 100644 --- a/README.md +++ b/README.md @@ -1,13 +1,15 @@ +[![Supported Python Versions](https://img.shields.io/pypi/pyversions/rich/10.11.0)](https://pypi.org/project/rich/) [![PyPI version](https://badge.fury.io/py/rich.svg)](https://badge.fury.io/py/rich) + [![Downloads](https://pepy.tech/badge/rich/month)](https://pepy.tech/project/rich) -[![PyPI version](https://badge.fury.io/py/rich.svg)](https://badge.fury.io/py/rich) -[![codecov](https://codecov.io/gh/willmcgugan/rich/branch/master/graph/badge.svg)](https://codecov.io/gh/willmcgugan/rich) +[![codecov](https://img.shields.io/codecov/c/github/Textualize/rich?label=codecov&logo=codecov)](https://codecov.io/gh/willmcgugan/rich) [![Rich blog](https://img.shields.io/badge/blog-rich%20news-yellowgreen)](https://www.willmcgugan.com/tag/rich/) [![Twitter Follow](https://img.shields.io/twitter/follow/willmcgugan.svg?style=social)](https://twitter.com/willmcgugan) ![Logo](https://github.com/willmcgugan/rich/raw/master/imgs/logo.svg) [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.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) @@ -17,6 +19,8 @@ • [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. @@ -30,21 +34,21 @@ 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 16 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.3 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. -``` -pip install rich +```sh +python -m pip install rich ``` Run the following to test Rich output on your terminal: -``` +```sh python -m rich ``` @@ -212,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", @@ -415,40 +419,24 @@ Here's what it looks like on OSX (similar on Linux): 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 for enterprise +# 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. -Available as part of the Tidelift Subscription. -The maintainers of Rich and thousands of other packages are working with Tidelift to deliver commercial support and maintenance for the open source packages you use to build your applications. Save time, reduce risk, and improve code health, while paying the maintainers of the exact packages you use. [Learn more.](https://tidelift.com/subscription/pkg/pypi-rich?utm_source=pypi-rich&utm_medium=referral&utm_campaign=enterprise&utm_term=repo) +![Rich CLI](https://raw.githubusercontent.com/Textualize/rich-cli/main/imgs/rich-cli-splash.jpg) + +# Textual + +See also Rich's sister project, [Textual](https://github.com/Textualize/textual), which you can use to build sophisticated User Interfaces in the terminal. + +![Textual screenshot](https://raw.githubusercontent.com/Textualize/textual/main/imgs/textual.png) # Projects using Rich -Here are a few projects using 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)! +For some examples of projects using Rich, see the [Rich Gallery](https://www.textualize.io/rich/gallery) on [Textualize.io](https://www.textualize.io). + +Would you like to add your own project to the gallery? You can! Follow [these instructions](https://www.textualize.io/gallery-instructions). diff --git a/README.pt-br.md b/README.pt-br.md index d803aa4511..40c9168dad 100644 --- a/README.pt-br.md +++ b/README.pt-br.md @@ -7,7 +7,8 @@ ![Logo](https://github.com/willmcgugan/rich/raw/master/imgs/logo.svg) [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.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) @@ -17,34 +18,35 @@ • [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 termial. +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 termial 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. +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. ![Funcões](https://github.com/willmcgugan/rich/raw/master/imgs/features.png) -Para mais detalhes, veja um vídeo de introdução so Rick em [calmcode.io](https://calmcode.io/rich/introduction.html) por [@fishnets88](https://twitter.com/fishnets88). +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 or later. +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.3 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. +Instale usando `pip` ou seu gerenciador de pacotes PyPI favorito. -``` -pip install rich +```sh +python -m pip install rich ``` Execute o seguinte comando para testar o output do Rich no seu terminal: -``` +```sh python -m rich ``` @@ -111,7 +113,7 @@ Voce pode usar o objeto do Console para gerar facilmente uma saída para o termi ## 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, instancias ou funções nativas. +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"] @@ -125,7 +127,7 @@ Confira a [documentação do inspect](https://rich.readthedocs.io/en/latest/refe # A biblioteca Rich -O Rich possui vários _renderizaveis_ nativos que podem ser usados para criar outputs elegantes no seu CLI e ajudar a debugar o código. +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: @@ -185,18 +187,18 @@ Para imprimir um emoji no console, coloque o nome do emoji entre dois ":" (dois 😃 🧛 💩 👍 🦝 ``` -Please use this feature wisely. +Por favor use esse recurso com sabedoria.
Tabelas -O Rich pode imprimir [tables](https://rich.readthedocs.io/en/latest/tables.html) flexiveis usando caracteres unicode como bordas. Existem várias opções de formatação de bordas, estilos, alinhamento das celulas etc. +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. ![table movie](https://github.com/willmcgugan/rich/raw/master/imgs/table_movie.gif) -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 exeplos. +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: @@ -212,7 +214,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", @@ -236,7 +238,7 @@ 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 class `Table` é inteligente o suficiente para ajustar o tamanho das colunas para caber na largura do terminal, quebrando o texto em novas linhas como necessário. Veja a seguir o mesmo exemplo, só que desta vez com um terminal menor do que o tamanho original da tabela: +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: ![table2](https://github.com/willmcgugan/rich/raw/master/imgs/table2.png) @@ -256,7 +258,6 @@ for step in track(range(100)): do_step(step) ``` -It's not much harder to add multiple progress bars. Here's an example taken from the docs: Adicionar multiplas barras de progresso também é simples. Veja outro exemplo que existe na documentação: ![progress](https://github.com/willmcgugan/rich/raw/master/imgs/progress.gif) @@ -265,7 +266,7 @@ As colunas podem ser configuradas pra mostrar qualquer detalho necessário. As c ![progress](https://github.com/willmcgugan/rich/raw/master/imgs/downloader.gif) -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 progress de cada 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.
@@ -319,7 +320,6 @@ Isso gera o seguinte resultado: ![markdown](https://github.com/willmcgugan/rich/raw/master/imgs/tree.png) -Veja o exemplo em [tree.py](https://github.com/willmcgugan/rich/blob/master/examples/tree.py) de um script that displays a tree view of any directory, similar to the linux `tree` command. 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.
@@ -340,7 +340,6 @@ directory = os.listdir(sys.argv[1]) print(Columns(directory)) ``` -The following screenshot is the output from the [columns example](https://github.com/willmcgugan/rich/blob/master/examples/columns.py) which displays data pulled from an API in columns: 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: ![columns](https://github.com/willmcgugan/rich/raw/master/imgs/columns.png) @@ -444,14 +443,14 @@ Aqui estão alguns projetos que usam o Rich: - [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 tolos. + 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 praticas e comportamento que podem ser melhorados. +- [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..1666f8d914 --- /dev/null +++ b/README.ru.md @@ -0,0 +1,458 @@ +[![Supported Python Versions](https://img.shields.io/pypi/pyversions/rich/10.11.0)](https://pypi.org/project/rich/) [![PyPI version](https://badge.fury.io/py/rich.svg)](https://badge.fury.io/py/rich) + +[![Downloads](https://pepy.tech/badge/rich/month)](https://pepy.tech/project/rich) +[![codecov](https://codecov.io/gh/willmcgugan/rich/branch/master/graph/badge.svg)](https://codecov.io/gh/willmcgugan/rich) +[![Rich blog](https://img.shields.io/badge/blog-rich%20news-yellowgreen)](https://www.willmcgugan.com/tag/rich/) +[![Twitter Follow](https://img.shields.io/twitter/follow/willmcgugan.svg?style=social)](https://twitter.com/willmcgugan) + +![Logo](https://github.com/willmcgugan/rich/raw/master/imgs/logo.svg) + +[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, код с отображением синтаксиса, ошибки, и т.д. — прямо после установки. + +![Features](https://github.com/willmcgugan/rich/raw/master/imgs/features.png) + +Для видео инструкции смотрите [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.3 или более новый. + +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()) +``` + +![Hello World](https://github.com/willmcgugan/rich/raw/master/imgs/print.png) + +## Rich REPL + +Rich может быть установлен в Python REPL, так, все данные будут выведены через Rich. + +```python +>>> from rich import pretty +>>> pretty.install() +``` + +![REPL](https://github.com/willmcgugan/rich/raw/master/imgs/repl.png) + +## Использование класса 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") +``` + +Вывод будет выглядить примерно так: + +![Hello World](https://github.com/willmcgugan/rich/raw/master/imgs/hello_world.png) + +Этого достаточно чтобы стилизовать 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 Markup](https://github.com/willmcgugan/rich/raw/master/imgs/where_there_is_a_will.png) + +Вы можете использовать класс 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) +``` + +![Log](https://github.com/willmcgugan/rich/raw/master/imgs/inspect.png) + +Смотрите [документацию 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](https://github.com/willmcgugan/rich/raw/master/imgs/log.png) + +Запомните аргумент `log_locals`, он выводит таблицу имеющую локальные переменные функции в которой метод был вызван. + +Метод может быть использован для вывода данных в терминал в длинно-работающих программ, таких как сервера, но он также может помочь в дебаггинге. + +
+
+Обработчик Логов + +Вы также можете использовать встроенный [класс Handler](https://rich.readthedocs.io/en/latest/logging.html) чтобы форматировать и раскрашивать вывод из встроенной библиотеки logging. Вот пример вывода: + +![Logging](https://github.com/willmcgugan/rich/raw/master/imgs/logging.png) + +
+ +
+Эмоджи + +Чтобы вставить эмоджи в вывод консоли поместите название между двумя двоеточиями. Вот пример: + +```python +>>> console.print(":smiley: :vampire: :pile_of_poo: :thumbs_up: :raccoon:") +😃 🧛 💩 👍 🦝 +``` + +Пожалуйста, используйте это мудро. + +
+ +
+Таблицы + +Rich может отображать гибкие [таблицы](https://rich.readthedocs.io/en/latest/tables.html) с символами unicode. Есть большое количество форматов границ, стилей, выравниваний ячеек и т.п. + +![table movie](https://github.com/willmcgugan/rich/raw/master/imgs/table_movie.gif) + +Эта анимация была сгенерирована с помощью [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) +``` + +Этот пример выводит: + +![table](https://github.com/willmcgugan/rich/raw/master/imgs/table.png) + +Запомните что разметка консоли отображается таким же способом что и `print()` и `log()`. На самом деле, всё, что может отобразить Rich может быть в заголовках или рядах (даже другие таблицы). + +Класс `Table` достаточно умный чтобы менять размер столбцов, так, чтобы они заполняли доступную ширину терминала, обёртывая текст как нужно. Вот тот же самый пример с терминалом меньше таблицы: + +![table2](https://github.com/willmcgugan/rich/raw/master/imgs/table2.png) + +
+ +
+Прогресс Бары + +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 задание не сложнее. Вот пример взятый из документации: + +![progress](https://github.com/willmcgugan/rich/raw/master/imgs/progress.gif) + +Столбцы могут быть настроены чтобы показывать любые детали. Стандартные столбцы содержат проценты исполнения, размер файлы, скорость файла, и оставшееся время. Вот ещё пример показывающий загрузку в прогрессе: + +![progress](https://github.com/willmcgugan/rich/raw/master/imgs/downloader.gif) + +Чтобы попробовать самому, скачайте [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") +``` + +Это генерирует вот такой вывод в консоль. + +![status](https://github.com/willmcgugan/rich/raw/master/imgs/status.gif) + +Крутящиеся анимации были взяты из [cli-spinners](https://www.npmjs.com/package/cli-spinners). Вы можете выбрать одну из них указав параметр `spinner`. Запустите следующую команду чтобы узнать доступные анимации: + +``` +python -m rich.spinner +``` + +Эта команда выдаёт вот такой вывод в терминал: + +![spinners](https://github.com/willmcgugan/rich/raw/master/imgs/spinners.gif) + +
+ +
+Дерево + +Rich может отобразить [дерево](https://rich.readthedocs.io/en/latest/tree.html) с указаниями. Дерево идеально подходит для отображения структуры файлов или любых других иерархических данных. + +Ярлыки дерева могут быть простым текстом или любой другой вещью Rich может отобразить. Запустите следующую команду для демонстрации: + +``` +python -m rich.tree +``` + +Это генерирует следующий вывод: + +![markdown](https://github.com/willmcgugan/rich/raw/master/imgs/tree.png) + +Смотрите пример [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 в столбцах: + +![columns](https://github.com/willmcgugan/rich/raw/master/imgs/columns.png) + +
+ +
+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) +``` + +Это выведет что-то похожее на это: + +![markdown](https://github.com/willmcgugan/rich/raw/master/imgs/markdown.png) + +
+ +
+Подсвечивание Синтаксиса + +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) +``` + +Это выведет что-то похожее на это: + +![syntax](https://github.com/willmcgugan/rich/raw/master/imgs/syntax.png) + +
+ +
+Ошибки + +Rich может отображать [красивые ошибки](https://rich.readthedocs.io/en/latest/traceback.html) которые проще читать и показывают больше кода чем стандартные ошибки Python. Вы можете установить Rich как стандартный обработчик ошибок чтобы все непойманные ошибки отображал Rich. + +Вот как это выглядит на OSX (похоже на Linux): + +![traceback](https://github.com/willmcgugan/rich/raw/master/imgs/traceback.png) + +
+ +Все визуализации 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 index cfd2c895c4..4d2cf9828f 100644 --- a/README.sv.md +++ b/README.sv.md @@ -7,7 +7,8 @@ ![Logo](https://github.com/willmcgugan/rich/raw/master/imgs/logo.svg) [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.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) @@ -17,6 +18,7 @@ • [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. @@ -30,21 +32,21 @@ Se vad [folk pratar om Rich](https://www.willmcgugan.com/blog/pages/post/rich-tw ## 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 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.3 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. +Installera med `pip` eller din favorita PyPI packet hanterare. -``` -pip install rich +```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 ``` @@ -62,7 +64,7 @@ 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. +Rich kan installeras i Python REPL, så att varje datastruktur kommer att skrivas ut fint och markeras. ```python >>> from rich import pretty @@ -212,7 +214,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", diff --git a/README.zh-tw.md b/README.zh-tw.md new file mode 100644 index 0000000000..048b8b10fc --- /dev/null +++ b/README.zh-tw.md @@ -0,0 +1,457 @@ +[![Downloads](https://pepy.tech/badge/rich/month)](https://pepy.tech/project/rich) +[![PyPI version](https://badge.fury.io/py/rich.svg)](https://badge.fury.io/py/rich) +[![codecov](https://codecov.io/gh/willmcgugan/rich/branch/master/graph/badge.svg)](https://codecov.io/gh/willmcgugan/rich) +[![Rich blog](https://img.shields.io/badge/blog-rich%20news-yellowgreen)](https://www.willmcgugan.com/tag/rich/) +[![Twitter Follow](https://img.shields.io/twitter/follow/willmcgugan.svg?style=social)](https://twitter.com/willmcgugan) + +![Logo](https://github.com/willmcgugan/rich/raw/master/imgs/logo.svg) + +[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(追溯)……。 + +![Features](https://github.com/willmcgugan/rich/raw/master/imgs/features.png) + +關於 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.3。 + +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()) +``` + +![Hello World](https://github.com/willmcgugan/rich/raw/master/imgs/print.png) + +## Rich REPL + +Rich 可以安裝在 Python REPL 中,如此一來就可以漂亮的輸出與突顯標示任何資料結構。 + +```python +>>> from rich import pretty +>>> pretty.install() +``` + +![REPL](https://github.com/willmcgugan/rich/raw/master/imgs/repl.png) + +## 使用 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") +``` + +輸出結果如下圖: + +![Hello World](https://github.com/willmcgugan/rich/raw/master/imgs/hello_world.png) + +介紹完了如何對整行文字設定樣式,接著來看看更細部的使用。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 Markup](https://github.com/willmcgugan/rich/raw/master/imgs/where_there_is_a_will.png) + +您可以用 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) +``` + +![Log](https://github.com/willmcgugan/rich/raw/master/imgs/inspect.png) + +參閱 [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](https://github.com/willmcgugan/rich/raw/master/imgs/log.png) + +注意到 `log_locals` 引數,可用來輸出一張表格,用來顯示 log 方法被呼叫時,區域變數的內容。 + +log 方法可用於伺服器上長時間運作的程式,也很適合一般程式偵錯用途。 + +
+
+Logging Handler + +您也可以使用內建的 [Handler 類別](https://rich.readthedocs.io/en/latest/logging.html) 來將 Python logging 模組的輸出內容格式化並賦予色彩: + +![Logging](https://github.com/willmcgugan/rich/raw/master/imgs/logging.png) + +
+ +
+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](https://github.com/willmcgugan/rich/raw/master/imgs/table_movie.gif) + +上圖的動畫效果是以 [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) +``` + +執行結果如圖: + +![table](https://github.com/willmcgugan/rich/raw/master/imgs/table.png) + +請留意,主控台標記的呈現方式與 `print()`、`log()` 相同。事實上,由 Rich 繪製的任何東西都可以被放在任何標題、列,甚至其他表格裡。 + +`Table` 類別很聰明,能夠自動調整欄寬來配合終端機的大小,也會在需要時自動將文字換行。此範例的程式碼與上一個相同,然而終端機變小了一點: + +![table2](https://github.com/willmcgugan/rich/raw/master/imgs/table2.png) + +
+ +
+進度條 + +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) +``` + +新增多個進度條也不是難事,來看看說明文件中的範例: + +![progress](https://github.com/willmcgugan/rich/raw/master/imgs/progress.gif) + +您可以調整要顯示的狀態欄位。內建的欄位包含完成百分比、檔案大小、讀寫速度及剩餘時間。來看看另一個用來顯示下載進度的範例: + +![progress](https://github.com/willmcgugan/rich/raw/master/imgs/downloader.gif) + +想嘗試看看嗎?您可以在 [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") +``` + +終端機的顯示效果如下: + +![status](https://github.com/willmcgugan/rich/raw/master/imgs/status.gif) + +該 spinner 動畫乃借用自 [cli-spinners](https://www.npmjs.com/package/cli-spinners)。可以用 `spinner` 參數指定 spinner 樣式。執行此命令以顯示可用的值: + +``` +python -m rich.spinner +``` + +此命令在終端機的輸出結果如下圖: + +![spinners](https://github.com/willmcgugan/rich/raw/master/imgs/spinners.gif) + +
+ +
+ + +Rich 可以用導引線繪製一棵 [樹](https://rich.readthedocs.io/en/latest/tree.html)。樹很適合用來顯示檔案結構,或其他繼承性的資料。 + +可以用文字或其他 Rich 能繪製的元素作為樹的標籤。執行下列程式碼來看看效果: + +``` +python -m rich.tree +``` + +這會產生下圖的結果: + +![markdown](https://github.com/willmcgugan/rich/raw/master/imgs/tree.png) + +您可以參考 [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 取得資料,並以資料欄呈現: + +![columns](https://github.com/willmcgugan/rich/raw/master/imgs/columns.png) + +
+ +
+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) +``` + +執行結果如下圖: + +![markdown](https://github.com/willmcgugan/rich/raw/master/imgs/markdown.png) + +
+ +
+語法醒目標示 + +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) +``` + +執行結果如下圖: + +![syntax](https://github.com/willmcgugan/rich/raw/master/imgs/syntax.png) + +
+ +
+Tracebacks(追溯) + +Rich 可以繪製 [漂亮的 tracebacks](https://rich.readthedocs.io/en/latest/traceback.html),相較標準的 Python traceback 顯示了更多程式碼且更好懂。您可以將 Rich 設為預設的 traceback handler(處理常式),如此一來所有未接住的例外都由 Rich 呈現。 + +它在 macOS 上執行的效果如圖(Linux 上差異不大): + +![traceback](https://github.com/willmcgugan/rich/raw/master/imgs/traceback.png) + +
+ +所有可由 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/asv.conf.json b/asv.conf.json new file mode 100644 index 0000000000..0768205128 --- /dev/null +++ b/asv.conf.json @@ -0,0 +1,34 @@ +{ + "version": 1, + "project": "rich", + "project_url": "https://github.com/Textualize/rich", + "repo": ".", + "repo_subdir": "", + "install_command": [ + "in-dir={env_dir} python -mpip install {wheel_file}" + ], + "uninstall_command": [ + "return-code=any python -mpip uninstall -y {project}" + ], + "build_command": [ + "pip install poetry", + "python setup.py build", + "PIP_NO_BUILD_ISOLATION=false python -mpip wheel --no-deps --no-index -w {build_cache_dir} {build_dir}" + ], + "branches": [ + "master" + ], + "html_dir": "./benchmarks/html", + "results_dir": "./benchmarks/results", + "env_dir": "./benchmarks/env", + "dvcs": "git", + "environment_type": "virtualenv", + "install_timeout": 180, + "show_commit_url": "http://github.com/Textualize/rich/commit/", + "pythons": [ + "3.10" + ], + "matrix": { + "req": {} + } +} diff --git a/benchmarks/README.md b/benchmarks/README.md new file mode 100644 index 0000000000..d024fa1889 --- /dev/null +++ b/benchmarks/README.md @@ -0,0 +1,17 @@ +# Benchmarking Rich + +This directory contains benchmarks, for monitoring the performance of Rich over time. + +The benchmarks use a tool called [Airspeed Velocity](https://asv.readthedocs.io/en/stable) (`asv`), +and we've configured it in [asv.conf.json](../asv.conf.json). + +## Running Benchmarks + +We strongly recommend running `asv run --help` for a full list of options, but +here are some common actions: + +* You can run the benchmarks against the `master` branch with `asv run`. +* To test the most recent commit on your branch `asv run HEAD^!`. +* To generate a static website for browsing the results, run `asv publish`. The resulting HTML can be found in `benchmarks/html`. + +The asv docs have some more examples [here](https://asv.readthedocs.io/en/stable/using.html#benchmarking). diff --git a/benchmarks/__init__.py b/benchmarks/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/benchmarks/benchmarks.py b/benchmarks/benchmarks.py new file mode 100644 index 0000000000..bfcd7b6358 --- /dev/null +++ b/benchmarks/benchmarks.py @@ -0,0 +1,193 @@ +from io import StringIO + +from benchmarks import snippets +from rich.color import Color, ColorSystem +from rich.console import Console +from rich.pretty import Pretty +from rich.style import Style +from rich.syntax import Syntax +from rich.table import Table +from rich.text import Text + + +class TextSuite: + def setup(self): + self.console = Console( + file=StringIO(), color_system="truecolor", legacy_windows=False + ) + self.len_lorem_ipsum = len(snippets.LOREM_IPSUM) + + def time_wrapping(self): + Text(snippets.LOREM_IPSUM).wrap(self.console, 12, overflow="fold") + + def time_indent_guides(self): + Text(snippets.PYTHON_SNIPPET).with_indent_guides() + + def time_fit(self): + Text(snippets.LOREM_IPSUM).fit(12) + + def time_split(self): + Text(snippets.LOREM_IPSUM).split() + + def time_divide(self): + Text(snippets.LOREM_IPSUM).divide(range(20, 100, 4)) + + def time_align_center(self): + Text(snippets.LOREM_IPSUM).align("center", width=self.len_lorem_ipsum * 3) + + def time_render(self): + Text(snippets.LOREM_IPSUM).render(self.console) + + def time_wrapping_unicode_heavy(self): + Text(snippets.UNICODE_HEAVY_TEXT).wrap(self.console, 12, overflow="fold") + + def time_fit_unicode_heavy(self): + Text(snippets.UNICODE_HEAVY_TEXT).fit(12) + + def time_split_unicode_heavy(self): + Text(snippets.UNICODE_HEAVY_TEXT).split() + + def time_divide_unicode_heavy(self): + Text(snippets.UNICODE_HEAVY_TEXT).divide(range(20, 100, 4)) + + def time_align_center_unicode_heavy(self): + Text(snippets.UNICODE_HEAVY_TEXT).align( + "center", width=self.len_lorem_ipsum * 3 + ) + + def time_render_unicode_heavy(self): + Text(snippets.UNICODE_HEAVY_TEXT).render(self.console) + + +class SyntaxWrappingSuite: + def setup(self): + self.console = Console( + file=StringIO(), color_system="truecolor", legacy_windows=False + ) + self.syntax = Syntax( + code=snippets.PYTHON_SNIPPET, lexer="python", word_wrap=True + ) + + def time_text_thin_terminal_heavy_wrapping(self): + self._print_with_width(20) + + def time_text_thin_terminal_medium_wrapping(self): + self._print_with_width(60) + + def time_text_wide_terminal_no_wrapping(self): + self._print_with_width(100) + + def _print_with_width(self, width): + self.console.print(self.syntax, width) + + +class TableSuite: + def time_table_no_wrapping(self): + self._print_table(width=100) + + def time_table_heavy_wrapping(self): + self._print_table(width=30) + + def _print_table(self, width): + table = Table(title="Star Wars Movies") + console = Console( + file=StringIO(), color_system="truecolor", legacy_windows=False, width=width + ) + table.add_column("Released", justify="right", style="cyan", no_wrap=True) + table.add_column("Title", style="magenta") + table.add_column("Box Office", justify="right", style="green") + table.add_row( + "Dec 20, 2019", "[b]Star Wars[/]: The Rise of Skywalker", "$952,110,690" + ) + table.add_row( + "May 25, 2018", "Solo: A [red][b]Star Wars[/] Story[/]", "$393,151,347" + ) + table.add_row( + "Dec 15, 2017", + "[b red]Star Wars[/] Ep. V111: The Last Jedi", + "$1,332,539,889", + ) + table.add_row( + "Dec 16, 2016", "Rogue One: A [blue]Star Wars[/] Story", "$1,332,439,889" + ) + console.print(table) + + +class PrettySuite: + def setup(self): + self.console = Console( + file=StringIO(), color_system="truecolor", legacy_windows=False, width=100 + ) + + def time_pretty(self): + pretty = Pretty(snippets.PYTHON_DICT) + self.console.print(pretty) + + def time_pretty_indent_guides(self): + pretty = Pretty(snippets.PYTHON_DICT, indent_guides=True) + self.console.print(pretty) + + def time_pretty_justify_center(self): + pretty = Pretty(snippets.PYTHON_DICT, justify="center") + self.console.print(pretty) + + +class StyleSuite: + def setup(self): + self.console = Console( + file=StringIO(), color_system="truecolor", legacy_windows=False, width=100 + ) + + def time_parse_ansi(self): + Style.parse("red on blue") + + def time_parse_hex(self): + Style.parse("#f0f0f0 on #e2e28a") + + def time_parse_mixed_complex_style(self): + Style.parse("dim bold reverse #00ee00 on rgb(123,12,50)") + + +class ColorSuite: + def setup(self): + self.console = Console( + file=StringIO(), color_system="truecolor", legacy_windows=False, width=100 + ) + self.color = Color.parse("#0d1da0") + + def time_downgrade_to_eight_bit(self): + self.color.downgrade(ColorSystem.EIGHT_BIT) + + def time_downgrade_to_standard(self): + self.color.downgrade(ColorSystem.STANDARD) + + def time_downgrade_to_windows(self): + self.color.downgrade(ColorSystem.WINDOWS) + + +class ColorSuiteCached: + def setup(self): + self.console = Console( + file=StringIO(), color_system="truecolor", legacy_windows=False, width=100 + ) + self.color = Color.parse("#0d1da0") + # Warm cache + self.color.downgrade(ColorSystem.EIGHT_BIT) + self.color.downgrade(ColorSystem.STANDARD) + self.color.downgrade(ColorSystem.WINDOWS) + + def time_downgrade_to_eight_bit(self): + self.color.downgrade(ColorSystem.EIGHT_BIT) + + def time_downgrade_to_standard(self): + self.color.downgrade(ColorSystem.STANDARD) + + def time_downgrade_to_windows(self): + self.color.downgrade(ColorSystem.WINDOWS) + + +class SegmentSuite: + def setup(self): + self.console = Console( + file=StringIO(), color_system="truecolor", legacy_windows=False, width=100 + ) diff --git a/benchmarks/results/benchmarks.json b/benchmarks/results/benchmarks.json new file mode 100644 index 0000000000..1df1be7ddb --- /dev/null +++ b/benchmarks/results/benchmarks.json @@ -0,0 +1,483 @@ +{ + "benchmarks.ColorSuite.time_downgrade_to_eight_bit": { + "code": "class ColorSuite:\n def time_downgrade_to_eight_bit(self):\n self.color.downgrade(ColorSystem.EIGHT_BIT)\n\n def setup(self):\n self.console = Console(file=StringIO(), color_system=\"truecolor\", legacy_windows=False, width=100)\n self.color = Color.parse(\"#0d1da0\")", + "min_run_count": 2, + "name": "benchmarks.ColorSuite.time_downgrade_to_eight_bit", + "number": 0, + "param_names": [], + "params": [], + "repeat": 0, + "rounds": 2, + "sample_time": 0.01, + "timeout": 60.0, + "type": "time", + "unit": "seconds", + "version": "019b972f782c6291df9a6a4dea9bb3c6268a69b177e71383d6e19a608e84920d", + "warmup_time": -1 + }, + "benchmarks.ColorSuite.time_downgrade_to_standard": { + "code": "class ColorSuite:\n def time_downgrade_to_standard(self):\n self.color.downgrade(ColorSystem.STANDARD)\n\n def setup(self):\n self.console = Console(file=StringIO(), color_system=\"truecolor\", legacy_windows=False, width=100)\n self.color = Color.parse(\"#0d1da0\")", + "min_run_count": 2, + "name": "benchmarks.ColorSuite.time_downgrade_to_standard", + "number": 0, + "param_names": [], + "params": [], + "repeat": 0, + "rounds": 2, + "sample_time": 0.01, + "timeout": 60.0, + "type": "time", + "unit": "seconds", + "version": "f5e8556491c977450fff6ebfd9fff4fc8f12d74829aa5b8570bd27ea7a1c9d28", + "warmup_time": -1 + }, + "benchmarks.ColorSuite.time_downgrade_to_windows": { + "code": "class ColorSuite:\n def time_downgrade_to_windows(self):\n self.color.downgrade(ColorSystem.WINDOWS)\n\n def setup(self):\n self.console = Console(file=StringIO(), color_system=\"truecolor\", legacy_windows=False, width=100)\n self.color = Color.parse(\"#0d1da0\")", + "min_run_count": 2, + "name": "benchmarks.ColorSuite.time_downgrade_to_windows", + "number": 0, + "param_names": [], + "params": [], + "repeat": 0, + "rounds": 2, + "sample_time": 0.01, + "timeout": 60.0, + "type": "time", + "unit": "seconds", + "version": "373eb97dd7ce2823e080972249235f528e8b3a47210911981cf432ecf0eef5fb", + "warmup_time": -1 + }, + "benchmarks.ColorSuiteCached.time_downgrade_to_eight_bit": { + "code": "class ColorSuiteCached:\n def time_downgrade_to_eight_bit(self):\n self.color.downgrade(ColorSystem.EIGHT_BIT)\n\n def setup(self):\n self.console = Console(file=StringIO(), color_system=\"truecolor\", legacy_windows=False, width=100)\n self.color = Color.parse(\"#0d1da0\")\n # Warm cache\n self.color.downgrade(ColorSystem.EIGHT_BIT)\n self.color.downgrade(ColorSystem.STANDARD)\n self.color.downgrade(ColorSystem.WINDOWS)", + "min_run_count": 2, + "name": "benchmarks.ColorSuiteCached.time_downgrade_to_eight_bit", + "number": 0, + "param_names": [], + "params": [], + "repeat": 0, + "rounds": 2, + "sample_time": 0.01, + "timeout": 60.0, + "type": "time", + "unit": "seconds", + "version": "716ff06a471a5d90af3730f6d4470eba3577432d781e0210dff1fd156b8c549c", + "warmup_time": -1 + }, + "benchmarks.ColorSuiteCached.time_downgrade_to_standard": { + "code": "class ColorSuiteCached:\n def time_downgrade_to_standard(self):\n self.color.downgrade(ColorSystem.STANDARD)\n\n def setup(self):\n self.console = Console(file=StringIO(), color_system=\"truecolor\", legacy_windows=False, width=100)\n self.color = Color.parse(\"#0d1da0\")\n # Warm cache\n self.color.downgrade(ColorSystem.EIGHT_BIT)\n self.color.downgrade(ColorSystem.STANDARD)\n self.color.downgrade(ColorSystem.WINDOWS)", + "min_run_count": 2, + "name": "benchmarks.ColorSuiteCached.time_downgrade_to_standard", + "number": 0, + "param_names": [], + "params": [], + "repeat": 0, + "rounds": 2, + "sample_time": 0.01, + "timeout": 60.0, + "type": "time", + "unit": "seconds", + "version": "3a752a7884e99e095c31b2a28cfefdf916cb2033c06afae1ea146a72f3ba650c", + "warmup_time": -1 + }, + "benchmarks.ColorSuiteCached.time_downgrade_to_windows": { + "code": "class ColorSuiteCached:\n def time_downgrade_to_windows(self):\n self.color.downgrade(ColorSystem.WINDOWS)\n\n def setup(self):\n self.console = Console(file=StringIO(), color_system=\"truecolor\", legacy_windows=False, width=100)\n self.color = Color.parse(\"#0d1da0\")\n # Warm cache\n self.color.downgrade(ColorSystem.EIGHT_BIT)\n self.color.downgrade(ColorSystem.STANDARD)\n self.color.downgrade(ColorSystem.WINDOWS)", + "min_run_count": 2, + "name": "benchmarks.ColorSuiteCached.time_downgrade_to_windows", + "number": 0, + "param_names": [], + "params": [], + "repeat": 0, + "rounds": 2, + "sample_time": 0.01, + "timeout": 60.0, + "type": "time", + "unit": "seconds", + "version": "1732bbd18ada49eb7b054fc18b40d6acfb533023463366f37203dab6fbb0cc20", + "warmup_time": -1 + }, + "benchmarks.PrettySuite.time_pretty": { + "code": "class PrettySuite:\n def time_pretty(self):\n pretty = Pretty(snippets.PYTHON_DICT)\n self.console.print(pretty)\n\n def setup(self):\n self.console = Console(file=StringIO(), color_system=\"truecolor\", legacy_windows=False, width=100)", + "min_run_count": 2, + "name": "benchmarks.PrettySuite.time_pretty", + "number": 0, + "param_names": [], + "params": [], + "repeat": 0, + "rounds": 2, + "sample_time": 0.01, + "timeout": 60.0, + "type": "time", + "unit": "seconds", + "version": "9bb0e6d8a29aad21b3d1b550a160fa5f1e9030c69d16bad500c0dcc77bff6d01", + "warmup_time": -1 + }, + "benchmarks.PrettySuite.time_pretty_indent_guides": { + "code": "class PrettySuite:\n def time_pretty_indent_guides(self):\n pretty = Pretty(snippets.PYTHON_DICT, indent_guides=True)\n self.console.print(pretty)\n\n def setup(self):\n self.console = Console(file=StringIO(), color_system=\"truecolor\", legacy_windows=False, width=100)", + "min_run_count": 2, + "name": "benchmarks.PrettySuite.time_pretty_indent_guides", + "number": 0, + "param_names": [], + "params": [], + "repeat": 0, + "rounds": 2, + "sample_time": 0.01, + "timeout": 60.0, + "type": "time", + "unit": "seconds", + "version": "8d71bf19dfe999b0fba95d009986bfd6911c53c7a0c455466725f553005c3bc7", + "warmup_time": -1 + }, + "benchmarks.PrettySuite.time_pretty_justify_center": { + "code": "class PrettySuite:\n def time_pretty_justify_center(self):\n pretty = Pretty(snippets.PYTHON_DICT, justify=\"center\")\n self.console.print(pretty)\n\n def setup(self):\n self.console = Console(file=StringIO(), color_system=\"truecolor\", legacy_windows=False, width=100)", + "min_run_count": 2, + "name": "benchmarks.PrettySuite.time_pretty_justify_center", + "number": 0, + "param_names": [], + "params": [], + "repeat": 0, + "rounds": 2, + "sample_time": 0.01, + "timeout": 60.0, + "type": "time", + "unit": "seconds", + "version": "54cbf71bacab14ccbe1d063847c0b89198ed1bbe06edc89c14d2e3c7b1986c41", + "warmup_time": -1 + }, + "benchmarks.StyleSuite.time_parse_ansi": { + "code": "class StyleSuite:\n def time_parse_ansi(self):\n Style.parse(\"red on blue\")\n\n def setup(self):\n self.console = Console(file=StringIO(), color_system=\"truecolor\", legacy_windows=False, width=100)", + "min_run_count": 2, + "name": "benchmarks.StyleSuite.time_parse_ansi", + "number": 0, + "param_names": [], + "params": [], + "repeat": 0, + "rounds": 2, + "sample_time": 0.01, + "timeout": 60.0, + "type": "time", + "unit": "seconds", + "version": "a003aaa8017585efeb1cd9c43351282df4df6249bf28a4c447b1304d984aa753", + "warmup_time": -1 + }, + "benchmarks.StyleSuite.time_parse_hex": { + "code": "class StyleSuite:\n def time_parse_hex(self):\n Style.parse(\"#f0f0f0 on #e2e28a\")\n\n def setup(self):\n self.console = Console(file=StringIO(), color_system=\"truecolor\", legacy_windows=False, width=100)", + "min_run_count": 2, + "name": "benchmarks.StyleSuite.time_parse_hex", + "number": 0, + "param_names": [], + "params": [], + "repeat": 0, + "rounds": 2, + "sample_time": 0.01, + "timeout": 60.0, + "type": "time", + "unit": "seconds", + "version": "cf5a3f0def435d3da5bc3a6e7549c44c0a02e9cce6c00ecde8dd7f527556f8ca", + "warmup_time": -1 + }, + "benchmarks.StyleSuite.time_parse_mixed_complex_style": { + "code": "class StyleSuite:\n def time_parse_mixed_complex_style(self):\n Style.parse(\"dim bold reverse #00ee00 on rgb(123,12,50)\")\n\n def setup(self):\n self.console = Console(file=StringIO(), color_system=\"truecolor\", legacy_windows=False, width=100)", + "min_run_count": 2, + "name": "benchmarks.StyleSuite.time_parse_mixed_complex_style", + "number": 0, + "param_names": [], + "params": [], + "repeat": 0, + "rounds": 2, + "sample_time": 0.01, + "timeout": 60.0, + "type": "time", + "unit": "seconds", + "version": "01c9e12ae829b1984e55a5aeef1a9ae6f1461577adaf5ae59f06358c8b52802f", + "warmup_time": -1 + }, + "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_heavy_wrapping": { + "code": "class SyntaxWrappingSuite:\n def time_text_thin_terminal_heavy_wrapping(self):\n self._print_with_width(20)\n\n def setup(self):\n self.console = Console(file=StringIO(), color_system=\"truecolor\", legacy_windows=False)\n self.syntax = Syntax(code=snippets.PYTHON_SNIPPET, lexer=\"python\", word_wrap=True)", + "min_run_count": 2, + "name": "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_heavy_wrapping", + "number": 0, + "param_names": [], + "params": [], + "repeat": 0, + "rounds": 2, + "sample_time": 0.01, + "timeout": 60.0, + "type": "time", + "unit": "seconds", + "version": "1ed4d74ea424990cfb40c96f07635f9bcf7b8bacc7ade5204aaf96363e1622ee", + "warmup_time": -1 + }, + "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_medium_wrapping": { + "code": "class SyntaxWrappingSuite:\n def time_text_thin_terminal_medium_wrapping(self):\n self._print_with_width(60)\n\n def setup(self):\n self.console = Console(file=StringIO(), color_system=\"truecolor\", legacy_windows=False)\n self.syntax = Syntax(code=snippets.PYTHON_SNIPPET, lexer=\"python\", word_wrap=True)", + "min_run_count": 2, + "name": "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_medium_wrapping", + "number": 0, + "param_names": [], + "params": [], + "repeat": 0, + "rounds": 2, + "sample_time": 0.01, + "timeout": 60.0, + "type": "time", + "unit": "seconds", + "version": "0880e162a4907ee025cef8ac3380502554fde27fd0c90a4c15cebc9c27f3e333", + "warmup_time": -1 + }, + "benchmarks.SyntaxWrappingSuite.time_text_wide_terminal_no_wrapping": { + "code": "class SyntaxWrappingSuite:\n def time_text_wide_terminal_no_wrapping(self):\n self._print_with_width(100)\n\n def setup(self):\n self.console = Console(file=StringIO(), color_system=\"truecolor\", legacy_windows=False)\n self.syntax = Syntax(code=snippets.PYTHON_SNIPPET, lexer=\"python\", word_wrap=True)", + "min_run_count": 2, + "name": "benchmarks.SyntaxWrappingSuite.time_text_wide_terminal_no_wrapping", + "number": 0, + "param_names": [], + "params": [], + "repeat": 0, + "rounds": 2, + "sample_time": 0.01, + "timeout": 60.0, + "type": "time", + "unit": "seconds", + "version": "feb11e94ae6a75de2dee899fb93db098b55cde232710660d7d66f9e2b288d9c0", + "warmup_time": -1 + }, + "benchmarks.TableSuite.time_table_heavy_wrapping": { + "code": "class TableSuite:\n def time_table_heavy_wrapping(self):\n self._print_table(width=30)", + "min_run_count": 2, + "name": "benchmarks.TableSuite.time_table_heavy_wrapping", + "number": 0, + "param_names": [], + "params": [], + "repeat": 0, + "rounds": 2, + "sample_time": 0.01, + "timeout": 60.0, + "type": "time", + "unit": "seconds", + "version": "ca515a9739c1e0f8eb922420f9f9caf27321fb13c8bd0bc49b207a0588b370de", + "warmup_time": -1 + }, + "benchmarks.TableSuite.time_table_no_wrapping": { + "code": "class TableSuite:\n def time_table_no_wrapping(self):\n self._print_table(width=100)", + "min_run_count": 2, + "name": "benchmarks.TableSuite.time_table_no_wrapping", + "number": 0, + "param_names": [], + "params": [], + "repeat": 0, + "rounds": 2, + "sample_time": 0.01, + "timeout": 60.0, + "type": "time", + "unit": "seconds", + "version": "8842a5f141d8208ba2bab66e4973e978cb5d0615f326af5d70385ff8fa44b3b9", + "warmup_time": -1 + }, + "benchmarks.TextSuite.time_align_center": { + "code": "class TextSuite:\n def time_align_center(self):\n Text(snippets.LOREM_IPSUM).align(\"center\", width=self.len_lorem_ipsum * 3)\n\n def setup(self):\n self.console = Console(file=StringIO(), color_system=\"truecolor\", legacy_windows=False)\n self.len_lorem_ipsum = len(snippets.LOREM_IPSUM)", + "min_run_count": 2, + "name": "benchmarks.TextSuite.time_align_center", + "number": 0, + "param_names": [], + "params": [], + "repeat": 0, + "rounds": 2, + "sample_time": 0.01, + "timeout": 60.0, + "type": "time", + "unit": "seconds", + "version": "1ceeeef2de43fcb3d0dfec409972d8f0eb791e9615fa9f9c959e0423725b089b", + "warmup_time": -1 + }, + "benchmarks.TextSuite.time_align_center_unicode_heavy": { + "code": "class TextSuite:\n def time_align_center_unicode_heavy(self):\n Text(snippets.UNICODE_HEAVY_TEXT).align(\"center\", width=self.len_lorem_ipsum * 3)\n\n def setup(self):\n self.console = Console(file=StringIO(), color_system=\"truecolor\", legacy_windows=False)\n self.len_lorem_ipsum = len(snippets.LOREM_IPSUM)", + "min_run_count": 2, + "name": "benchmarks.TextSuite.time_align_center_unicode_heavy", + "number": 0, + "param_names": [], + "params": [], + "repeat": 0, + "rounds": 2, + "sample_time": 0.01, + "timeout": 60.0, + "type": "time", + "unit": "seconds", + "version": "a83ff79614dd2ae17e8b68f45981fcaa0d9833c59a7a14f171b896cf970f54ce", + "warmup_time": -1 + }, + "benchmarks.TextSuite.time_divide": { + "code": "class TextSuite:\n def time_divide(self):\n Text(snippets.LOREM_IPSUM).divide(range(20, 100, 4))\n\n def setup(self):\n self.console = Console(file=StringIO(), color_system=\"truecolor\", legacy_windows=False)\n self.len_lorem_ipsum = len(snippets.LOREM_IPSUM)", + "min_run_count": 2, + "name": "benchmarks.TextSuite.time_divide", + "number": 0, + "param_names": [], + "params": [], + "repeat": 0, + "rounds": 2, + "sample_time": 0.01, + "timeout": 60.0, + "type": "time", + "unit": "seconds", + "version": "dcc120b921cb2ec77632f8fe2f6f4150d479cb49ef2608f8e86b569a937756e9", + "warmup_time": -1 + }, + "benchmarks.TextSuite.time_divide_unicode_heavy": { + "code": "class TextSuite:\n def time_divide_unicode_heavy(self):\n Text(snippets.UNICODE_HEAVY_TEXT).divide(range(20, 100, 4))\n\n def setup(self):\n self.console = Console(file=StringIO(), color_system=\"truecolor\", legacy_windows=False)\n self.len_lorem_ipsum = len(snippets.LOREM_IPSUM)", + "min_run_count": 2, + "name": "benchmarks.TextSuite.time_divide_unicode_heavy", + "number": 0, + "param_names": [], + "params": [], + "repeat": 0, + "rounds": 2, + "sample_time": 0.01, + "timeout": 60.0, + "type": "time", + "unit": "seconds", + "version": "ea53e662c0553324f90ac3336dcee77f733bb33638888e1f84bf71945a2f3f8e", + "warmup_time": -1 + }, + "benchmarks.TextSuite.time_fit": { + "code": "class TextSuite:\n def time_fit(self):\n Text(snippets.LOREM_IPSUM).fit(12)\n\n def setup(self):\n self.console = Console(file=StringIO(), color_system=\"truecolor\", legacy_windows=False)\n self.len_lorem_ipsum = len(snippets.LOREM_IPSUM)", + "min_run_count": 2, + "name": "benchmarks.TextSuite.time_fit", + "number": 0, + "param_names": [], + "params": [], + "repeat": 0, + "rounds": 2, + "sample_time": 0.01, + "timeout": 60.0, + "type": "time", + "unit": "seconds", + "version": "ec77b412db357b1e1c1e7bc620b941dddfc36dc76d2a66a0417feae4f21fe1d3", + "warmup_time": -1 + }, + "benchmarks.TextSuite.time_fit_unicode_heavy": { + "code": "class TextSuite:\n def time_fit_unicode_heavy(self):\n Text(snippets.UNICODE_HEAVY_TEXT).fit(12)\n\n def setup(self):\n self.console = Console(file=StringIO(), color_system=\"truecolor\", legacy_windows=False)\n self.len_lorem_ipsum = len(snippets.LOREM_IPSUM)", + "min_run_count": 2, + "name": "benchmarks.TextSuite.time_fit_unicode_heavy", + "number": 0, + "param_names": [], + "params": [], + "repeat": 0, + "rounds": 2, + "sample_time": 0.01, + "timeout": 60.0, + "type": "time", + "unit": "seconds", + "version": "d1574b4af2ef8b80b95b4dbeeb13e5de67b66783f76f9968834776239dd0dc66", + "warmup_time": -1 + }, + "benchmarks.TextSuite.time_indent_guides": { + "code": "class TextSuite:\n def time_indent_guides(self):\n Text(snippets.PYTHON_SNIPPET).with_indent_guides()\n\n def setup(self):\n self.console = Console(file=StringIO(), color_system=\"truecolor\", legacy_windows=False)\n self.len_lorem_ipsum = len(snippets.LOREM_IPSUM)", + "min_run_count": 2, + "name": "benchmarks.TextSuite.time_indent_guides", + "number": 0, + "param_names": [], + "params": [], + "repeat": 0, + "rounds": 2, + "sample_time": 0.01, + "timeout": 60.0, + "type": "time", + "unit": "seconds", + "version": "18da036dcfc15ec5e3c11e72be7c8f0c22fba695a5f19c95836be36952376cf2", + "warmup_time": -1 + }, + "benchmarks.TextSuite.time_render": { + "code": "class TextSuite:\n def time_render(self):\n Text(snippets.LOREM_IPSUM).render(self.console)\n\n def setup(self):\n self.console = Console(file=StringIO(), color_system=\"truecolor\", legacy_windows=False)\n self.len_lorem_ipsum = len(snippets.LOREM_IPSUM)", + "min_run_count": 2, + "name": "benchmarks.TextSuite.time_render", + "number": 0, + "param_names": [], + "params": [], + "repeat": 0, + "rounds": 2, + "sample_time": 0.01, + "timeout": 60.0, + "type": "time", + "unit": "seconds", + "version": "907d30581cfdc7bb2c4d302b7e3cb474aaefd8b84821365fe105af7d82be3b09", + "warmup_time": -1 + }, + "benchmarks.TextSuite.time_render_unicode_heavy": { + "code": "class TextSuite:\n def time_render_unicode_heavy(self):\n Text(snippets.UNICODE_HEAVY_TEXT).render(self.console)\n\n def setup(self):\n self.console = Console(file=StringIO(), color_system=\"truecolor\", legacy_windows=False)\n self.len_lorem_ipsum = len(snippets.LOREM_IPSUM)", + "min_run_count": 2, + "name": "benchmarks.TextSuite.time_render_unicode_heavy", + "number": 0, + "param_names": [], + "params": [], + "repeat": 0, + "rounds": 2, + "sample_time": 0.01, + "timeout": 60.0, + "type": "time", + "unit": "seconds", + "version": "b3f1c09dfd06f412a20dacfe378c3b446727c7d4f9a975336eab3daa8543e1cb", + "warmup_time": -1 + }, + "benchmarks.TextSuite.time_split": { + "code": "class TextSuite:\n def time_split(self):\n Text(snippets.LOREM_IPSUM).split()\n\n def setup(self):\n self.console = Console(file=StringIO(), color_system=\"truecolor\", legacy_windows=False)\n self.len_lorem_ipsum = len(snippets.LOREM_IPSUM)", + "min_run_count": 2, + "name": "benchmarks.TextSuite.time_split", + "number": 0, + "param_names": [], + "params": [], + "repeat": 0, + "rounds": 2, + "sample_time": 0.01, + "timeout": 60.0, + "type": "time", + "unit": "seconds", + "version": "9c165854130cb95fea5491ffcd8b580a5bd373149da2ef8aace0e9480f649854", + "warmup_time": -1 + }, + "benchmarks.TextSuite.time_split_unicode_heavy": { + "code": "class TextSuite:\n def time_split_unicode_heavy(self):\n Text(snippets.UNICODE_HEAVY_TEXT).split()\n\n def setup(self):\n self.console = Console(file=StringIO(), color_system=\"truecolor\", legacy_windows=False)\n self.len_lorem_ipsum = len(snippets.LOREM_IPSUM)", + "min_run_count": 2, + "name": "benchmarks.TextSuite.time_split_unicode_heavy", + "number": 0, + "param_names": [], + "params": [], + "repeat": 0, + "rounds": 2, + "sample_time": 0.01, + "timeout": 60.0, + "type": "time", + "unit": "seconds", + "version": "d55b02f6d06f478d70635bac3409f3a9899137d9cee87a70a293b8ccf5a6afa4", + "warmup_time": -1 + }, + "benchmarks.TextSuite.time_wrapping": { + "code": "class TextSuite:\n def time_wrapping(self):\n Text(snippets.LOREM_IPSUM).wrap(self.console, 12, overflow=\"fold\")\n\n def setup(self):\n self.console = Console(file=StringIO(), color_system=\"truecolor\", legacy_windows=False)\n self.len_lorem_ipsum = len(snippets.LOREM_IPSUM)", + "min_run_count": 2, + "name": "benchmarks.TextSuite.time_wrapping", + "number": 0, + "param_names": [], + "params": [], + "repeat": 0, + "rounds": 2, + "sample_time": 0.01, + "timeout": 60.0, + "type": "time", + "unit": "seconds", + "version": "8c821eba13d043f228fd902d8f678c397741855db05d02abe9b82f3d65cdf03d", + "warmup_time": -1 + }, + "benchmarks.TextSuite.time_wrapping_unicode_heavy": { + "code": "class TextSuite:\n def time_wrapping_unicode_heavy(self):\n Text(snippets.UNICODE_HEAVY_TEXT).wrap(self.console, 12, overflow=\"fold\")\n\n def setup(self):\n self.console = Console(file=StringIO(), color_system=\"truecolor\", legacy_windows=False)\n self.len_lorem_ipsum = len(snippets.LOREM_IPSUM)", + "min_run_count": 2, + "name": "benchmarks.TextSuite.time_wrapping_unicode_heavy", + "number": 0, + "param_names": [], + "params": [], + "repeat": 0, + "rounds": 2, + "sample_time": 0.01, + "timeout": 60.0, + "type": "time", + "unit": "seconds", + "version": "ec6e2ef08b6cdee182fef4e26c0043f8c365984f9a31be07dbd792e1aed862d8", + "warmup_time": -1 + }, + "version": 2 +} diff --git a/benchmarks/results/darrenburns-2022-mbp/008854c4-virtualenv-py3.10.json b/benchmarks/results/darrenburns-2022-mbp/008854c4-virtualenv-py3.10.json new file mode 100644 index 0000000000..bd61ec28d2 --- /dev/null +++ b/benchmarks/results/darrenburns-2022-mbp/008854c4-virtualenv-py3.10.json @@ -0,0 +1 @@ +{"commit_hash": "008854c40772f647dfcb873bc3489e8a1c02d598", "env_name": "virtualenv-py3.10", "date": 1637075489000, "params": {"arch": "arm64", "cpu": "Apple M1 Pro", "machine": "darrenburns-2022-mbp", "num_cpu": "10", "os": "Darwin 21.2.0", "ram": "17179869184", "python": "3.10"}, "python": "3.10", "requirements": {}, "env_vars": {}, "result_columns": ["result", "params", "version", "started_at", "duration", "stats_ci_99_a", "stats_ci_99_b", "stats_q_25", "stats_q_75", "stats_number", "stats_repeat", "samples", "profile"], "results": {"benchmarks.ColorSuite.time_downgrade_to_eight_bit": [[1.7035716302047938e-07], [], "019b972f782c6291df9a6a4dea9bb3c6268a69b177e71383d6e19a608e84920d", 1646928217146, 0.46624, [1.6888e-07], [1.7084e-07], [1.6954e-07], [1.7059e-07], [64507], [10]], "benchmarks.ColorSuite.time_downgrade_to_standard": [[1.6999220365271978e-07], [], "f5e8556491c977450fff6ebfd9fff4fc8f12d74829aa5b8570bd27ea7a1c9d28", 1646928217378, 0.46342, [1.6946e-07], [1.7071e-07], [1.6971e-07], [1.7025e-07], [64388], [10]], "benchmarks.ColorSuite.time_downgrade_to_windows": [[1.705959185914513e-07], [], "373eb97dd7ce2823e080972249235f528e8b3a47210911981cf432ecf0eef5fb", 1646928217609, 0.46502, [1.7011e-07], [1.7493e-07], [1.7037e-07], [1.7071e-07], [64341], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_eight_bit": [[1.711256779402836e-07], [], "716ff06a471a5d90af3730f6d4470eba3577432d781e0210dff1fd156b8c549c", 1646928217842, 0.45987, [1.7047e-07], [1.7261e-07], [1.7068e-07], [1.7214e-07], [62696], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_standard": [[1.7014178724238976e-07], [], "3a752a7884e99e095c31b2a28cfefdf916cb2033c06afae1ea146a72f3ba650c", 1646928218069, 0.46676, [1.6902e-07], [1.7069e-07], [1.6927e-07], [1.7051e-07], [64572], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_windows": [[1.7013324018204837e-07], [], "1732bbd18ada49eb7b054fc18b40d6acfb533023463366f37203dab6fbb0cc20", 1646928218303, 0.46615, [1.6918e-07], [1.71e-07], [1.6998e-07], [1.7022e-07], [64455], [10]], "benchmarks.PrettySuite.time_pretty": [[0.0010385562491137534], [], "9bb0e6d8a29aad21b3d1b550a160fa5f1e9030c69d16bad500c0dcc77bff6d01", 1646928218536, 0.44839, [0.0010342], [0.00104], [0.0010376], [0.0010389], [10], [10]], "benchmarks.PrettySuite.time_pretty_indent_guides": [[0.001431178569743809], [], "8d71bf19dfe999b0fba95d009986bfd6911c53c7a0c455466725f553005c3bc7", 1646928218763, 0.44502, [0.0014269], [0.0014359], [0.0014294], [0.0014329], [7], [10]], "benchmarks.PrettySuite.time_pretty_justify_center": [[0.0013053151888016146], [], "54cbf71bacab14ccbe1d063847c0b89198ed1bbe06edc89c14d2e3c7b1986c41", 1646928218985, 0.4466, [0.0013027], [0.0013118], [0.0013032], [0.0013099], [8], [10]], "benchmarks.StyleSuite.time_parse_ansi": [[1.1445022795827479e-07], [], "a003aaa8017585efeb1cd9c43351282df4df6249bf28a4c447b1304d984aa753", 1646928219212, 0.46433, [1.1412e-07], [1.1496e-07], [1.142e-07], [1.1451e-07], [95867], [10]], "benchmarks.StyleSuite.time_parse_hex": [[1.1444926984658398e-07], [], "cf5a3f0def435d3da5bc3a6e7549c44c0a02e9cce6c00ecde8dd7f527556f8ca", 1646928219445, 0.46101, [1.1417e-07], [1.1495e-07], [1.1439e-07], [1.1459e-07], [94717], [10]], "benchmarks.StyleSuite.time_parse_mixed_complex_style": [[1.143986341348774e-07], [], "01c9e12ae829b1984e55a5aeef1a9ae6f1461577adaf5ae59f06358c8b52802f", 1646928219676, 0.46373, [1.1417e-07], [1.1477e-07], [1.1422e-07], [1.1456e-07], [95762], [10]], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_heavy_wrapping": [null, [], "1ed4d74ea424990cfb40c96f07635f9bcf7b8bacc7ade5204aaf96363e1622ee", 1646928213573, 0.066215], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_medium_wrapping": [null, [], "0880e162a4907ee025cef8ac3380502554fde27fd0c90a4c15cebc9c27f3e333", 1646928213639, 0.065625], "benchmarks.SyntaxWrappingSuite.time_text_wide_terminal_no_wrapping": [null, [], "feb11e94ae6a75de2dee899fb93db098b55cde232710660d7d66f9e2b288d9c0", 1646928213705, 0.06561], "benchmarks.TableSuite.time_table_heavy_wrapping": [[0.0022121749992948026], [], "ca515a9739c1e0f8eb922420f9f9caf27321fb13c8bd0bc49b207a0588b370de", 1646928219909, 0.45152, [0.0021968], [0.0022231], [0.0022017], [0.0022177], [5], [10]], "benchmarks.TableSuite.time_table_no_wrapping": [[0.0013260781233839225], [], "8842a5f141d8208ba2bab66e4973e978cb5d0615f326af5d70385ff8fa44b3b9", 1646928220133, 0.4509, [0.0013202], [0.001333], [0.0013225], [0.0013307], [8], [10]], "benchmarks.TextSuite.time_align_center": [[0.0003805550711279336], [], "1ceeeef2de43fcb3d0dfec409972d8f0eb791e9615fa9f9c959e0423725b089b", 1646928220362, 0.45659, [0.00037934], [0.00038202], [0.00037965], [0.00038125], [28], [10]], "benchmarks.TextSuite.time_align_center_unicode_heavy": [[0.0003435833335970528], [], "a83ff79614dd2ae17e8b68f45981fcaa0d9833c59a7a14f171b896cf970f54ce", 1646928220588, 0.44641, [0.00034278], [0.00035311], [0.00034335], [0.0003441], [30], [10]], "benchmarks.TextSuite.time_divide": [[2.5334508214834553e-05], [], "dcc120b921cb2ec77632f8fe2f6f4150d479cb49ef2608f8e86b569a937756e9", 1646928220810, 0.45831, [2.522e-05], [2.5397e-05], [2.5275e-05], [2.5375e-05], [426], [10]], "benchmarks.TextSuite.time_divide_unicode_heavy": [[0.00018464978473212826], [], "ea53e662c0553324f90ac3336dcee77f733bb33638888e1f84bf71945a2f3f8e", 1646928221039, 0.45538, [0.00018365], [0.00018535], [0.00018439], [0.00018505], [58], [10]], "benchmarks.TextSuite.time_fit": [[4.365042651461779e-05], [], "ec77b412db357b1e1c1e7bc620b941dddfc36dc76d2a66a0417feae4f21fe1d3", 1646928221266, 0.44809, [4.3544e-05], [4.3812e-05], [4.3606e-05], [4.3712e-05], [245], [10]], "benchmarks.TextSuite.time_fit_unicode_heavy": [[0.000324408596967377], [], "d1574b4af2ef8b80b95b4dbeeb13e5de67b66783f76f9968834776239dd0dc66", 1646928221494, 0.43784, [0.00032342], [0.00032574], [0.00032417], [0.00032474], [31], [10]], "benchmarks.TextSuite.time_indent_guides": [[0.0003565991375643503], [], "18da036dcfc15ec5e3c11e72be7c8f0c22fba695a5f19c95836be36952376cf2", 1646928221712, 0.44593, [0.00035519], [0.00035747], [0.00035609], [0.00035693], [29], [10]], "benchmarks.TextSuite.time_render": [[4.685463392417188e-06], [], "907d30581cfdc7bb2c4d302b7e3cb474aaefd8b84821365fe105af7d82be3b09", 1646928221933, 0.45241, [4.6655e-06], [4.7012e-06], [4.6724e-06], [4.697e-06], [2322], [10]], "benchmarks.TextSuite.time_render_unicode_heavy": [[8.538582668856051e-05], [], "b3f1c09dfd06f412a20dacfe378c3b446727c7d4f9a975336eab3daa8543e1cb", 1646928222164, 0.4562, [8.4747e-05], [8.5469e-05], [8.5327e-05], [8.5445e-05], [127], [10]], "benchmarks.TextSuite.time_split": [[3.527893463767505e-05], [], "9c165854130cb95fea5491ffcd8b580a5bd373149da2ef8aace0e9480f649854", 1646928222393, 0.44906, [3.5225e-05], [3.5336e-05], [3.5256e-05], [3.5322e-05], [306], [10]], "benchmarks.TextSuite.time_split_unicode_heavy": [[0.0002748963815975003], [], "d55b02f6d06f478d70635bac3409f3a9899137d9cee87a70a293b8ccf5a6afa4", 1646928222622, 0.44825, [0.0002742], [0.0002753], [0.00027443], [0.00027514], [38], [10]], "benchmarks.TextSuite.time_wrapping": [[0.001095529149461072], [], "8c821eba13d043f228fd902d8f678c397741855db05d02abe9b82f3d65cdf03d", 1646928222845, 0.45723, [0.0010899], [0.0010965], [0.0010916], [0.0010959], [10], [10]], "benchmarks.TextSuite.time_wrapping_unicode_heavy": [[0.0013660130625794409], [], "ec6e2ef08b6cdee182fef4e26c0043f8c365984f9a31be07dbd792e1aed862d8", 1646928223077, 0.45712, [0.0013642], [0.0013703], [0.0013647], [0.0013681], [8], [10]]}, "durations": {"": 1.993987798690796}, "version": 2} diff --git a/benchmarks/results/darrenburns-2022-mbp/038e22eb-virtualenv-py3.10.json b/benchmarks/results/darrenburns-2022-mbp/038e22eb-virtualenv-py3.10.json new file mode 100644 index 0000000000..3bee50c347 --- /dev/null +++ b/benchmarks/results/darrenburns-2022-mbp/038e22eb-virtualenv-py3.10.json @@ -0,0 +1 @@ +{"commit_hash": "038e22eb98f43091dec8b8d0d61d64bdc81587e1", "env_name": "virtualenv-py3.10", "date": 1594138139000, "params": {"arch": "arm64", "cpu": "Apple M1 Pro", "machine": "darrenburns-2022-mbp", "num_cpu": "10", "os": "Darwin 21.2.0", "ram": "17179869184", "python": "3.10"}, "python": "3.10", "requirements": {}, "env_vars": {}, "result_columns": ["result", "params", "version", "started_at", "duration", "stats_ci_99_a", "stats_ci_99_b", "stats_q_25", "stats_q_75", "stats_number", "stats_repeat", "samples", "profile"], "results": {"benchmarks.ColorSuite.time_downgrade_to_eight_bit": [[1.729106605775907e-07], [], "019b972f782c6291df9a6a4dea9bb3c6268a69b177e71383d6e19a608e84920d", 1646928640177, 0.43136, [1.7119e-07], [1.7374e-07], [1.7273e-07], [1.7318e-07], [64462], [10]], "benchmarks.ColorSuite.time_downgrade_to_standard": [[1.7035370737857387e-07], [], "f5e8556491c977450fff6ebfd9fff4fc8f12d74829aa5b8570bd27ea7a1c9d28", 1646928640392, 0.44888, [1.6988e-07], [1.7186e-07], [1.6997e-07], [1.7048e-07], [64477], [10]], "benchmarks.ColorSuite.time_downgrade_to_windows": [[1.7047515896829772e-07], [], "373eb97dd7ce2823e080972249235f528e8b3a47210911981cf432ecf0eef5fb", 1646928640616, 0.42317, [1.6924e-07], [1.7381e-07], [1.7035e-07], [1.7153e-07], [58794], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_eight_bit": [[1.7047298404720672e-07], [], "716ff06a471a5d90af3730f6d4470eba3577432d781e0210dff1fd156b8c549c", 1646928640825, 0.44556, [1.6861e-07], [1.7187e-07], [1.6999e-07], [1.7085e-07], [63907], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_standard": [[1.71390516393423e-07], [], "3a752a7884e99e095c31b2a28cfefdf916cb2033c06afae1ea146a72f3ba650c", 1646928641048, 0.44882, [1.7014e-07], [1.7357e-07], [1.709e-07], [1.7308e-07], [63900], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_windows": [[1.744885266285576e-07], [], "1732bbd18ada49eb7b054fc18b40d6acfb533023463366f37203dab6fbb0cc20", 1646928641273, 0.44227, [1.7217e-07], [1.7538e-07], [1.7435e-07], [1.7464e-07], [63974], [10]], "benchmarks.PrettySuite.time_pretty": [[0.002236624999204651], [], "9bb0e6d8a29aad21b3d1b550a160fa5f1e9030c69d16bad500c0dcc77bff6d01", 1646928641499, 0.43861, [0.0021997], [0.0022581], [0.0022029], [0.0022493], [5], [10]], "benchmarks.PrettySuite.time_pretty_indent_guides": [null, [], "8d71bf19dfe999b0fba95d009986bfd6911c53c7a0c455466725f553005c3bc7", 1646928636448, 0.058911], "benchmarks.PrettySuite.time_pretty_justify_center": [null, [], "54cbf71bacab14ccbe1d063847c0b89198ed1bbe06edc89c14d2e3c7b1986c41", 1646928636507, 0.057772], "benchmarks.StyleSuite.time_parse_ansi": [[1.1626796234512727e-07], [], "a003aaa8017585efeb1cd9c43351282df4df6249bf28a4c447b1304d984aa753", 1646928641713, 0.44141, [1.1569e-07], [1.1726e-07], [1.1604e-07], [1.1694e-07], [95978], [10]], "benchmarks.StyleSuite.time_parse_hex": [[1.1625082095912241e-07], [], "cf5a3f0def435d3da5bc3a6e7549c44c0a02e9cce6c00ecde8dd7f527556f8ca", 1646928641940, 0.44191, [1.1595e-07], [1.1657e-07], [1.1618e-07], [1.1635e-07], [95909], [10]], "benchmarks.StyleSuite.time_parse_mixed_complex_style": [[1.1623847141055007e-07], [], "01c9e12ae829b1984e55a5aeef1a9ae6f1461577adaf5ae59f06358c8b52802f", 1646928642166, 0.42404, [1.1596e-07], [1.1692e-07], [1.1614e-07], [1.165e-07], [87889], [10]], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_heavy_wrapping": [null, [], "1ed4d74ea424990cfb40c96f07635f9bcf7b8bacc7ade5204aaf96363e1622ee", 1646928637209, 0.058057], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_medium_wrapping": [null, [], "0880e162a4907ee025cef8ac3380502554fde27fd0c90a4c15cebc9c27f3e333", 1646928637267, 0.057965], "benchmarks.SyntaxWrappingSuite.time_text_wide_terminal_no_wrapping": [null, [], "feb11e94ae6a75de2dee899fb93db098b55cde232710660d7d66f9e2b288d9c0", 1646928637325, 0.057995], "benchmarks.TableSuite.time_table_heavy_wrapping": [[0.002097733397386037], [], "ca515a9739c1e0f8eb922420f9f9caf27321fb13c8bd0bc49b207a0588b370de", 1646928642378, 0.43318, [0.0020881], [0.002106], [0.0020953], [0.0020996], [5], [10]], "benchmarks.TableSuite.time_table_no_wrapping": [[0.0014561786436908214], [], "8842a5f141d8208ba2bab66e4973e978cb5d0615f326af5d70385ff8fa44b3b9", 1646928642597, 0.42624, [0.0014479], [0.0014879], [0.0014535], [0.0014615], [7], [10]], "benchmarks.TextSuite.time_align_center": [null, [], "1ceeeef2de43fcb3d0dfec409972d8f0eb791e9615fa9f9c959e0423725b089b", 1646928637809, 0.058426], "benchmarks.TextSuite.time_align_center_unicode_heavy": [null, [], "a83ff79614dd2ae17e8b68f45981fcaa0d9833c59a7a14f171b896cf970f54ce", 1646928637867, 0.059389], "benchmarks.TextSuite.time_divide": [[2.82270456867915e-05], [], "dcc120b921cb2ec77632f8fe2f6f4150d479cb49ef2608f8e86b569a937756e9", 1646928642813, 0.44399, [2.7734e-05], [2.8296e-05], [2.8159e-05], [2.8267e-05], [383], [10]], "benchmarks.TextSuite.time_divide_unicode_heavy": [[0.00018870366379971905], [], "ea53e662c0553324f90ac3336dcee77f733bb33638888e1f84bf71945a2f3f8e", 1646928643034, 0.44717, [0.00018698], [0.00019097], [0.00018709], [0.00019079], [58], [10]], "benchmarks.TextSuite.time_fit": [[4.2186997972062254e-05], [], "ec77b412db357b1e1c1e7bc620b941dddfc36dc76d2a66a0417feae4f21fe1d3", 1646928643257, 0.42928, [4.1829e-05], [4.3051e-05], [4.2103e-05], [4.226e-05], [249], [10]], "benchmarks.TextSuite.time_fit_unicode_heavy": [[0.00033193616142060845], [], "d1574b4af2ef8b80b95b4dbeeb13e5de67b66783f76f9968834776239dd0dc66", 1646928643474, 0.42973, [0.00032893], [0.00033488], [0.00032933], [0.00033474], [31], [10]], "benchmarks.TextSuite.time_indent_guides": [null, [], "18da036dcfc15ec5e3c11e72be7c8f0c22fba695a5f19c95836be36952376cf2", 1646928638805, 0.059468], "benchmarks.TextSuite.time_render": [[4.676226441955534e-06], [], "907d30581cfdc7bb2c4d302b7e3cb474aaefd8b84821365fe105af7d82be3b09", 1646928643686, 0.43895, [4.6596e-06], [4.6958e-06], [4.6666e-06], [4.6899e-06], [2334], [10]], "benchmarks.TextSuite.time_render_unicode_heavy": [[8.542105865672056e-05], [], "b3f1c09dfd06f412a20dacfe378c3b446727c7d4f9a975336eab3daa8543e1cb", 1646928643908, 0.44446, [8.4226e-05], [8.6087e-05], [8.5119e-05], [8.5493e-05], [128], [10]], "benchmarks.TextSuite.time_split": [[3.3808601625834504e-05], [], "9c165854130cb95fea5491ffcd8b580a5bd373149da2ef8aace0e9480f649854", 1646928644131, 0.43505, [3.3655e-05], [3.4416e-05], [3.3714e-05], [3.3908e-05], [310], [10]], "benchmarks.TextSuite.time_split_unicode_heavy": [[0.00028220945977089877], [], "d55b02f6d06f478d70635bac3409f3a9899137d9cee87a70a293b8ccf5a6afa4", 1646928644347, 0.43169, [0.0002795], [0.00028561], [0.00028002], [0.00028487], [37], [10]], "benchmarks.TextSuite.time_wrapping": [[0.001159650499984208], [], "8c821eba13d043f228fd902d8f678c397741855db05d02abe9b82f3d65cdf03d", 1646928644562, 0.43483, [0.0011544], [0.0011648], [0.0011576], [0.0011619], [9], [10]], "benchmarks.TextSuite.time_wrapping_unicode_heavy": [[0.0015485863571354586], [], "ec6e2ef08b6cdee182fef4e26c0043f8c365984f9a31be07dbd792e1aed862d8", 1646928644777, 0.43928, [0.0015465], [0.0015546], [0.0015474], [0.0015494], [7], [10]]}, "durations": {"": 1.9543161392211914}, "version": 2} diff --git a/benchmarks/results/darrenburns-2022-mbp/03a52134-virtualenv-py3.10.json b/benchmarks/results/darrenburns-2022-mbp/03a52134-virtualenv-py3.10.json new file mode 100644 index 0000000000..851cf58d0d --- /dev/null +++ b/benchmarks/results/darrenburns-2022-mbp/03a52134-virtualenv-py3.10.json @@ -0,0 +1 @@ +{"commit_hash": "03a521346841b02543fee9c24b8410ba18f5cbc2", "env_name": "virtualenv-py3.10", "date": 1592739098000, "params": {"arch": "arm64", "cpu": "Apple M1 Pro", "machine": "darrenburns-2022-mbp", "num_cpu": "10", "os": "Darwin 21.2.0", "ram": "17179869184", "python": "3.10"}, "python": "3.10", "requirements": {}, "env_vars": {}, "result_columns": ["result", "params", "version", "started_at", "duration", "stats_ci_99_a", "stats_ci_99_b", "stats_q_25", "stats_q_75", "stats_number", "stats_repeat", "samples", "profile"], "results": {"benchmarks.ColorSuite.time_downgrade_to_eight_bit": [[1.732792605353703e-07], [], "019b972f782c6291df9a6a4dea9bb3c6268a69b177e71383d6e19a608e84920d", 1646928533719, 0.43955, [1.7138e-07], [1.7406e-07], [1.7286e-07], [1.7346e-07], [64139], [10]], "benchmarks.ColorSuite.time_downgrade_to_standard": [[1.6970906436346935e-07], [], "f5e8556491c977450fff6ebfd9fff4fc8f12d74829aa5b8570bd27ea7a1c9d28", 1646928533944, 0.44915, [1.6905e-07], [1.705e-07], [1.6959e-07], [1.6989e-07], [64772], [10]], "benchmarks.ColorSuite.time_downgrade_to_windows": [[1.6982199066696146e-07], [], "373eb97dd7ce2823e080972249235f528e8b3a47210911981cf432ecf0eef5fb", 1646928534168, 0.45178, [1.6804e-07], [1.7053e-07], [1.6916e-07], [1.7004e-07], [64963], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_eight_bit": [[1.6982711725640974e-07], [], "716ff06a471a5d90af3730f6d4470eba3577432d781e0210dff1fd156b8c549c", 1646928534392, 0.4412, [1.6924e-07], [1.7046e-07], [1.6942e-07], [1.7034e-07], [62768], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_standard": [[1.7288929496018685e-07], [], "3a752a7884e99e095c31b2a28cfefdf916cb2033c06afae1ea146a72f3ba650c", 1646928534610, 0.44858, [1.6956e-07], [1.7443e-07], [1.7173e-07], [1.7345e-07], [64315], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_windows": [[1.699072281307717e-07], [], "1732bbd18ada49eb7b054fc18b40d6acfb533023463366f37203dab6fbb0cc20", 1646928534834, 0.4454, [1.6868e-07], [1.7543e-07], [1.6949e-07], [1.7154e-07], [63640], [10]], "benchmarks.PrettySuite.time_pretty": [[0.002187125000637025], [], "9bb0e6d8a29aad21b3d1b550a160fa5f1e9030c69d16bad500c0dcc77bff6d01", 1646928535053, 0.44306, [0.00218], [0.0021985], [0.0021808], [0.0021907], [5], [10]], "benchmarks.PrettySuite.time_pretty_indent_guides": [null, [], "8d71bf19dfe999b0fba95d009986bfd6911c53c7a0c455466725f553005c3bc7", 1646928529968, 0.058909], "benchmarks.PrettySuite.time_pretty_justify_center": [null, [], "54cbf71bacab14ccbe1d063847c0b89198ed1bbe06edc89c14d2e3c7b1986c41", 1646928530027, 0.059107], "benchmarks.StyleSuite.time_parse_ansi": [[1.1490100967193674e-07], [], "a003aaa8017585efeb1cd9c43351282df4df6249bf28a4c447b1304d984aa753", 1646928535276, 0.43837, [1.1388e-07], [1.1596e-07], [1.1411e-07], [1.1584e-07], [96272], [10]], "benchmarks.StyleSuite.time_parse_hex": [[1.1559417175171943e-07], [], "cf5a3f0def435d3da5bc3a6e7549c44c0a02e9cce6c00ecde8dd7f527556f8ca", 1646928535490, 0.43868, [1.1381e-07], [1.1605e-07], [1.1413e-07], [1.1598e-07], [96547], [10]], "benchmarks.StyleSuite.time_parse_mixed_complex_style": [[1.1592269480731486e-07], [], "01c9e12ae829b1984e55a5aeef1a9ae6f1461577adaf5ae59f06358c8b52802f", 1646928535705, 0.44312, [1.1555e-07], [1.164e-07], [1.158e-07], [1.1599e-07], [96727], [10]], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_heavy_wrapping": [null, [], "1ed4d74ea424990cfb40c96f07635f9bcf7b8bacc7ade5204aaf96363e1622ee", 1646928530764, 0.059019], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_medium_wrapping": [null, [], "0880e162a4907ee025cef8ac3380502554fde27fd0c90a4c15cebc9c27f3e333", 1646928530823, 0.058681], "benchmarks.SyntaxWrappingSuite.time_text_wide_terminal_no_wrapping": [null, [], "feb11e94ae6a75de2dee899fb93db098b55cde232710660d7d66f9e2b288d9c0", 1646928530881, 0.059408], "benchmarks.TableSuite.time_table_heavy_wrapping": [[0.001988930584047921], [], "ca515a9739c1e0f8eb922420f9f9caf27321fb13c8bd0bc49b207a0588b370de", 1646928535920, 0.44773, [0.0019831], [0.0019934], [0.0019869], [0.0019901], [6], [10]], "benchmarks.TableSuite.time_table_no_wrapping": [[0.0014236250010851237], [], "8842a5f141d8208ba2bab66e4973e978cb5d0615f326af5d70385ff8fa44b3b9", 1646928536147, 0.41848, [0.0014186], [0.001429], [0.0014217], [0.0014241], [7], [10]], "benchmarks.TextSuite.time_align_center": [null, [], "1ceeeef2de43fcb3d0dfec409972d8f0eb791e9615fa9f9c959e0423725b089b", 1646928531371, 0.060538], "benchmarks.TextSuite.time_align_center_unicode_heavy": [null, [], "a83ff79614dd2ae17e8b68f45981fcaa0d9833c59a7a14f171b896cf970f54ce", 1646928531431, 0.060402], "benchmarks.TextSuite.time_divide": [[2.775736257808127e-05], [], "dcc120b921cb2ec77632f8fe2f6f4150d479cb49ef2608f8e86b569a937756e9", 1646928536357, 0.43079, [2.7611e-05], [2.8057e-05], [2.7665e-05], [2.7871e-05], [382], [10]], "benchmarks.TextSuite.time_divide_unicode_heavy": [[0.0001868461317427685], [], "ea53e662c0553324f90ac3336dcee77f733bb33638888e1f84bf71945a2f3f8e", 1646928536574, 0.43723, [0.00018607], [0.00018762], [0.00018672], [0.00018697], [57], [10]], "benchmarks.TextSuite.time_fit": [[4.197180313927806e-05], [], "ec77b412db357b1e1c1e7bc620b941dddfc36dc76d2a66a0417feae4f21fe1d3", 1646928536792, 0.43314, [4.1868e-05], [4.202e-05], [4.1943e-05], [4.1989e-05], [249], [10]], "benchmarks.TextSuite.time_fit_unicode_heavy": [[0.0003302661287072565], [], "d1574b4af2ef8b80b95b4dbeeb13e5de67b66783f76f9968834776239dd0dc66", 1646928537007, 0.42544, [0.0003299], [0.00033073], [0.00032999], [0.00033041], [31], [10]], "benchmarks.TextSuite.time_indent_guides": [null, [], "18da036dcfc15ec5e3c11e72be7c8f0c22fba695a5f19c95836be36952376cf2", 1646928532359, 0.057377], "benchmarks.TextSuite.time_render": [[4.669984376312342e-06], [], "907d30581cfdc7bb2c4d302b7e3cb474aaefd8b84821365fe105af7d82be3b09", 1646928537218, 0.43598, [4.6429e-06], [4.6792e-06], [4.6504e-06], [4.6743e-06], [2336], [10]], "benchmarks.TextSuite.time_render_unicode_heavy": [[8.605167328831043e-05], [], "b3f1c09dfd06f412a20dacfe378c3b446727c7d4f9a975336eab3daa8543e1cb", 1646928537440, 0.4401, [8.4488e-05], [8.6817e-05], [8.5137e-05], [8.6702e-05], [127], [10]], "benchmarks.TextSuite.time_split": [[3.381108864203035e-05], [], "9c165854130cb95fea5491ffcd8b580a5bd373149da2ef8aace0e9480f649854", 1646928537661, 0.43419, [3.3735e-05], [3.4393e-05], [3.3805e-05], [3.3857e-05], [310], [10]], "benchmarks.TextSuite.time_split_unicode_heavy": [[0.00028198704043264826], [], "d55b02f6d06f478d70635bac3409f3a9899137d9cee87a70a293b8ccf5a6afa4", 1646928537877, 0.42977, [0.00027838], [0.00028552], [0.00027877], [0.00028487], [37], [10]], "benchmarks.TextSuite.time_wrapping": [[0.0011455208894201657], [], "8c821eba13d043f228fd902d8f678c397741855db05d02abe9b82f3d65cdf03d", 1646928538090, 0.43299, [0.0011423], [0.0011705], [0.0011438], [0.0011485], [9], [10]], "benchmarks.TextSuite.time_wrapping_unicode_heavy": [[0.0015198899283339934], [], "ec6e2ef08b6cdee182fef4e26c0043f8c365984f9a31be07dbd792e1aed862d8", 1646928538303, 0.4321, [0.0015137], [0.0015273], [0.0015154], [0.0015216], [7], [10]]}, "durations": {"": 1.9656128883361816}, "version": 2} diff --git a/benchmarks/results/darrenburns-2022-mbp/06922006-virtualenv-py3.10.json b/benchmarks/results/darrenburns-2022-mbp/06922006-virtualenv-py3.10.json new file mode 100644 index 0000000000..fe7984ec3b --- /dev/null +++ b/benchmarks/results/darrenburns-2022-mbp/06922006-virtualenv-py3.10.json @@ -0,0 +1 @@ +{"commit_hash": "06922006f2eb141255336a22e8918771d14d5760", "env_name": "virtualenv-py3.10", "date": 1596915390000, "params": {"arch": "arm64", "cpu": "Apple M1 Pro", "machine": "darrenburns-2022-mbp", "num_cpu": "10", "os": "Darwin 21.2.0", "ram": "17179869184", "python": "3.10"}, "python": "3.10", "requirements": {}, "env_vars": {}, "result_columns": ["result", "params", "version", "started_at", "duration", "stats_ci_99_a", "stats_ci_99_b", "stats_q_25", "stats_q_75", "stats_number", "stats_repeat", "samples", "profile"], "results": {"benchmarks.ColorSuite.time_downgrade_to_eight_bit": [[1.7116855250635132e-07], [], "019b972f782c6291df9a6a4dea9bb3c6268a69b177e71383d6e19a608e84920d", 1646928817115, 0.45149, [1.6996e-07], [1.7372e-07], [1.7037e-07], [1.728e-07], [64422], [10]], "benchmarks.ColorSuite.time_downgrade_to_standard": [[1.7205937146409013e-07], [], "f5e8556491c977450fff6ebfd9fff4fc8f12d74829aa5b8570bd27ea7a1c9d28", 1646928817342, 0.4284, [1.7001e-07], [1.7378e-07], [1.7089e-07], [1.7296e-07], [64408], [10]], "benchmarks.ColorSuite.time_downgrade_to_windows": [[1.718094621607509e-07], [], "373eb97dd7ce2823e080972249235f528e8b3a47210911981cf432ecf0eef5fb", 1646928817557, 0.42505, [1.6959e-07], [1.7619e-07], [1.6998e-07], [1.738e-07], [58962], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_eight_bit": [[1.734700151950903e-07], [], "716ff06a471a5d90af3730f6d4470eba3577432d781e0210dff1fd156b8c549c", 1646928817765, 0.42576, [1.7169e-07], [1.7401e-07], [1.7311e-07], [1.7367e-07], [58813], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_standard": [[1.7283145947130278e-07], [], "3a752a7884e99e095c31b2a28cfefdf916cb2033c06afae1ea146a72f3ba650c", 1646928817977, 0.42386, [1.7134e-07], [1.732e-07], [1.7237e-07], [1.7304e-07], [58876], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_windows": [[1.7188267216783956e-07], [], "1732bbd18ada49eb7b054fc18b40d6acfb533023463366f37203dab6fbb0cc20", 1646928818188, 0.44138, [1.696e-07], [1.7479e-07], [1.6988e-07], [1.7443e-07], [64405], [10]], "benchmarks.PrettySuite.time_pretty": [[0.00176616666673605], [], "9bb0e6d8a29aad21b3d1b550a160fa5f1e9030c69d16bad500c0dcc77bff6d01", 1646928818413, 0.43985, [0.0017587], [0.0017705], [0.0017615], [0.001769], [6], [10]], "benchmarks.PrettySuite.time_pretty_indent_guides": [null, [], "8d71bf19dfe999b0fba95d009986bfd6911c53c7a0c455466725f553005c3bc7", 1646928813055, 0.057998], "benchmarks.PrettySuite.time_pretty_justify_center": [null, [], "54cbf71bacab14ccbe1d063847c0b89198ed1bbe06edc89c14d2e3c7b1986c41", 1646928813113, 0.058127], "benchmarks.StyleSuite.time_parse_ansi": [[1.1574203558648017e-07], [], "a003aaa8017585efeb1cd9c43351282df4df6249bf28a4c447b1304d984aa753", 1646928818635, 0.42493, [1.1415e-07], [1.181e-07], [1.1431e-07], [1.1774e-07], [87607], [10]], "benchmarks.StyleSuite.time_parse_hex": [[1.1535711243895231e-07], [], "cf5a3f0def435d3da5bc3a6e7549c44c0a02e9cce6c00ecde8dd7f527556f8ca", 1646928818845, 0.4467, [1.1389e-07], [1.1713e-07], [1.1419e-07], [1.167e-07], [94221], [10]], "benchmarks.StyleSuite.time_parse_mixed_complex_style": [[1.1586251464308279e-07], [], "01c9e12ae829b1984e55a5aeef1a9ae6f1461577adaf5ae59f06358c8b52802f", 1646928819067, 0.42387, [1.1517e-07], [1.1694e-07], [1.152e-07], [1.1659e-07], [87613], [10]], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_heavy_wrapping": [null, [], "1ed4d74ea424990cfb40c96f07635f9bcf7b8bacc7ade5204aaf96363e1622ee", 1646928813824, 0.058092], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_medium_wrapping": [null, [], "0880e162a4907ee025cef8ac3380502554fde27fd0c90a4c15cebc9c27f3e333", 1646928813882, 0.057965], "benchmarks.SyntaxWrappingSuite.time_text_wide_terminal_no_wrapping": [null, [], "feb11e94ae6a75de2dee899fb93db098b55cde232710660d7d66f9e2b288d9c0", 1646928813940, 0.057861], "benchmarks.TableSuite.time_table_heavy_wrapping": [[0.002284054202027619], [], "ca515a9739c1e0f8eb922420f9f9caf27321fb13c8bd0bc49b207a0588b370de", 1646928819278, 0.43931, [0.0022566], [0.0023089], [0.0022619], [0.0023023], [5], [10]], "benchmarks.TableSuite.time_table_no_wrapping": [[0.0014851547873279613], [], "8842a5f141d8208ba2bab66e4973e978cb5d0615f326af5d70385ff8fa44b3b9", 1646928819500, 0.43252, [0.0014655], [0.0015028], [0.0014695], [0.0015002], [7], [10]], "benchmarks.TextSuite.time_align_center": [[0.0006723583326674997], [], "1ceeeef2de43fcb3d0dfec409972d8f0eb791e9615fa9f9c959e0423725b089b", 1646928819717, 0.42797, [0.00067161], [0.00067476], [0.00067182], [0.00067301], [15], [10]], "benchmarks.TextSuite.time_align_center_unicode_heavy": [[0.000555773025936153], [], "a83ff79614dd2ae17e8b68f45981fcaa0d9833c59a7a14f171b896cf970f54ce", 1646928819928, 0.43679, [0.00054603], [0.00056113], [0.00055471], [0.00055918], [19], [10]], "benchmarks.TextSuite.time_divide": [[2.8365185540966004e-05], [], "dcc120b921cb2ec77632f8fe2f6f4150d479cb49ef2608f8e86b569a937756e9", 1646928820143, 0.44351, [2.8288e-05], [2.8557e-05], [2.8321e-05], [2.8437e-05], [380], [10]], "benchmarks.TextSuite.time_divide_unicode_heavy": [[0.00019076937710531383], [], "ea53e662c0553324f90ac3336dcee77f733bb33638888e1f84bf71945a2f3f8e", 1646928820364, 0.44435, [0.00019003], [0.00019103], [0.00019072], [0.00019084], [57], [10]], "benchmarks.TextSuite.time_fit": [[4.285541601711884e-05], [], "ec77b412db357b1e1c1e7bc620b941dddfc36dc76d2a66a0417feae4f21fe1d3", 1646928820586, 0.43266, [4.2737e-05], [4.3026e-05], [4.2791e-05], [4.29e-05], [250], [10]], "benchmarks.TextSuite.time_fit_unicode_heavy": [[0.00033007056411025267], [], "d1574b4af2ef8b80b95b4dbeeb13e5de67b66783f76f9968834776239dd0dc66", 1646928820806, 0.42771, [0.0003297], [0.00033134], [0.00032993], [0.00033064], [31], [10]], "benchmarks.TextSuite.time_indent_guides": [null, [], "18da036dcfc15ec5e3c11e72be7c8f0c22fba695a5f19c95836be36952376cf2", 1646928815745, 0.05813], "benchmarks.TextSuite.time_render": [[4.671494408579894e-06], [], "907d30581cfdc7bb2c4d302b7e3cb474aaefd8b84821365fe105af7d82be3b09", 1646928821019, 0.43625, [4.6631e-06], [4.6778e-06], [4.6651e-06], [4.6749e-06], [2326], [10]], "benchmarks.TextSuite.time_render_unicode_heavy": [[8.538090562040911e-05], [], "b3f1c09dfd06f412a20dacfe378c3b446727c7d4f9a975336eab3daa8543e1cb", 1646928821241, 0.43988, [8.4912e-05], [8.5618e-05], [8.5161e-05], [8.5396e-05], [127], [10]], "benchmarks.TextSuite.time_split": [[3.424668306437363e-05], [], "9c165854130cb95fea5491ffcd8b580a5bd373149da2ef8aace0e9480f649854", 1646928821463, 0.44361, [3.4096e-05], [3.4381e-05], [3.423e-05], [3.4347e-05], [314], [10]], "benchmarks.TextSuite.time_split_unicode_heavy": [[0.0002832049594380314], [], "d55b02f6d06f478d70635bac3409f3a9899137d9cee87a70a293b8ccf5a6afa4", 1646928821683, 0.43273, [0.00028055], [0.00028555], [0.00028097], [0.00028471], [37], [10]], "benchmarks.TextSuite.time_wrapping": [[0.0011634791654715729], [], "8c821eba13d043f228fd902d8f678c397741855db05d02abe9b82f3d65cdf03d", 1646928821900, 0.44061, [0.0011491], [0.0011764], [0.0011613], [0.0011699], [9], [10]], "benchmarks.TextSuite.time_wrapping_unicode_heavy": [[0.0015536130709473842], [], "ec6e2ef08b6cdee182fef4e26c0043f8c365984f9a31be07dbd792e1aed862d8", 1646928822120, 0.43993, [0.0015497], [0.0015567], [0.0015522], [0.0015542], [7], [10]]}, "durations": {"": 1.9717209339141846}, "version": 2} diff --git a/benchmarks/results/darrenburns-2022-mbp/07d51ffc-virtualenv-py3.10.json b/benchmarks/results/darrenburns-2022-mbp/07d51ffc-virtualenv-py3.10.json new file mode 100644 index 0000000000..687e93f6fe --- /dev/null +++ b/benchmarks/results/darrenburns-2022-mbp/07d51ffc-virtualenv-py3.10.json @@ -0,0 +1 @@ +{"commit_hash": "07d51ffc1aee6f16bd2e5a25b4e82850fb9ed778", "env_name": "virtualenv-py3.10", "date": 1638042089000, "params": {"arch": "arm64", "cpu": "Apple M1 Pro", "machine": "darrenburns-2022-mbp", "num_cpu": "10", "os": "Darwin 21.2.0", "ram": "17179869184", "python": "3.10"}, "python": "3.10", "requirements": {}, "env_vars": {}, "result_columns": ["result", "params", "version", "started_at", "duration", "stats_ci_99_a", "stats_ci_99_b", "stats_q_25", "stats_q_75", "stats_number", "stats_repeat", "samples", "profile"], "results": {"benchmarks.ColorSuite.time_downgrade_to_eight_bit": [[1.7045601798784003e-07], [], "019b972f782c6291df9a6a4dea9bb3c6268a69b177e71383d6e19a608e84920d", 1646929425854, 0.43978, [1.6946e-07], [1.7115e-07], [1.7022e-07], [1.7069e-07], [59058], [10]], "benchmarks.ColorSuite.time_downgrade_to_standard": [[1.7007710882553625e-07], [], "f5e8556491c977450fff6ebfd9fff4fc8f12d74829aa5b8570bd27ea7a1c9d28", 1646929426074, 0.46565, [1.6853e-07], [1.705e-07], [1.6958e-07], [1.702e-07], [64636], [10]], "benchmarks.ColorSuite.time_downgrade_to_windows": [[1.699667194811625e-07], [], "373eb97dd7ce2823e080972249235f528e8b3a47210911981cf432ecf0eef5fb", 1646929426307, 0.4621, [1.6879e-07], [1.778e-07], [1.6982e-07], [1.7032e-07], [64557], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_eight_bit": [[1.6998402696141218e-07], [], "716ff06a471a5d90af3730f6d4470eba3577432d781e0210dff1fd156b8c549c", 1646929426541, 0.46553, [1.685e-07], [1.7093e-07], [1.6928e-07], [1.7021e-07], [64484], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_standard": [[1.6968556558179902e-07], [], "3a752a7884e99e095c31b2a28cfefdf916cb2033c06afae1ea146a72f3ba650c", 1646929426774, 0.46274, [1.6922e-07], [1.7062e-07], [1.6943e-07], [1.6986e-07], [63972], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_windows": [[1.6945227762756885e-07], [], "1732bbd18ada49eb7b054fc18b40d6acfb533023463366f37203dab6fbb0cc20", 1646929427005, 0.46476, [1.6851e-07], [1.7005e-07], [1.69e-07], [1.6993e-07], [64498], [10]], "benchmarks.PrettySuite.time_pretty": [[0.001105658350570593], [], "9bb0e6d8a29aad21b3d1b550a160fa5f1e9030c69d16bad500c0dcc77bff6d01", 1646929427238, 0.45655, [0.0011016], [0.001111], [0.0011041], [0.0011073], [10], [10]], "benchmarks.PrettySuite.time_pretty_indent_guides": [[0.001518580355748002], [], "8d71bf19dfe999b0fba95d009986bfd6911c53c7a0c455466725f553005c3bc7", 1646929427464, 0.45154, [0.0015111], [0.0015253], [0.0015168], [0.0015196], [7], [10]], "benchmarks.PrettySuite.time_pretty_justify_center": [[0.0013998801241541514], [], "54cbf71bacab14ccbe1d063847c0b89198ed1bbe06edc89c14d2e3c7b1986c41", 1646929427692, 0.45335, [0.001397], [0.0014065], [0.0013997], [0.0014036], [8], [10]], "benchmarks.StyleSuite.time_parse_ansi": [[1.1418527013357237e-07], [], "a003aaa8017585efeb1cd9c43351282df4df6249bf28a4c447b1304d984aa753", 1646929427918, 0.45765, [1.1367e-07], [1.148e-07], [1.1394e-07], [1.1437e-07], [96300], [10]], "benchmarks.StyleSuite.time_parse_hex": [[1.1508352104765355e-07], [], "cf5a3f0def435d3da5bc3a6e7549c44c0a02e9cce6c00ecde8dd7f527556f8ca", 1646929428150, 0.45967, [1.1378e-07], [1.1636e-07], [1.1381e-07], [1.1606e-07], [94443], [10]], "benchmarks.StyleSuite.time_parse_mixed_complex_style": [[1.1420043098721425e-07], [], "01c9e12ae829b1984e55a5aeef1a9ae6f1461577adaf5ae59f06358c8b52802f", 1646929428378, 0.46593, [1.1382e-07], [1.1514e-07], [1.1403e-07], [1.1426e-07], [96522], [10]], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_heavy_wrapping": [null, [], "1ed4d74ea424990cfb40c96f07635f9bcf7b8bacc7ade5204aaf96363e1622ee", 1646929422271, 0.066153], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_medium_wrapping": [null, [], "0880e162a4907ee025cef8ac3380502554fde27fd0c90a4c15cebc9c27f3e333", 1646929422337, 0.065652], "benchmarks.SyntaxWrappingSuite.time_text_wide_terminal_no_wrapping": [null, [], "feb11e94ae6a75de2dee899fb93db098b55cde232710660d7d66f9e2b288d9c0", 1646929422403, 0.066], "benchmarks.TableSuite.time_table_heavy_wrapping": [[0.0023493167012929917], [], "ca515a9739c1e0f8eb922420f9f9caf27321fb13c8bd0bc49b207a0588b370de", 1646929428612, 0.45915, [0.0023373], [0.0023583], [0.0023399], [0.0023545], [5], [10]], "benchmarks.TableSuite.time_table_no_wrapping": [[0.0014035182484803954], [], "8842a5f141d8208ba2bab66e4973e978cb5d0615f326af5d70385ff8fa44b3b9", 1646929428845, 0.44948, [0.0013943], [0.0014116], [0.0014012], [0.0014074], [8], [10]], "benchmarks.TextSuite.time_align_center": [[0.00037731919655925594], [], "1ceeeef2de43fcb3d0dfec409972d8f0eb791e9615fa9f9c959e0423725b089b", 1646929429072, 0.4531, [0.00037699], [0.00037793], [0.00037721], [0.00037747], [28], [10]], "benchmarks.TextSuite.time_align_center_unicode_heavy": [[0.0003419818550032834], [], "a83ff79614dd2ae17e8b68f45981fcaa0d9833c59a7a14f171b896cf970f54ce", 1646929429298, 0.45536, [0.00034042], [0.00035045], [0.00034131], [0.00034275], [31], [10]], "benchmarks.TextSuite.time_divide": [[2.5385004668529115e-05], [], "dcc120b921cb2ec77632f8fe2f6f4150d479cb49ef2608f8e86b569a937756e9", 1646929429524, 0.46305, [2.532e-05], [2.5476e-05], [2.5353e-05], [2.5393e-05], [429], [10]], "benchmarks.TextSuite.time_divide_unicode_heavy": [[0.00018469576752977446], [], "ea53e662c0553324f90ac3336dcee77f733bb33638888e1f84bf71945a2f3f8e", 1646929429756, 0.45561, [0.00018439], [0.00018529], [0.00018451], [0.00018509], [58], [10]], "benchmarks.TextSuite.time_fit": [[4.345706306261623e-05], [], "ec77b412db357b1e1c1e7bc620b941dddfc36dc76d2a66a0417feae4f21fe1d3", 1646929429983, 0.44723, [4.3349e-05], [4.3497e-05], [4.3425e-05], [4.347e-05], [246], [10]], "benchmarks.TextSuite.time_fit_unicode_heavy": [[0.0003234134994934059], [], "d1574b4af2ef8b80b95b4dbeeb13e5de67b66783f76f9968834776239dd0dc66", 1646929430211, 0.45553, [0.00032318], [0.00032389], [0.00032337], [0.00032347], [33], [10]], "benchmarks.TextSuite.time_indent_guides": [[0.0003560984312508512], [], "18da036dcfc15ec5e3c11e72be7c8f0c22fba695a5f19c95836be36952376cf2", 1646929430437, 0.44623, [0.00035527], [0.00035724], [0.00035577], [0.0003564], [29], [10]], "benchmarks.TextSuite.time_render": [[4.676214165901498e-06], [], "907d30581cfdc7bb2c4d302b7e3cb474aaefd8b84821365fe105af7d82be3b09", 1646929430659, 0.45324, [4.6511e-06], [4.703e-06], [4.6692e-06], [4.6777e-06], [2337], [10]], "benchmarks.TextSuite.time_render_unicode_heavy": [[8.516666533491449e-05], [], "b3f1c09dfd06f412a20dacfe378c3b446727c7d4f9a975336eab3daa8543e1cb", 1646929430890, 0.45686, [8.4703e-05], [8.5451e-05], [8.5134e-05], [8.5355e-05], [127], [10]], "benchmarks.TextSuite.time_split": [[3.509875646808983e-05], [], "9c165854130cb95fea5491ffcd8b580a5bd373149da2ef8aace0e9480f649854", 1646929431120, 0.44945, [3.5058e-05], [3.5178e-05], [3.5076e-05], [3.5163e-05], [308], [10]], "benchmarks.TextSuite.time_split_unicode_heavy": [[0.00027409923648902853], [], "d55b02f6d06f478d70635bac3409f3a9899137d9cee87a70a293b8ccf5a6afa4", 1646929431348, 0.44684, [0.00027297], [0.00027462], [0.00027361], [0.00027432], [38], [10]], "benchmarks.TextSuite.time_wrapping": [[0.0013568151262006722], [], "8c821eba13d043f228fd902d8f678c397741855db05d02abe9b82f3d65cdf03d", 1646929431571, 0.45476, [0.0013548], [0.001363], [0.0013551], [0.0013601], [8], [10]], "benchmarks.TextSuite.time_wrapping_unicode_heavy": [[0.001455651787442288], [], "ec6e2ef08b6cdee182fef4e26c0043f8c365984f9a31be07dbd792e1aed862d8", 1646929431803, 0.44607, [0.0014522], [0.0014585], [0.0014538], [0.0014567], [7], [10]]}, "durations": {"": 1.9834160804748535}, "version": 2} diff --git a/benchmarks/results/darrenburns-2022-mbp/0db0cbd0-virtualenv-py3.10.json b/benchmarks/results/darrenburns-2022-mbp/0db0cbd0-virtualenv-py3.10.json new file mode 100644 index 0000000000..6cee1c89ea --- /dev/null +++ b/benchmarks/results/darrenburns-2022-mbp/0db0cbd0-virtualenv-py3.10.json @@ -0,0 +1 @@ +{"commit_hash": "0db0cbd00598ad3cfc625eda301307f69c89d3f9", "env_name": "virtualenv-py3.10", "date": 1595434640000, "params": {"arch": "arm64", "cpu": "Apple M1 Pro", "machine": "darrenburns-2022-mbp", "num_cpu": "10", "os": "Darwin 21.2.0", "ram": "17179869184", "python": "3.10"}, "python": "3.10", "requirements": {}, "env_vars": {}, "result_columns": ["result", "params", "version", "started_at", "duration", "stats_ci_99_a", "stats_ci_99_b", "stats_q_25", "stats_q_75", "stats_number", "stats_repeat", "samples", "profile"], "results": {"benchmarks.ColorSuite.time_downgrade_to_eight_bit": [[1.7362879180977224e-07], [], "019b972f782c6291df9a6a4dea9bb3c6268a69b177e71383d6e19a608e84920d", 1646928726948, 0.44285, [1.7317e-07], [1.7401e-07], [1.733e-07], [1.7379e-07], [64022], [10]], "benchmarks.ColorSuite.time_downgrade_to_standard": [[1.734515236767467e-07], [], "f5e8556491c977450fff6ebfd9fff4fc8f12d74829aa5b8570bd27ea7a1c9d28", 1646928727174, 0.42776, [1.7232e-07], [1.7393e-07], [1.7327e-07], [1.7366e-07], [59400], [10]], "benchmarks.ColorSuite.time_downgrade_to_windows": [[1.7043707485739963e-07], [], "373eb97dd7ce2823e080972249235f528e8b3a47210911981cf432ecf0eef5fb", 1646928727386, 0.44866, [1.7e-07], [1.7099e-07], [1.701e-07], [1.7073e-07], [64394], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_eight_bit": [[1.719459354762018e-07], [], "716ff06a471a5d90af3730f6d4470eba3577432d781e0210dff1fd156b8c549c", 1646928727610, 0.44323, [1.6908e-07], [1.7406e-07], [1.7e-07], [1.7319e-07], [64904], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_standard": [[1.7312164058360416e-07], [], "3a752a7884e99e095c31b2a28cfefdf916cb2033c06afae1ea146a72f3ba650c", 1646928727827, 0.443, [1.6978e-07], [1.7764e-07], [1.701e-07], [1.7323e-07], [65192], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_windows": [[1.726727310866345e-07], [], "1732bbd18ada49eb7b054fc18b40d6acfb533023463366f37203dab6fbb0cc20", 1646928728044, 0.43261, [1.6918e-07], [1.7389e-07], [1.6962e-07], [1.7367e-07], [58649], [10]], "benchmarks.PrettySuite.time_pretty": [[0.0022632042033364995], [], "9bb0e6d8a29aad21b3d1b550a160fa5f1e9030c69d16bad500c0dcc77bff6d01", 1646928728263, 0.44683, [0.0022263], [0.0022977], [0.0022312], [0.0022891], [5], [10]], "benchmarks.PrettySuite.time_pretty_indent_guides": [null, [], "8d71bf19dfe999b0fba95d009986bfd6911c53c7a0c455466725f553005c3bc7", 1646928722905, 0.0583], "benchmarks.PrettySuite.time_pretty_justify_center": [null, [], "54cbf71bacab14ccbe1d063847c0b89198ed1bbe06edc89c14d2e3c7b1986c41", 1646928722964, 0.058042], "benchmarks.StyleSuite.time_parse_ansi": [[1.1642906299976313e-07], [], "a003aaa8017585efeb1cd9c43351282df4df6249bf28a4c447b1304d984aa753", 1646928728488, 0.42206, [1.1573e-07], [1.1719e-07], [1.1615e-07], [1.1671e-07], [87070], [10]], "benchmarks.StyleSuite.time_parse_hex": [[1.1636819952552777e-07], [], "cf5a3f0def435d3da5bc3a6e7549c44c0a02e9cce6c00ecde8dd7f527556f8ca", 1646928728699, 0.43262, [1.1582e-07], [1.1681e-07], [1.1627e-07], [1.1666e-07], [96646], [10]], "benchmarks.StyleSuite.time_parse_mixed_complex_style": [[1.1560313316913222e-07], [], "01c9e12ae829b1984e55a5aeef1a9ae6f1461577adaf5ae59f06358c8b52802f", 1646928728916, 0.45013, [1.1452e-07], [1.1668e-07], [1.1492e-07], [1.1614e-07], [95648], [10]], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_heavy_wrapping": [null, [], "1ed4d74ea424990cfb40c96f07635f9bcf7b8bacc7ade5204aaf96363e1622ee", 1646928723673, 0.058083], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_medium_wrapping": [null, [], "0880e162a4907ee025cef8ac3380502554fde27fd0c90a4c15cebc9c27f3e333", 1646928723731, 0.057826], "benchmarks.SyntaxWrappingSuite.time_text_wide_terminal_no_wrapping": [null, [], "feb11e94ae6a75de2dee899fb93db098b55cde232710660d7d66f9e2b288d9c0", 1646928723789, 0.057979], "benchmarks.TableSuite.time_table_heavy_wrapping": [[0.002123166699311696], [], "ca515a9739c1e0f8eb922420f9f9caf27321fb13c8bd0bc49b207a0588b370de", 1646928729142, 0.43623, [0.0020971], [0.0021399], [0.0021067], [0.0021358], [5], [10]], "benchmarks.TableSuite.time_table_no_wrapping": [[0.0014861785727719378], [], "8842a5f141d8208ba2bab66e4973e978cb5d0615f326af5d70385ff8fa44b3b9", 1646928729364, 0.43197, [0.0014753], [0.0015121], [0.0014779], [0.0014992], [7], [10]], "benchmarks.TextSuite.time_align_center": [[0.0006712447811878519], [], "1ceeeef2de43fcb3d0dfec409972d8f0eb791e9615fa9f9c959e0423725b089b", 1646928729584, 0.43655, [0.00066867], [0.00067368], [0.00066968], [0.00067302], [16], [10]], "benchmarks.TextSuite.time_align_center_unicode_heavy": [[0.0005566228156615245], [], "a83ff79614dd2ae17e8b68f45981fcaa0d9833c59a7a14f171b896cf970f54ce", 1646928729805, 0.43007, [0.00055385], [0.0005591], [0.00055608], [0.00055735], [19], [10]], "benchmarks.TextSuite.time_divide": [[2.816003134356223e-05], [], "dcc120b921cb2ec77632f8fe2f6f4150d479cb49ef2608f8e86b569a937756e9", 1646928730022, 0.44409, [2.7814e-05], [2.8399e-05], [2.7839e-05], [2.8381e-05], [383], [10]], "benchmarks.TextSuite.time_divide_unicode_heavy": [[0.00018715350852927947], [], "ea53e662c0553324f90ac3336dcee77f733bb33638888e1f84bf71945a2f3f8e", 1646928730243, 0.44446, [0.00018568], [0.00018992], [0.00018678], [0.00018798], [57], [10]], "benchmarks.TextSuite.time_fit": [[4.26104741353742e-05], [], "ec77b412db357b1e1c1e7bc620b941dddfc36dc76d2a66a0417feae4f21fe1d3", 1646928730467, 0.44198, [4.202e-05], [4.314e-05], [4.2145e-05], [4.3041e-05], [251], [10]], "benchmarks.TextSuite.time_fit_unicode_heavy": [[0.00033586962907124435], [], "d1574b4af2ef8b80b95b4dbeeb13e5de67b66783f76f9968834776239dd0dc66", 1646928730689, 0.43289, [0.00033536], [0.00033642], [0.00033566], [0.00033628], [31], [10]], "benchmarks.TextSuite.time_indent_guides": [null, [], "18da036dcfc15ec5e3c11e72be7c8f0c22fba695a5f19c95836be36952376cf2", 1646928725585, 0.058448], "benchmarks.TextSuite.time_render": [[4.678828615718841e-06], [], "907d30581cfdc7bb2c4d302b7e3cb474aaefd8b84821365fe105af7d82be3b09", 1646928730905, 0.43858, [4.6682e-06], [4.7782e-06], [4.672e-06], [4.7475e-06], [2328], [10]], "benchmarks.TextSuite.time_render_unicode_heavy": [[8.66399726646705e-05], [], "b3f1c09dfd06f412a20dacfe378c3b446727c7d4f9a975336eab3daa8543e1cb", 1646928731129, 0.44532, [8.6226e-05], [8.7004e-05], [8.6491e-05], [8.6881e-05], [128], [10]], "benchmarks.TextSuite.time_split": [[3.442041802562929e-05], [], "9c165854130cb95fea5491ffcd8b580a5bd373149da2ef8aace0e9480f649854", 1646928731355, 0.44347, [3.3952e-05], [3.5991e-05], [3.4377e-05], [3.4581e-05], [311], [10]], "benchmarks.TextSuite.time_split_unicode_heavy": [[0.00028177590512141993], [], "d55b02f6d06f478d70635bac3409f3a9899137d9cee87a70a293b8ccf5a6afa4", 1646928731577, 0.43448, [0.00027849], [0.00028625], [0.00027876], [0.00028524], [37], [10]], "benchmarks.TextSuite.time_wrapping": [[0.0011528171663586465], [], "8c821eba13d043f228fd902d8f678c397741855db05d02abe9b82f3d65cdf03d", 1646928731796, 0.43614, [0.0011305], [0.0011759], [0.0011328], [0.0011729], [9], [10]], "benchmarks.TextSuite.time_wrapping_unicode_heavy": [[0.0015352022850752942], [], "ec6e2ef08b6cdee182fef4e26c0043f8c365984f9a31be07dbd792e1aed862d8", 1646928732015, 0.43922, [0.0015175], [0.001555], [0.0015207], [0.0015485], [7], [10]]}, "durations": {"": 1.9555010795593262}, "version": 2} diff --git a/benchmarks/results/darrenburns-2022-mbp/11c00224-virtualenv-py3.10.json b/benchmarks/results/darrenburns-2022-mbp/11c00224-virtualenv-py3.10.json new file mode 100644 index 0000000000..96c9ee633c --- /dev/null +++ b/benchmarks/results/darrenburns-2022-mbp/11c00224-virtualenv-py3.10.json @@ -0,0 +1 @@ +{"commit_hash": "11c00224398aae3ef5fcf363641c249c1752af7d", "env_name": "virtualenv-py3.10", "date": 1593549611000, "params": {"arch": "arm64", "cpu": "Apple M1 Pro", "machine": "darrenburns-2022-mbp", "num_cpu": "10", "os": "Darwin 21.2.0", "ram": "17179869184", "python": "3.10"}, "python": "3.10", "requirements": {}, "env_vars": {}, "result_columns": ["result", "params", "version", "started_at", "duration", "stats_ci_99_a", "stats_ci_99_b", "stats_q_25", "stats_q_75", "stats_number", "stats_repeat", "samples", "profile"], "results": {"benchmarks.ColorSuite.time_downgrade_to_eight_bit": [[1.7284974776044082e-07], [], "019b972f782c6291df9a6a4dea9bb3c6268a69b177e71383d6e19a608e84920d", 1646928616040, 0.44173, [1.7153e-07], [1.7402e-07], [1.7255e-07], [1.7298e-07], [64568], [10]], "benchmarks.ColorSuite.time_downgrade_to_standard": [[1.7351940855857562e-07], [], "f5e8556491c977450fff6ebfd9fff4fc8f12d74829aa5b8570bd27ea7a1c9d28", 1646928616267, 0.4269, [1.7291e-07], [1.7432e-07], [1.7326e-07], [1.7368e-07], [58763], [10]], "benchmarks.ColorSuite.time_downgrade_to_windows": [[1.7025654007106745e-07], [], "373eb97dd7ce2823e080972249235f528e8b3a47210911981cf432ecf0eef5fb", 1646928616478, 0.44956, [1.6996e-07], [1.7098e-07], [1.702e-07], [1.7083e-07], [64487], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_eight_bit": [[1.706075797615736e-07], [], "716ff06a471a5d90af3730f6d4470eba3577432d781e0210dff1fd156b8c549c", 1646928616702, 0.44942, [1.6902e-07], [1.7125e-07], [1.7035e-07], [1.7071e-07], [64394], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_standard": [[1.7302739804627536e-07], [], "3a752a7884e99e095c31b2a28cfefdf916cb2033c06afae1ea146a72f3ba650c", 1646928616925, 0.43385, [1.7236e-07], [1.7358e-07], [1.7264e-07], [1.7327e-07], [65041], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_windows": [[1.7105373843932488e-07], [], "1732bbd18ada49eb7b054fc18b40d6acfb533023463366f37203dab6fbb0cc20", 1646928617141, 0.44901, [1.6974e-07], [1.7289e-07], [1.7026e-07], [1.7251e-07], [64237], [10]], "benchmarks.PrettySuite.time_pretty": [[0.0022084375028498474], [], "9bb0e6d8a29aad21b3d1b550a160fa5f1e9030c69d16bad500c0dcc77bff6d01", 1646928617366, 0.43535, [0.0021925], [0.0022162], [0.0022023], [0.0022119], [5], [10]], "benchmarks.PrettySuite.time_pretty_indent_guides": [null, [], "8d71bf19dfe999b0fba95d009986bfd6911c53c7a0c455466725f553005c3bc7", 1646928612308, 0.058177], "benchmarks.PrettySuite.time_pretty_justify_center": [null, [], "54cbf71bacab14ccbe1d063847c0b89198ed1bbe06edc89c14d2e3c7b1986c41", 1646928612366, 0.058029], "benchmarks.StyleSuite.time_parse_ansi": [[1.1611713504418965e-07], [], "a003aaa8017585efeb1cd9c43351282df4df6249bf28a4c447b1304d984aa753", 1646928617581, 0.44885, [1.1563e-07], [1.1724e-07], [1.1592e-07], [1.1654e-07], [95202], [10]], "benchmarks.StyleSuite.time_parse_hex": [[1.1629571403233272e-07], [], "cf5a3f0def435d3da5bc3a6e7549c44c0a02e9cce6c00ecde8dd7f527556f8ca", 1646928617806, 0.43068, [1.1597e-07], [1.1678e-07], [1.1611e-07], [1.1649e-07], [96497], [10]], "benchmarks.StyleSuite.time_parse_mixed_complex_style": [[1.1554933307194386e-07], [], "01c9e12ae829b1984e55a5aeef1a9ae6f1461577adaf5ae59f06358c8b52802f", 1646928618022, 0.44858, [1.1416e-07], [1.1636e-07], [1.1451e-07], [1.1631e-07], [95443], [10]], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_heavy_wrapping": [null, [], "1ed4d74ea424990cfb40c96f07635f9bcf7b8bacc7ade5204aaf96363e1622ee", 1646928613089, 0.057768], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_medium_wrapping": [null, [], "0880e162a4907ee025cef8ac3380502554fde27fd0c90a4c15cebc9c27f3e333", 1646928613147, 0.057693], "benchmarks.SyntaxWrappingSuite.time_text_wide_terminal_no_wrapping": [null, [], "feb11e94ae6a75de2dee899fb93db098b55cde232710660d7d66f9e2b288d9c0", 1646928613205, 0.057767], "benchmarks.TableSuite.time_table_heavy_wrapping": [[0.002041262501734309], [], "ca515a9739c1e0f8eb922420f9f9caf27321fb13c8bd0bc49b207a0588b370de", 1646928618246, 0.42348, [0.0020331], [0.0020749], [0.0020382], [0.0020422], [5], [10]], "benchmarks.TableSuite.time_table_no_wrapping": [[0.001439104143563392], [], "8842a5f141d8208ba2bab66e4973e978cb5d0615f326af5d70385ff8fa44b3b9", 1646928618460, 0.42148, [0.001432], [0.0014473], [0.0014368], [0.001443], [7], [10]], "benchmarks.TextSuite.time_align_center": [null, [], "1ceeeef2de43fcb3d0dfec409972d8f0eb791e9615fa9f9c959e0423725b089b", 1646928613682, 0.058205], "benchmarks.TextSuite.time_align_center_unicode_heavy": [null, [], "a83ff79614dd2ae17e8b68f45981fcaa0d9833c59a7a14f171b896cf970f54ce", 1646928613740, 0.058625], "benchmarks.TextSuite.time_divide": [[2.7814408371417603e-05], [], "dcc120b921cb2ec77632f8fe2f6f4150d479cb49ef2608f8e86b569a937756e9", 1646928618672, 0.43816, [2.7728e-05], [2.7947e-05], [2.7771e-05], [2.7877e-05], [382], [10]], "benchmarks.TextSuite.time_divide_unicode_heavy": [[0.0001878881578848354], [], "ea53e662c0553324f90ac3336dcee77f733bb33638888e1f84bf71945a2f3f8e", 1646928618891, 0.43937, [0.00018646], [0.00018863], [0.0001873], [0.0001884], [57], [10]], "benchmarks.TextSuite.time_fit": [[4.2432207685065336e-05], [], "ec77b412db357b1e1c1e7bc620b941dddfc36dc76d2a66a0417feae4f21fe1d3", 1646928619110, 0.43813, [4.2149e-05], [4.287e-05], [4.218e-05], [4.2672e-05], [248], [10]], "benchmarks.TextSuite.time_fit_unicode_heavy": [[0.0003323165320550963], [], "d1574b4af2ef8b80b95b4dbeeb13e5de67b66783f76f9968834776239dd0dc66", 1646928619328, 0.4298, [0.0003309], [0.00033885], [0.00033172], [0.00033744], [31], [10]], "benchmarks.TextSuite.time_indent_guides": [null, [], "18da036dcfc15ec5e3c11e72be7c8f0c22fba695a5f19c95836be36952376cf2", 1646928614675, 0.058317], "benchmarks.TextSuite.time_render": [[4.693972607015483e-06], [], "907d30581cfdc7bb2c4d302b7e3cb474aaefd8b84821365fe105af7d82be3b09", 1646928619543, 0.43136, [4.6757e-06], [4.7207e-06], [4.6872e-06], [4.6989e-06], [2282], [10]], "benchmarks.TextSuite.time_render_unicode_heavy": [[8.568864438984747e-05], [], "b3f1c09dfd06f412a20dacfe378c3b446727c7d4f9a975336eab3daa8543e1cb", 1646928619762, 0.44176, [8.4236e-05], [8.7142e-05], [8.447e-05], [8.6796e-05], [128], [10]], "benchmarks.TextSuite.time_split": [[3.368297283844159e-05], [], "9c165854130cb95fea5491ffcd8b580a5bd373149da2ef8aace0e9480f649854", 1646928619983, 0.43646, [3.3481e-05], [3.3825e-05], [3.3502e-05], [3.3776e-05], [313], [10]], "benchmarks.TextSuite.time_split_unicode_heavy": [[0.00028147971622545173], [], "d55b02f6d06f478d70635bac3409f3a9899137d9cee87a70a293b8ccf5a6afa4", 1646928620200, 0.42968, [0.00027839], [0.000286], [0.00027906], [0.00028342], [37], [10]], "benchmarks.TextSuite.time_wrapping": [[0.0011670578322890732], [], "8c821eba13d043f228fd902d8f678c397741855db05d02abe9b82f3d65cdf03d", 1646928620414, 0.43745, [0.0011661], [0.0011724], [0.0011666], [0.0011687], [9], [10]], "benchmarks.TextSuite.time_wrapping_unicode_heavy": [[0.0015473719998096514], [], "ec6e2ef08b6cdee182fef4e26c0043f8c365984f9a31be07dbd792e1aed862d8", 1646928620631, 0.43689, [0.0015434], [0.0015554], [0.0015454], [0.0015505], [7], [10]]}, "durations": {"": 1.95790696144104}, "version": 2} diff --git a/benchmarks/results/darrenburns-2022-mbp/11c305e1-virtualenv-py3.10.json b/benchmarks/results/darrenburns-2022-mbp/11c305e1-virtualenv-py3.10.json new file mode 100644 index 0000000000..59edef9624 --- /dev/null +++ b/benchmarks/results/darrenburns-2022-mbp/11c305e1-virtualenv-py3.10.json @@ -0,0 +1 @@ +{"commit_hash": "11c305e1722a81c553a41fb9358f1058231757c5", "env_name": "virtualenv-py3.10", "date": 1617124192000, "params": {"arch": "arm64", "cpu": "Apple M1 Pro", "machine": "darrenburns-2022-mbp", "num_cpu": "10", "os": "Darwin 21.2.0", "ram": "17179869184", "python": "3.10"}, "python": "3.10", "requirements": {}, "env_vars": {}, "result_columns": ["result", "params", "version", "started_at", "duration", "stats_ci_99_a", "stats_ci_99_b", "stats_q_25", "stats_q_75", "stats_number", "stats_repeat", "samples", "profile"], "results": {"benchmarks.ColorSuite.time_downgrade_to_eight_bit": [[1.7040699938447585e-07], [], "019b972f782c6291df9a6a4dea9bb3c6268a69b177e71383d6e19a608e84920d", 1646928130588, 0.45796, [1.6952e-07], [1.709e-07], [1.7005e-07], [1.7061e-07], [64650], [10]], "benchmarks.ColorSuite.time_downgrade_to_standard": [[1.6964852386183715e-07], [], "f5e8556491c977450fff6ebfd9fff4fc8f12d74829aa5b8570bd27ea7a1c9d28", 1646928130815, 0.45592, [1.6857e-07], [1.7045e-07], [1.6935e-07], [1.6973e-07], [64599], [10]], "benchmarks.ColorSuite.time_downgrade_to_windows": [[1.702935102568297e-07], [], "373eb97dd7ce2823e080972249235f528e8b3a47210911981cf432ecf0eef5fb", 1646928131043, 0.4485, [1.698e-07], [1.7319e-07], [1.7008e-07], [1.7126e-07], [64427], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_eight_bit": [[1.697923450791509e-07], [], "716ff06a471a5d90af3730f6d4470eba3577432d781e0210dff1fd156b8c549c", 1646928131272, 0.46092, [1.6925e-07], [1.7072e-07], [1.6969e-07], [1.7011e-07], [64246], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_standard": [[1.698945704612123e-07], [], "3a752a7884e99e095c31b2a28cfefdf916cb2033c06afae1ea146a72f3ba650c", 1646928131501, 0.45893, [1.6897e-07], [1.7113e-07], [1.6945e-07], [1.7066e-07], [64593], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_windows": [[1.6976089933961742e-07], [], "1732bbd18ada49eb7b054fc18b40d6acfb533023463366f37203dab6fbb0cc20", 1646928131730, 0.44973, [1.6911e-07], [1.7176e-07], [1.6948e-07], [1.7013e-07], [65027], [10]], "benchmarks.PrettySuite.time_pretty": [[0.0010057624487672002], [], "9bb0e6d8a29aad21b3d1b550a160fa5f1e9030c69d16bad500c0dcc77bff6d01", 1646928131962, 0.4368, [0.0010035], [0.0010095], [0.0010052], [0.0010074], [10], [10]], "benchmarks.PrettySuite.time_pretty_indent_guides": [[0.0014041302511031972], [], "8d71bf19dfe999b0fba95d009986bfd6911c53c7a0c455466725f553005c3bc7", 1646928132179, 0.44692, [0.0013982], [0.0014137], [0.0014015], [0.001409], [8], [10]], "benchmarks.PrettySuite.time_pretty_justify_center": [[0.0014043098763067974], [], "54cbf71bacab14ccbe1d063847c0b89198ed1bbe06edc89c14d2e3c7b1986c41", 1646928132402, 0.44683, [0.001401], [0.0014103], [0.0014025], [0.0014058], [8], [10]], "benchmarks.StyleSuite.time_parse_ansi": [[1.140019237469983e-07], [], "a003aaa8017585efeb1cd9c43351282df4df6249bf28a4c447b1304d984aa753", 1646928132625, 0.45471, [1.1362e-07], [1.1424e-07], [1.1393e-07], [1.1404e-07], [95905], [10]], "benchmarks.StyleSuite.time_parse_hex": [[1.1478145308663167e-07], [], "cf5a3f0def435d3da5bc3a6e7549c44c0a02e9cce6c00ecde8dd7f527556f8ca", 1646928132852, 0.45476, [1.1368e-07], [1.1602e-07], [1.141e-07], [1.154e-07], [95849], [10]], "benchmarks.StyleSuite.time_parse_mixed_complex_style": [[1.141980623645123e-07], [], "01c9e12ae829b1984e55a5aeef1a9ae6f1461577adaf5ae59f06358c8b52802f", 1646928133080, 0.45583, [1.1378e-07], [1.1497e-07], [1.1402e-07], [1.1452e-07], [95793], [10]], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_heavy_wrapping": [null, [], "1ed4d74ea424990cfb40c96f07635f9bcf7b8bacc7ade5204aaf96363e1622ee", 1646928127090, 0.061864], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_medium_wrapping": [null, [], "0880e162a4907ee025cef8ac3380502554fde27fd0c90a4c15cebc9c27f3e333", 1646928127152, 0.06233], "benchmarks.SyntaxWrappingSuite.time_text_wide_terminal_no_wrapping": [null, [], "feb11e94ae6a75de2dee899fb93db098b55cde232710660d7d66f9e2b288d9c0", 1646928127215, 0.061847], "benchmarks.TableSuite.time_table_heavy_wrapping": [[0.0020629041013307866], [], "ca515a9739c1e0f8eb922420f9f9caf27321fb13c8bd0bc49b207a0588b370de", 1646928133309, 0.44416, [0.0020464], [0.0020839], [0.0020508], [0.0020708], [5], [10]], "benchmarks.TableSuite.time_table_no_wrapping": [[0.0012537265010905685], [], "8842a5f141d8208ba2bab66e4973e978cb5d0615f326af5d70385ff8fa44b3b9", 1646928133530, 0.43507, [0.0012406], [0.0012608], [0.0012466], [0.0012574], [8], [10]], "benchmarks.TextSuite.time_align_center": [[0.0006594336255147937], [], "1ceeeef2de43fcb3d0dfec409972d8f0eb791e9615fa9f9c959e0423725b089b", 1646928133746, 0.4381, [0.000657], [0.00066519], [0.00065815], [0.00066171], [16], [10]], "benchmarks.TextSuite.time_align_center_unicode_heavy": [[0.0005484693155219582], [], "a83ff79614dd2ae17e8b68f45981fcaa0d9833c59a7a14f171b896cf970f54ce", 1646928133967, 0.44419, [0.00054561], [0.00055549], [0.00054714], [0.0005526], [19], [10]], "benchmarks.TextSuite.time_divide": [[2.5705258770675706e-05], [], "dcc120b921cb2ec77632f8fe2f6f4150d479cb49ef2608f8e86b569a937756e9", 1646928134188, 0.45615, [2.5324e-05], [2.6081e-05], [2.5411e-05], [2.6e-05], [427], [10]], "benchmarks.TextSuite.time_divide_unicode_heavy": [[0.0001846641467197734], [], "ea53e662c0553324f90ac3336dcee77f733bb33638888e1f84bf71945a2f3f8e", 1646928134417, 0.44897, [0.00018407], [0.00018533], [0.00018425], [0.00018515], [58], [10]], "benchmarks.TextSuite.time_fit": [[4.361301223386307e-05], [], "ec77b412db357b1e1c1e7bc620b941dddfc36dc76d2a66a0417feae4f21fe1d3", 1646928134641, 0.43957, [4.3442e-05], [4.3824e-05], [4.3482e-05], [4.379e-05], [245], [10]], "benchmarks.TextSuite.time_fit_unicode_heavy": [[0.0003249576613832746], [], "d1574b4af2ef8b80b95b4dbeeb13e5de67b66783f76f9968834776239dd0dc66", 1646928134864, 0.42981, [0.00032416], [0.00032648], [0.00032463], [0.00032545], [31], [10]], "benchmarks.TextSuite.time_indent_guides": [[0.00035477660351497086], [], "18da036dcfc15ec5e3c11e72be7c8f0c22fba695a5f19c95836be36952376cf2", 1646928135078, 0.43718, [0.00035447], [0.0003559], [0.00035458], [0.00035523], [29], [10]], "benchmarks.TextSuite.time_render": [[4.692818238968194e-06], [], "907d30581cfdc7bb2c4d302b7e3cb474aaefd8b84821365fe105af7d82be3b09", 1646928135295, 0.44495, [4.6753e-06], [4.7115e-06], [4.6831e-06], [4.7019e-06], [2319], [10]], "benchmarks.TextSuite.time_render_unicode_heavy": [[8.551689750775255e-05], [], "b3f1c09dfd06f412a20dacfe378c3b446727c7d4f9a975336eab3daa8543e1cb", 1646928135521, 0.44984, [8.5359e-05], [8.5939e-05], [8.5394e-05], [8.5681e-05], [127], [10]], "benchmarks.TextSuite.time_split": [[3.5231459565976076e-05], [], "9c165854130cb95fea5491ffcd8b580a5bd373149da2ef8aace0e9480f649854", 1646928135747, 0.44418, [3.5105e-05], [3.5493e-05], [3.5142e-05], [3.5382e-05], [309], [10]], "benchmarks.TextSuite.time_split_unicode_heavy": [[0.00027465598712949897], [], "d55b02f6d06f478d70635bac3409f3a9899137d9cee87a70a293b8ccf5a6afa4", 1646928135974, 0.44849, [0.00027312], [0.00027628], [0.00027334], [0.00027584], [39], [10]], "benchmarks.TextSuite.time_wrapping": [[0.001102583299507387], [], "8c821eba13d043f228fd902d8f678c397741855db05d02abe9b82f3d65cdf03d", 1646928136199, 0.43834, [0.0010966], [0.0011175], [0.0010985], [0.0011066], [10], [10]], "benchmarks.TextSuite.time_wrapping_unicode_heavy": [[0.0014873571427805083], [], "ec6e2ef08b6cdee182fef4e26c0043f8c365984f9a31be07dbd792e1aed862d8", 1646928136416, 0.43532, [0.0014852], [0.0014935], [0.0014866], [0.001488], [7], [10]]}, "durations": {"": 2.0018699169158936}, "version": 2} diff --git a/benchmarks/results/darrenburns-2022-mbp/1442dd77-virtualenv-py3.10.json b/benchmarks/results/darrenburns-2022-mbp/1442dd77-virtualenv-py3.10.json new file mode 100644 index 0000000000..0cf41d2e7b --- /dev/null +++ b/benchmarks/results/darrenburns-2022-mbp/1442dd77-virtualenv-py3.10.json @@ -0,0 +1 @@ +{"commit_hash": "1442dd7759b4bc92ed4d79a6bb5fbf29b9df4f76", "env_name": "virtualenv-py3.10", "date": 1639560700000, "params": {"arch": "arm64", "cpu": "Apple M1 Pro", "machine": "darrenburns-2022-mbp", "num_cpu": "10", "os": "Darwin 21.2.0", "ram": "17179869184", "python": "3.10"}, "python": "3.10", "requirements": {}, "env_vars": {}, "result_columns": ["result", "params", "version", "started_at", "duration", "stats_ci_99_a", "stats_ci_99_b", "stats_q_25", "stats_q_75", "stats_number", "stats_repeat", "samples", "profile"], "results": {"benchmarks.ColorSuite.time_downgrade_to_eight_bit": [[1.7012068692044375e-07], [], "019b972f782c6291df9a6a4dea9bb3c6268a69b177e71383d6e19a608e84920d", 1646928289810, 0.46694, [1.6882e-07], [1.7102e-07], [1.6943e-07], [1.704e-07], [64659], [10]], "benchmarks.ColorSuite.time_downgrade_to_standard": [[1.7018720169784255e-07], [], "f5e8556491c977450fff6ebfd9fff4fc8f12d74829aa5b8570bd27ea7a1c9d28", 1646928290042, 0.46369, [1.6952e-07], [1.7064e-07], [1.6998e-07], [1.7053e-07], [64532], [10]], "benchmarks.ColorSuite.time_downgrade_to_windows": [[1.7047895456152823e-07], [], "373eb97dd7ce2823e080972249235f528e8b3a47210911981cf432ecf0eef5fb", 1646928290274, 0.46468, [1.6957e-07], [1.7098e-07], [1.7036e-07], [1.7077e-07], [64337], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_eight_bit": [[1.7099208604379628e-07], [], "716ff06a471a5d90af3730f6d4470eba3577432d781e0210dff1fd156b8c549c", 1646928290505, 0.46058, [1.6949e-07], [1.7299e-07], [1.702e-07], [1.7223e-07], [63621], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_standard": [[1.7060387806580736e-07], [], "3a752a7884e99e095c31b2a28cfefdf916cb2033c06afae1ea146a72f3ba650c", 1646928290733, 0.46622, [1.6981e-07], [1.7312e-07], [1.7011e-07], [1.7109e-07], [64465], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_windows": [[1.6985979406589e-07], [], "1732bbd18ada49eb7b054fc18b40d6acfb533023463366f37203dab6fbb0cc20", 1646928290964, 0.46389, [1.6888e-07], [1.7155e-07], [1.6934e-07], [1.7073e-07], [64070], [10]], "benchmarks.PrettySuite.time_pretty": [[0.0011093499502749181], [], "9bb0e6d8a29aad21b3d1b550a160fa5f1e9030c69d16bad500c0dcc77bff6d01", 1646928291194, 0.45719, [0.0011042], [0.0011163], [0.0011072], [0.0011103], [10], [10]], "benchmarks.PrettySuite.time_pretty_indent_guides": [[0.0015499642842249678], [], "8d71bf19dfe999b0fba95d009986bfd6911c53c7a0c455466725f553005c3bc7", 1646928291421, 0.44629, [0.0015439], [0.0015571], [0.0015482], [0.0015526], [7], [10]], "benchmarks.PrettySuite.time_pretty_justify_center": [[0.0013974713128845906], [], "54cbf71bacab14ccbe1d063847c0b89198ed1bbe06edc89c14d2e3c7b1986c41", 1646928291642, 0.45178, [0.0013927], [0.0014066], [0.0013949], [0.0014027], [8], [10]], "benchmarks.StyleSuite.time_parse_ansi": [[1.1407390702467521e-07], [], "a003aaa8017585efeb1cd9c43351282df4df6249bf28a4c447b1304d984aa753", 1646928291868, 0.46339, [1.1372e-07], [1.1466e-07], [1.1402e-07], [1.1432e-07], [96371], [10]], "benchmarks.StyleSuite.time_parse_hex": [[1.1481372948254572e-07], [], "cf5a3f0def435d3da5bc3a6e7549c44c0a02e9cce6c00ecde8dd7f527556f8ca", 1646928292101, 0.45909, [1.1381e-07], [1.1592e-07], [1.1418e-07], [1.1524e-07], [94854], [10]], "benchmarks.StyleSuite.time_parse_mixed_complex_style": [[1.1422449103232493e-07], [], "01c9e12ae829b1984e55a5aeef1a9ae6f1461577adaf5ae59f06358c8b52802f", 1646928292329, 0.46237, [1.1344e-07], [1.1474e-07], [1.1406e-07], [1.1431e-07], [96055], [10]], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_heavy_wrapping": [null, [], "1ed4d74ea424990cfb40c96f07635f9bcf7b8bacc7ade5204aaf96363e1622ee", 1646928286243, 0.065126], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_medium_wrapping": [null, [], "0880e162a4907ee025cef8ac3380502554fde27fd0c90a4c15cebc9c27f3e333", 1646928286308, 0.064956], "benchmarks.SyntaxWrappingSuite.time_text_wide_terminal_no_wrapping": [null, [], "feb11e94ae6a75de2dee899fb93db098b55cde232710660d7d66f9e2b288d9c0", 1646928286373, 0.064969], "benchmarks.TableSuite.time_table_heavy_wrapping": [[0.002332408301299438], [], "ca515a9739c1e0f8eb922420f9f9caf27321fb13c8bd0bc49b207a0588b370de", 1646928292560, 0.45581, [0.0023223], [0.0023418], [0.0023291], [0.0023332], [5], [10]], "benchmarks.TableSuite.time_table_no_wrapping": [[0.001395356748616905], [], "8842a5f141d8208ba2bab66e4973e978cb5d0615f326af5d70385ff8fa44b3b9", 1646928292793, 0.45096, [0.0013879], [0.0014041], [0.001393], [0.0014014], [8], [10]], "benchmarks.TextSuite.time_align_center": [[0.00037334339717274597], [], "1ceeeef2de43fcb3d0dfec409972d8f0eb791e9615fa9f9c959e0423725b089b", 1646928293019, 0.46011, [0.00036916], [0.00037875], [0.00036929], [0.00037733], [29], [10]], "benchmarks.TextSuite.time_align_center_unicode_heavy": [[0.0003428870967904767], [], "a83ff79614dd2ae17e8b68f45981fcaa0d9833c59a7a14f171b896cf970f54ce", 1646928293250, 0.45501, [0.00034065], [0.00035293], [0.00034105], [0.00034885], [31], [10]], "benchmarks.TextSuite.time_divide": [[2.5384536367172085e-05], [], "dcc120b921cb2ec77632f8fe2f6f4150d479cb49ef2608f8e86b569a937756e9", 1646928293476, 0.45814, [2.5186e-05], [2.5561e-05], [2.5268e-05], [2.5493e-05], [426], [10]], "benchmarks.TextSuite.time_divide_unicode_heavy": [[0.00018477334479343724], [], "ea53e662c0553324f90ac3336dcee77f733bb33638888e1f84bf71945a2f3f8e", 1646928293705, 0.45602, [0.00018358], [0.00018527], [0.00018469], [0.0001849], [58], [10]], "benchmarks.TextSuite.time_fit": [[4.369230763722769e-05], [], "ec77b412db357b1e1c1e7bc620b941dddfc36dc76d2a66a0417feae4f21fe1d3", 1646928293934, 0.4482, [4.3174e-05], [4.4067e-05], [4.3212e-05], [4.3954e-05], [247], [10]], "benchmarks.TextSuite.time_fit_unicode_heavy": [[0.0003243024196220381], [], "d1574b4af2ef8b80b95b4dbeeb13e5de67b66783f76f9968834776239dd0dc66", 1646928294163, 0.43568, [0.00032299], [0.00032623], [0.00032391], [0.00032444], [31], [10]], "benchmarks.TextSuite.time_indent_guides": [[0.00035655387960261954], [], "18da036dcfc15ec5e3c11e72be7c8f0c22fba695a5f19c95836be36952376cf2", 1646928294380, 0.44502, [0.00035515], [0.00035812], [0.00035577], [0.00035678], [29], [10]], "benchmarks.TextSuite.time_render": [[4.67811063834383e-06], [], "907d30581cfdc7bb2c4d302b7e3cb474aaefd8b84821365fe105af7d82be3b09", 1646928294601, 0.45176, [4.6551e-06], [4.699e-06], [4.6662e-06], [4.6872e-06], [2332], [10]], "benchmarks.TextSuite.time_render_unicode_heavy": [[8.541865076588851e-05], [], "b3f1c09dfd06f412a20dacfe378c3b446727c7d4f9a975336eab3daa8543e1cb", 1646928294830, 0.45497, [8.4623e-05], [8.6397e-05], [8.5213e-05], [8.5595e-05], [126], [10]], "benchmarks.TextSuite.time_split": [[3.503245966238601e-05], [], "9c165854130cb95fea5491ffcd8b580a5bd373149da2ef8aace0e9480f649854", 1646928295057, 0.4499, [3.4982e-05], [3.5079e-05], [3.5008e-05], [3.505e-05], [310], [10]], "benchmarks.TextSuite.time_split_unicode_heavy": [[0.00027448794686566353], [], "d55b02f6d06f478d70635bac3409f3a9899137d9cee87a70a293b8ccf5a6afa4", 1646928295286, 0.44659, [0.00027325], [0.00027609], [0.00027406], [0.00027466], [38], [10]], "benchmarks.TextSuite.time_wrapping": [[0.0013566120014729677], [], "8c821eba13d043f228fd902d8f678c397741855db05d02abe9b82f3d65cdf03d", 1646928295509, 0.45296, [0.0013557], [0.001361], [0.001356], [0.0013573], [8], [10]], "benchmarks.TextSuite.time_wrapping_unicode_heavy": [[0.0014524136432945462], [], "ec6e2ef08b6cdee182fef4e26c0043f8c365984f9a31be07dbd792e1aed862d8", 1646928295738, 0.44389, [0.0014489], [0.0014573], [0.0014499], [0.0014536], [7], [10]]}, "durations": {"": 2.0702707767486572}, "version": 2} diff --git a/benchmarks/results/darrenburns-2022-mbp/15623c5a-virtualenv-py3.10.json b/benchmarks/results/darrenburns-2022-mbp/15623c5a-virtualenv-py3.10.json new file mode 100644 index 0000000000..d442178aa5 --- /dev/null +++ b/benchmarks/results/darrenburns-2022-mbp/15623c5a-virtualenv-py3.10.json @@ -0,0 +1 @@ +{"commit_hash": "15623c5a57bf758b18542d5293ee319bbd59e829", "env_name": "virtualenv-py3.10", "date": 1614631595000, "params": {"arch": "arm64", "cpu": "Apple M1 Pro", "machine": "darrenburns-2022-mbp", "num_cpu": "10", "os": "Darwin 21.2.0", "ram": "17179869184", "python": "3.10"}, "python": "3.10", "requirements": {}, "env_vars": {}, "result_columns": ["result", "params", "version", "started_at", "duration", "stats_ci_99_a", "stats_ci_99_b", "stats_q_25", "stats_q_75", "stats_number", "stats_repeat", "samples", "profile"], "results": {"benchmarks.ColorSuite.time_downgrade_to_eight_bit": [[1.7020787005396147e-07], [], "019b972f782c6291df9a6a4dea9bb3c6268a69b177e71383d6e19a608e84920d", 1646929089823, 0.45996, [1.6941e-07], [1.7215e-07], [1.6989e-07], [1.7079e-07], [64485], [10]], "benchmarks.ColorSuite.time_downgrade_to_standard": [[1.7092673771154095e-07], [], "f5e8556491c977450fff6ebfd9fff4fc8f12d74829aa5b8570bd27ea7a1c9d28", 1646929090054, 0.45482, [1.6949e-07], [1.7234e-07], [1.7e-07], [1.7151e-07], [63614], [10]], "benchmarks.ColorSuite.time_downgrade_to_windows": [[1.7118832265832778e-07], [], "373eb97dd7ce2823e080972249235f528e8b3a47210911981cf432ecf0eef5fb", 1646929090280, 0.46223, [1.7013e-07], [1.7411e-07], [1.707e-07], [1.7141e-07], [64578], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_eight_bit": [[1.6962613380158e-07], [], "716ff06a471a5d90af3730f6d4470eba3577432d781e0210dff1fd156b8c549c", 1646929090510, 0.44887, [1.6868e-07], [1.7118e-07], [1.6912e-07], [1.7012e-07], [62624], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_standard": [[1.7009122965568404e-07], [], "3a752a7884e99e095c31b2a28cfefdf916cb2033c06afae1ea146a72f3ba650c", 1646929090733, 0.45688, [1.6908e-07], [1.7287e-07], [1.6945e-07], [1.7046e-07], [64546], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_windows": [[1.7011294502290056e-07], [], "1732bbd18ada49eb7b054fc18b40d6acfb533023463366f37203dab6fbb0cc20", 1646929090961, 0.45667, [1.6904e-07], [1.7093e-07], [1.6954e-07], [1.7062e-07], [64381], [10]], "benchmarks.PrettySuite.time_pretty": [[0.000972337135780518], [], "9bb0e6d8a29aad21b3d1b550a160fa5f1e9030c69d16bad500c0dcc77bff6d01", 1646929091189, 0.44401, [0.00096904], [0.00097486], [0.00097048], [0.00097325], [11], [10]], "benchmarks.PrettySuite.time_pretty_indent_guides": [[0.0013077630628686165], [], "8d71bf19dfe999b0fba95d009986bfd6911c53c7a0c455466725f553005c3bc7", 1646929091415, 0.43937, [0.0013022], [0.001312], [0.0013064], [0.0013097], [8], [10]], "benchmarks.PrettySuite.time_pretty_justify_center": [[0.0013684609366464429], [], "54cbf71bacab14ccbe1d063847c0b89198ed1bbe06edc89c14d2e3c7b1986c41", 1646929091639, 0.44136, [0.001358], [0.0013773], [0.0013608], [0.0013732], [8], [10]], "benchmarks.StyleSuite.time_parse_ansi": [[1.1430164070272298e-07], [], "a003aaa8017585efeb1cd9c43351282df4df6249bf28a4c447b1304d984aa753", 1646929091859, 0.45508, [1.1396e-07], [1.1494e-07], [1.1412e-07], [1.1444e-07], [95443], [10]], "benchmarks.StyleSuite.time_parse_hex": [[1.1491249709035666e-07], [], "cf5a3f0def435d3da5bc3a6e7549c44c0a02e9cce6c00ecde8dd7f527556f8ca", 1646929092087, 0.45343, [1.1386e-07], [1.1562e-07], [1.1421e-07], [1.155e-07], [94494], [10]], "benchmarks.StyleSuite.time_parse_mixed_complex_style": [[1.1431698443041508e-07], [], "01c9e12ae829b1984e55a5aeef1a9ae6f1461577adaf5ae59f06358c8b52802f", 1646929092313, 0.45685, [1.1413e-07], [1.1913e-07], [1.1426e-07], [1.1702e-07], [95582], [10]], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_heavy_wrapping": [null, [], "1ed4d74ea424990cfb40c96f07635f9bcf7b8bacc7ade5204aaf96363e1622ee", 1646929086315, 0.06262], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_medium_wrapping": [null, [], "0880e162a4907ee025cef8ac3380502554fde27fd0c90a4c15cebc9c27f3e333", 1646929086378, 0.062341], "benchmarks.SyntaxWrappingSuite.time_text_wide_terminal_no_wrapping": [null, [], "feb11e94ae6a75de2dee899fb93db098b55cde232710660d7d66f9e2b288d9c0", 1646929086440, 0.062366], "benchmarks.TableSuite.time_table_heavy_wrapping": [[0.00207476660143584], [], "ca515a9739c1e0f8eb922420f9f9caf27321fb13c8bd0bc49b207a0588b370de", 1646929092540, 0.4364, [0.0020652], [0.0020805], [0.0020677], [0.0020774], [5], [10]], "benchmarks.TableSuite.time_table_no_wrapping": [[0.001251054749445757], [], "8842a5f141d8208ba2bab66e4973e978cb5d0615f326af5d70385ff8fa44b3b9", 1646929092762, 0.43627, [0.0012469], [0.001262], [0.0012485], [0.0012552], [8], [10]], "benchmarks.TextSuite.time_align_center": [[0.000661882812892145], [], "1ceeeef2de43fcb3d0dfec409972d8f0eb791e9615fa9f9c959e0423725b089b", 1646929092978, 0.44035, [0.00066045], [0.00066339], [0.00066146], [0.00066277], [16], [10]], "benchmarks.TextSuite.time_align_center_unicode_heavy": [[0.0005466436575117864], [], "a83ff79614dd2ae17e8b68f45981fcaa0d9833c59a7a14f171b896cf970f54ce", 1646929093201, 0.44265, [0.00054342], [0.0005538], [0.0005444], [0.00054695], [19], [10]], "benchmarks.TextSuite.time_divide": [[2.5366444275455157e-05], [], "dcc120b921cb2ec77632f8fe2f6f4150d479cb49ef2608f8e86b569a937756e9", 1646929093420, 0.45683, [2.5271e-05], [2.5535e-05], [2.5299e-05], [2.5462e-05], [431], [10]], "benchmarks.TextSuite.time_divide_unicode_heavy": [[0.00018469684487329153], [], "ea53e662c0553324f90ac3336dcee77f733bb33638888e1f84bf71945a2f3f8e", 1646929093647, 0.44995, [0.00018411], [0.00018502], [0.00018453], [0.00018493], [58], [10]], "benchmarks.TextSuite.time_fit": [[4.3361421063191706e-05], [], "ec77b412db357b1e1c1e7bc620b941dddfc36dc76d2a66a0417feae4f21fe1d3", 1646929093872, 0.4422, [4.3335e-05], [4.3506e-05], [4.3349e-05], [4.3425e-05], [247], [10]], "benchmarks.TextSuite.time_fit_unicode_heavy": [[0.00032445834817322475], [], "d1574b4af2ef8b80b95b4dbeeb13e5de67b66783f76f9968834776239dd0dc66", 1646929094096, 0.4506, [0.00032343], [0.0003253], [0.00032419], [0.00032453], [33], [10]], "benchmarks.TextSuite.time_indent_guides": [[0.00035498203390583007], [], "18da036dcfc15ec5e3c11e72be7c8f0c22fba695a5f19c95836be36952376cf2", 1646929094320, 0.44019, [0.00035425], [0.00035599], [0.00035485], [0.00035568], [29], [10]], "benchmarks.TextSuite.time_render": [[4.687589526901436e-06], [], "907d30581cfdc7bb2c4d302b7e3cb474aaefd8b84821365fe105af7d82be3b09", 1646929094538, 0.44858, [4.6745e-06], [4.6954e-06], [4.6828e-06], [4.6901e-06], [2329], [10]], "benchmarks.TextSuite.time_render_unicode_heavy": [[8.555615625027713e-05], [], "b3f1c09dfd06f412a20dacfe378c3b446727c7d4f9a975336eab3daa8543e1cb", 1646929094766, 0.45088, [8.4769e-05], [8.5884e-05], [8.5105e-05], [8.5856e-05], [128], [10]], "benchmarks.TextSuite.time_split": [[3.505739197510505e-05], [], "9c165854130cb95fea5491ffcd8b580a5bd373149da2ef8aace0e9480f649854", 1646929094992, 0.44399, [3.5007e-05], [3.5136e-05], [3.5037e-05], [3.5116e-05], [310], [10]], "benchmarks.TextSuite.time_split_unicode_heavy": [[0.00027359703955497886], [], "d55b02f6d06f478d70635bac3409f3a9899137d9cee87a70a293b8ccf5a6afa4", 1646929095218, 0.44023, [0.00027306], [0.00027515], [0.00027345], [0.000274], [38], [10]], "benchmarks.TextSuite.time_wrapping": [[0.0010967875001369975], [], "8c821eba13d043f228fd902d8f678c397741855db05d02abe9b82f3d65cdf03d", 1646929095438, 0.43781, [0.001095], [0.0011008], [0.0010958], [0.001098], [10], [10]], "benchmarks.TextSuite.time_wrapping_unicode_heavy": [[0.0014890833595667835], [], "ec6e2ef08b6cdee182fef4e26c0043f8c365984f9a31be07dbd792e1aed862d8", 1646929095656, 0.4383, [0.001485], [0.0014968], [0.0014866], [0.0014923], [7], [10]]}, "durations": {"": 2.004281997680664}, "version": 2} diff --git a/benchmarks/results/darrenburns-2022-mbp/1cdcd1ae-virtualenv-py3.10.json b/benchmarks/results/darrenburns-2022-mbp/1cdcd1ae-virtualenv-py3.10.json new file mode 100644 index 0000000000..39f54bf94f --- /dev/null +++ b/benchmarks/results/darrenburns-2022-mbp/1cdcd1ae-virtualenv-py3.10.json @@ -0,0 +1 @@ +{"commit_hash": "1cdcd1ae6921ada4c9d53ca476b2155f19f9399d", "env_name": "virtualenv-py3.10", "date": 1599498296000, "params": {"arch": "arm64", "cpu": "Apple M1 Pro", "machine": "darrenburns-2022-mbp", "num_cpu": "10", "os": "Darwin 21.2.0", "ram": "17179869184", "python": "3.10"}, "python": "3.10", "requirements": {}, "env_vars": {}, "result_columns": ["result", "params", "version", "started_at", "duration", "stats_ci_99_a", "stats_ci_99_b", "stats_q_25", "stats_q_75", "stats_number", "stats_repeat", "samples", "profile"], "results": {"benchmarks.ColorSuite.time_downgrade_to_eight_bit": [[1.705568368247799e-07], [], "019b972f782c6291df9a6a4dea9bb3c6268a69b177e71383d6e19a608e84920d", 1646928882805, 0.45364, [1.6962e-07], [1.7342e-07], [1.7015e-07], [1.7115e-07], [64527], [10]], "benchmarks.ColorSuite.time_downgrade_to_standard": [[1.7353461403789348e-07], [], "f5e8556491c977450fff6ebfd9fff4fc8f12d74829aa5b8570bd27ea7a1c9d28", 1646928883034, 0.42549, [1.7268e-07], [1.7396e-07], [1.7299e-07], [1.737e-07], [58560], [10]], "benchmarks.ColorSuite.time_downgrade_to_windows": [[1.7316303125600367e-07], [], "373eb97dd7ce2823e080972249235f528e8b3a47210911981cf432ecf0eef5fb", 1646928883246, 0.4294, [1.7168e-07], [1.7478e-07], [1.7298e-07], [1.7352e-07], [63497], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_eight_bit": [[1.7447719773084267e-07], [], "716ff06a471a5d90af3730f6d4470eba3577432d781e0210dff1fd156b8c549c", 1646928883461, 0.44356, [1.7288e-07], [1.7668e-07], [1.7323e-07], [1.7545e-07], [64643], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_standard": [[1.7148101237034193e-07], [], "3a752a7884e99e095c31b2a28cfefdf916cb2033c06afae1ea146a72f3ba650c", 1646928883681, 0.42463, [1.701e-07], [1.7453e-07], [1.7052e-07], [1.7326e-07], [59012], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_windows": [[1.7355933307819902e-07], [], "1732bbd18ada49eb7b054fc18b40d6acfb533023463366f37203dab6fbb0cc20", 1646928883892, 0.43809, [1.7275e-07], [1.7616e-07], [1.7321e-07], [1.7415e-07], [58610], [10]], "benchmarks.PrettySuite.time_pretty": [[0.0011024979015928694], [], "9bb0e6d8a29aad21b3d1b550a160fa5f1e9030c69d16bad500c0dcc77bff6d01", 1646928884116, 0.43685, [0.0010944], [0.0011099], [0.0010967], [0.0011031], [10], [10]], "benchmarks.PrettySuite.time_pretty_indent_guides": [null, [], "8d71bf19dfe999b0fba95d009986bfd6911c53c7a0c455466725f553005c3bc7", 1646928878599, 0.057919], "benchmarks.PrettySuite.time_pretty_justify_center": [[0.0014977678552635812], [], "54cbf71bacab14ccbe1d063847c0b89198ed1bbe06edc89c14d2e3c7b1986c41", 1646928884338, 0.42821, [0.0014925], [0.0015054], [0.0014937], [0.0015007], [7], [10]], "benchmarks.StyleSuite.time_parse_ansi": [[1.166435123150466e-07], [], "a003aaa8017585efeb1cd9c43351282df4df6249bf28a4c447b1304d984aa753", 1646928884555, 0.45026, [1.1584e-07], [1.1744e-07], [1.1616e-07], [1.1723e-07], [94647], [10]], "benchmarks.StyleSuite.time_parse_hex": [[1.1640746952978313e-07], [], "cf5a3f0def435d3da5bc3a6e7549c44c0a02e9cce6c00ecde8dd7f527556f8ca", 1646928884782, 0.43907, [1.1609e-07], [1.1776e-07], [1.1617e-07], [1.1644e-07], [96741], [10]], "benchmarks.StyleSuite.time_parse_mixed_complex_style": [[1.1622925278202787e-07], [], "01c9e12ae829b1984e55a5aeef1a9ae6f1461577adaf5ae59f06358c8b52802f", 1646928884996, 0.42174, [1.1371e-07], [1.1684e-07], [1.1418e-07], [1.1632e-07], [87578], [10]], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_heavy_wrapping": [null, [], "1ed4d74ea424990cfb40c96f07635f9bcf7b8bacc7ade5204aaf96363e1622ee", 1646928879529, 0.057596], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_medium_wrapping": [null, [], "0880e162a4907ee025cef8ac3380502554fde27fd0c90a4c15cebc9c27f3e333", 1646928879586, 0.057483], "benchmarks.SyntaxWrappingSuite.time_text_wide_terminal_no_wrapping": [null, [], "feb11e94ae6a75de2dee899fb93db098b55cde232710660d7d66f9e2b288d9c0", 1646928879644, 0.057169], "benchmarks.TableSuite.time_table_heavy_wrapping": [[0.003037343623873312], [], "ca515a9739c1e0f8eb922420f9f9caf27321fb13c8bd0bc49b207a0588b370de", 1646928885207, 0.45489, [0.00298], [0.003058], [0.0030059], [0.0030443], [4], [10]], "benchmarks.TableSuite.time_table_no_wrapping": [[0.0019962360844753375], [], "8842a5f141d8208ba2bab66e4973e978cb5d0615f326af5d70385ff8fa44b3b9", 1646928885437, 0.44739, [0.0019745], [0.0020171], [0.0019819], [0.0020121], [6], [10]], "benchmarks.TextSuite.time_align_center": [[0.0006737250000393639], [], "1ceeeef2de43fcb3d0dfec409972d8f0eb791e9615fa9f9c959e0423725b089b", 1646928885666, 0.43149, [0.00067005], [0.00067538], [0.00067066], [0.00067494], [15], [10]], "benchmarks.TextSuite.time_align_center_unicode_heavy": [[0.0005601316056287799], [], "a83ff79614dd2ae17e8b68f45981fcaa0d9833c59a7a14f171b896cf970f54ce", 1646928885881, 0.43921, [0.00055301], [0.00056437], [0.00055602], [0.00056384], [19], [10]], "benchmarks.TextSuite.time_divide": [[2.818369192184331e-05], [], "dcc120b921cb2ec77632f8fe2f6f4150d479cb49ef2608f8e86b569a937756e9", 1646928886100, 0.44158, [2.7905e-05], [2.8463e-05], [2.7962e-05], [2.842e-05], [383], [10]], "benchmarks.TextSuite.time_divide_unicode_heavy": [[0.0001909163070274844], [], "ea53e662c0553324f90ac3336dcee77f733bb33638888e1f84bf71945a2f3f8e", 1646928886322, 0.44359, [0.00018748], [0.00019467], [0.00018879], [0.00019221], [57], [10]], "benchmarks.TextSuite.time_fit": [[4.2670565776515796e-05], [], "ec77b412db357b1e1c1e7bc620b941dddfc36dc76d2a66a0417feae4f21fe1d3", 1646928886546, 0.44656, [4.2139e-05], [4.4498e-05], [4.2213e-05], [4.3079e-05], [251], [10]], "benchmarks.TextSuite.time_fit_unicode_heavy": [[0.00033311961282555375], [], "d1574b4af2ef8b80b95b4dbeeb13e5de67b66783f76f9968834776239dd0dc66", 1646928886772, 0.42921, [0.00032975], [0.00033847], [0.00032986], [0.00033756], [31], [10]], "benchmarks.TextSuite.time_indent_guides": [null, [], "18da036dcfc15ec5e3c11e72be7c8f0c22fba695a5f19c95836be36952376cf2", 1646928881456, 0.057662], "benchmarks.TextSuite.time_render": [[4.760116070671883e-06], [], "907d30581cfdc7bb2c4d302b7e3cb474aaefd8b84821365fe105af7d82be3b09", 1646928886988, 0.42257, [4.742e-06], [4.7767e-06], [4.7449e-06], [4.7646e-06], [2115], [10]], "benchmarks.TextSuite.time_render_unicode_heavy": [[8.695512392128317e-05], [], "b3f1c09dfd06f412a20dacfe378c3b446727c7d4f9a975336eab3daa8543e1cb", 1646928887197, 0.41961, [8.6476e-05], [8.7212e-05], [8.6858e-05], [8.7033e-05], [117], [10]], "benchmarks.TextSuite.time_split": [[3.436987540095497e-05], [], "9c165854130cb95fea5491ffcd8b580a5bd373149da2ef8aace0e9480f649854", 1646928887408, 0.43994, [3.4216e-05], [3.4482e-05], [3.4271e-05], [3.4474e-05], [313], [10]], "benchmarks.TextSuite.time_split_unicode_heavy": [[0.00028506587802218527], [], "d55b02f6d06f478d70635bac3409f3a9899137d9cee87a70a293b8ccf5a6afa4", 1646928887627, 0.43164, [0.00028086], [0.00028588], [0.00028401], [0.0002853], [37], [10]], "benchmarks.TextSuite.time_wrapping": [[0.001164951387585865], [], "8c821eba13d043f228fd902d8f678c397741855db05d02abe9b82f3d65cdf03d", 1646928887843, 0.42585, [0.0011635], [0.0011668], [0.0011642], [0.0011661], [9], [10]], "benchmarks.TextSuite.time_wrapping_unicode_heavy": [[0.001557139931329792], [], "ec6e2ef08b6cdee182fef4e26c0043f8c365984f9a31be07dbd792e1aed862d8", 1646928888059, 0.44239, [0.0015535], [0.0016329], [0.0015546], [0.0015674], [7], [10]]}, "durations": {"": 1.9608781337738037}, "version": 2} diff --git a/benchmarks/results/darrenburns-2022-mbp/1f3f7f1e-virtualenv-py3.10.json b/benchmarks/results/darrenburns-2022-mbp/1f3f7f1e-virtualenv-py3.10.json new file mode 100644 index 0000000000..52ad68e547 --- /dev/null +++ b/benchmarks/results/darrenburns-2022-mbp/1f3f7f1e-virtualenv-py3.10.json @@ -0,0 +1 @@ +{"commit_hash": "1f3f7f1e33f77838a2cc31bd9d241a93c871047f", "env_name": "virtualenv-py3.10", "date": 1608307479000, "params": {"arch": "arm64", "cpu": "Apple M1 Pro", "machine": "darrenburns-2022-mbp", "num_cpu": "10", "os": "Darwin 21.2.0", "ram": "17179869184", "python": "3.10"}, "python": "3.10", "requirements": {}, "env_vars": {}, "result_columns": ["result", "params", "version", "started_at", "duration", "stats_ci_99_a", "stats_ci_99_b", "stats_q_25", "stats_q_75", "stats_number", "stats_repeat", "samples", "profile"], "results": {"benchmarks.ColorSuite.time_downgrade_to_eight_bit": [[1.703931932788809e-07], [], "019b972f782c6291df9a6a4dea9bb3c6268a69b177e71383d6e19a608e84920d", 1646929161288, 0.45859, [1.6923e-07], [1.7082e-07], [1.701e-07], [1.7065e-07], [64392], [10]], "benchmarks.ColorSuite.time_downgrade_to_standard": [[1.7020538441303092e-07], [], "f5e8556491c977450fff6ebfd9fff4fc8f12d74829aa5b8570bd27ea7a1c9d28", 1646929161517, 0.45514, [1.6879e-07], [1.7066e-07], [1.6977e-07], [1.7031e-07], [64854], [10]], "benchmarks.ColorSuite.time_downgrade_to_windows": [[1.7056068405892232e-07], [], "373eb97dd7ce2823e080972249235f528e8b3a47210911981cf432ecf0eef5fb", 1646929161746, 0.45807, [1.693e-07], [1.733e-07], [1.7035e-07], [1.7088e-07], [64399], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_eight_bit": [[1.705333182701678e-07], [], "716ff06a471a5d90af3730f6d4470eba3577432d781e0210dff1fd156b8c549c", 1646929161975, 0.45658, [1.6917e-07], [1.7199e-07], [1.7018e-07], [1.7079e-07], [64289], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_standard": [[1.7041273254645358e-07], [], "3a752a7884e99e095c31b2a28cfefdf916cb2033c06afae1ea146a72f3ba650c", 1646929162205, 0.44858, [1.6973e-07], [1.7252e-07], [1.7013e-07], [1.7082e-07], [64818], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_windows": [[1.7027633476621383e-07], [], "1732bbd18ada49eb7b054fc18b40d6acfb533023463366f37203dab6fbb0cc20", 1646929162434, 0.45952, [1.6857e-07], [1.7058e-07], [1.7003e-07], [1.7033e-07], [64572], [10]], "benchmarks.PrettySuite.time_pretty": [[0.0010267562494846061], [], "9bb0e6d8a29aad21b3d1b550a160fa5f1e9030c69d16bad500c0dcc77bff6d01", 1646929162664, 0.44331, [0.0010235], [0.0010305], [0.0010255], [0.0010279], [10], [10]], "benchmarks.PrettySuite.time_pretty_indent_guides": [[0.0014362797852040135], [], "8d71bf19dfe999b0fba95d009986bfd6911c53c7a0c455466725f553005c3bc7", 1646929162884, 0.43646, [0.0014286], [0.0014465], [0.0014338], [0.0014394], [7], [10]], "benchmarks.PrettySuite.time_pretty_justify_center": [[0.0014140286239125999], [], "54cbf71bacab14ccbe1d063847c0b89198ed1bbe06edc89c14d2e3c7b1986c41", 1646929163101, 0.44445, [0.0014062], [0.0014202], [0.0014084], [0.0014154], [8], [10]], "benchmarks.StyleSuite.time_parse_ansi": [[1.142687560373927e-07], [], "a003aaa8017585efeb1cd9c43351282df4df6249bf28a4c447b1304d984aa753", 1646929163325, 0.45463, [1.137e-07], [1.1446e-07], [1.1421e-07], [1.1434e-07], [95929], [10]], "benchmarks.StyleSuite.time_parse_hex": [[1.1458354459388465e-07], [], "cf5a3f0def435d3da5bc3a6e7549c44c0a02e9cce6c00ecde8dd7f527556f8ca", 1646929163552, 0.4544, [1.1417e-07], [1.1476e-07], [1.1445e-07], [1.1468e-07], [95416], [10]], "benchmarks.StyleSuite.time_parse_mixed_complex_style": [[1.1472335320262367e-07], [], "01c9e12ae829b1984e55a5aeef1a9ae6f1461577adaf5ae59f06358c8b52802f", 1646929163780, 0.4554, [1.1442e-07], [1.1512e-07], [1.1458e-07], [1.15e-07], [95443], [10]], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_heavy_wrapping": [null, [], "1ed4d74ea424990cfb40c96f07635f9bcf7b8bacc7ade5204aaf96363e1622ee", 1646929157775, 0.062463], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_medium_wrapping": [null, [], "0880e162a4907ee025cef8ac3380502554fde27fd0c90a4c15cebc9c27f3e333", 1646929157837, 0.061992], "benchmarks.SyntaxWrappingSuite.time_text_wide_terminal_no_wrapping": [null, [], "feb11e94ae6a75de2dee899fb93db098b55cde232710660d7d66f9e2b288d9c0", 1646929157899, 0.062211], "benchmarks.TableSuite.time_table_heavy_wrapping": [[0.0032340572506655008], [], "ca515a9739c1e0f8eb922420f9f9caf27321fb13c8bd0bc49b207a0588b370de", 1646929164009, 0.46805, [0.0032236], [0.0032444], [0.0032287], [0.0032357], [4], [10]], "benchmarks.TableSuite.time_table_no_wrapping": [[0.0021162582997931167], [], "8842a5f141d8208ba2bab66e4973e978cb5d0615f326af5d70385ff8fa44b3b9", 1646929164243, 0.44337, [0.0021092], [0.0021347], [0.0021129], [0.0021201], [5], [10]], "benchmarks.TextSuite.time_align_center": [[0.0006617669696424855], [], "1ceeeef2de43fcb3d0dfec409972d8f0eb791e9615fa9f9c959e0423725b089b", 1646929164468, 0.43891, [0.00065738], [0.00066599], [0.00066033], [0.00066231], [16], [10]], "benchmarks.TextSuite.time_align_center_unicode_heavy": [[0.0005468464997217158], [], "a83ff79614dd2ae17e8b68f45981fcaa0d9833c59a7a14f171b896cf970f54ce", 1646929164690, 0.44217, [0.00054411], [0.00054843], [0.00054538], [0.00054767], [19], [10]], "benchmarks.TextSuite.time_divide": [[2.7952577626197842e-05], [], "dcc120b921cb2ec77632f8fe2f6f4150d479cb49ef2608f8e86b569a937756e9", 1646929164908, 0.44657, [2.7909e-05], [2.7989e-05], [2.7919e-05], [2.7967e-05], [380], [10]], "benchmarks.TextSuite.time_divide_unicode_heavy": [[0.00018724159663338868], [], "ea53e662c0553324f90ac3336dcee77f733bb33638888e1f84bf71945a2f3f8e", 1646929165131, 0.44684, [0.00018651], [0.00018754], [0.00018714], [0.00018733], [57], [10]], "benchmarks.TextSuite.time_fit": [[4.227643285228285e-05], [], "ec77b412db357b1e1c1e7bc620b941dddfc36dc76d2a66a0417feae4f21fe1d3", 1646929165354, 0.43917, [4.2036e-05], [4.258e-05], [4.2188e-05], [4.2403e-05], [253], [10]], "benchmarks.TextSuite.time_fit_unicode_heavy": [[0.0003293743066024035], [], "d1574b4af2ef8b80b95b4dbeeb13e5de67b66783f76f9968834776239dd0dc66", 1646929165578, 0.43507, [0.00032889], [0.00033153], [0.00032921], [0.00032998], [31], [10]], "benchmarks.TextSuite.time_indent_guides": [[0.0003918501729808318], [], "18da036dcfc15ec5e3c11e72be7c8f0c22fba695a5f19c95836be36952376cf2", 1646929165795, 0.43461, [0.00039051], [0.00039799], [0.00039136], [0.00039218], [26], [10]], "benchmarks.TextSuite.time_render": [[4.68115087639879e-06], [], "907d30581cfdc7bb2c4d302b7e3cb474aaefd8b84821365fe105af7d82be3b09", 1646929166011, 0.44561, [4.6684e-06], [4.6924e-06], [4.6784e-06], [4.686e-06], [2333], [10]], "benchmarks.TextSuite.time_render_unicode_heavy": [[8.53504219548995e-05], [], "b3f1c09dfd06f412a20dacfe378c3b446727c7d4f9a975336eab3daa8543e1cb", 1646929166237, 0.44988, [8.5094e-05], [8.6095e-05], [8.5284e-05], [8.547e-05], [128], [10]], "benchmarks.TextSuite.time_split": [[3.385456750383511e-05], [], "9c165854130cb95fea5491ffcd8b580a5bd373149da2ef8aace0e9480f649854", 1646929166464, 0.44438, [3.3742e-05], [3.3929e-05], [3.3823e-05], [3.3879e-05], [311], [10]], "benchmarks.TextSuite.time_split_unicode_heavy": [[0.00027912950011070917], [], "d55b02f6d06f478d70635bac3409f3a9899137d9cee87a70a293b8ccf5a6afa4", 1646929166685, 0.43738, [0.00027865], [0.00027997], [0.00027899], [0.00027929], [37], [10]], "benchmarks.TextSuite.time_wrapping": [[0.0011472963330258303], [], "8c821eba13d043f228fd902d8f678c397741855db05d02abe9b82f3d65cdf03d", 1646929166903, 0.44227, [0.0011447], [0.00115], [0.0011466], [0.001148], [9], [10]], "benchmarks.TextSuite.time_wrapping_unicode_heavy": [[0.001529297641744571], [], "ec6e2ef08b6cdee182fef4e26c0043f8c365984f9a31be07dbd792e1aed862d8", 1646929167122, 0.4453, [0.0015237], [0.0015325], [0.0015285], [0.00153], [7], [10]]}, "durations": {"": 1.9861979484558105}, "version": 2} diff --git a/benchmarks/results/darrenburns-2022-mbp/1ffbd443-virtualenv-py3.10.json b/benchmarks/results/darrenburns-2022-mbp/1ffbd443-virtualenv-py3.10.json new file mode 100644 index 0000000000..e71ade3748 --- /dev/null +++ b/benchmarks/results/darrenburns-2022-mbp/1ffbd443-virtualenv-py3.10.json @@ -0,0 +1 @@ +{"commit_hash": "1ffbd443774cbc4bf9ddd968aef7c03322f33cf0", "env_name": "virtualenv-py3.10", "date": 1596366683000, "params": {"arch": "arm64", "cpu": "Apple M1 Pro", "machine": "darrenburns-2022-mbp", "num_cpu": "10", "os": "Darwin 21.2.0", "ram": "17179869184", "python": "3.10"}, "python": "3.10", "requirements": {}, "env_vars": {}, "result_columns": ["result", "params", "version", "started_at", "duration", "stats_ci_99_a", "stats_ci_99_b", "stats_q_25", "stats_q_75", "stats_number", "stats_repeat", "samples", "profile"], "results": {"benchmarks.ColorSuite.time_downgrade_to_eight_bit": [[1.7070232469184862e-07], [], "019b972f782c6291df9a6a4dea9bb3c6268a69b177e71383d6e19a608e84920d", 1646928804297, 0.45023, [1.6927e-07], [1.7389e-07], [1.7042e-07], [1.7213e-07], [64436], [10]], "benchmarks.ColorSuite.time_downgrade_to_standard": [[1.7300031985374115e-07], [], "f5e8556491c977450fff6ebfd9fff4fc8f12d74829aa5b8570bd27ea7a1c9d28", 1646928804522, 0.43027, [1.714e-07], [1.7366e-07], [1.7285e-07], [1.7337e-07], [59395], [10]], "benchmarks.ColorSuite.time_downgrade_to_windows": [[1.7071083096988122e-07], [], "373eb97dd7ce2823e080972249235f528e8b3a47210911981cf432ecf0eef5fb", 1646928804735, 0.43349, [1.6954e-07], [1.7407e-07], [1.7012e-07], [1.727e-07], [58675], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_eight_bit": [[1.7364779467078806e-07], [], "716ff06a471a5d90af3730f6d4470eba3577432d781e0210dff1fd156b8c549c", 1646928804955, 0.44766, [1.7322e-07], [1.7426e-07], [1.7342e-07], [1.7405e-07], [62093], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_standard": [[1.733705418271591e-07], [], "3a752a7884e99e095c31b2a28cfefdf916cb2033c06afae1ea146a72f3ba650c", 1646928805177, 0.4257, [1.7183e-07], [1.7385e-07], [1.7273e-07], [1.7346e-07], [58598], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_windows": [[1.719841129250439e-07], [], "1732bbd18ada49eb7b054fc18b40d6acfb533023463366f37203dab6fbb0cc20", 1646928805388, 0.43326, [1.6999e-07], [1.7562e-07], [1.7034e-07], [1.7397e-07], [58475], [10]], "benchmarks.PrettySuite.time_pretty": [[0.002223750000121072], [], "9bb0e6d8a29aad21b3d1b550a160fa5f1e9030c69d16bad500c0dcc77bff6d01", 1646928805607, 0.43956, [0.0021902], [0.0022511], [0.002196], [0.0022475], [5], [10]], "benchmarks.PrettySuite.time_pretty_indent_guides": [null, [], "8d71bf19dfe999b0fba95d009986bfd6911c53c7a0c455466725f553005c3bc7", 1646928800258, 0.058885], "benchmarks.PrettySuite.time_pretty_justify_center": [null, [], "54cbf71bacab14ccbe1d063847c0b89198ed1bbe06edc89c14d2e3c7b1986c41", 1646928800317, 0.058889], "benchmarks.StyleSuite.time_parse_ansi": [[1.1622428057566312e-07], [], "a003aaa8017585efeb1cd9c43351282df4df6249bf28a4c447b1304d984aa753", 1646928805822, 0.4264, [1.1594e-07], [1.1743e-07], [1.1599e-07], [1.163e-07], [87716], [10]], "benchmarks.StyleSuite.time_parse_hex": [[1.1646962131907206e-07], [], "cf5a3f0def435d3da5bc3a6e7549c44c0a02e9cce6c00ecde8dd7f527556f8ca", 1646928806036, 0.42635, [1.1609e-07], [1.1701e-07], [1.1633e-07], [1.1665e-07], [87479], [10]], "benchmarks.StyleSuite.time_parse_mixed_complex_style": [[1.1598065675378016e-07], [], "01c9e12ae829b1984e55a5aeef1a9ae6f1461577adaf5ae59f06358c8b52802f", 1646928806250, 0.42715, [1.1553e-07], [1.1744e-07], [1.1578e-07], [1.1633e-07], [87809], [10]], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_heavy_wrapping": [null, [], "1ed4d74ea424990cfb40c96f07635f9bcf7b8bacc7ade5204aaf96363e1622ee", 1646928801016, 0.058796], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_medium_wrapping": [null, [], "0880e162a4907ee025cef8ac3380502554fde27fd0c90a4c15cebc9c27f3e333", 1646928801075, 0.058582], "benchmarks.SyntaxWrappingSuite.time_text_wide_terminal_no_wrapping": [null, [], "feb11e94ae6a75de2dee899fb93db098b55cde232710660d7d66f9e2b288d9c0", 1646928801133, 0.058738], "benchmarks.TableSuite.time_table_heavy_wrapping": [[0.002116570805083029], [], "ca515a9739c1e0f8eb922420f9f9caf27321fb13c8bd0bc49b207a0588b370de", 1646928806463, 0.43813, [0.0020973], [0.0021369], [0.0021035], [0.0021333], [5], [10]], "benchmarks.TableSuite.time_table_no_wrapping": [[0.0014812797848467846], [], "8842a5f141d8208ba2bab66e4973e978cb5d0615f326af5d70385ff8fa44b3b9", 1646928806686, 0.43095, [0.001464], [0.0014953], [0.0014672], [0.0014931], [7], [10]], "benchmarks.TextSuite.time_align_center": [[0.0006757395931344945], [], "1ceeeef2de43fcb3d0dfec409972d8f0eb791e9615fa9f9c959e0423725b089b", 1646928806904, 0.4392, [0.00067077], [0.00068027], [0.00067389], [0.00067737], [16], [10]], "benchmarks.TextSuite.time_align_center_unicode_heavy": [[0.0005583234742516652], [], "a83ff79614dd2ae17e8b68f45981fcaa0d9833c59a7a14f171b896cf970f54ce", 1646928807126, 0.44214, [0.00055388], [0.00056027], [0.00055668], [0.00055916], [19], [10]], "benchmarks.TextSuite.time_divide": [[2.8112012962508316e-05], [], "dcc120b921cb2ec77632f8fe2f6f4150d479cb49ef2608f8e86b569a937756e9", 1646928807347, 0.44493, [2.7807e-05], [2.8319e-05], [2.7876e-05], [2.8245e-05], [385], [10]], "benchmarks.TextSuite.time_divide_unicode_heavy": [[0.0001871710438424264], [], "ea53e662c0553324f90ac3336dcee77f733bb33638888e1f84bf71945a2f3f8e", 1646928807570, 0.43907, [0.0001869], [0.0001875], [0.00018704], [0.00018733], [57], [10]], "benchmarks.TextSuite.time_fit": [[4.249875195091591e-05], [], "ec77b412db357b1e1c1e7bc620b941dddfc36dc76d2a66a0417feae4f21fe1d3", 1646928807789, 0.43056, [4.2075e-05], [4.2896e-05], [4.2099e-05], [4.2845e-05], [250], [10]], "benchmarks.TextSuite.time_fit_unicode_heavy": [[0.0003327284667951365], [], "d1574b4af2ef8b80b95b4dbeeb13e5de67b66783f76f9968834776239dd0dc66", 1646928808007, 0.43129, [0.00032855], [0.00033677], [0.00032907], [0.00033652], [30], [10]], "benchmarks.TextSuite.time_indent_guides": [null, [], "18da036dcfc15ec5e3c11e72be7c8f0c22fba695a5f19c95836be36952376cf2", 1646928802930, 0.059357], "benchmarks.TextSuite.time_render": [[4.6815491127566895e-06], [], "907d30581cfdc7bb2c4d302b7e3cb474aaefd8b84821365fe105af7d82be3b09", 1646928808224, 0.44173, [4.6507e-06], [4.7003e-06], [4.6611e-06], [4.6843e-06], [2321], [10]], "benchmarks.TextSuite.time_render_unicode_heavy": [[8.508267729473483e-05], [], "b3f1c09dfd06f412a20dacfe378c3b446727c7d4f9a975336eab3daa8543e1cb", 1646928808451, 0.44288, [8.4418e-05], [8.6252e-05], [8.4738e-05], [8.5299e-05], [127], [10]], "benchmarks.TextSuite.time_split": [[3.420339262214465e-05], [], "9c165854130cb95fea5491ffcd8b580a5bd373149da2ef8aace0e9480f649854", 1646928808675, 0.44164, [3.3854e-05], [3.4396e-05], [3.3906e-05], [3.439e-05], [312], [10]], "benchmarks.TextSuite.time_split_unicode_heavy": [[0.00028196733753272404], [], "d55b02f6d06f478d70635bac3409f3a9899137d9cee87a70a293b8ccf5a6afa4", 1646928808893, 0.43339, [0.00027793], [0.00028545], [0.00027845], [0.00028485], [37], [10]], "benchmarks.TextSuite.time_wrapping": [[0.0011584282231827578], [], "8c821eba13d043f228fd902d8f678c397741855db05d02abe9b82f3d65cdf03d", 1646928809107, 0.42614, [0.0011415], [0.001166], [0.0011451], [0.0011654], [9], [10]], "benchmarks.TextSuite.time_wrapping_unicode_heavy": [[0.0015368482854682952], [], "ec6e2ef08b6cdee182fef4e26c0043f8c365984f9a31be07dbd792e1aed862d8", 1646928809322, 0.43864, [0.0015204], [0.0015597], [0.001523], [0.0015532], [7], [10]]}, "durations": {"": 1.9934520721435547}, "version": 2} diff --git a/benchmarks/results/darrenburns-2022-mbp/20024635-virtualenv-py3.10.json b/benchmarks/results/darrenburns-2022-mbp/20024635-virtualenv-py3.10.json new file mode 100644 index 0000000000..02281c3845 --- /dev/null +++ b/benchmarks/results/darrenburns-2022-mbp/20024635-virtualenv-py3.10.json @@ -0,0 +1 @@ +{"commit_hash": "20024635c06c22879fd2fd1e380ec4cccd9935dd", "env_name": "virtualenv-py3.10", "date": 1623261093000, "params": {"arch": "arm64", "cpu": "Apple M1 Pro", "machine": "darrenburns-2022-mbp", "num_cpu": "10", "os": "Darwin 21.2.0", "ram": "17179869184", "python": "3.10"}, "python": "3.10", "requirements": {}, "env_vars": {}, "result_columns": ["result", "params", "version", "started_at", "duration", "stats_ci_99_a", "stats_ci_99_b", "stats_q_25", "stats_q_75", "stats_number", "stats_repeat", "samples", "profile"], "results": {"benchmarks.ColorSuite.time_downgrade_to_eight_bit": [[1.6983895555897055e-07], [], "019b972f782c6291df9a6a4dea9bb3c6268a69b177e71383d6e19a608e84920d", 1646928361639, 0.4602, [1.6891e-07], [1.7034e-07], [1.6976e-07], [1.7013e-07], [64504], [10]], "benchmarks.ColorSuite.time_downgrade_to_standard": [[1.704207071253254e-07], [], "f5e8556491c977450fff6ebfd9fff4fc8f12d74829aa5b8570bd27ea7a1c9d28", 1646928361868, 0.46025, [1.6849e-07], [1.7102e-07], [1.7016e-07], [1.7067e-07], [64697], [10]], "benchmarks.ColorSuite.time_downgrade_to_windows": [[1.7004455784028058e-07], [], "373eb97dd7ce2823e080972249235f528e8b3a47210911981cf432ecf0eef5fb", 1646928362099, 0.44868, [1.6891e-07], [1.7033e-07], [1.6992e-07], [1.7016e-07], [64747], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_eight_bit": [[1.7039779182067198e-07], [], "716ff06a471a5d90af3730f6d4470eba3577432d781e0210dff1fd156b8c549c", 1646928362329, 0.45904, [1.6909e-07], [1.7133e-07], [1.6983e-07], [1.7088e-07], [64212], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_standard": [[1.704956315614673e-07], [], "3a752a7884e99e095c31b2a28cfefdf916cb2033c06afae1ea146a72f3ba650c", 1646928362559, 0.45894, [1.6841e-07], [1.7769e-07], [1.7033e-07], [1.7064e-07], [64209], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_windows": [[1.7057127042677694e-07], [], "1732bbd18ada49eb7b054fc18b40d6acfb533023463366f37203dab6fbb0cc20", 1646928362788, 0.45534, [1.6969e-07], [1.7121e-07], [1.7033e-07], [1.7086e-07], [64171], [10]], "benchmarks.PrettySuite.time_pretty": [[0.001026414601074066], [], "9bb0e6d8a29aad21b3d1b550a160fa5f1e9030c69d16bad500c0dcc77bff6d01", 1646928363015, 0.4439, [0.0010212], [0.0010344], [0.0010224], [0.0010313], [10], [10]], "benchmarks.PrettySuite.time_pretty_indent_guides": [[0.0014226536241039867], [], "8d71bf19dfe999b0fba95d009986bfd6911c53c7a0c455466725f553005c3bc7", 1646928363236, 0.45289, [0.001416], [0.0014322], [0.0014201], [0.0014266], [8], [10]], "benchmarks.PrettySuite.time_pretty_justify_center": [[0.0012958463121321984], [], "54cbf71bacab14ccbe1d063847c0b89198ed1bbe06edc89c14d2e3c7b1986c41", 1646928363461, 0.44525, [0.0012861], [0.0013043], [0.0012892], [0.0012972], [8], [10]], "benchmarks.StyleSuite.time_parse_ansi": [[1.1416102132025705e-07], [], "a003aaa8017585efeb1cd9c43351282df4df6249bf28a4c447b1304d984aa753", 1646928363682, 0.45572, [1.1396e-07], [1.1461e-07], [1.1407e-07], [1.1428e-07], [95950], [10]], "benchmarks.StyleSuite.time_parse_hex": [[1.1438691305359791e-07], [], "cf5a3f0def435d3da5bc3a6e7549c44c0a02e9cce6c00ecde8dd7f527556f8ca", 1646928363911, 0.45515, [1.1394e-07], [1.1478e-07], [1.1431e-07], [1.1448e-07], [95409], [10]], "benchmarks.StyleSuite.time_parse_mixed_complex_style": [[1.1421868408540876e-07], [], "01c9e12ae829b1984e55a5aeef1a9ae6f1461577adaf5ae59f06358c8b52802f", 1646928364138, 0.45615, [1.1368e-07], [1.1473e-07], [1.1415e-07], [1.1444e-07], [95926], [10]], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_heavy_wrapping": [null, [], "1ed4d74ea424990cfb40c96f07635f9bcf7b8bacc7ade5204aaf96363e1622ee", 1646928358128, 0.0632], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_medium_wrapping": [null, [], "0880e162a4907ee025cef8ac3380502554fde27fd0c90a4c15cebc9c27f3e333", 1646928358191, 0.06204], "benchmarks.SyntaxWrappingSuite.time_text_wide_terminal_no_wrapping": [null, [], "feb11e94ae6a75de2dee899fb93db098b55cde232710660d7d66f9e2b288d9c0", 1646928358253, 0.062618], "benchmarks.TableSuite.time_table_heavy_wrapping": [[0.0021179875038797036], [], "ca515a9739c1e0f8eb922420f9f9caf27321fb13c8bd0bc49b207a0588b370de", 1646928364367, 0.44252, [0.0021073], [0.0021326], [0.0021126], [0.0021242], [5], [10]], "benchmarks.TableSuite.time_table_no_wrapping": [[0.0012675312500505242], [], "8842a5f141d8208ba2bab66e4973e978cb5d0615f326af5d70385ff8fa44b3b9", 1646928364592, 0.4402, [0.0012598], [0.0012735], [0.0012634], [0.00127], [8], [10]], "benchmarks.TextSuite.time_align_center": [[0.00038149383369643513], [], "1ceeeef2de43fcb3d0dfec409972d8f0eb791e9615fa9f9c959e0423725b089b", 1646928364811, 0.43836, [0.00037481], [0.00038766], [0.00037498], [0.0003866], [27], [10]], "benchmarks.TextSuite.time_align_center_unicode_heavy": [[0.0003425159666221589], [], "a83ff79614dd2ae17e8b68f45981fcaa0d9833c59a7a14f171b896cf970f54ce", 1646928365026, 0.43853, [0.00033946], [0.00035509], [0.00034024], [0.00034495], [30], [10]], "benchmarks.TextSuite.time_divide": [[2.5188469742208198e-05], [], "dcc120b921cb2ec77632f8fe2f6f4150d479cb49ef2608f8e86b569a937756e9", 1646928365243, 0.45383, [2.5161e-05], [2.5492e-05], [2.5179e-05], [2.5216e-05], [430], [10]], "benchmarks.TextSuite.time_divide_unicode_heavy": [[0.00018495043959460575], [], "ea53e662c0553324f90ac3336dcee77f733bb33638888e1f84bf71945a2f3f8e", 1646928365469, 0.4499, [0.0001844], [0.00018531], [0.00018473], [0.00018512], [58], [10]], "benchmarks.TextSuite.time_fit": [[4.35189776540157e-05], [], "ec77b412db357b1e1c1e7bc620b941dddfc36dc76d2a66a0417feae4f21fe1d3", 1646928365694, 0.44177, [4.3385e-05], [4.359e-05], [4.3404e-05], [4.3577e-05], [247], [10]], "benchmarks.TextSuite.time_fit_unicode_heavy": [[0.00032581788705541724], [], "d1574b4af2ef8b80b95b4dbeeb13e5de67b66783f76f9968834776239dd0dc66", 1646928365918, 0.43243, [0.00032477], [0.00032738], [0.00032515], [0.00032629], [31], [10]], "benchmarks.TextSuite.time_indent_guides": [[0.00035922413848436856], [], "18da036dcfc15ec5e3c11e72be7c8f0c22fba695a5f19c95836be36952376cf2", 1646928366133, 0.44181, [0.00035637], [0.00036654], [0.00035686], [0.00036481], [29], [10]], "benchmarks.TextSuite.time_render": [[4.677533350949419e-06], [], "907d30581cfdc7bb2c4d302b7e3cb474aaefd8b84821365fe105af7d82be3b09", 1646928366353, 0.44778, [4.6705e-06], [4.6884e-06], [4.6737e-06], [4.6824e-06], [2339], [10]], "benchmarks.TextSuite.time_render_unicode_heavy": [[8.51222304163457e-05], [], "b3f1c09dfd06f412a20dacfe378c3b446727c7d4f9a975336eab3daa8543e1cb", 1646928366580, 0.45115, [8.4491e-05], [8.5746e-05], [8.5059e-05], [8.5231e-05], [128], [10]], "benchmarks.TextSuite.time_split": [[3.502959869447855e-05], [], "9c165854130cb95fea5491ffcd8b580a5bd373149da2ef8aace0e9480f649854", 1646928366808, 0.44294, [3.4942e-05], [3.5255e-05], [3.5001e-05], [3.5052e-05], [309], [10]], "benchmarks.TextSuite.time_split_unicode_heavy": [[0.0002733470391831361], [], "d55b02f6d06f478d70635bac3409f3a9899137d9cee87a70a293b8ccf5a6afa4", 1646928367034, 0.43979, [0.00027254], [0.00027459], [0.00027286], [0.00027349], [38], [10]], "benchmarks.TextSuite.time_wrapping": [[0.001097435450355988], [], "8c821eba13d043f228fd902d8f678c397741855db05d02abe9b82f3d65cdf03d", 1646928367253, 0.44983, [0.0010958], [0.0010994], [0.0010966], [0.0010985], [10], [10]], "benchmarks.TextSuite.time_wrapping_unicode_heavy": [[0.0013606223747046897], [], "ec6e2ef08b6cdee182fef4e26c0043f8c365984f9a31be07dbd792e1aed862d8", 1646928367482, 0.45025, [0.0013589], [0.0013655], [0.0013605], [0.0013627], [8], [10]]}, "durations": {"": 1.986271858215332}, "version": 2} diff --git a/benchmarks/results/darrenburns-2022-mbp/2356d7c0-virtualenv-py3.10.json b/benchmarks/results/darrenburns-2022-mbp/2356d7c0-virtualenv-py3.10.json new file mode 100644 index 0000000000..9a3ad96312 --- /dev/null +++ b/benchmarks/results/darrenburns-2022-mbp/2356d7c0-virtualenv-py3.10.json @@ -0,0 +1 @@ +{"commit_hash": "2356d7c0955dd6914367e0f88bfb87be040e35fa", "env_name": "virtualenv-py3.10", "date": 1592909192000, "params": {"arch": "arm64", "cpu": "Apple M1 Pro", "machine": "darrenburns-2022-mbp", "num_cpu": "10", "os": "Darwin 21.2.0", "ram": "17179869184", "python": "3.10"}, "python": "3.10", "requirements": {}, "env_vars": {}, "result_columns": ["result", "params", "version", "started_at", "duration", "stats_ci_99_a", "stats_ci_99_b", "stats_q_25", "stats_q_75", "stats_number", "stats_repeat", "samples", "profile"], "results": {"benchmarks.ColorSuite.time_downgrade_to_eight_bit": [[1.7172214412771086e-07], [], "019b972f782c6291df9a6a4dea9bb3c6268a69b177e71383d6e19a608e84920d", 1646928545725, 0.43274, [1.6935e-07], [1.7379e-07], [1.704e-07], [1.7334e-07], [58946], [10]], "benchmarks.ColorSuite.time_downgrade_to_standard": [[1.7024145879964128e-07], [], "f5e8556491c977450fff6ebfd9fff4fc8f12d74829aa5b8570bd27ea7a1c9d28", 1646928545943, 0.42825, [1.6918e-07], [1.7135e-07], [1.6974e-07], [1.7074e-07], [58803], [10]], "benchmarks.ColorSuite.time_downgrade_to_windows": [[1.738391308822791e-07], [], "373eb97dd7ce2823e080972249235f528e8b3a47210911981cf432ecf0eef5fb", 1646928546161, 0.43086, [1.7044e-07], [1.7602e-07], [1.7326e-07], [1.7435e-07], [64596], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_eight_bit": [[1.726379042416303e-07], [], "716ff06a471a5d90af3730f6d4470eba3577432d781e0210dff1fd156b8c549c", 1646928546376, 0.44901, [1.6989e-07], [1.7437e-07], [1.716e-07], [1.7386e-07], [63914], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_standard": [[1.737988252257405e-07], [], "3a752a7884e99e095c31b2a28cfefdf916cb2033c06afae1ea146a72f3ba650c", 1646928546598, 0.42968, [1.7313e-07], [1.7495e-07], [1.7361e-07], [1.7407e-07], [64777], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_windows": [[1.7115044150572637e-07], [], "1732bbd18ada49eb7b054fc18b40d6acfb533023463366f37203dab6fbb0cc20", 1646928546813, 0.42082, [1.6817e-07], [1.7384e-07], [1.7022e-07], [1.728e-07], [59116], [10]], "benchmarks.PrettySuite.time_pretty": [[0.002197445899946615], [], "9bb0e6d8a29aad21b3d1b550a160fa5f1e9030c69d16bad500c0dcc77bff6d01", 1646928547021, 0.44392, [0.0021812], [0.0022285], [0.0021855], [0.0022212], [5], [10]], "benchmarks.PrettySuite.time_pretty_indent_guides": [null, [], "8d71bf19dfe999b0fba95d009986bfd6911c53c7a0c455466725f553005c3bc7", 1646928541994, 0.057646], "benchmarks.PrettySuite.time_pretty_justify_center": [null, [], "54cbf71bacab14ccbe1d063847c0b89198ed1bbe06edc89c14d2e3c7b1986c41", 1646928542052, 0.057424], "benchmarks.StyleSuite.time_parse_ansi": [[1.1589347573900871e-07], [], "a003aaa8017585efeb1cd9c43351282df4df6249bf28a4c447b1304d984aa753", 1646928547244, 0.44922, [1.1451e-07], [1.1722e-07], [1.148e-07], [1.1672e-07], [95950], [10]], "benchmarks.StyleSuite.time_parse_hex": [[1.1386454792402313e-07], [], "cf5a3f0def435d3da5bc3a6e7549c44c0a02e9cce6c00ecde8dd7f527556f8ca", 1646928547468, 0.44547, [1.1358e-07], [1.1452e-07], [1.1385e-07], [1.1392e-07], [96082], [10]], "benchmarks.StyleSuite.time_parse_mixed_complex_style": [[1.1621056620828583e-07], [], "01c9e12ae829b1984e55a5aeef1a9ae6f1461577adaf5ae59f06358c8b52802f", 1646928547691, 0.43928, [1.1607e-07], [1.1662e-07], [1.1616e-07], [1.164e-07], [96041], [10]], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_heavy_wrapping": [null, [], "1ed4d74ea424990cfb40c96f07635f9bcf7b8bacc7ade5204aaf96363e1622ee", 1646928542772, 0.057653], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_medium_wrapping": [null, [], "0880e162a4907ee025cef8ac3380502554fde27fd0c90a4c15cebc9c27f3e333", 1646928542829, 0.057312], "benchmarks.SyntaxWrappingSuite.time_text_wide_terminal_no_wrapping": [null, [], "feb11e94ae6a75de2dee899fb93db098b55cde232710660d7d66f9e2b288d9c0", 1646928542887, 0.057049], "benchmarks.TableSuite.time_table_heavy_wrapping": [[0.0019805486663244665], [], "ca515a9739c1e0f8eb922420f9f9caf27321fb13c8bd0bc49b207a0588b370de", 1646928547917, 0.44474, [0.001968], [0.0019936], [0.0019755], [0.0019863], [6], [10]], "benchmarks.TableSuite.time_table_no_wrapping": [[0.001404687500325963], [], "8842a5f141d8208ba2bab66e4973e978cb5d0615f326af5d70385ff8fa44b3b9", 1646928548143, 0.43541, [0.0013993], [0.0014117], [0.0014029], [0.001408], [8], [10]], "benchmarks.TextSuite.time_align_center": [null, [], "1ceeeef2de43fcb3d0dfec409972d8f0eb791e9615fa9f9c959e0423725b089b", 1646928543380, 0.057372], "benchmarks.TextSuite.time_align_center_unicode_heavy": [null, [], "a83ff79614dd2ae17e8b68f45981fcaa0d9833c59a7a14f171b896cf970f54ce", 1646928543438, 0.057477], "benchmarks.TextSuite.time_divide": [[2.780205584524272e-05], [], "dcc120b921cb2ec77632f8fe2f6f4150d479cb49ef2608f8e86b569a937756e9", 1646928548361, 0.43971, [2.7652e-05], [2.8388e-05], [2.7697e-05], [2.8229e-05], [385], [10]], "benchmarks.TextSuite.time_divide_unicode_heavy": [[0.000186847956093404], [], "ea53e662c0553324f90ac3336dcee77f733bb33638888e1f84bf71945a2f3f8e", 1646928548582, 0.43701, [0.00018646], [0.00018755], [0.00018678], [0.00018702], [57], [10]], "benchmarks.TextSuite.time_fit": [[4.216500794963978e-05], [], "ec77b412db357b1e1c1e7bc620b941dddfc36dc76d2a66a0417feae4f21fe1d3", 1646928548800, 0.43693, [4.1971e-05], [4.2243e-05], [4.2062e-05], [4.2187e-05], [251], [10]], "benchmarks.TextSuite.time_fit_unicode_heavy": [[0.0003306572583706809], [], "d1574b4af2ef8b80b95b4dbeeb13e5de67b66783f76f9968834776239dd0dc66", 1646928549017, 0.42558, [0.00032946], [0.00033177], [0.00033044], [0.0003311], [31], [10]], "benchmarks.TextSuite.time_indent_guides": [null, [], "18da036dcfc15ec5e3c11e72be7c8f0c22fba695a5f19c95836be36952376cf2", 1646928544369, 0.057703], "benchmarks.TextSuite.time_render": [[4.688928231420179e-06], [], "907d30581cfdc7bb2c4d302b7e3cb474aaefd8b84821365fe105af7d82be3b09", 1646928549228, 0.43696, [4.6756e-06], [4.7089e-06], [4.6816e-06], [4.6987e-06], [2334], [10]], "benchmarks.TextSuite.time_render_unicode_heavy": [[8.531250004605281e-05], [], "b3f1c09dfd06f412a20dacfe378c3b446727c7d4f9a975336eab3daa8543e1cb", 1646928549451, 0.43848, [8.5169e-05], [8.6011e-05], [8.5279e-05], [8.5664e-05], [127], [10]], "benchmarks.TextSuite.time_split": [[3.3767818296597695e-05], [], "9c165854130cb95fea5491ffcd8b580a5bd373149da2ef8aace0e9480f649854", 1646928549671, 0.43425, [3.3675e-05], [3.3832e-05], [3.3718e-05], [3.382e-05], [311], [10]], "benchmarks.TextSuite.time_split_unicode_heavy": [[0.00027953097329323957], [], "d55b02f6d06f478d70635bac3409f3a9899137d9cee87a70a293b8ccf5a6afa4", 1646928549888, 0.42811, [0.00027918], [0.00028037], [0.00027948], [0.00027966], [37], [10]], "benchmarks.TextSuite.time_wrapping": [[0.0011421134469047603], [], "8c821eba13d043f228fd902d8f678c397741855db05d02abe9b82f3d65cdf03d", 1646928550100, 0.42984, [0.0011367], [0.0011504], [0.0011396], [0.0011437], [9], [10]], "benchmarks.TextSuite.time_wrapping_unicode_heavy": [[0.0015162232157308608], [], "ec6e2ef08b6cdee182fef4e26c0043f8c365984f9a31be07dbd792e1aed862d8", 1646928550313, 0.43229, [0.0015144], [0.0015341], [0.0015157], [0.001517], [7], [10]]}, "durations": {"": 1.9319932460784912}, "version": 2} diff --git a/benchmarks/results/darrenburns-2022-mbp/23aa7177-virtualenv-py3.10.json b/benchmarks/results/darrenburns-2022-mbp/23aa7177-virtualenv-py3.10.json new file mode 100644 index 0000000000..c11d51d9b9 --- /dev/null +++ b/benchmarks/results/darrenburns-2022-mbp/23aa7177-virtualenv-py3.10.json @@ -0,0 +1 @@ +{"commit_hash": "23aa71774457c34fe6d1fb527c1c2972447bb18d", "env_name": "virtualenv-py3.10", "date": 1631958005000, "params": {"arch": "arm64", "cpu": "Apple M1 Pro", "machine": "darrenburns-2022-mbp", "num_cpu": "10", "os": "Darwin 21.2.0", "ram": "17179869184", "python": "3.10"}, "python": "3.10", "requirements": {}, "env_vars": {}, "result_columns": ["result", "params", "version", "started_at", "duration", "stats_ci_99_a", "stats_ci_99_b", "stats_q_25", "stats_q_75", "stats_number", "stats_repeat", "samples", "profile"], "results": {"benchmarks.ColorSuite.time_downgrade_to_eight_bit": [[1.701985654024702e-07], [], "019b972f782c6291df9a6a4dea9bb3c6268a69b177e71383d6e19a608e84920d", 1646928159302, 0.4671, [1.6842e-07], [1.712e-07], [1.6995e-07], [1.7066e-07], [64407], [10]], "benchmarks.ColorSuite.time_downgrade_to_standard": [[1.700927061877873e-07], [], "f5e8556491c977450fff6ebfd9fff4fc8f12d74829aa5b8570bd27ea7a1c9d28", 1646928159535, 0.44988, [1.6876e-07], [1.714e-07], [1.6976e-07], [1.7053e-07], [59915], [10]], "benchmarks.ColorSuite.time_downgrade_to_windows": [[1.7008786937183728e-07], [], "373eb97dd7ce2823e080972249235f528e8b3a47210911981cf432ecf0eef5fb", 1646928159755, 0.46266, [1.6916e-07], [1.7047e-07], [1.6997e-07], [1.7036e-07], [64926], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_eight_bit": [[1.6984966367614413e-07], [], "716ff06a471a5d90af3730f6d4470eba3577432d781e0210dff1fd156b8c549c", 1646928159990, 0.46452, [1.6852e-07], [1.7102e-07], [1.6891e-07], [1.708e-07], [63737], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_standard": [[1.7007556384466194e-07], [], "3a752a7884e99e095c31b2a28cfefdf916cb2033c06afae1ea146a72f3ba650c", 1646928160220, 0.46569, [1.694e-07], [1.7047e-07], [1.697e-07], [1.7016e-07], [64482], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_windows": [[1.6967653616837615e-07], [], "1732bbd18ada49eb7b054fc18b40d6acfb533023463366f37203dab6fbb0cc20", 1646928160453, 0.46526, [1.6845e-07], [1.7051e-07], [1.6903e-07], [1.7012e-07], [64593], [10]], "benchmarks.PrettySuite.time_pretty": [[0.0010313042002962902], [], "9bb0e6d8a29aad21b3d1b550a160fa5f1e9030c69d16bad500c0dcc77bff6d01", 1646928160685, 0.45231, [0.0010284], [0.0010343], [0.0010302], [0.0010332], [10], [10]], "benchmarks.PrettySuite.time_pretty_indent_guides": [[0.0014234218742785743], [], "8d71bf19dfe999b0fba95d009986bfd6911c53c7a0c455466725f553005c3bc7", 1646928160910, 0.46302, [0.0014168], [0.001428], [0.0014204], [0.0014267], [8], [10]], "benchmarks.PrettySuite.time_pretty_justify_center": [[0.0013043802518950542], [], "54cbf71bacab14ccbe1d063847c0b89198ed1bbe06edc89c14d2e3c7b1986c41", 1646928161139, 0.44408, [0.0012976], [0.001312], [0.0013037], [0.0013068], [8], [10]], "benchmarks.StyleSuite.time_parse_ansi": [[1.1419466898642949e-07], [], "a003aaa8017585efeb1cd9c43351282df4df6249bf28a4c447b1304d984aa753", 1646928161364, 0.46284, [1.1379e-07], [1.1439e-07], [1.1398e-07], [1.1426e-07], [96135], [10]], "benchmarks.StyleSuite.time_parse_hex": [[1.1570047643736177e-07], [], "cf5a3f0def435d3da5bc3a6e7549c44c0a02e9cce6c00ecde8dd7f527556f8ca", 1646928161596, 0.45974, [1.1386e-07], [1.1813e-07], [1.1414e-07], [1.1797e-07], [94046], [10]], "benchmarks.StyleSuite.time_parse_mixed_complex_style": [[1.1511616484557213e-07], [], "01c9e12ae829b1984e55a5aeef1a9ae6f1461577adaf5ae59f06358c8b52802f", 1646928161824, 0.45137, [1.1395e-07], [1.1677e-07], [1.1433e-07], [1.1577e-07], [95343], [10]], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_heavy_wrapping": [null, [], "1ed4d74ea424990cfb40c96f07635f9bcf7b8bacc7ade5204aaf96363e1622ee", 1646928155690, 0.065973], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_medium_wrapping": [null, [], "0880e162a4907ee025cef8ac3380502554fde27fd0c90a4c15cebc9c27f3e333", 1646928155756, 0.065964], "benchmarks.SyntaxWrappingSuite.time_text_wide_terminal_no_wrapping": [null, [], "feb11e94ae6a75de2dee899fb93db098b55cde232710660d7d66f9e2b288d9c0", 1646928155822, 0.065478], "benchmarks.TableSuite.time_table_heavy_wrapping": [[0.002142874998389743], [], "ca515a9739c1e0f8eb922420f9f9caf27321fb13c8bd0bc49b207a0588b370de", 1646928162054, 0.45246, [0.0021291], [0.0021522], [0.0021359], [0.0021474], [5], [10]], "benchmarks.TableSuite.time_table_no_wrapping": [[0.001284763000512612], [], "8842a5f141d8208ba2bab66e4973e978cb5d0615f326af5d70385ff8fa44b3b9", 1646928162284, 0.45148, [0.0012776], [0.0012882], [0.0012823], [0.0012867], [8], [10]], "benchmarks.TextSuite.time_align_center": [[0.000388515425988266], [], "1ceeeef2de43fcb3d0dfec409972d8f0eb791e9615fa9f9c959e0423725b089b", 1646928162509, 0.45179, [0.00038132], [0.00039835], [0.00038174], [0.00039444], [27], [10]], "benchmarks.TextSuite.time_align_center_unicode_heavy": [[0.00034324798381872357], [], "a83ff79614dd2ae17e8b68f45981fcaa0d9833c59a7a14f171b896cf970f54ce", 1646928162730, 0.46002, [0.00034208], [0.00035228], [0.00034295], [0.00034498], [31], [10]], "benchmarks.TextSuite.time_divide": [[2.551548943087897e-05], [], "dcc120b921cb2ec77632f8fe2f6f4150d479cb49ef2608f8e86b569a937756e9", 1646928162957, 0.45927, [2.5412e-05], [2.5748e-05], [2.5439e-05], [2.5582e-05], [425], [10]], "benchmarks.TextSuite.time_divide_unicode_heavy": [[0.0001842945345962452], [], "ea53e662c0553324f90ac3336dcee77f733bb33638888e1f84bf71945a2f3f8e", 1646928163185, 0.45559, [0.00018309], [0.00018565], [0.00018421], [0.00018438], [58], [10]], "benchmarks.TextSuite.time_fit": [[4.3634989763587166e-05], [], "ec77b412db357b1e1c1e7bc620b941dddfc36dc76d2a66a0417feae4f21fe1d3", 1646928163413, 0.45976, [4.3491e-05], [4.4748e-05], [4.3511e-05], [4.3965e-05], [244], [10]], "benchmarks.TextSuite.time_fit_unicode_heavy": [[0.00032473043944319767], [], "d1574b4af2ef8b80b95b4dbeeb13e5de67b66783f76f9968834776239dd0dc66", 1646928163639, 0.4596, [0.00032412], [0.00032582], [0.00032458], [0.00032513], [33], [10]], "benchmarks.TextSuite.time_indent_guides": [[0.00035670975821317527], [], "18da036dcfc15ec5e3c11e72be7c8f0c22fba695a5f19c95836be36952376cf2", 1646928163867, 0.44716, [0.00035629], [0.00035897], [0.00035639], [0.0003575], [29], [10]], "benchmarks.TextSuite.time_render": [[4.672523315758419e-06], [], "907d30581cfdc7bb2c4d302b7e3cb474aaefd8b84821365fe105af7d82be3b09", 1646928164089, 0.45405, [4.64e-06], [4.71e-06], [4.6474e-06], [4.6882e-06], [2337], [10]], "benchmarks.TextSuite.time_render_unicode_heavy": [[8.51968503612145e-05], [], "b3f1c09dfd06f412a20dacfe378c3b446727c7d4f9a975336eab3daa8543e1cb", 1646928164320, 0.45703, [8.4962e-05], [8.6485e-05], [8.5027e-05], [8.5571e-05], [127], [10]], "benchmarks.TextSuite.time_split": [[3.520806314737135e-05], [], "9c165854130cb95fea5491ffcd8b580a5bd373149da2ef8aace0e9480f649854", 1646928164551, 0.45159, [3.5128e-05], [3.5338e-05], [3.5138e-05], [3.5257e-05], [309], [10]], "benchmarks.TextSuite.time_split_unicode_heavy": [[0.0002744111713438638], [], "d55b02f6d06f478d70635bac3409f3a9899137d9cee87a70a293b8ccf5a6afa4", 1646928164781, 0.44788, [0.00027397], [0.00027512], [0.00027427], [0.00027452], [38], [10]], "benchmarks.TextSuite.time_wrapping": [[0.0010960895990137943], [], "8c821eba13d043f228fd902d8f678c397741855db05d02abe9b82f3d65cdf03d", 1646928165004, 0.45624, [0.0010955], [0.0010971], [0.0010957], [0.0010967], [10], [10]], "benchmarks.TextSuite.time_wrapping_unicode_heavy": [[0.0013692552511201939], [], "ec6e2ef08b6cdee182fef4e26c0043f8c365984f9a31be07dbd792e1aed862d8", 1646928165236, 0.44815, [0.001366], [0.0013744], [0.0013667], [0.0013711], [8], [10]]}, "durations": {"": 2.0172619819641113}, "version": 2} diff --git a/benchmarks/results/darrenburns-2022-mbp/24743154-virtualenv-py3.10.json b/benchmarks/results/darrenburns-2022-mbp/24743154-virtualenv-py3.10.json new file mode 100644 index 0000000000..f29a22272e --- /dev/null +++ b/benchmarks/results/darrenburns-2022-mbp/24743154-virtualenv-py3.10.json @@ -0,0 +1 @@ +{"commit_hash": "247431544d407d2496e200124e7b5ed2d9e657c9", "env_name": "virtualenv-py3.10", "date": 1611780945000, "params": {"arch": "arm64", "cpu": "Apple M1 Pro", "machine": "darrenburns-2022-mbp", "num_cpu": "10", "os": "Darwin 21.2.0", "ram": "17179869184", "python": "3.10"}, "python": "3.10", "requirements": {}, "env_vars": {}, "result_columns": ["result", "params", "version", "started_at", "duration", "stats_ci_99_a", "stats_ci_99_b", "stats_q_25", "stats_q_75", "stats_number", "stats_repeat", "samples", "profile"], "results": {"benchmarks.ColorSuite.time_downgrade_to_eight_bit": [[1.7008703561831484e-07], [], "019b972f782c6291df9a6a4dea9bb3c6268a69b177e71383d6e19a608e84920d", 1646929003904, 0.45382, [1.6986e-07], [1.7063e-07], [1.6992e-07], [1.7057e-07], [64491], [10]], "benchmarks.ColorSuite.time_downgrade_to_standard": [[1.7049544227687766e-07], [], "f5e8556491c977450fff6ebfd9fff4fc8f12d74829aa5b8570bd27ea7a1c9d28", 1646929004132, 0.45966, [1.6965e-07], [1.7075e-07], [1.703e-07], [1.7062e-07], [64506], [10]], "benchmarks.ColorSuite.time_downgrade_to_windows": [[1.7012695347008837e-07], [], "373eb97dd7ce2823e080972249235f528e8b3a47210911981cf432ecf0eef5fb", 1646929004361, 0.45427, [1.6873e-07], [1.7129e-07], [1.6996e-07], [1.7046e-07], [64819], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_eight_bit": [[1.708717196791671e-07], [], "716ff06a471a5d90af3730f6d4470eba3577432d781e0210dff1fd156b8c549c", 1646929004589, 0.44605, [1.6974e-07], [1.7257e-07], [1.7016e-07], [1.7127e-07], [64476], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_standard": [[1.6966659951187515e-07], [], "3a752a7884e99e095c31b2a28cfefdf916cb2033c06afae1ea146a72f3ba650c", 1646929004816, 0.45992, [1.6847e-07], [1.72e-07], [1.6909e-07], [1.7098e-07], [64550], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_windows": [[1.700043844028154e-07], [], "1732bbd18ada49eb7b054fc18b40d6acfb533023463366f37203dab6fbb0cc20", 1646929005045, 0.45473, [1.6857e-07], [1.7114e-07], [1.6965e-07], [1.7032e-07], [64203], [10]], "benchmarks.PrettySuite.time_pretty": [[0.001021081249928102], [], "9bb0e6d8a29aad21b3d1b550a160fa5f1e9030c69d16bad500c0dcc77bff6d01", 1646929005271, 0.43977, [0.0010183], [0.0010248], [0.0010199], [0.0010222], [10], [10]], "benchmarks.PrettySuite.time_pretty_indent_guides": [[0.0014228880008886335], [], "8d71bf19dfe999b0fba95d009986bfd6911c53c7a0c455466725f553005c3bc7", 1646929005489, 0.45551, [0.001415], [0.0014303], [0.00142], [0.0014256], [8], [10]], "benchmarks.PrettySuite.time_pretty_justify_center": [[0.0014151146224321565], [], "54cbf71bacab14ccbe1d063847c0b89198ed1bbe06edc89c14d2e3c7b1986c41", 1646929005713, 0.4464, [0.0014133], [0.0014272], [0.0014145], [0.0014198], [8], [10]], "benchmarks.StyleSuite.time_parse_ansi": [[1.1455905289378434e-07], [], "a003aaa8017585efeb1cd9c43351282df4df6249bf28a4c447b1304d984aa753", 1646929005936, 0.44699, [1.1336e-07], [1.1617e-07], [1.1366e-07], [1.1558e-07], [96515], [10]], "benchmarks.StyleSuite.time_parse_hex": [[1.1491036369022255e-07], [], "cf5a3f0def435d3da5bc3a6e7549c44c0a02e9cce6c00ecde8dd7f527556f8ca", 1646929006155, 0.45532, [1.1369e-07], [1.1656e-07], [1.1388e-07], [1.1645e-07], [95748], [10]], "benchmarks.StyleSuite.time_parse_mixed_complex_style": [[1.141347646635857e-07], [], "01c9e12ae829b1984e55a5aeef1a9ae6f1461577adaf5ae59f06358c8b52802f", 1646929006382, 0.45248, [1.1369e-07], [1.1558e-07], [1.1398e-07], [1.1503e-07], [94769], [10]], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_heavy_wrapping": [null, [], "1ed4d74ea424990cfb40c96f07635f9bcf7b8bacc7ade5204aaf96363e1622ee", 1646929000400, 0.061733], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_medium_wrapping": [null, [], "0880e162a4907ee025cef8ac3380502554fde27fd0c90a4c15cebc9c27f3e333", 1646929000462, 0.061401], "benchmarks.SyntaxWrappingSuite.time_text_wide_terminal_no_wrapping": [null, [], "feb11e94ae6a75de2dee899fb93db098b55cde232710660d7d66f9e2b288d9c0", 1646929000523, 0.061811], "benchmarks.TableSuite.time_table_heavy_wrapping": [[0.0032452187479066197], [], "ca515a9739c1e0f8eb922420f9f9caf27321fb13c8bd0bc49b207a0588b370de", 1646929006608, 0.46886, [0.0032324], [0.0032601], [0.0032372], [0.0032513], [4], [10]], "benchmarks.TableSuite.time_table_no_wrapping": [[0.002134970802580938], [], "8842a5f141d8208ba2bab66e4973e978cb5d0615f326af5d70385ff8fa44b3b9", 1646929006843, 0.44562, [0.0021204], [0.0021425], [0.0021308], [0.0021366], [5], [10]], "benchmarks.TextSuite.time_align_center": [[0.0006581823117812746], [], "1ceeeef2de43fcb3d0dfec409972d8f0eb791e9615fa9f9c959e0423725b089b", 1646929007069, 0.4368, [0.00065555], [0.00066051], [0.00065691], [0.00065886], [16], [10]], "benchmarks.TextSuite.time_align_center_unicode_heavy": [[0.0005536798156467022], [], "a83ff79614dd2ae17e8b68f45981fcaa0d9833c59a7a14f171b896cf970f54ce", 1646929007289, 0.44581, [0.00054653], [0.00055847], [0.00054789], [0.00055641], [19], [10]], "benchmarks.TextSuite.time_divide": [[2.534571677008926e-05], [], "dcc120b921cb2ec77632f8fe2f6f4150d479cb49ef2608f8e86b569a937756e9", 1646929007510, 0.45217, [2.5296e-05], [2.5496e-05], [2.5333e-05], [2.5365e-05], [429], [10]], "benchmarks.TextSuite.time_divide_unicode_heavy": [[0.00018455746562565388], [], "ea53e662c0553324f90ac3336dcee77f733bb33638888e1f84bf71945a2f3f8e", 1646929007736, 0.44544, [0.00018318], [0.00018497], [0.00018386], [0.00018477], [58], [10]], "benchmarks.TextSuite.time_fit": [[4.350025409348006e-05], [], "ec77b412db357b1e1c1e7bc620b941dddfc36dc76d2a66a0417feae4f21fe1d3", 1646929007958, 0.43794, [4.3415e-05], [4.3549e-05], [4.3455e-05], [4.3512e-05], [246], [10]], "benchmarks.TextSuite.time_fit_unicode_heavy": [[0.00032408198392424247], [], "d1574b4af2ef8b80b95b4dbeeb13e5de67b66783f76f9968834776239dd0dc66", 1646929008181, 0.42887, [0.00032362], [0.00032488], [0.0003238], [0.00032443], [31], [10]], "benchmarks.TextSuite.time_indent_guides": [[0.00038927161141246976], [], "18da036dcfc15ec5e3c11e72be7c8f0c22fba695a5f19c95836be36952376cf2", 1646929008394, 0.44484, [0.00038809], [0.00039124], [0.00038819], [0.00038973], [27], [10]], "benchmarks.TextSuite.time_render": [[4.6586813701803316e-06], [], "907d30581cfdc7bb2c4d302b7e3cb474aaefd8b84821365fe105af7d82be3b09", 1646929008614, 0.44512, [4.6428e-06], [4.6894e-06], [4.6487e-06], [4.6795e-06], [2335], [10]], "benchmarks.TextSuite.time_render_unicode_heavy": [[8.538541783309483e-05], [], "b3f1c09dfd06f412a20dacfe378c3b446727c7d4f9a975336eab3daa8543e1cb", 1646929008840, 0.45026, [8.5034e-05], [8.6396e-05], [8.5351e-05], [8.5516e-05], [128], [10]], "benchmarks.TextSuite.time_split": [[3.531782784819847e-05], [], "9c165854130cb95fea5491ffcd8b580a5bd373149da2ef8aace0e9480f649854", 1646929009066, 0.43937, [3.5158e-05], [3.5463e-05], [3.5186e-05], [3.5354e-05], [305], [10]], "benchmarks.TextSuite.time_split_unicode_heavy": [[0.00027466118435289617], [], "d55b02f6d06f478d70635bac3409f3a9899137d9cee87a70a293b8ccf5a6afa4", 1646929009290, 0.43885, [0.00027379], [0.00027655], [0.00027429], [0.00027582], [38], [10]], "benchmarks.TextSuite.time_wrapping": [[0.0010957208505715244], [], "8c821eba13d043f228fd902d8f678c397741855db05d02abe9b82f3d65cdf03d", 1646929009508, 0.44719, [0.0010937], [0.0011008], [0.0010943], [0.001096], [10], [10]], "benchmarks.TextSuite.time_wrapping_unicode_heavy": [[0.0014872380706947297], [], "ec6e2ef08b6cdee182fef4e26c0043f8c365984f9a31be07dbd792e1aed862d8", 1646929009736, 0.43456, [0.0014853], [0.0014999], [0.0014865], [0.0014881], [7], [10]]}, "durations": {"": 2.0492501258850098}, "version": 2} diff --git a/benchmarks/results/darrenburns-2022-mbp/25a1bf06-virtualenv-py3.10.json b/benchmarks/results/darrenburns-2022-mbp/25a1bf06-virtualenv-py3.10.json new file mode 100644 index 0000000000..3b893f3f9c --- /dev/null +++ b/benchmarks/results/darrenburns-2022-mbp/25a1bf06-virtualenv-py3.10.json @@ -0,0 +1 @@ +{"commit_hash": "25a1bf06b4854bd8d9239f8ba05678d2c60a62ad", "env_name": "virtualenv-py3.10", "date": 1600443006000, "params": {"arch": "arm64", "cpu": "Apple M1 Pro", "machine": "darrenburns-2022-mbp", "num_cpu": "10", "os": "Darwin 21.2.0", "ram": "17179869184", "python": "3.10"}, "python": "3.10", "requirements": {}, "env_vars": {}, "result_columns": ["result", "params", "version", "started_at", "duration", "stats_ci_99_a", "stats_ci_99_b", "stats_q_25", "stats_q_75", "stats_number", "stats_repeat", "samples", "profile"], "results": {"benchmarks.ColorSuite.time_downgrade_to_eight_bit": [[1.713373427108319e-07], [], "019b972f782c6291df9a6a4dea9bb3c6268a69b177e71383d6e19a608e84920d", 1646928922409, 0.45057, [1.6964e-07], [1.7398e-07], [1.6995e-07], [1.7349e-07], [64516], [10]], "benchmarks.ColorSuite.time_downgrade_to_standard": [[1.731565974745811e-07], [], "f5e8556491c977450fff6ebfd9fff4fc8f12d74829aa5b8570bd27ea7a1c9d28", 1646928922632, 0.42239, [1.713e-07], [1.7423e-07], [1.7254e-07], [1.7393e-07], [58976], [10]], "benchmarks.ColorSuite.time_downgrade_to_windows": [[1.7319214308453452e-07], [], "373eb97dd7ce2823e080972249235f528e8b3a47210911981cf432ecf0eef5fb", 1646928922841, 0.42272, [1.7002e-07], [1.7419e-07], [1.7178e-07], [1.7414e-07], [58891], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_eight_bit": [[1.7324510468834383e-07], [], "716ff06a471a5d90af3730f6d4470eba3577432d781e0210dff1fd156b8c549c", 1646928923050, 0.42368, [1.7066e-07], [1.7417e-07], [1.7293e-07], [1.7346e-07], [58781], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_standard": [[1.7460887599500727e-07], [], "3a752a7884e99e095c31b2a28cfefdf916cb2033c06afae1ea146a72f3ba650c", 1646928923261, 0.43196, [1.7426e-07], [1.7665e-07], [1.7448e-07], [1.751e-07], [64004], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_windows": [[1.7487969483566893e-07], [], "1732bbd18ada49eb7b054fc18b40d6acfb533023463366f37203dab6fbb0cc20", 1646928923477, 0.42955, [1.7192e-07], [1.7903e-07], [1.7338e-07], [1.772e-07], [58705], [10]], "benchmarks.PrettySuite.time_pretty": [[0.0009256363634697416], [], "9bb0e6d8a29aad21b3d1b550a160fa5f1e9030c69d16bad500c0dcc77bff6d01", 1646928923692, 0.43041, [0.00091569], [0.00093458], [0.00091827], [0.00093142], [11], [10]], "benchmarks.PrettySuite.time_pretty_indent_guides": [null, [], "8d71bf19dfe999b0fba95d009986bfd6911c53c7a0c455466725f553005c3bc7", 1646928918202, 0.058446], "benchmarks.PrettySuite.time_pretty_justify_center": [[0.0013186432497604983], [], "54cbf71bacab14ccbe1d063847c0b89198ed1bbe06edc89c14d2e3c7b1986c41", 1646928923906, 0.43252, [0.0013099], [0.0013369], [0.001311], [0.0013263], [8], [10]], "benchmarks.StyleSuite.time_parse_ansi": [[1.1536565645431084e-07], [], "a003aaa8017585efeb1cd9c43351282df4df6249bf28a4c447b1304d984aa753", 1646928924127, 0.4396, [1.1405e-07], [1.1746e-07], [1.1436e-07], [1.1675e-07], [96108], [10]], "benchmarks.StyleSuite.time_parse_hex": [[1.1549200145366552e-07], [], "cf5a3f0def435d3da5bc3a6e7549c44c0a02e9cce6c00ecde8dd7f527556f8ca", 1646928924344, 0.45093, [1.1384e-07], [1.1751e-07], [1.1436e-07], [1.1687e-07], [96329], [10]], "benchmarks.StyleSuite.time_parse_mixed_complex_style": [[1.167907086471211e-07], [], "01c9e12ae829b1984e55a5aeef1a9ae6f1461577adaf5ae59f06358c8b52802f", 1646928924571, 0.44149, [1.1626e-07], [1.1865e-07], [1.1648e-07], [1.178e-07], [95735], [10]], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_heavy_wrapping": [null, [], "1ed4d74ea424990cfb40c96f07635f9bcf7b8bacc7ade5204aaf96363e1622ee", 1646928919133, 0.057779], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_medium_wrapping": [null, [], "0880e162a4907ee025cef8ac3380502554fde27fd0c90a4c15cebc9c27f3e333", 1646928919191, 0.057361], "benchmarks.SyntaxWrappingSuite.time_text_wide_terminal_no_wrapping": [null, [], "feb11e94ae6a75de2dee899fb93db098b55cde232710660d7d66f9e2b288d9c0", 1646928919249, 0.05739], "benchmarks.TableSuite.time_table_heavy_wrapping": [[0.0028535103738249745], [], "ca515a9739c1e0f8eb922420f9f9caf27321fb13c8bd0bc49b207a0588b370de", 1646928924798, 0.43737, [0.0028459], [0.002874], [0.0028495], [0.0028594], [4], [10]], "benchmarks.TableSuite.time_table_no_wrapping": [[0.0019382950849831104], [], "8842a5f141d8208ba2bab66e4973e978cb5d0615f326af5d70385ff8fa44b3b9", 1646928925022, 0.44618, [0.0019205], [0.0019506], [0.0019249], [0.0019468], [6], [10]], "benchmarks.TextSuite.time_align_center": [[0.0006695468737234478], [], "1ceeeef2de43fcb3d0dfec409972d8f0eb791e9615fa9f9c959e0423725b089b", 1646928925246, 0.43509, [0.00065798], [0.00068291], [0.00065947], [0.00067481], [16], [10]], "benchmarks.TextSuite.time_align_center_unicode_heavy": [[0.0005540252107158793], [], "a83ff79614dd2ae17e8b68f45981fcaa0d9833c59a7a14f171b896cf970f54ce", 1646928925469, 0.43607, [0.00054347], [0.0005588], [0.00055331], [0.00055579], [19], [10]], "benchmarks.TextSuite.time_divide": [[2.7922080077164932e-05], [], "dcc120b921cb2ec77632f8fe2f6f4150d479cb49ef2608f8e86b569a937756e9", 1646928925686, 0.43674, [2.785e-05], [2.8031e-05], [2.7888e-05], [2.7961e-05], [381], [10]], "benchmarks.TextSuite.time_divide_unicode_heavy": [[0.00018699245691973846], [], "ea53e662c0553324f90ac3336dcee77f733bb33638888e1f84bf71945a2f3f8e", 1646928925903, 0.44197, [0.00018631], [0.00018771], [0.0001869], [0.00018725], [58], [10]], "benchmarks.TextSuite.time_fit": [[4.218484458710212e-05], [], "ec77b412db357b1e1c1e7bc620b941dddfc36dc76d2a66a0417feae4f21fe1d3", 1646928926124, 0.43724, [4.1894e-05], [4.2331e-05], [4.2032e-05], [4.2276e-05], [251], [10]], "benchmarks.TextSuite.time_fit_unicode_heavy": [[0.00032975337085043707], [], "d1574b4af2ef8b80b95b4dbeeb13e5de67b66783f76f9968834776239dd0dc66", 1646928926341, 0.42487, [0.00032823], [0.00033068], [0.00032916], [0.00033016], [31], [10]], "benchmarks.TextSuite.time_indent_guides": [null, [], "18da036dcfc15ec5e3c11e72be7c8f0c22fba695a5f19c95836be36952376cf2", 1646928921051, 0.057825], "benchmarks.TextSuite.time_render": [[4.6940412815479986e-06], [], "907d30581cfdc7bb2c4d302b7e3cb474aaefd8b84821365fe105af7d82be3b09", 1646928926552, 0.43581, [4.6873e-06], [4.7056e-06], [4.6931e-06], [4.7027e-06], [2325], [10]], "benchmarks.TextSuite.time_render_unicode_heavy": [[8.528303908406087e-05], [], "b3f1c09dfd06f412a20dacfe378c3b446727c7d4f9a975336eab3daa8543e1cb", 1646928926773, 0.44216, [8.4729e-05], [8.5632e-05], [8.523e-05], [8.5473e-05], [128], [10]], "benchmarks.TextSuite.time_split": [[3.376495834135522e-05], [], "9c165854130cb95fea5491ffcd8b580a5bd373149da2ef8aace0e9480f649854", 1646928926995, 0.43503, [3.3666e-05], [3.3931e-05], [3.3686e-05], [3.3844e-05], [312], [10]], "benchmarks.TextSuite.time_split_unicode_heavy": [[0.00027902985134829034], [], "d55b02f6d06f478d70635bac3409f3a9899137d9cee87a70a293b8ccf5a6afa4", 1646928927212, 0.42695, [0.00027802], [0.00028028], [0.00027873], [0.00027947], [37], [10]], "benchmarks.TextSuite.time_wrapping": [[0.0011423819459095183], [], "8c821eba13d043f228fd902d8f678c397741855db05d02abe9b82f3d65cdf03d", 1646928927424, 0.43006, [0.0011399], [0.0011436], [0.001141], [0.0011432], [9], [10]], "benchmarks.TextSuite.time_wrapping_unicode_heavy": [[0.001528839285518708], [], "ec6e2ef08b6cdee182fef4e26c0043f8c365984f9a31be07dbd792e1aed862d8", 1646928927638, 0.43441, [0.0015231], [0.0015328], [0.0015254], [0.001532], [7], [10]]}, "durations": {"": 1.9668350219726562}, "version": 2} diff --git a/benchmarks/results/darrenburns-2022-mbp/2ba277ac-virtualenv-py3.10.json b/benchmarks/results/darrenburns-2022-mbp/2ba277ac-virtualenv-py3.10.json new file mode 100644 index 0000000000..79e8bd3c80 --- /dev/null +++ b/benchmarks/results/darrenburns-2022-mbp/2ba277ac-virtualenv-py3.10.json @@ -0,0 +1 @@ +{"commit_hash": "2ba277ac54a153d3030b496698133ec2e4f67e1d", "env_name": "virtualenv-py3.10", "date": 1641143137000, "params": {"arch": "arm64", "cpu": "Apple M1 Pro", "machine": "darrenburns-2022-mbp", "num_cpu": "10", "os": "Darwin 21.2.0", "ram": "17179869184", "python": "3.10"}, "python": "3.10", "requirements": {}, "env_vars": {}, "result_columns": ["result", "params", "version", "started_at", "duration", "stats_ci_99_a", "stats_ci_99_b", "stats_q_25", "stats_q_75", "stats_number", "stats_repeat", "samples", "profile"], "results": {"benchmarks.ColorSuite.time_downgrade_to_eight_bit": [[1.7095384073963524e-07], [], "019b972f782c6291df9a6a4dea9bb3c6268a69b177e71383d6e19a608e84920d", 1646928304445, 0.45942, [1.6973e-07], [1.716e-07], [1.6998e-07], [1.7151e-07], [64451], [10]], "benchmarks.ColorSuite.time_downgrade_to_standard": [[1.7035758232162449e-07], [], "f5e8556491c977450fff6ebfd9fff4fc8f12d74829aa5b8570bd27ea7a1c9d28", 1646928304671, 0.4679, [1.6949e-07], [1.7154e-07], [1.6994e-07], [1.7062e-07], [64539], [10]], "benchmarks.ColorSuite.time_downgrade_to_windows": [[1.7102073580626215e-07], [], "373eb97dd7ce2823e080972249235f528e8b3a47210911981cf432ecf0eef5fb", 1646928304904, 0.46608, [1.7036e-07], [1.7739e-07], [1.707e-07], [1.7123e-07], [64212], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_eight_bit": [[1.701027185648243e-07], [], "716ff06a471a5d90af3730f6d4470eba3577432d781e0210dff1fd156b8c549c", 1646928305137, 0.46472, [1.6899e-07], [1.7052e-07], [1.6964e-07], [1.7037e-07], [64706], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_standard": [[1.6981393392397904e-07], [], "3a752a7884e99e095c31b2a28cfefdf916cb2033c06afae1ea146a72f3ba650c", 1646928305369, 0.4597, [1.6839e-07], [1.7066e-07], [1.696e-07], [1.703e-07], [64805], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_windows": [[1.7074461525374004e-07], [], "1732bbd18ada49eb7b054fc18b40d6acfb533023463366f37203dab6fbb0cc20", 1646928305603, 0.46676, [1.6992e-07], [1.7421e-07], [1.7034e-07], [1.7181e-07], [64769], [10]], "benchmarks.PrettySuite.time_pretty": [[0.0011084645986557007], [], "9bb0e6d8a29aad21b3d1b550a160fa5f1e9030c69d16bad500c0dcc77bff6d01", 1646928305836, 0.46381, [0.0011041], [0.0011125], [0.0011068], [0.0011107], [10], [10]], "benchmarks.PrettySuite.time_pretty_indent_guides": [[0.0015478839299508504], [], "8d71bf19dfe999b0fba95d009986bfd6911c53c7a0c455466725f553005c3bc7", 1646928306060, 0.44666, [0.0015436], [0.0015532], [0.0015465], [0.0015501], [7], [10]], "benchmarks.PrettySuite.time_pretty_justify_center": [[0.0014028490004420746], [], "54cbf71bacab14ccbe1d063847c0b89198ed1bbe06edc89c14d2e3c7b1986c41", 1646928306282, 0.45405, [0.0013971], [0.0014514], [0.0013996], [0.0014073], [8], [10]], "benchmarks.StyleSuite.time_parse_ansi": [[1.1452256623089701e-07], [], "a003aaa8017585efeb1cd9c43351282df4df6249bf28a4c447b1304d984aa753", 1646928306507, 0.4362, [1.1404e-07], [1.1512e-07], [1.1434e-07], [1.1484e-07], [87764], [10]], "benchmarks.StyleSuite.time_parse_hex": [[1.1442488653038437e-07], [], "cf5a3f0def435d3da5bc3a6e7549c44c0a02e9cce6c00ecde8dd7f527556f8ca", 1646928306725, 0.46277, [1.1416e-07], [1.1488e-07], [1.1434e-07], [1.1463e-07], [96181], [10]], "benchmarks.StyleSuite.time_parse_mixed_complex_style": [[1.1429263201953186e-07], [], "01c9e12ae829b1984e55a5aeef1a9ae6f1461577adaf5ae59f06358c8b52802f", 1646928306957, 0.4655, [1.1401e-07], [1.1442e-07], [1.142e-07], [1.1437e-07], [96283], [10]], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_heavy_wrapping": [null, [], "1ed4d74ea424990cfb40c96f07635f9bcf7b8bacc7ade5204aaf96363e1622ee", 1646928300849, 0.066968], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_medium_wrapping": [null, [], "0880e162a4907ee025cef8ac3380502554fde27fd0c90a4c15cebc9c27f3e333", 1646928300916, 0.066977], "benchmarks.SyntaxWrappingSuite.time_text_wide_terminal_no_wrapping": [null, [], "feb11e94ae6a75de2dee899fb93db098b55cde232710660d7d66f9e2b288d9c0", 1646928300983, 0.066742], "benchmarks.TableSuite.time_table_heavy_wrapping": [[0.0023390999995172024], [], "ca515a9739c1e0f8eb922420f9f9caf27321fb13c8bd0bc49b207a0588b370de", 1646928307191, 0.45974, [0.0023284], [0.0023587], [0.0023345], [0.0023427], [5], [10]], "benchmarks.TableSuite.time_table_no_wrapping": [[0.0014037630626262398], [], "8842a5f141d8208ba2bab66e4973e978cb5d0615f326af5d70385ff8fa44b3b9", 1646928307423, 0.45539, [0.0013942], [0.0014119], [0.0014019], [0.0014091], [8], [10]], "benchmarks.TextSuite.time_align_center": [[0.00038056559289408916], [], "1ceeeef2de43fcb3d0dfec409972d8f0eb791e9615fa9f9c959e0423725b089b", 1646928307650, 0.45847, [0.00036921], [0.00039423], [0.00036934], [0.0003918], [27], [10]], "benchmarks.TextSuite.time_align_center_unicode_heavy": [[0.0003410354164467814], [], "a83ff79614dd2ae17e8b68f45981fcaa0d9833c59a7a14f171b896cf970f54ce", 1646928307877, 0.4501, [0.00033945], [0.0003525], [0.00034076], [0.00034817], [30], [10]], "benchmarks.TextSuite.time_divide": [[2.5224709290426314e-05], [], "dcc120b921cb2ec77632f8fe2f6f4150d479cb49ef2608f8e86b569a937756e9", 1646928308099, 0.46106, [2.5162e-05], [2.5358e-05], [2.5187e-05], [2.5256e-05], [430], [10]], "benchmarks.TextSuite.time_divide_unicode_heavy": [[0.0001850456204104783], [], "ea53e662c0553324f90ac3336dcee77f733bb33638888e1f84bf71945a2f3f8e", 1646928308328, 0.45626, [0.00018381], [0.00018582], [0.00018491], [0.0001853], [58], [10]], "benchmarks.TextSuite.time_fit": [[4.3433180885253156e-05], [], "ec77b412db357b1e1c1e7bc620b941dddfc36dc76d2a66a0417feae4f21fe1d3", 1646928308556, 0.44726, [4.3321e-05], [4.3623e-05], [4.3339e-05], [4.3488e-05], [246], [10]], "benchmarks.TextSuite.time_fit_unicode_heavy": [[0.00032567069302463244], [], "d1574b4af2ef8b80b95b4dbeeb13e5de67b66783f76f9968834776239dd0dc66", 1646928308783, 0.43785, [0.00032291], [0.00032701], [0.00032431], [0.00032633], [31], [10]], "benchmarks.TextSuite.time_indent_guides": [[0.0003585962584675772], [], "18da036dcfc15ec5e3c11e72be7c8f0c22fba695a5f19c95836be36952376cf2", 1646928309000, 0.44776, [0.00035775], [0.00035906], [0.00035811], [0.00035883], [29], [10]], "benchmarks.TextSuite.time_render": [[4.683463913286537e-06], [], "907d30581cfdc7bb2c4d302b7e3cb474aaefd8b84821365fe105af7d82be3b09", 1646928309223, 0.45369, [4.6663e-06], [4.7312e-06], [4.6794e-06], [4.6908e-06], [2328], [10]], "benchmarks.TextSuite.time_render_unicode_heavy": [[8.532407937020744e-05], [], "b3f1c09dfd06f412a20dacfe378c3b446727c7d4f9a975336eab3daa8543e1cb", 1646928309453, 0.45564, [8.4567e-05], [8.5448e-05], [8.5256e-05], [8.5411e-05], [126], [10]], "benchmarks.TextSuite.time_split": [[3.522766833543607e-05], [], "9c165854130cb95fea5491ffcd8b580a5bd373149da2ef8aace0e9480f649854", 1646928309682, 0.44867, [3.5003e-05], [3.5378e-05], [3.5066e-05], [3.5363e-05], [306], [10]], "benchmarks.TextSuite.time_split_unicode_heavy": [[0.0002741403556061222], [], "d55b02f6d06f478d70635bac3409f3a9899137d9cee87a70a293b8ccf5a6afa4", 1646928309910, 0.44752, [0.0002734], [0.00027501], [0.00027404], [0.00027469], [38], [10]], "benchmarks.TextSuite.time_wrapping": [[0.001365880249068141], [], "8c821eba13d043f228fd902d8f678c397741855db05d02abe9b82f3d65cdf03d", 1646928310133, 0.45725, [0.0013571], [0.0013699], [0.0013608], [0.0013676], [8], [10]], "benchmarks.TextSuite.time_wrapping_unicode_heavy": [[0.0014567262156301047], [], "ec6e2ef08b6cdee182fef4e26c0043f8c365984f9a31be07dbd792e1aed862d8", 1646928310365, 0.4485, [0.0014469], [0.0015402], [0.0014546], [0.0014577], [7], [10]]}, "durations": {"": 2.0873799324035645}, "version": 2} diff --git a/benchmarks/results/darrenburns-2022-mbp/2d3ec69f-virtualenv-py3.10.json b/benchmarks/results/darrenburns-2022-mbp/2d3ec69f-virtualenv-py3.10.json new file mode 100644 index 0000000000..9105066695 --- /dev/null +++ b/benchmarks/results/darrenburns-2022-mbp/2d3ec69f-virtualenv-py3.10.json @@ -0,0 +1 @@ +{"commit_hash": "2d3ec69f6815da1d42da0f61d520c5ad630a5e26", "env_name": "virtualenv-py3.10", "date": 1610401267000, "params": {"arch": "arm64", "cpu": "Apple M1 Pro", "machine": "darrenburns-2022-mbp", "num_cpu": "10", "os": "Darwin 21.2.0", "ram": "17179869184", "python": "3.10"}, "python": "3.10", "requirements": {}, "env_vars": {}, "result_columns": ["result", "params", "version", "started_at", "duration", "stats_ci_99_a", "stats_ci_99_b", "stats_q_25", "stats_q_75", "stats_number", "stats_repeat", "samples", "profile"], "results": {"benchmarks.ColorSuite.time_downgrade_to_eight_bit": [[1.7020154316555255e-07], [], "019b972f782c6291df9a6a4dea9bb3c6268a69b177e71383d6e19a608e84920d", 1646929246840, 0.45806, [1.686e-07], [1.7116e-07], [1.6939e-07], [1.7045e-07], [64341], [10]], "benchmarks.ColorSuite.time_downgrade_to_standard": [[1.7010698368490514e-07], [], "f5e8556491c977450fff6ebfd9fff4fc8f12d74829aa5b8570bd27ea7a1c9d28", 1646929247068, 0.45703, [1.6937e-07], [1.7054e-07], [1.6965e-07], [1.702e-07], [64650], [10]], "benchmarks.ColorSuite.time_downgrade_to_windows": [[1.7018397440941086e-07], [], "373eb97dd7ce2823e080972249235f528e8b3a47210911981cf432ecf0eef5fb", 1646929247297, 0.45007, [1.6973e-07], [1.7083e-07], [1.6996e-07], [1.7075e-07], [65077], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_eight_bit": [[1.6952412545509723e-07], [], "716ff06a471a5d90af3730f6d4470eba3577432d781e0210dff1fd156b8c549c", 1646929247528, 0.45953, [1.6861e-07], [1.7039e-07], [1.6925e-07], [1.6998e-07], [64641], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_standard": [[1.7000315751200035e-07], [], "3a752a7884e99e095c31b2a28cfefdf916cb2033c06afae1ea146a72f3ba650c", 1646929247756, 0.45595, [1.6886e-07], [1.705e-07], [1.6941e-07], [1.7024e-07], [64133], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_windows": [[1.7001020117685218e-07], [], "1732bbd18ada49eb7b054fc18b40d6acfb533023463366f37203dab6fbb0cc20", 1646929247984, 0.45666, [1.6924e-07], [1.7053e-07], [1.6934e-07], [1.7036e-07], [64403], [10]], "benchmarks.PrettySuite.time_pretty": [[0.0010225667007034644], [], "9bb0e6d8a29aad21b3d1b550a160fa5f1e9030c69d16bad500c0dcc77bff6d01", 1646929248213, 0.44249, [0.0010197], [0.0010249], [0.0010216], [0.0010243], [10], [10]], "benchmarks.PrettySuite.time_pretty_indent_guides": [[0.0014374107143209714], [], "8d71bf19dfe999b0fba95d009986bfd6911c53c7a0c455466725f553005c3bc7", 1646929248433, 0.43714, [0.0014279], [0.0014471], [0.001432], [0.001441], [7], [10]], "benchmarks.PrettySuite.time_pretty_justify_center": [[0.0014142213130980963], [], "54cbf71bacab14ccbe1d063847c0b89198ed1bbe06edc89c14d2e3c7b1986c41", 1646929248650, 0.44698, [0.0014102], [0.0014189], [0.0014129], [0.0014165], [8], [10]], "benchmarks.StyleSuite.time_parse_ansi": [[1.1420955611779321e-07], [], "a003aaa8017585efeb1cd9c43351282df4df6249bf28a4c447b1304d984aa753", 1646929248875, 0.45308, [1.1374e-07], [1.1457e-07], [1.1407e-07], [1.1433e-07], [95478], [10]], "benchmarks.StyleSuite.time_parse_hex": [[1.1422061073712316e-07], [], "cf5a3f0def435d3da5bc3a6e7549c44c0a02e9cce6c00ecde8dd7f527556f8ca", 1646929249102, 0.45453, [1.1389e-07], [1.145e-07], [1.1416e-07], [1.1426e-07], [95630], [10]], "benchmarks.StyleSuite.time_parse_mixed_complex_style": [[1.142089005886854e-07], [], "01c9e12ae829b1984e55a5aeef1a9ae6f1461577adaf5ae59f06358c8b52802f", 1646929249329, 0.45161, [1.139e-07], [1.1449e-07], [1.1409e-07], [1.1431e-07], [94837], [10]], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_heavy_wrapping": [null, [], "1ed4d74ea424990cfb40c96f07635f9bcf7b8bacc7ade5204aaf96363e1622ee", 1646929243316, 0.062548], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_medium_wrapping": [null, [], "0880e162a4907ee025cef8ac3380502554fde27fd0c90a4c15cebc9c27f3e333", 1646929243378, 0.062248], "benchmarks.SyntaxWrappingSuite.time_text_wide_terminal_no_wrapping": [null, [], "feb11e94ae6a75de2dee899fb93db098b55cde232710660d7d66f9e2b288d9c0", 1646929243441, 0.062201], "benchmarks.TableSuite.time_table_heavy_wrapping": [[0.0032432865009468514], [], "ca515a9739c1e0f8eb922420f9f9caf27321fb13c8bd0bc49b207a0588b370de", 1646929249555, 0.46953, [0.0032245], [0.003261], [0.0032269], [0.0032553], [4], [10]], "benchmarks.TableSuite.time_table_no_wrapping": [[0.002120987500529736], [], "8842a5f141d8208ba2bab66e4973e978cb5d0615f326af5d70385ff8fa44b3b9", 1646929249791, 0.44438, [0.0021122], [0.002129], [0.0021167], [0.0021242], [5], [10]], "benchmarks.TextSuite.time_align_center": [[0.0006613528748857789], [], "1ceeeef2de43fcb3d0dfec409972d8f0eb791e9615fa9f9c959e0423725b089b", 1646929250017, 0.4392, [0.00065834], [0.00066442], [0.0006593], [0.00066291], [16], [10]], "benchmarks.TextSuite.time_align_center_unicode_heavy": [[0.0005475986843904186], [], "a83ff79614dd2ae17e8b68f45981fcaa0d9833c59a7a14f171b896cf970f54ce", 1646929250239, 0.4425, [0.00054456], [0.00054976], [0.00054561], [0.00054816], [19], [10]], "benchmarks.TextSuite.time_divide": [[2.8080769637185125e-05], [], "dcc120b921cb2ec77632f8fe2f6f4150d479cb49ef2608f8e86b569a937756e9", 1646929250458, 0.44929, [2.7767e-05], [2.8495e-05], [2.7784e-05], [2.8423e-05], [382], [10]], "benchmarks.TextSuite.time_divide_unicode_heavy": [[0.0001876626402168257], [], "ea53e662c0553324f90ac3336dcee77f733bb33638888e1f84bf71945a2f3f8e", 1646929250683, 0.44812, [0.00018594], [0.00018832], [0.0001873], [0.00018805], [57], [10]], "benchmarks.TextSuite.time_fit": [[4.2187584314895535e-05], [], "ec77b412db357b1e1c1e7bc620b941dddfc36dc76d2a66a0417feae4f21fe1d3", 1646929250907, 0.44582, [4.1989e-05], [4.2417e-05], [4.2047e-05], [4.23e-05], [249], [10]], "benchmarks.TextSuite.time_fit_unicode_heavy": [[0.00033042943593294873], [], "d1574b4af2ef8b80b95b4dbeeb13e5de67b66783f76f9968834776239dd0dc66", 1646929251128, 0.4364, [0.00032916], [0.0003317], [0.0003298], [0.00033075], [31], [10]], "benchmarks.TextSuite.time_indent_guides": [[0.0003925833270141783], [], "18da036dcfc15ec5e3c11e72be7c8f0c22fba695a5f19c95836be36952376cf2", 1646929251345, 0.43535, [0.00039183], [0.00039369], [0.00039218], [0.00039299], [26], [10]], "benchmarks.TextSuite.time_render": [[4.705824050982473e-06], [], "907d30581cfdc7bb2c4d302b7e3cb474aaefd8b84821365fe105af7d82be3b09", 1646929251561, 0.44794, [4.6792e-06], [4.7374e-06], [4.6849e-06], [4.7321e-06], [2333], [10]], "benchmarks.TextSuite.time_render_unicode_heavy": [[8.53061523002907e-05], [], "b3f1c09dfd06f412a20dacfe378c3b446727c7d4f9a975336eab3daa8543e1cb", 1646929251790, 0.45067, [8.4659e-05], [8.6293e-05], [8.4934e-05], [8.5773e-05], [128], [10]], "benchmarks.TextSuite.time_split": [[3.392226213414499e-05], [], "9c165854130cb95fea5491ffcd8b580a5bd373149da2ef8aace0e9480f649854", 1646929252016, 0.44364, [3.3851e-05], [3.4116e-05], [3.3892e-05], [3.3969e-05], [309], [10]], "benchmarks.TextSuite.time_split_unicode_heavy": [[0.0002802877299128906], [], "d55b02f6d06f478d70635bac3409f3a9899137d9cee87a70a293b8ccf5a6afa4", 1646929252237, 0.43867, [0.00027878], [0.00028245], [0.0002793], [0.00028114], [37], [10]], "benchmarks.TextSuite.time_wrapping": [[0.0011491758891174363], [], "8c821eba13d043f228fd902d8f678c397741855db05d02abe9b82f3d65cdf03d", 1646929252456, 0.44246, [0.0011417], [0.0011581], [0.0011438], [0.0011544], [9], [10]], "benchmarks.TextSuite.time_wrapping_unicode_heavy": [[0.0015291071426223166], [], "ec6e2ef08b6cdee182fef4e26c0043f8c365984f9a31be07dbd792e1aed862d8", 1646929252676, 0.44488, [0.0015262], [0.0015395], [0.0015274], [0.0015302], [7], [10]]}, "durations": {"": 1.975649118423462}, "version": 2} diff --git a/benchmarks/results/darrenburns-2022-mbp/2ea7e586-virtualenv-py3.10.json b/benchmarks/results/darrenburns-2022-mbp/2ea7e586-virtualenv-py3.10.json new file mode 100644 index 0000000000..0977c78410 --- /dev/null +++ b/benchmarks/results/darrenburns-2022-mbp/2ea7e586-virtualenv-py3.10.json @@ -0,0 +1 @@ +{"commit_hash": "2ea7e586792a95e33cddc74f9e89e62bcd8d7f2b", "env_name": "virtualenv-py3.10", "date": 1626114020000, "params": {"arch": "arm64", "cpu": "Apple M1 Pro", "machine": "darrenburns-2022-mbp", "num_cpu": "10", "os": "Darwin 21.2.0", "ram": "17179869184", "python": "3.10"}, "python": "3.10", "requirements": {}, "env_vars": {}, "result_columns": ["result", "params", "version", "started_at", "duration", "stats_ci_99_a", "stats_ci_99_b", "stats_q_25", "stats_q_75", "stats_number", "stats_repeat", "samples", "profile"], "results": {"benchmarks.ColorSuite.time_downgrade_to_eight_bit": [[1.6992604301908157e-07], [], "019b972f782c6291df9a6a4dea9bb3c6268a69b177e71383d6e19a608e84920d", 1646928404724, 0.46338, [1.6876e-07], [1.7045e-07], [1.6968e-07], [1.7023e-07], [64666], [10]], "benchmarks.ColorSuite.time_downgrade_to_standard": [[1.7087160984114965e-07], [], "f5e8556491c977450fff6ebfd9fff4fc8f12d74829aa5b8570bd27ea7a1c9d28", 1646928404956, 0.46229, [1.6992e-07], [1.7164e-07], [1.7049e-07], [1.7142e-07], [64012], [10]], "benchmarks.ColorSuite.time_downgrade_to_windows": [[1.7058781411970064e-07], [], "373eb97dd7ce2823e080972249235f528e8b3a47210911981cf432ecf0eef5fb", 1646928405187, 0.46302, [1.6989e-07], [1.7259e-07], [1.702e-07], [1.7091e-07], [64352], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_eight_bit": [[1.7051793879919311e-07], [], "716ff06a471a5d90af3730f6d4470eba3577432d781e0210dff1fd156b8c549c", 1646928405418, 0.4585, [1.6946e-07], [1.7234e-07], [1.7009e-07], [1.7145e-07], [63967], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_standard": [[1.7046113228587482e-07], [], "3a752a7884e99e095c31b2a28cfefdf916cb2033c06afae1ea146a72f3ba650c", 1646928405648, 0.45762, [1.6938e-07], [1.7079e-07], [1.7004e-07], [1.7059e-07], [64694], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_windows": [[1.698433621679389e-07], [], "1732bbd18ada49eb7b054fc18b40d6acfb533023463366f37203dab6fbb0cc20", 1646928405879, 0.43528, [1.6925e-07], [1.7095e-07], [1.6977e-07], [1.7024e-07], [59063], [10]], "benchmarks.PrettySuite.time_pretty": [[0.0010297646003891714], [], "9bb0e6d8a29aad21b3d1b550a160fa5f1e9030c69d16bad500c0dcc77bff6d01", 1646928406097, 0.44974, [0.0010247], [0.0010369], [0.001028], [0.0010308], [10], [10]], "benchmarks.PrettySuite.time_pretty_indent_guides": [[0.0014206379983079387], [], "8d71bf19dfe999b0fba95d009986bfd6911c53c7a0c455466725f553005c3bc7", 1646928406321, 0.45964, [0.001417], [0.0014292], [0.0014183], [0.0014251], [8], [10]], "benchmarks.PrettySuite.time_pretty_justify_center": [[0.001297976499699871], [], "54cbf71bacab14ccbe1d063847c0b89198ed1bbe06edc89c14d2e3c7b1986c41", 1646928406549, 0.44173, [0.0012917], [0.0013113], [0.0012955], [0.0013002], [8], [10]], "benchmarks.StyleSuite.time_parse_ansi": [[1.1393691468643312e-07], [], "a003aaa8017585efeb1cd9c43351282df4df6249bf28a4c447b1304d984aa753", 1646928406774, 0.46327, [1.1339e-07], [1.1443e-07], [1.1368e-07], [1.1434e-07], [96639], [10]], "benchmarks.StyleSuite.time_parse_hex": [[1.1676212033822138e-07], [], "cf5a3f0def435d3da5bc3a6e7549c44c0a02e9cce6c00ecde8dd7f527556f8ca", 1646928407007, 0.44502, [1.1631e-07], [1.1874e-07], [1.1645e-07], [1.1738e-07], [96202], [10]], "benchmarks.StyleSuite.time_parse_mixed_complex_style": [[1.144058273758263e-07], [], "01c9e12ae829b1984e55a5aeef1a9ae6f1461577adaf5ae59f06358c8b52802f", 1646928407231, 0.46264, [1.1393e-07], [1.1482e-07], [1.1411e-07], [1.1469e-07], [96185], [10]], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_heavy_wrapping": [null, [], "1ed4d74ea424990cfb40c96f07635f9bcf7b8bacc7ade5204aaf96363e1622ee", 1646928401167, 0.064996], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_medium_wrapping": [null, [], "0880e162a4907ee025cef8ac3380502554fde27fd0c90a4c15cebc9c27f3e333", 1646928401233, 0.064551], "benchmarks.SyntaxWrappingSuite.time_text_wide_terminal_no_wrapping": [null, [], "feb11e94ae6a75de2dee899fb93db098b55cde232710660d7d66f9e2b288d9c0", 1646928401297, 0.064766], "benchmarks.TableSuite.time_table_heavy_wrapping": [[0.0021443749981699513], [], "ca515a9739c1e0f8eb922420f9f9caf27321fb13c8bd0bc49b207a0588b370de", 1646928407463, 0.44019, [0.0021257], [0.0021643], [0.0021374], [0.0021594], [5], [10]], "benchmarks.TableSuite.time_table_no_wrapping": [[0.0012842708129028324], [], "8842a5f141d8208ba2bab66e4973e978cb5d0615f326af5d70385ff8fa44b3b9", 1646928407682, 0.44883, [0.0012784], [0.0012934], [0.0012821], [0.0012886], [8], [10]], "benchmarks.TextSuite.time_align_center": [[0.0003746949467832954], [], "1ceeeef2de43fcb3d0dfec409972d8f0eb791e9615fa9f9c959e0423725b089b", 1646928407905, 0.44912, [0.00037092], [0.00037832], [0.00037127], [0.00037777], [28], [10]], "benchmarks.TextSuite.time_align_center_unicode_heavy": [[0.0003414603997953236], [], "a83ff79614dd2ae17e8b68f45981fcaa0d9833c59a7a14f171b896cf970f54ce", 1646928408130, 0.44134, [0.00033918], [0.00035221], [0.0003399], [0.00034375], [30], [10]], "benchmarks.TextSuite.time_divide": [[2.5290634440816062e-05], [], "dcc120b921cb2ec77632f8fe2f6f4150d479cb49ef2608f8e86b569a937756e9", 1646928408349, 0.45374, [2.525e-05], [2.5412e-05], [2.526e-05], [2.5297e-05], [424], [10]], "benchmarks.TextSuite.time_divide_unicode_heavy": [[0.0001846790253046616], [], "ea53e662c0553324f90ac3336dcee77f733bb33638888e1f84bf71945a2f3f8e", 1646928408575, 0.45826, [0.00018393], [0.00018523], [0.00018454], [0.00018474], [59], [10]], "benchmarks.TextSuite.time_fit": [[4.405238912596706e-05], [], "ec77b412db357b1e1c1e7bc620b941dddfc36dc76d2a66a0417feae4f21fe1d3", 1646928408804, 0.44005, [4.3606e-05], [4.4535e-05], [4.3676e-05], [4.4411e-05], [239], [10]], "benchmarks.TextSuite.time_fit_unicode_heavy": [[0.00032573862082437813], [], "d1574b4af2ef8b80b95b4dbeeb13e5de67b66783f76f9968834776239dd0dc66", 1646928409026, 0.45582, [0.00032479], [0.00032729], [0.00032515], [0.0003268], [33], [10]], "benchmarks.TextSuite.time_indent_guides": [[0.0003578182588861292], [], "18da036dcfc15ec5e3c11e72be7c8f0c22fba695a5f19c95836be36952376cf2", 1646928409253, 0.44518, [0.00035696], [0.0003585], [0.00035747], [0.00035794], [29], [10]], "benchmarks.TextSuite.time_render": [[4.691665023142689e-06], [], "907d30581cfdc7bb2c4d302b7e3cb474aaefd8b84821365fe105af7d82be3b09", 1646928409474, 0.45398, [4.6564e-06], [4.9104e-06], [4.6601e-06], [4.7267e-06], [2336], [10]], "benchmarks.TextSuite.time_render_unicode_heavy": [[8.454524993339874e-05], [], "b3f1c09dfd06f412a20dacfe378c3b446727c7d4f9a975336eab3daa8543e1cb", 1646928409707, 0.45583, [8.4227e-05], [8.5332e-05], [8.4292e-05], [8.4842e-05], [128], [10]], "benchmarks.TextSuite.time_split": [[3.572889446249147e-05], [], "9c165854130cb95fea5491ffcd8b580a5bd373149da2ef8aace0e9480f649854", 1646928409937, 0.44255, [3.5001e-05], [3.6547e-05], [3.5043e-05], [3.6402e-05], [308], [10]], "benchmarks.TextSuite.time_split_unicode_heavy": [[0.00027405482902203833], [], "d55b02f6d06f478d70635bac3409f3a9899137d9cee87a70a293b8ccf5a6afa4", 1646928410161, 0.44388, [0.00027204], [0.00027484], [0.00027325], [0.00027431], [38], [10]], "benchmarks.TextSuite.time_wrapping": [[0.0010965833513182587], [], "8c821eba13d043f228fd902d8f678c397741855db05d02abe9b82f3d65cdf03d", 1646928410382, 0.44508, [0.0010955], [0.001102], [0.0010957], [0.0010987], [10], [10]], "benchmarks.TextSuite.time_wrapping_unicode_heavy": [[0.0013657838117069332], [], "ec6e2ef08b6cdee182fef4e26c0043f8c365984f9a31be07dbd792e1aed862d8", 1646928410603, 0.45444, [0.0013598], [0.0013712], [0.0013613], [0.0013689], [8], [10]]}, "durations": {"": 1.9997620582580566}, "version": 2} diff --git a/benchmarks/results/darrenburns-2022-mbp/3473658d-virtualenv-py3.10.json b/benchmarks/results/darrenburns-2022-mbp/3473658d-virtualenv-py3.10.json new file mode 100644 index 0000000000..0c9ca94013 --- /dev/null +++ b/benchmarks/results/darrenburns-2022-mbp/3473658d-virtualenv-py3.10.json @@ -0,0 +1 @@ +{"commit_hash": "3473658d13a4e88e1e58a7be116ae6975ca13cf6", "env_name": "virtualenv-py3.10", "date": 1611416490000, "params": {"arch": "arm64", "cpu": "Apple M1 Pro", "machine": "darrenburns-2022-mbp", "num_cpu": "10", "os": "Darwin 21.2.0", "ram": "17179869184", "python": "3.10"}, "python": "3.10", "requirements": {}, "env_vars": {}, "result_columns": ["result", "params", "version", "started_at", "duration", "stats_ci_99_a", "stats_ci_99_b", "stats_q_25", "stats_q_75", "stats_number", "stats_repeat", "samples", "profile"], "results": {"benchmarks.ColorSuite.time_downgrade_to_eight_bit": [[1.7036045765212364e-07], [], "019b972f782c6291df9a6a4dea9bb3c6268a69b177e71383d6e19a608e84920d", 1646929289967, 0.45927, [1.6981e-07], [1.7067e-07], [1.6996e-07], [1.7052e-07], [64314], [10]], "benchmarks.ColorSuite.time_downgrade_to_standard": [[1.7132086517078875e-07], [], "f5e8556491c977450fff6ebfd9fff4fc8f12d74829aa5b8570bd27ea7a1c9d28", 1646929290195, 0.45475, [1.694e-07], [1.7853e-07], [1.7048e-07], [1.7257e-07], [64270], [10]], "benchmarks.ColorSuite.time_downgrade_to_windows": [[1.704700660188381e-07], [], "373eb97dd7ce2823e080972249235f528e8b3a47210911981cf432ecf0eef5fb", 1646929290421, 0.45937, [1.6939e-07], [1.7227e-07], [1.6998e-07], [1.7167e-07], [64575], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_eight_bit": [[1.7441856731663292e-07], [], "716ff06a471a5d90af3730f6d4470eba3577432d781e0210dff1fd156b8c549c", 1646929290654, 0.46206, [1.7006e-07], [1.8044e-07], [1.7057e-07], [1.7638e-07], [64538], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_standard": [[1.7049117885360997e-07], [], "3a752a7884e99e095c31b2a28cfefdf916cb2033c06afae1ea146a72f3ba650c", 1646929290887, 0.461, [1.6932e-07], [1.7202e-07], [1.6979e-07], [1.7077e-07], [64676], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_windows": [[1.705279587625648e-07], [], "1732bbd18ada49eb7b054fc18b40d6acfb533023463366f37203dab6fbb0cc20", 1646929291119, 0.47769, [1.6914e-07], [1.7182e-07], [1.6977e-07], [1.7125e-07], [64238], [10]], "benchmarks.PrettySuite.time_pretty": [[0.0010213937508524395], [], "9bb0e6d8a29aad21b3d1b550a160fa5f1e9030c69d16bad500c0dcc77bff6d01", 1646929291366, 0.44248, [0.0010185], [0.0010252], [0.0010205], [0.0010227], [10], [10]], "benchmarks.PrettySuite.time_pretty_indent_guides": [[0.0014214713119145017], [], "8d71bf19dfe999b0fba95d009986bfd6911c53c7a0c455466725f553005c3bc7", 1646929291587, 0.45646, [0.0014163], [0.0014333], [0.0014182], [0.0014271], [8], [10]], "benchmarks.PrettySuite.time_pretty_justify_center": [[0.0014177551875036443], [], "54cbf71bacab14ccbe1d063847c0b89198ed1bbe06edc89c14d2e3c7b1986c41", 1646929291812, 0.45349, [0.0014112], [0.0014295], [0.0014152], [0.001424], [8], [10]], "benchmarks.StyleSuite.time_parse_ansi": [[1.1434615778797786e-07], [], "a003aaa8017585efeb1cd9c43351282df4df6249bf28a4c447b1304d984aa753", 1646929292036, 0.45404, [1.1381e-07], [1.1566e-07], [1.1409e-07], [1.1477e-07], [95351], [10]], "benchmarks.StyleSuite.time_parse_hex": [[1.1487062976460817e-07], [], "cf5a3f0def435d3da5bc3a6e7549c44c0a02e9cce6c00ecde8dd7f527556f8ca", 1646929292263, 0.45359, [1.146e-07], [1.1632e-07], [1.147e-07], [1.1534e-07], [94017], [10]], "benchmarks.StyleSuite.time_parse_mixed_complex_style": [[1.1449183907183087e-07], [], "01c9e12ae829b1984e55a5aeef1a9ae6f1461577adaf5ae59f06358c8b52802f", 1646929292488, 0.45677, [1.1407e-07], [1.1555e-07], [1.1433e-07], [1.15e-07], [95519], [10]], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_heavy_wrapping": [null, [], "1ed4d74ea424990cfb40c96f07635f9bcf7b8bacc7ade5204aaf96363e1622ee", 1646929286392, 0.062805], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_medium_wrapping": [null, [], "0880e162a4907ee025cef8ac3380502554fde27fd0c90a4c15cebc9c27f3e333", 1646929286455, 0.06227], "benchmarks.SyntaxWrappingSuite.time_text_wide_terminal_no_wrapping": [null, [], "feb11e94ae6a75de2dee899fb93db098b55cde232710660d7d66f9e2b288d9c0", 1646929286517, 0.062011], "benchmarks.TableSuite.time_table_heavy_wrapping": [[0.0032570260009379126], [], "ca515a9739c1e0f8eb922420f9f9caf27321fb13c8bd0bc49b207a0588b370de", 1646929292717, 0.47559, [0.0032274], [0.0032784], [0.0032405], [0.0032633], [4], [10]], "benchmarks.TableSuite.time_table_no_wrapping": [[0.0021434916998259723], [], "8842a5f141d8208ba2bab66e4973e978cb5d0615f326af5d70385ff8fa44b3b9", 1646929292954, 0.45432, [0.0021262], [0.0023682], [0.0021294], [0.0022289], [5], [10]], "benchmarks.TextSuite.time_align_center": [[0.0006590039056391106], [], "1ceeeef2de43fcb3d0dfec409972d8f0eb791e9615fa9f9c959e0423725b089b", 1646929293181, 0.44004, [0.00065646], [0.00066109], [0.00065732], [0.00065982], [16], [10]], "benchmarks.TextSuite.time_align_center_unicode_heavy": [[0.0005492642361021257], [], "a83ff79614dd2ae17e8b68f45981fcaa0d9833c59a7a14f171b896cf970f54ce", 1646929293403, 0.44628, [0.0005456], [0.00056301], [0.00054725], [0.00055315], [19], [10]], "benchmarks.TextSuite.time_divide": [[2.539885831250868e-05], [], "dcc120b921cb2ec77632f8fe2f6f4150d479cb49ef2608f8e86b569a937756e9", 1646929293622, 0.45436, [2.5248e-05], [2.5553e-05], [2.5329e-05], [2.5453e-05], [427], [10]], "benchmarks.TextSuite.time_divide_unicode_heavy": [[0.0001851214138100502], [], "ea53e662c0553324f90ac3336dcee77f733bb33638888e1f84bf71945a2f3f8e", 1646929293848, 0.4509, [0.00018372], [0.00018848], [0.00018458], [0.00018637], [58], [10]], "benchmarks.TextSuite.time_fit": [[4.233050002949312e-05], [], "ec77b412db357b1e1c1e7bc620b941dddfc36dc76d2a66a0417feae4f21fe1d3", 1646929294072, 0.44953, [4.2134e-05], [4.2492e-05], [4.2184e-05], [4.2471e-05], [250], [10]], "benchmarks.TextSuite.time_fit_unicode_heavy": [[0.0003210353483375388], [], "d1574b4af2ef8b80b95b4dbeeb13e5de67b66783f76f9968834776239dd0dc66", 1646929294295, 0.45183, [0.00031769], [0.00032317], [0.00031959], [0.00032192], [33], [10]], "benchmarks.TextSuite.time_indent_guides": [[0.00038107714768826826], [], "18da036dcfc15ec5e3c11e72be7c8f0c22fba695a5f19c95836be36952376cf2", 1646929294519, 0.44226, [0.00038033], [0.00038412], [0.00038075], [0.00038138], [27], [10]], "benchmarks.TextSuite.time_render": [[4.6828025228597816e-06], [], "907d30581cfdc7bb2c4d302b7e3cb474aaefd8b84821365fe105af7d82be3b09", 1646929294739, 0.43567, [4.6481e-06], [4.8526e-06], [4.6588e-06], [4.7005e-06], [2142], [10]], "benchmarks.TextSuite.time_render_unicode_heavy": [[8.517294849124959e-05], [], "b3f1c09dfd06f412a20dacfe378c3b446727c7d4f9a975336eab3daa8543e1cb", 1646929294953, 0.45018, [8.4532e-05], [8.5655e-05], [8.4952e-05], [8.5303e-05], [126], [10]], "benchmarks.TextSuite.time_split": [[3.403544921191439e-05], [], "9c165854130cb95fea5491ffcd8b580a5bd373149da2ef8aace0e9480f649854", 1646929295178, 0.45229, [3.4017e-05], [3.4885e-05], [3.402e-05], [3.4267e-05], [315], [10]], "benchmarks.TextSuite.time_split_unicode_heavy": [[0.0002694156021625998], [], "d55b02f6d06f478d70635bac3409f3a9899137d9cee87a70a293b8ccf5a6afa4", 1646929295402, 0.44696, [0.00026812], [0.00027325], [0.00026887], [0.00027074], [39], [10]], "benchmarks.TextSuite.time_wrapping": [[0.0011032729016733356], [], "8c821eba13d043f228fd902d8f678c397741855db05d02abe9b82f3d65cdf03d", 1646929295624, 0.44329, [0.0010982], [0.0011724], [0.0010991], [0.0011151], [10], [10]], "benchmarks.TextSuite.time_wrapping_unicode_heavy": [[0.0014802440003092799], [], "ec6e2ef08b6cdee182fef4e26c0043f8c365984f9a31be07dbd792e1aed862d8", 1646929295843, 0.4359, [0.0014784], [0.0015016], [0.0014799], [0.0014855], [7], [10]]}, "durations": {"": 1.9989511966705322}, "version": 2} diff --git a/benchmarks/results/darrenburns-2022-mbp/36efcb5a-virtualenv-py3.10.json b/benchmarks/results/darrenburns-2022-mbp/36efcb5a-virtualenv-py3.10.json new file mode 100644 index 0000000000..9953421d93 --- /dev/null +++ b/benchmarks/results/darrenburns-2022-mbp/36efcb5a-virtualenv-py3.10.json @@ -0,0 +1 @@ +{"commit_hash": "36efcb5abe9ea8b6a7707243bec89a81e063c01a", "env_name": "virtualenv-py3.10", "date": 1603472109000, "params": {"arch": "arm64", "cpu": "Apple M1 Pro", "machine": "darrenburns-2022-mbp", "num_cpu": "10", "os": "Darwin 21.2.0", "ram": "17179869184", "python": "3.10"}, "python": "3.10", "requirements": {}, "env_vars": {}, "result_columns": ["result", "params", "version", "started_at", "duration", "stats_ci_99_a", "stats_ci_99_b", "stats_q_25", "stats_q_75", "stats_number", "stats_repeat", "samples", "profile"], "results": {"benchmarks.ColorSuite.time_downgrade_to_eight_bit": [[1.6962975981415165e-07], [], "019b972f782c6291df9a6a4dea9bb3c6268a69b177e71383d6e19a608e84920d", 1646928989577, 0.45595, [1.683e-07], [1.7053e-07], [1.6932e-07], [1.7006e-07], [64762], [10]], "benchmarks.ColorSuite.time_downgrade_to_standard": [[1.7044543418703197e-07], [], "f5e8556491c977450fff6ebfd9fff4fc8f12d74829aa5b8570bd27ea7a1c9d28", 1646928989806, 0.45502, [1.6871e-07], [1.7073e-07], [1.702e-07], [1.7063e-07], [64610], [10]], "benchmarks.ColorSuite.time_downgrade_to_windows": [[1.6992367789789537e-07], [], "373eb97dd7ce2823e080972249235f528e8b3a47210911981cf432ecf0eef5fb", 1646928990034, 0.4542, [1.6896e-07], [1.7084e-07], [1.6967e-07], [1.7046e-07], [64457], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_eight_bit": [[1.703134810532796e-07], [], "716ff06a471a5d90af3730f6d4470eba3577432d781e0210dff1fd156b8c549c", 1646928990261, 0.44494, [1.6965e-07], [1.7082e-07], [1.701e-07], [1.7048e-07], [64594], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_standard": [[1.7000458742323704e-07], [], "3a752a7884e99e095c31b2a28cfefdf916cb2033c06afae1ea146a72f3ba650c", 1646928990489, 0.45213, [1.6894e-07], [1.7274e-07], [1.6975e-07], [1.7105e-07], [63544], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_windows": [[1.6998829406495502e-07], [], "1732bbd18ada49eb7b054fc18b40d6acfb533023463366f37203dab6fbb0cc20", 1646928990715, 0.456, [1.6921e-07], [1.7311e-07], [1.6971e-07], [1.7034e-07], [64583], [10]], "benchmarks.PrettySuite.time_pretty": [[0.0010213146000751295], [], "9bb0e6d8a29aad21b3d1b550a160fa5f1e9030c69d16bad500c0dcc77bff6d01", 1646928990943, 0.44082, [0.0010194], [0.0010242], [0.0010199], [0.0010232], [10], [10]], "benchmarks.PrettySuite.time_pretty_indent_guides": [[0.0014337708562379703], [], "8d71bf19dfe999b0fba95d009986bfd6911c53c7a0c455466725f553005c3bc7", 1646928991163, 0.43396, [0.0014306], [0.0014365], [0.0014318], [0.0014356], [7], [10]], "benchmarks.PrettySuite.time_pretty_justify_center": [[0.0014147630008665146], [], "54cbf71bacab14ccbe1d063847c0b89198ed1bbe06edc89c14d2e3c7b1986c41", 1646928991379, 0.4523, [0.0014092], [0.0014204], [0.0014107], [0.0014179], [8], [10]], "benchmarks.StyleSuite.time_parse_ansi": [[1.1416031242196305e-07], [], "a003aaa8017585efeb1cd9c43351282df4df6249bf28a4c447b1304d984aa753", 1646928991604, 0.42823, [1.1366e-07], [1.1517e-07], [1.1406e-07], [1.1446e-07], [88131], [10]], "benchmarks.StyleSuite.time_parse_hex": [[1.1408945358695679e-07], [], "cf5a3f0def435d3da5bc3a6e7549c44c0a02e9cce6c00ecde8dd7f527556f8ca", 1646928991820, 0.45585, [1.1346e-07], [1.1433e-07], [1.1384e-07], [1.1413e-07], [96430], [10]], "benchmarks.StyleSuite.time_parse_mixed_complex_style": [[1.1410896113544889e-07], [], "01c9e12ae829b1984e55a5aeef1a9ae6f1461577adaf5ae59f06358c8b52802f", 1646928992049, 0.45439, [1.1381e-07], [1.1433e-07], [1.1398e-07], [1.1416e-07], [96048], [10]], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_heavy_wrapping": [null, [], "1ed4d74ea424990cfb40c96f07635f9bcf7b8bacc7ade5204aaf96363e1622ee", 1646928986076, 0.060543], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_medium_wrapping": [null, [], "0880e162a4907ee025cef8ac3380502554fde27fd0c90a4c15cebc9c27f3e333", 1646928986137, 0.060764], "benchmarks.SyntaxWrappingSuite.time_text_wide_terminal_no_wrapping": [null, [], "feb11e94ae6a75de2dee899fb93db098b55cde232710660d7d66f9e2b288d9c0", 1646928986198, 0.060546], "benchmarks.TableSuite.time_table_heavy_wrapping": [[0.0027355208767403383], [], "ca515a9739c1e0f8eb922420f9f9caf27321fb13c8bd0bc49b207a0588b370de", 1646928992278, 0.43969, [0.0027281], [0.0027409], [0.002734], [0.002737], [4], [10]], "benchmarks.TableSuite.time_table_no_wrapping": [[0.0018644479156743423], [], "8842a5f141d8208ba2bab66e4973e978cb5d0615f326af5d70385ff8fa44b3b9", 1646928992496, 0.44894, [0.0018539], [0.0018746], [0.0018638], [0.0018648], [6], [10]], "benchmarks.TextSuite.time_align_center": [[0.0006582486876141047], [], "1ceeeef2de43fcb3d0dfec409972d8f0eb791e9615fa9f9c959e0423725b089b", 1646928992717, 0.43597, [0.00065765], [0.00066143], [0.00065795], [0.00065902], [16], [10]], "benchmarks.TextSuite.time_align_center_unicode_heavy": [[0.000555089946781089], [], "a83ff79614dd2ae17e8b68f45981fcaa0d9833c59a7a14f171b896cf970f54ce", 1646928992939, 0.43491, [0.00054518], [0.00055824], [0.00055459], [0.00055611], [19], [10]], "benchmarks.TextSuite.time_divide": [[2.8029603938768176e-05], [], "dcc120b921cb2ec77632f8fe2f6f4150d479cb49ef2608f8e86b569a937756e9", 1646928993160, 0.44717, [2.7984e-05], [2.8185e-05], [2.8022e-05], [2.8094e-05], [380], [10]], "benchmarks.TextSuite.time_divide_unicode_heavy": [[0.0001871487071059227], [], "ea53e662c0553324f90ac3336dcee77f733bb33638888e1f84bf71945a2f3f8e", 1646928993384, 0.4504, [0.00018654], [0.00018824], [0.0001868], [0.00018756], [58], [10]], "benchmarks.TextSuite.time_fit": [[4.228466597851366e-05], [], "ec77b412db357b1e1c1e7bc620b941dddfc36dc76d2a66a0417feae4f21fe1d3", 1646928993610, 0.4448, [4.2137e-05], [4.2368e-05], [4.2257e-05], [4.233e-05], [250], [10]], "benchmarks.TextSuite.time_fit_unicode_heavy": [[0.0003317379192712026], [], "d1574b4af2ef8b80b95b4dbeeb13e5de67b66783f76f9968834776239dd0dc66", 1646928993832, 0.43861, [0.00032956], [0.00033329], [0.00033079], [0.00033273], [31], [10]], "benchmarks.TextSuite.time_indent_guides": [[0.0003924358847703283], [], "18da036dcfc15ec5e3c11e72be7c8f0c22fba695a5f19c95836be36952376cf2", 1646928994053, 0.43513, [0.00039219], [0.00039296], [0.00039235], [0.00039269], [26], [10]], "benchmarks.TextSuite.time_render": [[4.697171516259794e-06], [], "907d30581cfdc7bb2c4d302b7e3cb474aaefd8b84821365fe105af7d82be3b09", 1646928994270, 0.45696, [4.6841e-06], [4.707e-06], [4.689e-06], [4.7021e-06], [2335], [10]], "benchmarks.TextSuite.time_render_unicode_heavy": [[8.521435552211187e-05], [], "b3f1c09dfd06f412a20dacfe378c3b446727c7d4f9a975336eab3daa8543e1cb", 1646928994497, 0.45142, [8.4929e-05], [8.5635e-05], [8.5156e-05], [8.554e-05], [128], [10]], "benchmarks.TextSuite.time_split": [[3.380010609546455e-05], [], "9c165854130cb95fea5491ffcd8b580a5bd373149da2ef8aace0e9480f649854", 1646928994725, 0.4421, [3.3779e-05], [3.3895e-05], [3.3798e-05], [3.3835e-05], [311], [10]], "benchmarks.TextSuite.time_split_unicode_heavy": [[0.0002792432433862642], [], "d55b02f6d06f478d70635bac3409f3a9899137d9cee87a70a293b8ccf5a6afa4", 1646928994946, 0.43592, [0.00027793], [0.00028037], [0.00027895], [0.0002798], [37], [10]], "benchmarks.TextSuite.time_wrapping": [[0.0011467361683672708], [], "8c821eba13d043f228fd902d8f678c397741855db05d02abe9b82f3d65cdf03d", 1646928995164, 0.43365, [0.0011448], [0.0011551], [0.0011457], [0.0011481], [9], [10]], "benchmarks.TextSuite.time_wrapping_unicode_heavy": [[0.0015301428585579352], [], "ec6e2ef08b6cdee182fef4e26c0043f8c365984f9a31be07dbd792e1aed862d8", 1646928995383, 0.44726, [0.0015262], [0.001542], [0.0015292], [0.0015307], [7], [10]]}, "durations": {"": 2.06260085105896}, "version": 2} diff --git a/benchmarks/results/darrenburns-2022-mbp/3827b4ae-virtualenv-py3.10.json b/benchmarks/results/darrenburns-2022-mbp/3827b4ae-virtualenv-py3.10.json new file mode 100644 index 0000000000..8b50b62320 --- /dev/null +++ b/benchmarks/results/darrenburns-2022-mbp/3827b4ae-virtualenv-py3.10.json @@ -0,0 +1 @@ +{"commit_hash": "3827b4ae01aca1b4cb308f4c838da1b91384ad7d", "env_name": "virtualenv-py3.10", "date": 1638453157000, "params": {"arch": "arm64", "cpu": "Apple M1 Pro", "machine": "darrenburns-2022-mbp", "num_cpu": "10", "os": "Darwin 21.2.0", "ram": "17179869184", "python": "3.10"}, "python": "3.10", "requirements": {}, "env_vars": {}, "result_columns": ["result", "params", "version", "started_at", "duration", "stats_ci_99_a", "stats_ci_99_b", "stats_q_25", "stats_q_75", "stats_number", "stats_repeat", "samples", "profile"], "results": {"benchmarks.ColorSuite.time_downgrade_to_eight_bit": [[1.7009055537469912e-07], [], "019b972f782c6291df9a6a4dea9bb3c6268a69b177e71383d6e19a608e84920d", 1646928260721, 0.46627, [1.6931e-07], [1.7097e-07], [1.6999e-07], [1.7032e-07], [64364], [10]], "benchmarks.ColorSuite.time_downgrade_to_standard": [[1.7015987727142876e-07], [], "f5e8556491c977450fff6ebfd9fff4fc8f12d74829aa5b8570bd27ea7a1c9d28", 1646928260953, 0.46456, [1.6921e-07], [1.7077e-07], [1.6993e-07], [1.7041e-07], [64512], [10]], "benchmarks.ColorSuite.time_downgrade_to_windows": [[1.7029074018500487e-07], [], "373eb97dd7ce2823e080972249235f528e8b3a47210911981cf432ecf0eef5fb", 1646928261185, 0.44741, [1.6919e-07], [1.709e-07], [1.6997e-07], [1.7044e-07], [60573], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_eight_bit": [[1.6975108501065804e-07], [], "716ff06a471a5d90af3730f6d4470eba3577432d781e0210dff1fd156b8c549c", 1646928261407, 0.44759, [1.6884e-07], [1.6998e-07], [1.6914e-07], [1.6981e-07], [60830], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_standard": [[1.7048188633534393e-07], [], "3a752a7884e99e095c31b2a28cfefdf916cb2033c06afae1ea146a72f3ba650c", 1646928261630, 0.46122, [1.6999e-07], [1.7111e-07], [1.7012e-07], [1.7057e-07], [63654], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_windows": [[1.697135537800892e-07], [], "1732bbd18ada49eb7b054fc18b40d6acfb533023463366f37203dab6fbb0cc20", 1646928261861, 0.46437, [1.6886e-07], [1.7133e-07], [1.6954e-07], [1.7008e-07], [64410], [10]], "benchmarks.PrettySuite.time_pretty": [[0.0011078062510932797], [], "9bb0e6d8a29aad21b3d1b550a160fa5f1e9030c69d16bad500c0dcc77bff6d01", 1646928262094, 0.454, [0.0011054], [0.0011101], [0.0011069], [0.0011084], [10], [10]], "benchmarks.PrettySuite.time_pretty_indent_guides": [[0.001514940499743846], [], "8d71bf19dfe999b0fba95d009986bfd6911c53c7a0c455466725f553005c3bc7", 1646928262320, 0.45246, [0.0015085], [0.0015254], [0.0015129], [0.0015177], [7], [10]], "benchmarks.PrettySuite.time_pretty_justify_center": [[0.0013975702513562283], [], "54cbf71bacab14ccbe1d063847c0b89198ed1bbe06edc89c14d2e3c7b1986c41", 1646928262549, 0.45354, [0.0013929], [0.0014026], [0.0013946], [0.0013995], [8], [10]], "benchmarks.StyleSuite.time_parse_ansi": [[1.1443176231251601e-07], [], "a003aaa8017585efeb1cd9c43351282df4df6249bf28a4c447b1304d984aa753", 1646928262776, 0.46351, [1.1425e-07], [1.1519e-07], [1.1431e-07], [1.1465e-07], [96076], [10]], "benchmarks.StyleSuite.time_parse_hex": [[1.148095777968294e-07], [], "cf5a3f0def435d3da5bc3a6e7549c44c0a02e9cce6c00ecde8dd7f527556f8ca", 1646928263010, 0.46574, [1.1405e-07], [1.1561e-07], [1.1431e-07], [1.1533e-07], [96181], [10]], "benchmarks.StyleSuite.time_parse_mixed_complex_style": [[1.1418964091759141e-07], [], "01c9e12ae829b1984e55a5aeef1a9ae6f1461577adaf5ae59f06358c8b52802f", 1646928263244, 0.46235, [1.1385e-07], [1.1454e-07], [1.1416e-07], [1.1422e-07], [96100], [10]], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_heavy_wrapping": [null, [], "1ed4d74ea424990cfb40c96f07635f9bcf7b8bacc7ade5204aaf96363e1622ee", 1646928257134, 0.066227], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_medium_wrapping": [null, [], "0880e162a4907ee025cef8ac3380502554fde27fd0c90a4c15cebc9c27f3e333", 1646928257200, 0.065569], "benchmarks.SyntaxWrappingSuite.time_text_wide_terminal_no_wrapping": [null, [], "feb11e94ae6a75de2dee899fb93db098b55cde232710660d7d66f9e2b288d9c0", 1646928257266, 0.066056], "benchmarks.TableSuite.time_table_heavy_wrapping": [[0.0023518957983469594], [], "ca515a9739c1e0f8eb922420f9f9caf27321fb13c8bd0bc49b207a0588b370de", 1646928263476, 0.45906, [0.0023316], [0.0023603], [0.002344], [0.0023558], [5], [10]], "benchmarks.TableSuite.time_table_no_wrapping": [[0.001403494748956291], [], "8842a5f141d8208ba2bab66e4973e978cb5d0615f326af5d70385ff8fa44b3b9", 1646928263709, 0.45174, [0.0013933], [0.0014152], [0.0014012], [0.0014103], [8], [10]], "benchmarks.TextSuite.time_align_center": [[0.00037406101806222323], [], "1ceeeef2de43fcb3d0dfec409972d8f0eb791e9615fa9f9c959e0423725b089b", 1646928263937, 0.45149, [0.00037315], [0.00037555], [0.00037337], [0.00037455], [28], [10]], "benchmarks.TextSuite.time_align_center_unicode_heavy": [[0.00033967203231558446], [], "a83ff79614dd2ae17e8b68f45981fcaa0d9833c59a7a14f171b896cf970f54ce", 1646928264161, 0.45332, [0.00033776], [0.00034824], [0.00033877], [0.00034596], [31], [10]], "benchmarks.TextSuite.time_divide": [[2.5327518605356386e-05], [], "dcc120b921cb2ec77632f8fe2f6f4150d479cb49ef2608f8e86b569a937756e9", 1646928264386, 0.46078, [2.5218e-05], [2.5414e-05], [2.529e-05], [2.5363e-05], [430], [10]], "benchmarks.TextSuite.time_divide_unicode_heavy": [[0.00018412104315036136], [], "ea53e662c0553324f90ac3336dcee77f733bb33638888e1f84bf71945a2f3f8e", 1646928264616, 0.45467, [0.00018337], [0.00018458], [0.00018398], [0.00018418], [58], [10]], "benchmarks.TextSuite.time_fit": [[4.344766258453284e-05], [], "ec77b412db357b1e1c1e7bc620b941dddfc36dc76d2a66a0417feae4f21fe1d3", 1646928264843, 0.44746, [4.3389e-05], [4.3622e-05], [4.3412e-05], [4.3485e-05], [246], [10]], "benchmarks.TextSuite.time_fit_unicode_heavy": [[0.00032461806073446166], [], "d1574b4af2ef8b80b95b4dbeeb13e5de67b66783f76f9968834776239dd0dc66", 1646928265070, 0.45723, [0.00032394], [0.00032514], [0.00032438], [0.00032509], [33], [10]], "benchmarks.TextSuite.time_indent_guides": [[0.00035664798282407996], [], "18da036dcfc15ec5e3c11e72be7c8f0c22fba695a5f19c95836be36952376cf2", 1646928265298, 0.44681, [0.00035609], [0.00035745], [0.00035645], [0.0003572], [29], [10]], "benchmarks.TextSuite.time_render": [[4.674904899767451e-06], [], "907d30581cfdc7bb2c4d302b7e3cb474aaefd8b84821365fe105af7d82be3b09", 1646928265520, 0.45193, [4.6485e-06], [4.6907e-06], [4.665e-06], [4.6841e-06], [2324], [10]], "benchmarks.TextSuite.time_render_unicode_heavy": [[8.502903148737244e-05], [], "b3f1c09dfd06f412a20dacfe378c3b446727c7d4f9a975336eab3daa8543e1cb", 1646928265750, 0.45667, [8.4472e-05], [8.6022e-05], [8.483e-05], [8.5245e-05], [127], [10]], "benchmarks.TextSuite.time_split": [[3.508509089678901e-05], [], "9c165854130cb95fea5491ffcd8b580a5bd373149da2ef8aace0e9480f649854", 1646928265979, 0.44927, [3.4971e-05], [3.5129e-05], [3.5047e-05], [3.5094e-05], [308], [10]], "benchmarks.TextSuite.time_split_unicode_heavy": [[0.0002740542764322048], [], "d55b02f6d06f478d70635bac3409f3a9899137d9cee87a70a293b8ccf5a6afa4", 1646928266208, 0.44763, [0.00027339], [0.00027509], [0.00027395], [0.00027425], [38], [10]], "benchmarks.TextSuite.time_wrapping": [[0.0013660859367519151], [], "8c821eba13d043f228fd902d8f678c397741855db05d02abe9b82f3d65cdf03d", 1646928266431, 0.45753, [0.001359], [0.0013704], [0.0013611], [0.0013692], [8], [10]], "benchmarks.TextSuite.time_wrapping_unicode_heavy": [[0.0014471309301110785], [], "ec6e2ef08b6cdee182fef4e26c0043f8c365984f9a31be07dbd792e1aed862d8", 1646928266664, 0.4465, [0.0014435], [0.0014547], [0.0014448], [0.0014502], [7], [10]]}, "durations": {"": 1.9763908386230469}, "version": 2} diff --git a/benchmarks/results/darrenburns-2022-mbp/3db6396a-virtualenv-py3.10.json b/benchmarks/results/darrenburns-2022-mbp/3db6396a-virtualenv-py3.10.json new file mode 100644 index 0000000000..d4dfbab503 --- /dev/null +++ b/benchmarks/results/darrenburns-2022-mbp/3db6396a-virtualenv-py3.10.json @@ -0,0 +1 @@ +{"commit_hash": "3db6396a0c6838fd8fa642ccab3a095838d88329", "env_name": "virtualenv-py3.10", "date": 1638208615000, "params": {"arch": "arm64", "cpu": "Apple M1 Pro", "machine": "darrenburns-2022-mbp", "num_cpu": "10", "os": "Darwin 21.2.0", "ram": "17179869184", "python": "3.10"}, "python": "3.10", "requirements": {}, "env_vars": {}, "result_columns": ["result", "params", "version", "started_at", "duration", "stats_ci_99_a", "stats_ci_99_b", "stats_q_25", "stats_q_75", "stats_number", "stats_repeat", "samples", "profile"], "results": {"benchmarks.ColorSuite.time_downgrade_to_eight_bit": [[1.7042319254797695e-07], [], "019b972f782c6291df9a6a4dea9bb3c6268a69b177e71383d6e19a608e84920d", 1646928246228, 0.4658, [1.697e-07], [1.7155e-07], [1.702e-07], [1.7069e-07], [64460], [10]], "benchmarks.ColorSuite.time_downgrade_to_standard": [[1.7014701335412993e-07], [], "f5e8556491c977450fff6ebfd9fff4fc8f12d74829aa5b8570bd27ea7a1c9d28", 1646928246460, 0.43742, [1.69e-07], [1.7085e-07], [1.6994e-07], [1.7066e-07], [58998], [10]], "benchmarks.ColorSuite.time_downgrade_to_windows": [[1.7074798454802254e-07], [], "373eb97dd7ce2823e080972249235f528e8b3a47210911981cf432ecf0eef5fb", 1646928246677, 0.46135, [1.7041e-07], [1.7223e-07], [1.7049e-07], [1.7165e-07], [63266], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_eight_bit": [[1.702288241755897e-07], [], "716ff06a471a5d90af3730f6d4470eba3577432d781e0210dff1fd156b8c549c", 1646928246907, 0.46182, [1.6915e-07], [1.7116e-07], [1.7e-07], [1.7034e-07], [63433], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_standard": [[1.7044823244778374e-07], [], "3a752a7884e99e095c31b2a28cfefdf916cb2033c06afae1ea146a72f3ba650c", 1646928247136, 0.46566, [1.7004e-07], [1.7093e-07], [1.7026e-07], [1.7062e-07], [64529], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_windows": [[1.6976035790289064e-07], [], "1732bbd18ada49eb7b054fc18b40d6acfb533023463366f37203dab6fbb0cc20", 1646928247368, 0.46336, [1.6818e-07], [1.7054e-07], [1.6949e-07], [1.7021e-07], [64540], [10]], "benchmarks.PrettySuite.time_pretty": [[0.0011084083511377686], [], "9bb0e6d8a29aad21b3d1b550a160fa5f1e9030c69d16bad500c0dcc77bff6d01", 1646928247600, 0.45566, [0.0011028], [0.0011123], [0.0011053], [0.0011107], [10], [10]], "benchmarks.PrettySuite.time_pretty_indent_guides": [[0.0015121815023511381], [], "8d71bf19dfe999b0fba95d009986bfd6911c53c7a0c455466725f553005c3bc7", 1646928247825, 0.45172, [0.0015065], [0.0015199], [0.0015114], [0.0015162], [7], [10]], "benchmarks.PrettySuite.time_pretty_justify_center": [[0.0013970182499178918], [], "54cbf71bacab14ccbe1d063847c0b89198ed1bbe06edc89c14d2e3c7b1986c41", 1646928248053, 0.45388, [0.0013931], [0.0014037], [0.0013948], [0.0013999], [8], [10]], "benchmarks.StyleSuite.time_parse_ansi": [[1.1427530083689559e-07], [], "a003aaa8017585efeb1cd9c43351282df4df6249bf28a4c447b1304d984aa753", 1646928248279, 0.46422, [1.1388e-07], [1.1469e-07], [1.1424e-07], [1.144e-07], [96380], [10]], "benchmarks.StyleSuite.time_parse_hex": [[1.1394543975825273e-07], [], "cf5a3f0def435d3da5bc3a6e7549c44c0a02e9cce6c00ecde8dd7f527556f8ca", 1646928248512, 0.46404, [1.133e-07], [1.1469e-07], [1.1342e-07], [1.143e-07], [96444], [10]], "benchmarks.StyleSuite.time_parse_mixed_complex_style": [[1.143002247191072e-07], [], "01c9e12ae829b1984e55a5aeef1a9ae6f1461577adaf5ae59f06358c8b52802f", 1646928248744, 0.46432, [1.1395e-07], [1.1467e-07], [1.1421e-07], [1.1445e-07], [96143], [10]], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_heavy_wrapping": [null, [], "1ed4d74ea424990cfb40c96f07635f9bcf7b8bacc7ade5204aaf96363e1622ee", 1646928242637, 0.065911], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_medium_wrapping": [null, [], "0880e162a4907ee025cef8ac3380502554fde27fd0c90a4c15cebc9c27f3e333", 1646928242703, 0.065746], "benchmarks.SyntaxWrappingSuite.time_text_wide_terminal_no_wrapping": [null, [], "feb11e94ae6a75de2dee899fb93db098b55cde232710660d7d66f9e2b288d9c0", 1646928242769, 0.065471], "benchmarks.TableSuite.time_table_heavy_wrapping": [[0.0023442875011824072], [], "ca515a9739c1e0f8eb922420f9f9caf27321fb13c8bd0bc49b207a0588b370de", 1646928248976, 0.4591, [0.0023329], [0.0023571], [0.0023388], [0.002348], [5], [10]], "benchmarks.TableSuite.time_table_no_wrapping": [[0.001400791623382247], [], "8842a5f141d8208ba2bab66e4973e978cb5d0615f326af5d70385ff8fa44b3b9", 1646928249210, 0.44971, [0.0013923], [0.0014051], [0.001396], [0.001402], [8], [10]], "benchmarks.TextSuite.time_align_center": [[0.0003787046069711713], [], "1ceeeef2de43fcb3d0dfec409972d8f0eb791e9615fa9f9c959e0423725b089b", 1646928249436, 0.45477, [0.00037146], [0.00038647], [0.00037177], [0.00038591], [28], [10]], "benchmarks.TextSuite.time_align_center_unicode_heavy": [[0.0003395120969094757], [], "a83ff79614dd2ae17e8b68f45981fcaa0d9833c59a7a14f171b896cf970f54ce", 1646928249665, 0.45332, [0.00033818], [0.00034835], [0.00033874], [0.00034143], [31], [10]], "benchmarks.TextSuite.time_divide": [[2.533570700189705e-05], [], "dcc120b921cb2ec77632f8fe2f6f4150d479cb49ef2608f8e86b569a937756e9", 1646928249890, 0.46095, [2.5172e-05], [2.5579e-05], [2.5245e-05], [2.5388e-05], [430], [10]], "benchmarks.TextSuite.time_divide_unicode_heavy": [[0.00018461889678668552], [], "ea53e662c0553324f90ac3336dcee77f733bb33638888e1f84bf71945a2f3f8e", 1646928250121, 0.45578, [0.00018394], [0.00018599], [0.0001841], [0.00018546], [58], [10]], "benchmarks.TextSuite.time_fit": [[4.346377551270535e-05], [], "ec77b412db357b1e1c1e7bc620b941dddfc36dc76d2a66a0417feae4f21fe1d3", 1646928250349, 0.44757, [4.3305e-05], [4.3682e-05], [4.3339e-05], [4.3601e-05], [245], [10]], "benchmarks.TextSuite.time_fit_unicode_heavy": [[0.0003238428180338815], [], "d1574b4af2ef8b80b95b4dbeeb13e5de67b66783f76f9968834776239dd0dc66", 1646928250577, 0.4559, [0.00032287], [0.0003243], [0.00032354], [0.00032395], [33], [10]], "benchmarks.TextSuite.time_indent_guides": [[0.0003568433799202843], [], "18da036dcfc15ec5e3c11e72be7c8f0c22fba695a5f19c95836be36952376cf2", 1646928250805, 0.44693, [0.0003552], [0.00035977], [0.00035609], [0.0003571], [29], [10]], "benchmarks.TextSuite.time_render": [[4.675465872560535e-06], [], "907d30581cfdc7bb2c4d302b7e3cb474aaefd8b84821365fe105af7d82be3b09", 1646928251027, 0.45465, [4.671e-06], [4.6805e-06], [4.6744e-06], [4.6791e-06], [2344], [10]], "benchmarks.TextSuite.time_render_unicode_heavy": [[8.522819132394943e-05], [], "b3f1c09dfd06f412a20dacfe378c3b446727c7d4f9a975336eab3daa8543e1cb", 1646928251258, 0.45786, [8.459e-05], [8.5948e-05], [8.494e-05], [8.5644e-05], [128], [10]], "benchmarks.TextSuite.time_split": [[3.519280884206429e-05], [], "9c165854130cb95fea5491ffcd8b580a5bd373149da2ef8aace0e9480f649854", 1646928251489, 0.45879, [3.5054e-05], [3.5315e-05], [3.5063e-05], [3.5278e-05], [306], [10]], "benchmarks.TextSuite.time_split_unicode_heavy": [[0.0002742225789054493], [], "d55b02f6d06f478d70635bac3409f3a9899137d9cee87a70a293b8ccf5a6afa4", 1646928251717, 0.44819, [0.00027359], [0.00027552], [0.00027395], [0.00027459], [38], [10]], "benchmarks.TextSuite.time_wrapping": [[0.001358674438961316], [], "8c821eba13d043f228fd902d8f678c397741855db05d02abe9b82f3d65cdf03d", 1646928251940, 0.4552, [0.0013548], [0.0013633], [0.0013555], [0.0013603], [8], [10]], "benchmarks.TextSuite.time_wrapping_unicode_heavy": [[0.0014508422152305555], [], "ec6e2ef08b6cdee182fef4e26c0043f8c365984f9a31be07dbd792e1aed862d8", 1646928252171, 0.44538, [0.0014448], [0.0014547], [0.0014475], [0.0014523], [7], [10]]}, "durations": {"": 1.980443000793457}, "version": 2} diff --git a/benchmarks/results/darrenburns-2022-mbp/3f7d3e4e-virtualenv-py3.10.json b/benchmarks/results/darrenburns-2022-mbp/3f7d3e4e-virtualenv-py3.10.json new file mode 100644 index 0000000000..8918ef43fa --- /dev/null +++ b/benchmarks/results/darrenburns-2022-mbp/3f7d3e4e-virtualenv-py3.10.json @@ -0,0 +1 @@ +{"commit_hash": "3f7d3e4ef372f4ce954c240df723d8cd646b1534", "env_name": "virtualenv-py3.10", "date": 1643381156000, "params": {"arch": "arm64", "cpu": "Apple M1 Pro", "machine": "darrenburns-2022-mbp", "num_cpu": "10", "os": "Darwin 21.2.0", "ram": "17179869184", "python": "3.10"}, "python": "3.10", "requirements": {}, "env_vars": {}, "result_columns": ["result", "params", "version", "started_at", "duration", "stats_ci_99_a", "stats_ci_99_b", "stats_q_25", "stats_q_75", "stats_number", "stats_repeat", "samples", "profile"], "results": {"benchmarks.ColorSuite.time_downgrade_to_eight_bit": [[1.698740701488326e-07], [], "019b972f782c6291df9a6a4dea9bb3c6268a69b177e71383d6e19a608e84920d", 1646928479137, 0.46365, [1.6868e-07], [1.7249e-07], [1.6944e-07], [1.7033e-07], [64798], [10]], "benchmarks.ColorSuite.time_downgrade_to_standard": [[1.7091042297249934e-07], [], "f5e8556491c977450fff6ebfd9fff4fc8f12d74829aa5b8570bd27ea7a1c9d28", 1646928479371, 0.44263, [1.6925e-07], [1.7313e-07], [1.6966e-07], [1.7277e-07], [59234], [10]], "benchmarks.ColorSuite.time_downgrade_to_windows": [[1.7032423421299828e-07], [], "373eb97dd7ce2823e080972249235f528e8b3a47210911981cf432ecf0eef5fb", 1646928479591, 0.45682, [1.6978e-07], [1.7143e-07], [1.702e-07], [1.7077e-07], [64108], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_eight_bit": [[1.699293186887289e-07], [], "716ff06a471a5d90af3730f6d4470eba3577432d781e0210dff1fd156b8c549c", 1646928479825, 0.46872, [1.6894e-07], [1.729e-07], [1.6974e-07], [1.7026e-07], [64416], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_standard": [[1.7076552251688393e-07], [], "3a752a7884e99e095c31b2a28cfefdf916cb2033c06afae1ea146a72f3ba650c", 1646928480059, 0.46858, [1.6962e-07], [1.7356e-07], [1.7028e-07], [1.7151e-07], [64454], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_windows": [[1.7014452735923893e-07], [], "1732bbd18ada49eb7b054fc18b40d6acfb533023463366f37203dab6fbb0cc20", 1646928480294, 0.46769, [1.6925e-07], [1.7234e-07], [1.6959e-07], [1.7073e-07], [64659], [10]], "benchmarks.PrettySuite.time_pretty": [[0.0011121227224874827], [], "9bb0e6d8a29aad21b3d1b550a160fa5f1e9030c69d16bad500c0dcc77bff6d01", 1646928480528, 0.44418, [0.0011083], [0.0011159], [0.0011109], [0.0011132], [9], [10]], "benchmarks.PrettySuite.time_pretty_indent_guides": [[0.0015579582832287997], [], "8d71bf19dfe999b0fba95d009986bfd6911c53c7a0c455466725f553005c3bc7", 1646928480748, 0.45126, [0.0015536], [0.00157], [0.0015555], [0.0015635], [7], [10]], "benchmarks.PrettySuite.time_pretty_justify_center": [[0.0014060754383535823], [], "54cbf71bacab14ccbe1d063847c0b89198ed1bbe06edc89c14d2e3c7b1986c41", 1646928480971, 0.45525, [0.0014043], [0.0014135], [0.0014051], [0.0014085], [8], [10]], "benchmarks.StyleSuite.time_parse_ansi": [[1.1416384913475412e-07], [], "a003aaa8017585efeb1cd9c43351282df4df6249bf28a4c447b1304d984aa753", 1646928481199, 0.46631, [1.1391e-07], [1.1446e-07], [1.1401e-07], [1.1439e-07], [96473], [10]], "benchmarks.StyleSuite.time_parse_hex": [[1.1633424116643548e-07], [], "cf5a3f0def435d3da5bc3a6e7549c44c0a02e9cce6c00ecde8dd7f527556f8ca", 1646928481434, 0.46869, [1.1426e-07], [1.1646e-07], [1.1601e-07], [1.1638e-07], [96212], [10]], "benchmarks.StyleSuite.time_parse_mixed_complex_style": [[1.1687065132848253e-07], [], "01c9e12ae829b1984e55a5aeef1a9ae6f1461577adaf5ae59f06358c8b52802f", 1646928481668, 0.44813, [1.1652e-07], [1.1841e-07], [1.166e-07], [1.1777e-07], [86464], [10]], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_heavy_wrapping": [[0.00853916674532229], [], "1ed4d74ea424990cfb40c96f07635f9bcf7b8bacc7ade5204aaf96363e1622ee", 1646928481897, 0.52025, [0.0084749], [0.0085804], [0.0085069], [0.0085568], [2], [10]], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_medium_wrapping": [[0.008576114501920529], [], "0880e162a4907ee025cef8ac3380502554fde27fd0c90a4c15cebc9c27f3e333", 1646928482158, 0.52233, [0.0084985], [0.0087274], [0.008535], [0.008637], [2], [10]], "benchmarks.SyntaxWrappingSuite.time_text_wide_terminal_no_wrapping": [[0.00853265624755295], [], "feb11e94ae6a75de2dee899fb93db098b55cde232710660d7d66f9e2b288d9c0", 1646928482419, 0.52075, [0.0084799], [0.0085638], [0.0085091], [0.0085449], [2], [10]], "benchmarks.TableSuite.time_table_heavy_wrapping": [[0.002399866800988093], [], "ca515a9739c1e0f8eb922420f9f9caf27321fb13c8bd0bc49b207a0588b370de", 1646928482679, 0.47657, [0.0023894], [0.0024136], [0.0023967], [0.0024079], [5], [10]], "benchmarks.TableSuite.time_table_no_wrapping": [[0.0014271547864024925], [], "8842a5f141d8208ba2bab66e4973e978cb5d0615f326af5d70385ff8fa44b3b9", 1646928482918, 0.44586, [0.0014195], [0.0014339], [0.0014252], [0.0014326], [7], [10]], "benchmarks.TextSuite.time_align_center": [[0.0003826964457402937], [], "1ceeeef2de43fcb3d0dfec409972d8f0eb791e9615fa9f9c959e0423725b089b", 1646928483138, 0.44781, [0.00037813], [0.00038575], [0.00037852], [0.00038533], [28], [10]], "benchmarks.TextSuite.time_align_center_unicode_heavy": [[0.00034012633841484785], [], "a83ff79614dd2ae17e8b68f45981fcaa0d9833c59a7a14f171b896cf970f54ce", 1646928483365, 0.4559, [0.00033825], [0.00034851], [0.00033906], [0.00034087], [31], [10]], "benchmarks.TextSuite.time_divide": [[2.5252465200837346e-05], [], "dcc120b921cb2ec77632f8fe2f6f4150d479cb49ef2608f8e86b569a937756e9", 1646928483591, 0.46353, [2.516e-05], [2.5434e-05], [2.5187e-05], [2.5321e-05], [431], [10]], "benchmarks.TextSuite.time_divide_unicode_heavy": [[0.0001846652243141856], [], "ea53e662c0553324f90ac3336dcee77f733bb33638888e1f84bf71945a2f3f8e", 1646928483823, 0.45764, [0.00018308], [0.00018504], [0.00018417], [0.00018476], [58], [10]], "benchmarks.TextSuite.time_fit": [[4.3604420725165344e-05], [], "ec77b412db357b1e1c1e7bc620b941dddfc36dc76d2a66a0417feae4f21fe1d3", 1646928484051, 0.45077, [4.3494e-05], [4.3719e-05], [4.354e-05], [4.3641e-05], [246], [10]], "benchmarks.TextSuite.time_fit_unicode_heavy": [[0.00032480492452371186], [], "d1574b4af2ef8b80b95b4dbeeb13e5de67b66783f76f9968834776239dd0dc66", 1646928484281, 0.45976, [0.00032296], [0.00032667], [0.00032371], [0.00032532], [33], [10]], "benchmarks.TextSuite.time_indent_guides": [[0.0003566659484179048], [], "18da036dcfc15ec5e3c11e72be7c8f0c22fba695a5f19c95836be36952376cf2", 1646928484509, 0.44886, [0.00035422], [0.00035973], [0.00035461], [0.00035858], [29], [10]], "benchmarks.TextSuite.time_render": [[4.665873127859556e-06], [], "907d30581cfdc7bb2c4d302b7e3cb474aaefd8b84821365fe105af7d82be3b09", 1646928484732, 0.4559, [4.6501e-06], [4.6776e-06], [4.6626e-06], [4.6681e-06], [2337], [10]], "benchmarks.TextSuite.time_render_unicode_heavy": [[8.52070313612785e-05], [], "b3f1c09dfd06f412a20dacfe378c3b446727c7d4f9a975336eab3daa8543e1cb", 1646928484963, 0.46091, [8.4959e-05], [8.5743e-05], [8.517e-05], [8.5261e-05], [128], [10]], "benchmarks.TextSuite.time_split": [[3.5179808798239994e-05], [], "9c165854130cb95fea5491ffcd8b580a5bd373149da2ef8aace0e9480f649854", 1646928485196, 0.46071, [3.5112e-05], [3.5247e-05], [3.5143e-05], [3.5203e-05], [306], [10]], "benchmarks.TextSuite.time_split_unicode_heavy": [[0.0002742344998599341], [], "d55b02f6d06f478d70635bac3409f3a9899137d9cee87a70a293b8ccf5a6afa4", 1646928485426, 0.45897, [0.0002737], [0.00028051], [0.00027397], [0.00027841], [39], [10]], "benchmarks.TextSuite.time_wrapping": [[0.0013588984365924262], [], "8c821eba13d043f228fd902d8f678c397741855db05d02abe9b82f3d65cdf03d", 1646928485655, 0.45859, [0.0013543], [0.001361], [0.0013577], [0.0013598], [8], [10]], "benchmarks.TextSuite.time_wrapping_unicode_heavy": [[0.0014551279288882923], [], "ec6e2ef08b6cdee182fef4e26c0043f8c365984f9a31be07dbd792e1aed862d8", 1646928485887, 0.45059, [0.001445], [0.0014609], [0.0014462], [0.0014579], [7], [10]]}, "durations": {"": 1.990717887878418}, "version": 2} diff --git a/benchmarks/results/darrenburns-2022-mbp/4020d5a9-virtualenv-py3.10.json b/benchmarks/results/darrenburns-2022-mbp/4020d5a9-virtualenv-py3.10.json new file mode 100644 index 0000000000..6a4b0848ce --- /dev/null +++ b/benchmarks/results/darrenburns-2022-mbp/4020d5a9-virtualenv-py3.10.json @@ -0,0 +1 @@ +{"commit_hash": "4020d5a9fb77b6a1bbe4a4e763951dd9441860c8", "env_name": "virtualenv-py3.10", "date": 1593168036000, "params": {"arch": "arm64", "cpu": "Apple M1 Pro", "machine": "darrenburns-2022-mbp", "num_cpu": "10", "os": "Darwin 21.2.0", "ram": "17179869184", "python": "3.10"}, "python": "3.10", "requirements": {}, "env_vars": {}, "result_columns": ["result", "params", "version", "started_at", "duration", "stats_ci_99_a", "stats_ci_99_b", "stats_q_25", "stats_q_75", "stats_number", "stats_repeat", "samples", "profile"], "results": {"benchmarks.ColorSuite.time_downgrade_to_eight_bit": [[1.7315091327706894e-07], [], "019b972f782c6291df9a6a4dea9bb3c6268a69b177e71383d6e19a608e84920d", 1646928569768, 0.43134, [1.7182e-07], [1.7361e-07], [1.7285e-07], [1.7324e-07], [64557], [10]], "benchmarks.ColorSuite.time_downgrade_to_standard": [[1.7375567830436184e-07], [], "f5e8556491c977450fff6ebfd9fff4fc8f12d74829aa5b8570bd27ea7a1c9d28", 1646928569984, 0.43364, [1.7163e-07], [1.8139e-07], [1.7322e-07], [1.7961e-07], [58556], [10]], "benchmarks.ColorSuite.time_downgrade_to_windows": [[1.7200315802320185e-07], [], "373eb97dd7ce2823e080972249235f528e8b3a47210911981cf432ecf0eef5fb", 1646928570194, 0.44725, [1.6924e-07], [1.8107e-07], [1.701e-07], [1.7373e-07], [60636], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_eight_bit": [[1.703477310646659e-07], [], "716ff06a471a5d90af3730f6d4470eba3577432d781e0210dff1fd156b8c549c", 1646928570407, 0.44181, [1.691e-07], [1.712e-07], [1.6997e-07], [1.7065e-07], [64593], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_standard": [[1.7319662314839302e-07], [], "3a752a7884e99e095c31b2a28cfefdf916cb2033c06afae1ea146a72f3ba650c", 1646928570631, 0.44303, [1.7057e-07], [1.7763e-07], [1.7262e-07], [1.7361e-07], [64705], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_windows": [[1.7132939782775794e-07], [], "1732bbd18ada49eb7b054fc18b40d6acfb533023463366f37203dab6fbb0cc20", 1646928570846, 0.45132, [1.6952e-07], [1.7411e-07], [1.698e-07], [1.7356e-07], [64331], [10]], "benchmarks.PrettySuite.time_pretty": [[0.0022121166985016316], [], "9bb0e6d8a29aad21b3d1b550a160fa5f1e9030c69d16bad500c0dcc77bff6d01", 1646928571072, 0.43696, [0.0021967], [0.0022501], [0.0021989], [0.0022416], [5], [10]], "benchmarks.PrettySuite.time_pretty_indent_guides": [null, [], "8d71bf19dfe999b0fba95d009986bfd6911c53c7a0c455466725f553005c3bc7", 1646928566041, 0.059429], "benchmarks.PrettySuite.time_pretty_justify_center": [null, [], "54cbf71bacab14ccbe1d063847c0b89198ed1bbe06edc89c14d2e3c7b1986c41", 1646928566100, 0.059402], "benchmarks.StyleSuite.time_parse_ansi": [[1.1585818227850584e-07], [], "a003aaa8017585efeb1cd9c43351282df4df6249bf28a4c447b1304d984aa753", 1646928571289, 0.42389, [1.1575e-07], [1.1649e-07], [1.158e-07], [1.1607e-07], [87690], [10]], "benchmarks.StyleSuite.time_parse_hex": [[1.1491735043591866e-07], [], "cf5a3f0def435d3da5bc3a6e7549c44c0a02e9cce6c00ecde8dd7f527556f8ca", 1646928571500, 0.43995, [1.1391e-07], [1.1606e-07], [1.1412e-07], [1.1572e-07], [96395], [10]], "benchmarks.StyleSuite.time_parse_mixed_complex_style": [[1.1498628178269194e-07], [], "01c9e12ae829b1984e55a5aeef1a9ae6f1461577adaf5ae59f06358c8b52802f", 1646928571715, 0.43961, [1.1369e-07], [1.1672e-07], [1.1402e-07], [1.1632e-07], [96114], [10]], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_heavy_wrapping": [null, [], "1ed4d74ea424990cfb40c96f07635f9bcf7b8bacc7ade5204aaf96363e1622ee", 1646928566823, 0.058992], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_medium_wrapping": [null, [], "0880e162a4907ee025cef8ac3380502554fde27fd0c90a4c15cebc9c27f3e333", 1646928566882, 0.05893], "benchmarks.SyntaxWrappingSuite.time_text_wide_terminal_no_wrapping": [null, [], "feb11e94ae6a75de2dee899fb93db098b55cde232710660d7d66f9e2b288d9c0", 1646928566941, 0.05844], "benchmarks.TableSuite.time_table_heavy_wrapping": [[0.0020499999984167514], [], "ca515a9739c1e0f8eb922420f9f9caf27321fb13c8bd0bc49b207a0588b370de", 1646928571930, 0.42322, [0.0020299], [0.0020701], [0.0020329], [0.0020671], [5], [10]], "benchmarks.TableSuite.time_table_no_wrapping": [[0.001439190498786047], [], "8842a5f141d8208ba2bab66e4973e978cb5d0615f326af5d70385ff8fa44b3b9", 1646928572145, 0.42246, [0.0014314], [0.0014427], [0.0014362], [0.0014407], [7], [10]], "benchmarks.TextSuite.time_align_center": [null, [], "1ceeeef2de43fcb3d0dfec409972d8f0eb791e9615fa9f9c959e0423725b089b", 1646928567418, 0.058119], "benchmarks.TextSuite.time_align_center_unicode_heavy": [null, [], "a83ff79614dd2ae17e8b68f45981fcaa0d9833c59a7a14f171b896cf970f54ce", 1646928567476, 0.058314], "benchmarks.TextSuite.time_divide": [[2.796573740268368e-05], [], "dcc120b921cb2ec77632f8fe2f6f4150d479cb49ef2608f8e86b569a937756e9", 1646928572358, 0.4355, [2.7679e-05], [2.8219e-05], [2.7763e-05], [2.8164e-05], [377], [10]], "benchmarks.TextSuite.time_divide_unicode_heavy": [[0.00018736439488476896], [], "ea53e662c0553324f90ac3336dcee77f733bb33638888e1f84bf71945a2f3f8e", 1646928572574, 0.43791, [0.0001853], [0.00018886], [0.00018649], [0.00018798], [57], [10]], "benchmarks.TextSuite.time_fit": [[4.258416796801612e-05], [], "ec77b412db357b1e1c1e7bc620b941dddfc36dc76d2a66a0417feae4f21fe1d3", 1646928572792, 0.43992, [4.2284e-05], [4.2914e-05], [4.2346e-05], [4.2821e-05], [250], [10]], "benchmarks.TextSuite.time_fit_unicode_heavy": [[0.00033309745119749416], [], "d1574b4af2ef8b80b95b4dbeeb13e5de67b66783f76f9968834776239dd0dc66", 1646928573011, 0.43133, [0.00032927], [0.00035465], [0.00032978], [0.00033828], [31], [10]], "benchmarks.TextSuite.time_indent_guides": [null, [], "18da036dcfc15ec5e3c11e72be7c8f0c22fba695a5f19c95836be36952376cf2", 1646928568411, 0.058339], "benchmarks.TextSuite.time_render": [[4.6698475239037345e-06], [], "907d30581cfdc7bb2c4d302b7e3cb474aaefd8b84821365fe105af7d82be3b09", 1646928573228, 0.43764, [4.6544e-06], [4.6892e-06], [4.6573e-06], [4.6782e-06], [2325], [10]], "benchmarks.TextSuite.time_render_unicode_heavy": [[8.741666664345525e-05], [], "b3f1c09dfd06f412a20dacfe378c3b446727c7d4f9a975336eab3daa8543e1cb", 1646928573449, 0.42102, [8.7118e-05], [8.7791e-05], [8.7186e-05], [8.7593e-05], [117], [10]], "benchmarks.TextSuite.time_split": [[3.3751488657586586e-05], [], "9c165854130cb95fea5491ffcd8b580a5bd373149da2ef8aace0e9480f649854", 1646928573661, 0.43403, [3.3647e-05], [3.4327e-05], [3.3686e-05], [3.4173e-05], [308], [10]], "benchmarks.TextSuite.time_split_unicode_heavy": [[0.000282816999478618], [], "d55b02f6d06f478d70635bac3409f3a9899137d9cee87a70a293b8ccf5a6afa4", 1646928573875, 0.43139, [0.00027936], [0.00028587], [0.00027975], [0.00028548], [37], [10]], "benchmarks.TextSuite.time_wrapping": [[0.0011494305541014506], [], "8c821eba13d043f228fd902d8f678c397741855db05d02abe9b82f3d65cdf03d", 1646928574089, 0.43276, [0.0011361], [0.0011602], [0.0011373], [0.0011577], [9], [10]], "benchmarks.TextSuite.time_wrapping_unicode_heavy": [[0.0015503720704665674], [], "ec6e2ef08b6cdee182fef4e26c0043f8c365984f9a31be07dbd792e1aed862d8", 1646928574305, 0.44015, [0.0015493], [0.0015587], [0.00155], [0.0015519], [7], [10]]}, "durations": {"": 1.949765920639038}, "version": 2} diff --git a/benchmarks/results/darrenburns-2022-mbp/43a26c0a-virtualenv-py3.10.json b/benchmarks/results/darrenburns-2022-mbp/43a26c0a-virtualenv-py3.10.json new file mode 100644 index 0000000000..ac0b93918e --- /dev/null +++ b/benchmarks/results/darrenburns-2022-mbp/43a26c0a-virtualenv-py3.10.json @@ -0,0 +1 @@ +{"commit_hash": "43a26c0a5e61668e77fa465d0915e6d4d084af40", "env_name": "virtualenv-py3.10", "date": 1614442778000, "params": {"arch": "arm64", "cpu": "Apple M1 Pro", "machine": "darrenburns-2022-mbp", "num_cpu": "10", "os": "Darwin 21.2.0", "ram": "17179869184", "python": "3.10"}, "python": "3.10", "requirements": {}, "env_vars": {}, "result_columns": ["result", "params", "version", "started_at", "duration", "stats_ci_99_a", "stats_ci_99_b", "stats_q_25", "stats_q_75", "stats_number", "stats_repeat", "samples", "profile"], "results": {"benchmarks.ColorSuite.time_downgrade_to_eight_bit": [[1.709802561413027e-07], [], "019b972f782c6291df9a6a4dea9bb3c6268a69b177e71383d6e19a608e84920d", 1646929061110, 0.45215, [1.6936e-07], [1.718e-07], [1.7028e-07], [1.7153e-07], [62728], [10]], "benchmarks.ColorSuite.time_downgrade_to_standard": [[1.697065179385762e-07], [], "f5e8556491c977450fff6ebfd9fff4fc8f12d74829aa5b8570bd27ea7a1c9d28", 1646929061334, 0.4594, [1.6865e-07], [1.7051e-07], [1.6949e-07], [1.6999e-07], [64607], [10]], "benchmarks.ColorSuite.time_downgrade_to_windows": [[1.702309346772063e-07], [], "373eb97dd7ce2823e080972249235f528e8b3a47210911981cf432ecf0eef5fb", 1646929061564, 0.44954, [1.6966e-07], [1.7081e-07], [1.7011e-07], [1.7038e-07], [64319], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_eight_bit": [[1.7067874077426818e-07], [], "716ff06a471a5d90af3730f6d4470eba3577432d781e0210dff1fd156b8c549c", 1646929061793, 0.46115, [1.7004e-07], [1.7085e-07], [1.7028e-07], [1.7078e-07], [64311], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_standard": [[1.703075542529536e-07], [], "3a752a7884e99e095c31b2a28cfefdf916cb2033c06afae1ea146a72f3ba650c", 1646929062024, 0.45949, [1.6907e-07], [1.7177e-07], [1.7004e-07], [1.711e-07], [64413], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_windows": [[1.7083353043886868e-07], [], "1732bbd18ada49eb7b054fc18b40d6acfb533023463366f37203dab6fbb0cc20", 1646929062254, 0.46019, [1.6932e-07], [1.7153e-07], [1.704e-07], [1.7128e-07], [64297], [10]], "benchmarks.PrettySuite.time_pretty": [[0.000998994317011569], [], "9bb0e6d8a29aad21b3d1b550a160fa5f1e9030c69d16bad500c0dcc77bff6d01", 1646929062485, 0.4482, [0.00099738], [0.0010063], [0.00099818], [0.0010009], [11], [10]], "benchmarks.PrettySuite.time_pretty_indent_guides": [[0.0014014869375387207], [], "8d71bf19dfe999b0fba95d009986bfd6911c53c7a0c455466725f553005c3bc7", 1646929062706, 0.4458, [0.0013934], [0.0014138], [0.0013962], [0.0014062], [8], [10]], "benchmarks.PrettySuite.time_pretty_justify_center": [[0.0013922656871727668], [], "54cbf71bacab14ccbe1d063847c0b89198ed1bbe06edc89c14d2e3c7b1986c41", 1646929062929, 0.44369, [0.0013889], [0.0013982], [0.0013894], [0.0013944], [8], [10]], "benchmarks.StyleSuite.time_parse_ansi": [[1.139315095344454e-07], [], "a003aaa8017585efeb1cd9c43351282df4df6249bf28a4c447b1304d984aa753", 1646929063151, 0.45489, [1.1344e-07], [1.1432e-07], [1.139e-07], [1.1398e-07], [95933], [10]], "benchmarks.StyleSuite.time_parse_hex": [[1.142606982016748e-07], [], "cf5a3f0def435d3da5bc3a6e7549c44c0a02e9cce6c00ecde8dd7f527556f8ca", 1646929063379, 0.45636, [1.1384e-07], [1.1481e-07], [1.1406e-07], [1.1452e-07], [95762], [10]], "benchmarks.StyleSuite.time_parse_mixed_complex_style": [[1.1405560028475279e-07], [], "01c9e12ae829b1984e55a5aeef1a9ae6f1461577adaf5ae59f06358c8b52802f", 1646929063607, 0.45458, [1.138e-07], [1.1442e-07], [1.1387e-07], [1.1413e-07], [95593], [10]], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_heavy_wrapping": [null, [], "1ed4d74ea424990cfb40c96f07635f9bcf7b8bacc7ade5204aaf96363e1622ee", 1646929057597, 0.06296], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_medium_wrapping": [null, [], "0880e162a4907ee025cef8ac3380502554fde27fd0c90a4c15cebc9c27f3e333", 1646929057661, 0.062313], "benchmarks.SyntaxWrappingSuite.time_text_wide_terminal_no_wrapping": [null, [], "feb11e94ae6a75de2dee899fb93db098b55cde232710660d7d66f9e2b288d9c0", 1646929057723, 0.062505], "benchmarks.TableSuite.time_table_heavy_wrapping": [[0.002279166699736379], [], "ca515a9739c1e0f8eb922420f9f9caf27321fb13c8bd0bc49b207a0588b370de", 1646929063835, 0.44639, [0.0022735], [0.0022854], [0.0022781], [0.0022812], [5], [10]], "benchmarks.TableSuite.time_table_no_wrapping": [[0.0013640311881317757], [], "8842a5f141d8208ba2bab66e4973e978cb5d0615f326af5d70385ff8fa44b3b9", 1646929064061, 0.43969, [0.0013601], [0.0013703], [0.0013619], [0.001366], [8], [10]], "benchmarks.TextSuite.time_align_center": [[0.000662766937239212], [], "1ceeeef2de43fcb3d0dfec409972d8f0eb791e9615fa9f9c959e0423725b089b", 1646929064280, 0.44153, [0.00065784], [0.00067897], [0.00065873], [0.00066599], [16], [10]], "benchmarks.TextSuite.time_align_center_unicode_heavy": [[0.0005482017632426792], [], "a83ff79614dd2ae17e8b68f45981fcaa0d9833c59a7a14f171b896cf970f54ce", 1646929064502, 0.45038, [0.0005452], [0.00056321], [0.00054722], [0.00055161], [19], [10]], "benchmarks.TextSuite.time_divide": [[2.5456381726691572e-05], [], "dcc120b921cb2ec77632f8fe2f6f4150d479cb49ef2608f8e86b569a937756e9", 1646929064725, 0.45515, [2.5327e-05], [2.5687e-05], [2.5351e-05], [2.5594e-05], [427], [10]], "benchmarks.TextSuite.time_divide_unicode_heavy": [[0.00018485847425020848], [], "ea53e662c0553324f90ac3336dcee77f733bb33638888e1f84bf71945a2f3f8e", 1646929064953, 0.45134, [0.00018384], [0.00018758], [0.00018453], [0.00018589], [58], [10]], "benchmarks.TextSuite.time_fit": [[4.355716462269789e-05], [], "ec77b412db357b1e1c1e7bc620b941dddfc36dc76d2a66a0417feae4f21fe1d3", 1646929065177, 0.4421, [4.3531e-05], [4.3783e-05], [4.3539e-05], [4.3638e-05], [246], [10]], "benchmarks.TextSuite.time_fit_unicode_heavy": [[0.00032558837891415214], [], "d1574b4af2ef8b80b95b4dbeeb13e5de67b66783f76f9968834776239dd0dc66", 1646929065402, 0.46807, [0.00032433], [0.00032706], [0.00032484], [0.00032581], [33], [10]], "benchmarks.TextSuite.time_indent_guides": [[0.00038982771198229434], [], "18da036dcfc15ec5e3c11e72be7c8f0c22fba695a5f19c95836be36952376cf2", 1646929065643, 0.43473, [0.00038931], [0.00039088], [0.00038956], [0.00038998], [26], [10]], "benchmarks.TextSuite.time_render": [[4.68262812533014e-06], [], "907d30581cfdc7bb2c4d302b7e3cb474aaefd8b84821365fe105af7d82be3b09", 1646929065859, 0.44588, [4.6561e-06], [4.6924e-06], [4.6772e-06], [4.6851e-06], [2322], [10]], "benchmarks.TextSuite.time_render_unicode_heavy": [[8.53858266885605e-05], [], "b3f1c09dfd06f412a20dacfe378c3b446727c7d4f9a975336eab3daa8543e1cb", 1646929066086, 0.4483, [8.4264e-05], [8.5553e-05], [8.5224e-05], [8.5464e-05], [127], [10]], "benchmarks.TextSuite.time_split": [[3.517803593745662e-05], [], "9c165854130cb95fea5491ffcd8b580a5bd373149da2ef8aace0e9480f649854", 1646929066311, 0.44105, [3.5119e-05], [3.5279e-05], [3.5157e-05], [3.5201e-05], [306], [10]], "benchmarks.TextSuite.time_split_unicode_heavy": [[0.0002750926578301005], [], "d55b02f6d06f478d70635bac3409f3a9899137d9cee87a70a293b8ccf5a6afa4", 1646929066536, 0.44259, [0.00027424], [0.00027772], [0.00027464], [0.00027631], [38], [10]], "benchmarks.TextSuite.time_wrapping": [[0.0010977333498885856], [], "8c821eba13d043f228fd902d8f678c397741855db05d02abe9b82f3d65cdf03d", 1646929066757, 0.43802, [0.0010938], [0.001104], [0.0010944], [0.0011], [10], [10]], "benchmarks.TextSuite.time_wrapping_unicode_heavy": [[0.0014895565732980945], [], "ec6e2ef08b6cdee182fef4e26c0043f8c365984f9a31be07dbd792e1aed862d8", 1646929066976, 0.43707, [0.0014857], [0.0014964], [0.0014883], [0.0014909], [7], [10]]}, "durations": {"": 1.9819769859313965}, "version": 2} diff --git a/benchmarks/results/darrenburns-2022-mbp/43d4c4e5-virtualenv-py3.10.json b/benchmarks/results/darrenburns-2022-mbp/43d4c4e5-virtualenv-py3.10.json new file mode 100644 index 0000000000..a999d426be --- /dev/null +++ b/benchmarks/results/darrenburns-2022-mbp/43d4c4e5-virtualenv-py3.10.json @@ -0,0 +1 @@ +{"commit_hash": "43d4c4e50c0334f93240aa907183bb24b8e69fe9", "env_name": "virtualenv-py3.10", "date": 1630164198000, "params": {"arch": "arm64", "cpu": "Apple M1 Pro", "machine": "darrenburns-2022-mbp", "num_cpu": "10", "os": "Darwin 21.2.0", "ram": "17179869184", "python": "3.10"}, "python": "3.10", "requirements": {}, "env_vars": {}, "result_columns": ["result", "params", "version", "started_at", "duration", "stats_ci_99_a", "stats_ci_99_b", "stats_q_25", "stats_q_75", "stats_number", "stats_repeat", "samples", "profile"], "results": {"benchmarks.ColorSuite.time_downgrade_to_eight_bit": [[1.699320866143202e-07], [], "019b972f782c6291df9a6a4dea9bb3c6268a69b177e71383d6e19a608e84920d", 1646928433625, 0.46361, [1.6912e-07], [1.7178e-07], [1.6965e-07], [1.7022e-07], [64457], [10]], "benchmarks.ColorSuite.time_downgrade_to_standard": [[1.7043166841962874e-07], [], "f5e8556491c977450fff6ebfd9fff4fc8f12d74829aa5b8570bd27ea7a1c9d28", 1646928433856, 0.46257, [1.6993e-07], [1.7082e-07], [1.7028e-07], [1.7056e-07], [64348], [10]], "benchmarks.ColorSuite.time_downgrade_to_windows": [[1.70487436541234e-07], [], "373eb97dd7ce2823e080972249235f528e8b3a47210911981cf432ecf0eef5fb", 1646928434087, 0.46305, [1.6936e-07], [1.7086e-07], [1.7035e-07], [1.7052e-07], [64314], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_eight_bit": [[1.6959247751766975e-07], [], "716ff06a471a5d90af3730f6d4470eba3577432d781e0210dff1fd156b8c549c", 1646928434318, 0.46397, [1.6938e-07], [1.7016e-07], [1.6954e-07], [1.6981e-07], [64989], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_standard": [[1.6991618853215302e-07], [], "3a752a7884e99e095c31b2a28cfefdf916cb2033c06afae1ea146a72f3ba650c", 1646928434551, 0.46342, [1.6927e-07], [1.7599e-07], [1.6954e-07], [1.71e-07], [64317], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_windows": [[1.7089756116403513e-07], [], "1732bbd18ada49eb7b054fc18b40d6acfb533023463366f37203dab6fbb0cc20", 1646928434783, 0.45927, [1.695e-07], [1.7311e-07], [1.7079e-07], [1.7234e-07], [63516], [10]], "benchmarks.PrettySuite.time_pretty": [[0.0010292916995240375], [], "9bb0e6d8a29aad21b3d1b550a160fa5f1e9030c69d16bad500c0dcc77bff6d01", 1646928435013, 0.45023, [0.0010261], [0.0010422], [0.0010272], [0.0010321], [10], [10]], "benchmarks.PrettySuite.time_pretty_indent_guides": [[0.001427075561878155], [], "8d71bf19dfe999b0fba95d009986bfd6911c53c7a0c455466725f553005c3bc7", 1646928435237, 0.46055, [0.0014219], [0.0014291], [0.0014245], [0.0014277], [8], [10]], "benchmarks.PrettySuite.time_pretty_justify_center": [[0.0013088568121020216], [], "54cbf71bacab14ccbe1d063847c0b89198ed1bbe06edc89c14d2e3c7b1986c41", 1646928435465, 0.44209, [0.0012975], [0.0013232], [0.0013], [0.0013176], [8], [10]], "benchmarks.StyleSuite.time_parse_ansi": [[1.1442916006142942e-07], [], "a003aaa8017585efeb1cd9c43351282df4df6249bf28a4c447b1304d984aa753", 1646928435690, 0.4593, [1.1381e-07], [1.1512e-07], [1.1436e-07], [1.1454e-07], [95603], [10]], "benchmarks.StyleSuite.time_parse_hex": [[1.1491991722675978e-07], [], "cf5a3f0def435d3da5bc3a6e7549c44c0a02e9cce6c00ecde8dd7f527556f8ca", 1646928435920, 0.4613, [1.1346e-07], [1.1605e-07], [1.1438e-07], [1.1534e-07], [96188], [10]], "benchmarks.StyleSuite.time_parse_mixed_complex_style": [[1.1529701053575947e-07], [], "01c9e12ae829b1984e55a5aeef1a9ae6f1461577adaf5ae59f06358c8b52802f", 1646928436151, 0.43575, [1.1414e-07], [1.1701e-07], [1.1487e-07], [1.1635e-07], [87677], [10]], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_heavy_wrapping": [null, [], "1ed4d74ea424990cfb40c96f07635f9bcf7b8bacc7ade5204aaf96363e1622ee", 1646928430055, 0.068854], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_medium_wrapping": [null, [], "0880e162a4907ee025cef8ac3380502554fde27fd0c90a4c15cebc9c27f3e333", 1646928430124, 0.065784], "benchmarks.SyntaxWrappingSuite.time_text_wide_terminal_no_wrapping": [null, [], "feb11e94ae6a75de2dee899fb93db098b55cde232710660d7d66f9e2b288d9c0", 1646928430190, 0.064843], "benchmarks.TableSuite.time_table_heavy_wrapping": [[0.0021521667047636585], [], "ca515a9739c1e0f8eb922420f9f9caf27321fb13c8bd0bc49b207a0588b370de", 1646928436369, 0.45341, [0.002116], [0.0021965], [0.0021307], [0.0021803], [5], [10]], "benchmarks.TableSuite.time_table_no_wrapping": [[0.0012916823106934316], [], "8842a5f141d8208ba2bab66e4973e978cb5d0615f326af5d70385ff8fa44b3b9", 1646928436597, 0.44415, [0.0012699], [0.0014819], [0.0012758], [0.0013383], [8], [10]], "benchmarks.TextSuite.time_align_center": [[0.0003758764485547576], [], "1ceeeef2de43fcb3d0dfec409972d8f0eb791e9615fa9f9c959e0423725b089b", 1646928436819, 0.45534, [0.00036896], [0.00038377], [0.00036973], [0.00038185], [29], [10]], "benchmarks.TextSuite.time_align_center_unicode_heavy": [[0.0003417291774249245], [], "a83ff79614dd2ae17e8b68f45981fcaa0d9833c59a7a14f171b896cf970f54ce", 1646928437040, 0.45371, [0.00034106], [0.00035128], [0.00034148], [0.00034224], [31], [10]], "benchmarks.TextSuite.time_divide": [[2.5390368820586846e-05], [], "dcc120b921cb2ec77632f8fe2f6f4150d479cb49ef2608f8e86b569a937756e9", 1646928437265, 0.45785, [2.5298e-05], [2.5598e-05], [2.5322e-05], [2.5449e-05], [427], [10]], "benchmarks.TextSuite.time_divide_unicode_heavy": [[0.00018506896569682604], [], "ea53e662c0553324f90ac3336dcee77f733bb33638888e1f84bf71945a2f3f8e", 1646928437494, 0.45502, [0.00018374], [0.00018666], [0.00018451], [0.00018542], [58], [10]], "benchmarks.TextSuite.time_fit": [[4.365969382758651e-05], [], "ec77b412db357b1e1c1e7bc620b941dddfc36dc76d2a66a0417feae4f21fe1d3", 1646928437720, 0.44578, [4.3455e-05], [4.3768e-05], [4.3572e-05], [4.3671e-05], [245], [10]], "benchmarks.TextSuite.time_fit_unicode_heavy": [[0.0003259549675051183], [], "d1574b4af2ef8b80b95b4dbeeb13e5de67b66783f76f9968834776239dd0dc66", 1646928437946, 0.43898, [0.00032478], [0.00032683], [0.00032514], [0.00032632], [31], [10]], "benchmarks.TextSuite.time_indent_guides": [[0.00035797023208163276], [], "18da036dcfc15ec5e3c11e72be7c8f0c22fba695a5f19c95836be36952376cf2", 1646928438164, 0.43523, [0.00035653], [0.00035921], [0.0003571], [0.00035847], [28], [10]], "benchmarks.TextSuite.time_render": [[4.6667561275503975e-06], [], "907d30581cfdc7bb2c4d302b7e3cb474aaefd8b84821365fe105af7d82be3b09", 1646928438380, 0.45003, [4.6473e-06], [4.6741e-06], [4.6601e-06], [4.6709e-06], [2325], [10]], "benchmarks.TextSuite.time_render_unicode_heavy": [[8.534399611970747e-05], [], "b3f1c09dfd06f412a20dacfe378c3b446727c7d4f9a975336eab3daa8543e1cb", 1646928438608, 0.45426, [8.4725e-05], [8.5728e-05], [8.5187e-05], [8.553e-05], [127], [10]], "benchmarks.TextSuite.time_split": [[3.5403962304327084e-05], [], "9c165854130cb95fea5491ffcd8b580a5bd373149da2ef8aace0e9480f649854", 1646928438836, 0.44721, [3.5299e-05], [3.557e-05], [3.537e-05], [3.5464e-05], [305], [10]], "benchmarks.TextSuite.time_split_unicode_heavy": [[0.00027445998689233273], [], "d55b02f6d06f478d70635bac3409f3a9899137d9cee87a70a293b8ccf5a6afa4", 1646928439065, 0.44578, [0.00027354], [0.00027559], [0.00027402], [0.00027496], [38], [10]], "benchmarks.TextSuite.time_wrapping": [[0.001109252098831348], [], "8c821eba13d043f228fd902d8f678c397741855db05d02abe9b82f3d65cdf03d", 1646928439287, 0.44391, [0.0011054], [0.001114], [0.0011066], [0.0011104], [10], [10]], "benchmarks.TextSuite.time_wrapping_unicode_heavy": [[0.0013650728742504725], [], "ec6e2ef08b6cdee182fef4e26c0043f8c365984f9a31be07dbd792e1aed862d8", 1646928439508, 0.45602, [0.0013612], [0.0013709], [0.0013642], [0.0013668], [8], [10]]}, "durations": {"": 2.000382900238037}, "version": 2} diff --git a/benchmarks/results/darrenburns-2022-mbp/44f54dd8-virtualenv-py3.10.json b/benchmarks/results/darrenburns-2022-mbp/44f54dd8-virtualenv-py3.10.json new file mode 100644 index 0000000000..da2840c1da --- /dev/null +++ b/benchmarks/results/darrenburns-2022-mbp/44f54dd8-virtualenv-py3.10.json @@ -0,0 +1 @@ +{"commit_hash": "44f54dd8e85c576b5b031ab5afaa89e4af1d2db8", "env_name": "virtualenv-py3.10", "date": 1613423330000, "params": {"arch": "arm64", "cpu": "Apple M1 Pro", "machine": "darrenburns-2022-mbp", "num_cpu": "10", "os": "Darwin 21.2.0", "ram": "17179869184", "python": "3.10"}, "python": "3.10", "requirements": {}, "env_vars": {}, "result_columns": ["result", "params", "version", "started_at", "duration", "stats_ci_99_a", "stats_ci_99_b", "stats_q_25", "stats_q_75", "stats_number", "stats_repeat", "samples", "profile"], "results": {"benchmarks.ColorSuite.time_downgrade_to_eight_bit": [[1.6967413074663557e-07], [], "019b972f782c6291df9a6a4dea9bb3c6268a69b177e71383d6e19a608e84920d", 1646929018191, 0.45685, [1.6772e-07], [1.7106e-07], [1.6938e-07], [1.7019e-07], [64506], [10]], "benchmarks.ColorSuite.time_downgrade_to_standard": [[1.7002887802798017e-07], [], "f5e8556491c977450fff6ebfd9fff4fc8f12d74829aa5b8570bd27ea7a1c9d28", 1646929018419, 0.45748, [1.6827e-07], [1.7032e-07], [1.6978e-07], [1.702e-07], [64894], [10]], "benchmarks.ColorSuite.time_downgrade_to_windows": [[1.7043497876303627e-07], [], "373eb97dd7ce2823e080972249235f528e8b3a47210911981cf432ecf0eef5fb", 1646929018648, 0.45753, [1.6848e-07], [1.7519e-07], [1.6981e-07], [1.7087e-07], [64579], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_eight_bit": [[1.7033197715253273e-07], [], "716ff06a471a5d90af3730f6d4470eba3577432d781e0210dff1fd156b8c549c", 1646929018876, 0.4463, [1.6887e-07], [1.7139e-07], [1.7019e-07], [1.7052e-07], [64524], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_standard": [[1.702686915728278e-07], [], "3a752a7884e99e095c31b2a28cfefdf916cb2033c06afae1ea146a72f3ba650c", 1646929019104, 0.4552, [1.6942e-07], [1.709e-07], [1.6966e-07], [1.7062e-07], [64200], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_windows": [[1.7042750275035252e-07], [], "1732bbd18ada49eb7b054fc18b40d6acfb533023463366f37203dab6fbb0cc20", 1646929019332, 0.45561, [1.6888e-07], [1.7228e-07], [1.7031e-07], [1.7108e-07], [64292], [10]], "benchmarks.PrettySuite.time_pretty": [[0.0010246270991046912], [], "9bb0e6d8a29aad21b3d1b550a160fa5f1e9030c69d16bad500c0dcc77bff6d01", 1646929019559, 0.44049, [0.0010203], [0.0010319], [0.0010219], [0.0010264], [10], [10]], "benchmarks.PrettySuite.time_pretty_indent_guides": [[0.0014248359366320074], [], "8d71bf19dfe999b0fba95d009986bfd6911c53c7a0c455466725f553005c3bc7", 1646929019778, 0.45392, [0.0014195], [0.0014304], [0.0014217], [0.001427], [8], [10]], "benchmarks.PrettySuite.time_pretty_justify_center": [[0.0014159661277517444], [], "54cbf71bacab14ccbe1d063847c0b89198ed1bbe06edc89c14d2e3c7b1986c41", 1646929020003, 0.44659, [0.001413], [0.0014239], [0.0014148], [0.0014192], [8], [10]], "benchmarks.StyleSuite.time_parse_ansi": [[1.1394939761435257e-07], [], "a003aaa8017585efeb1cd9c43351282df4df6249bf28a4c447b1304d984aa753", 1646929020226, 0.45533, [1.136e-07], [1.1461e-07], [1.1384e-07], [1.1405e-07], [96339], [10]], "benchmarks.StyleSuite.time_parse_hex": [[1.1384583794797324e-07], [], "cf5a3f0def435d3da5bc3a6e7549c44c0a02e9cce6c00ecde8dd7f527556f8ca", 1646929020454, 0.45622, [1.1351e-07], [1.1446e-07], [1.1365e-07], [1.1395e-07], [96470], [10]], "benchmarks.StyleSuite.time_parse_mixed_complex_style": [[1.1441081350038904e-07], [], "01c9e12ae829b1984e55a5aeef1a9ae6f1461577adaf5ae59f06358c8b52802f", 1646929020683, 0.45685, [1.1395e-07], [1.1629e-07], [1.1422e-07], [1.1609e-07], [96427], [10]], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_heavy_wrapping": [null, [], "1ed4d74ea424990cfb40c96f07635f9bcf7b8bacc7ade5204aaf96363e1622ee", 1646929014673, 0.06211], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_medium_wrapping": [null, [], "0880e162a4907ee025cef8ac3380502554fde27fd0c90a4c15cebc9c27f3e333", 1646929014735, 0.061388], "benchmarks.SyntaxWrappingSuite.time_text_wide_terminal_no_wrapping": [null, [], "feb11e94ae6a75de2dee899fb93db098b55cde232710660d7d66f9e2b288d9c0", 1646929014796, 0.061498], "benchmarks.TableSuite.time_table_heavy_wrapping": [[0.003257651122112293], [], "ca515a9739c1e0f8eb922420f9f9caf27321fb13c8bd0bc49b207a0588b370de", 1646929020912, 0.47083, [0.0032419], [0.0032744], [0.0032443], [0.003264], [4], [10]], "benchmarks.TableSuite.time_table_no_wrapping": [[0.0021358375001000237], [], "8842a5f141d8208ba2bab66e4973e978cb5d0615f326af5d70385ff8fa44b3b9", 1646929021148, 0.435, [0.0021303], [0.0021416], [0.0021337], [0.002139], [5], [10]], "benchmarks.TextSuite.time_align_center": [[0.0006608489693462616], [], "1ceeeef2de43fcb3d0dfec409972d8f0eb791e9615fa9f9c959e0423725b089b", 1646929021364, 0.43737, [0.0006581], [0.00066546], [0.00065874], [0.00066177], [16], [10]], "benchmarks.TextSuite.time_align_center_unicode_heavy": [[0.000547438578091954], [], "a83ff79614dd2ae17e8b68f45981fcaa0d9833c59a7a14f171b896cf970f54ce", 1646929021585, 0.44162, [0.00054527], [0.00055525], [0.00054646], [0.00054983], [19], [10]], "benchmarks.TextSuite.time_divide": [[2.5390515191724798e-05], [], "dcc120b921cb2ec77632f8fe2f6f4150d479cb49ef2608f8e86b569a937756e9", 1646929021803, 0.4512, [2.5329e-05], [2.5711e-05], [2.5351e-05], [2.5428e-05], [427], [10]], "benchmarks.TextSuite.time_divide_unicode_heavy": [[0.00018476006040020427], [], "ea53e662c0553324f90ac3336dcee77f733bb33638888e1f84bf71945a2f3f8e", 1646929022028, 0.44752, [0.00018339], [0.00018568], [0.00018443], [0.00018515], [58], [10]], "benchmarks.TextSuite.time_fit": [[4.3462600380556324e-05], [], "ec77b412db357b1e1c1e7bc620b941dddfc36dc76d2a66a0417feae4f21fe1d3", 1646929022252, 0.4469, [4.3358e-05], [4.3558e-05], [4.3432e-05], [4.3498e-05], [244], [10]], "benchmarks.TextSuite.time_fit_unicode_heavy": [[0.0003242386358606657], [], "d1574b4af2ef8b80b95b4dbeeb13e5de67b66783f76f9968834776239dd0dc66", 1646929022474, 0.44771, [0.0003232], [0.00032543], [0.00032396], [0.0003247], [33], [10]], "benchmarks.TextSuite.time_indent_guides": [[0.0003898078699691083], [], "18da036dcfc15ec5e3c11e72be7c8f0c22fba695a5f19c95836be36952376cf2", 1646929022697, 0.44376, [0.00038863], [0.00039121], [0.00038894], [0.00039019], [27], [10]], "benchmarks.TextSuite.time_render": [[4.677676879431917e-06], [], "907d30581cfdc7bb2c4d302b7e3cb474aaefd8b84821365fe105af7d82be3b09", 1646929022918, 0.44464, [4.6703e-06], [4.6962e-06], [4.6745e-06], [4.6798e-06], [2335], [10]], "benchmarks.TextSuite.time_render_unicode_heavy": [[8.518635934251506e-05], [], "b3f1c09dfd06f412a20dacfe378c3b446727c7d4f9a975336eab3daa8543e1cb", 1646929023143, 0.44923, [8.4641e-05], [8.5376e-05], [8.5162e-05], [8.5249e-05], [128], [10]], "benchmarks.TextSuite.time_split": [[3.519230354962834e-05], [], "9c165854130cb95fea5491ffcd8b580a5bd373149da2ef8aace0e9480f649854", 1646929023369, 0.44159, [3.5092e-05], [3.55e-05], [3.5154e-05], [3.5242e-05], [308], [10]], "benchmarks.TextSuite.time_split_unicode_heavy": [[0.00027432401303054864], [], "d55b02f6d06f478d70635bac3409f3a9899137d9cee87a70a293b8ccf5a6afa4", 1646929023594, 0.4393, [0.00027248], [0.00027588], [0.00027333], [0.00027499], [38], [10]], "benchmarks.TextSuite.time_wrapping": [[0.0010944333000225013], [], "8c821eba13d043f228fd902d8f678c397741855db05d02abe9b82f3d65cdf03d", 1646929023813, 0.44538, [0.0010917], [0.0011006], [0.0010926], [0.0010968], [10], [10]], "benchmarks.TextSuite.time_wrapping_unicode_heavy": [[0.0014909017149225942], [], "ec6e2ef08b6cdee182fef4e26c0043f8c365984f9a31be07dbd792e1aed862d8", 1646929024041, 0.43465, [0.0014838], [0.0015007], [0.0014858], [0.0014937], [7], [10]]}, "durations": {"": 1.97792387008667}, "version": 2} diff --git a/benchmarks/results/darrenburns-2022-mbp/48da2791-virtualenv-py3.10.json b/benchmarks/results/darrenburns-2022-mbp/48da2791-virtualenv-py3.10.json new file mode 100644 index 0000000000..abb554ec17 --- /dev/null +++ b/benchmarks/results/darrenburns-2022-mbp/48da2791-virtualenv-py3.10.json @@ -0,0 +1 @@ +{"commit_hash": "48da2791036f929f706a33c29db809632e6725fc", "env_name": "virtualenv-py3.10", "date": 1638115255000, "params": {"arch": "arm64", "cpu": "Apple M1 Pro", "machine": "darrenburns-2022-mbp", "num_cpu": "10", "os": "Darwin 21.2.0", "ram": "17179869184", "python": "3.10"}, "python": "3.10", "requirements": {}, "env_vars": {}, "result_columns": ["result", "params", "version", "started_at", "duration", "stats_ci_99_a", "stats_ci_99_b", "stats_q_25", "stats_q_75", "stats_number", "stats_repeat", "samples", "profile"], "results": {"benchmarks.ColorSuite.time_downgrade_to_eight_bit": [[1.7029390691971436e-07], [], "019b972f782c6291df9a6a4dea9bb3c6268a69b177e71383d6e19a608e84920d", 1646929396857, 0.46509, [1.6974e-07], [1.7081e-07], [1.7011e-07], [1.7046e-07], [64466], [10]], "benchmarks.ColorSuite.time_downgrade_to_standard": [[1.6999469005804912e-07], [], "f5e8556491c977450fff6ebfd9fff4fc8f12d74829aa5b8570bd27ea7a1c9d28", 1646929397088, 0.46218, [1.6943e-07], [1.7107e-07], [1.6979e-07], [1.7052e-07], [64121], [10]], "benchmarks.ColorSuite.time_downgrade_to_windows": [[1.6956481101479907e-07], [], "373eb97dd7ce2823e080972249235f528e8b3a47210911981cf432ecf0eef5fb", 1646929397319, 0.46503, [1.6843e-07], [1.7113e-07], [1.6903e-07], [1.7056e-07], [64179], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_eight_bit": [[1.7031189285000093e-07], [], "716ff06a471a5d90af3730f6d4470eba3577432d781e0210dff1fd156b8c549c", 1646929397551, 0.46538, [1.693e-07], [1.7185e-07], [1.7006e-07], [1.7051e-07], [64325], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_standard": [[1.6978814830790017e-07], [], "3a752a7884e99e095c31b2a28cfefdf916cb2033c06afae1ea146a72f3ba650c", 1646929397783, 0.46799, [1.6935e-07], [1.778e-07], [1.6962e-07], [1.7083e-07], [64446], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_windows": [[1.7001106675938523e-07], [], "1732bbd18ada49eb7b054fc18b40d6acfb533023463366f37203dab6fbb0cc20", 1646929398016, 0.46569, [1.6898e-07], [1.7093e-07], [1.6961e-07], [1.7046e-07], [64517], [10]], "benchmarks.PrettySuite.time_pretty": [[0.0011089291496318766], [], "9bb0e6d8a29aad21b3d1b550a160fa5f1e9030c69d16bad500c0dcc77bff6d01", 1646929398249, 0.46493, [0.0011058], [0.0011128], [0.0011067], [0.0011111], [10], [10]], "benchmarks.PrettySuite.time_pretty_indent_guides": [[0.0015178006433416158], [], "8d71bf19dfe999b0fba95d009986bfd6911c53c7a0c455466725f553005c3bc7", 1646929398475, 0.45271, [0.0015126], [0.0015273], [0.0015162], [0.0015208], [7], [10]], "benchmarks.PrettySuite.time_pretty_justify_center": [[0.0014067343745409744], [], "54cbf71bacab14ccbe1d063847c0b89198ed1bbe06edc89c14d2e3c7b1986c41", 1646929398705, 0.45552, [0.0013948], [0.0014121], [0.0014011], [0.0014088], [8], [10]], "benchmarks.StyleSuite.time_parse_ansi": [[1.1431908171180309e-07], [], "a003aaa8017585efeb1cd9c43351282df4df6249bf28a4c447b1304d984aa753", 1646929398934, 0.4625, [1.139e-07], [1.1459e-07], [1.1407e-07], [1.1443e-07], [96223], [10]], "benchmarks.StyleSuite.time_parse_hex": [[1.1427217539401951e-07], [], "cf5a3f0def435d3da5bc3a6e7549c44c0a02e9cce6c00ecde8dd7f527556f8ca", 1646929399165, 0.46318, [1.1382e-07], [1.1508e-07], [1.1408e-07], [1.1449e-07], [96346], [10]], "benchmarks.StyleSuite.time_parse_mixed_complex_style": [[1.1413770972804278e-07], [], "01c9e12ae829b1984e55a5aeef1a9ae6f1461577adaf5ae59f06358c8b52802f", 1646929399397, 0.46447, [1.1388e-07], [1.1505e-07], [1.1397e-07], [1.1449e-07], [96097], [10]], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_heavy_wrapping": [null, [], "1ed4d74ea424990cfb40c96f07635f9bcf7b8bacc7ade5204aaf96363e1622ee", 1646929393276, 0.06579], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_medium_wrapping": [null, [], "0880e162a4907ee025cef8ac3380502554fde27fd0c90a4c15cebc9c27f3e333", 1646929393342, 0.065735], "benchmarks.SyntaxWrappingSuite.time_text_wide_terminal_no_wrapping": [null, [], "feb11e94ae6a75de2dee899fb93db098b55cde232710660d7d66f9e2b288d9c0", 1646929393408, 0.065495], "benchmarks.TableSuite.time_table_heavy_wrapping": [[0.0023547582008177415], [], "ca515a9739c1e0f8eb922420f9f9caf27321fb13c8bd0bc49b207a0588b370de", 1646929399630, 0.46099, [0.0023333], [0.0023836], [0.0023458], [0.002377], [5], [10]], "benchmarks.TableSuite.time_table_no_wrapping": [[0.0014109401254245313], [], "8842a5f141d8208ba2bab66e4973e978cb5d0615f326af5d70385ff8fa44b3b9", 1646929399866, 0.45218, [0.0013978], [0.0014195], [0.0014069], [0.0014142], [8], [10]], "benchmarks.TextSuite.time_align_center": [[0.0003703571247959709], [], "1ceeeef2de43fcb3d0dfec409972d8f0eb791e9615fa9f9c959e0423725b089b", 1646929400094, 0.44711, [0.00036972], [0.00037122], [0.00037023], [0.0003706], [28], [10]], "benchmarks.TextSuite.time_align_center_unicode_heavy": [[0.0003394677417330263], [], "a83ff79614dd2ae17e8b68f45981fcaa0d9833c59a7a14f171b896cf970f54ce", 1646929400316, 0.45363, [0.00033578], [0.00035242], [0.00033596], [0.00034271], [31], [10]], "benchmarks.TextSuite.time_divide": [[2.5319982397407204e-05], [], "dcc120b921cb2ec77632f8fe2f6f4150d479cb49ef2608f8e86b569a937756e9", 1646929400543, 0.45892, [2.5273e-05], [2.5455e-05], [2.5291e-05], [2.537e-05], [426], [10]], "benchmarks.TextSuite.time_divide_unicode_heavy": [[0.00018443425882463184], [], "ea53e662c0553324f90ac3336dcee77f733bb33638888e1f84bf71945a2f3f8e", 1646929400771, 0.45448, [0.00018336], [0.00018588], [0.00018415], [0.00018452], [58], [10]], "benchmarks.TextSuite.time_fit": [[4.344523672907784e-05], [], "ec77b412db357b1e1c1e7bc620b941dddfc36dc76d2a66a0417feae4f21fe1d3", 1646929400998, 0.44638, [4.3336e-05], [4.3622e-05], [4.3376e-05], [4.3513e-05], [245], [10]], "benchmarks.TextSuite.time_fit_unicode_heavy": [[0.0003248200757132674], [], "d1574b4af2ef8b80b95b4dbeeb13e5de67b66783f76f9968834776239dd0dc66", 1646929401225, 0.45657, [0.00032341], [0.00032559], [0.00032417], [0.00032505], [33], [10]], "benchmarks.TextSuite.time_indent_guides": [[0.00035815086247849054], [], "18da036dcfc15ec5e3c11e72be7c8f0c22fba695a5f19c95836be36952376cf2", 1646929401452, 0.44738, [0.00035601], [0.00036052], [0.00035674], [0.00035926], [29], [10]], "benchmarks.TextSuite.time_render": [[4.660459543542047e-06], [], "907d30581cfdc7bb2c4d302b7e3cb474aaefd8b84821365fe105af7d82be3b09", 1646929401674, 0.45297, [4.649e-06], [4.7007e-06], [4.6552e-06], [4.6754e-06], [2336], [10]], "benchmarks.TextSuite.time_render_unicode_heavy": [[8.559441260923262e-05], [], "b3f1c09dfd06f412a20dacfe378c3b446727c7d4f9a975336eab3daa8543e1cb", 1646929401904, 0.45579, [8.5149e-05], [8.6055e-05], [8.5462e-05], [8.5757e-05], [126], [10]], "benchmarks.TextSuite.time_split": [[3.518453232369847e-05], [], "9c165854130cb95fea5491ffcd8b580a5bd373149da2ef8aace0e9480f649854", 1646929402133, 0.45111, [3.5107e-05], [3.5279e-05], [3.5171e-05], [3.5213e-05], [309], [10]], "benchmarks.TextSuite.time_split_unicode_heavy": [[0.0002738130527799704], [], "d55b02f6d06f478d70635bac3409f3a9899137d9cee87a70a293b8ccf5a6afa4", 1646929402363, 0.44674, [0.00027328], [0.00027555], [0.00027359], [0.00027398], [38], [10]], "benchmarks.TextSuite.time_wrapping": [[0.0013559401249949588], [], "8c821eba13d043f228fd902d8f678c397741855db05d02abe9b82f3d65cdf03d", 1646929402586, 0.45482, [0.0013492], [0.0013608], [0.0013529], [0.0013577], [8], [10]], "benchmarks.TextSuite.time_wrapping_unicode_heavy": [[0.0014501339277817999], [], "ec6e2ef08b6cdee182fef4e26c0043f8c365984f9a31be07dbd792e1aed862d8", 1646929402816, 0.44494, [0.0014477], [0.0014572], [0.0014492], [0.0014504], [7], [10]]}, "durations": {"": 2.0081732273101807}, "version": 2} diff --git a/benchmarks/results/darrenburns-2022-mbp/4b123ddf-virtualenv-py3.10.json b/benchmarks/results/darrenburns-2022-mbp/4b123ddf-virtualenv-py3.10.json new file mode 100644 index 0000000000..9b46005bd5 --- /dev/null +++ b/benchmarks/results/darrenburns-2022-mbp/4b123ddf-virtualenv-py3.10.json @@ -0,0 +1 @@ +{"commit_hash": "4b123ddf9881f37d257a385fbbae0821deb6dba6", "env_name": "virtualenv-py3.10", "date": 1592148956000, "params": {"arch": "arm64", "cpu": "Apple M1 Pro", "machine": "darrenburns-2022-mbp", "num_cpu": "10", "os": "Darwin 21.2.0", "ram": "17179869184", "python": "3.10"}, "python": "3.10", "requirements": {}, "env_vars": {}, "result_columns": ["result", "params", "version", "started_at", "duration", "stats_ci_99_a", "stats_ci_99_b", "stats_q_25", "stats_q_75", "stats_number", "stats_repeat", "samples", "profile"], "results": {"benchmarks.ColorSuite.time_downgrade_to_eight_bit": [null, [], "019b972f782c6291df9a6a4dea9bb3c6268a69b177e71383d6e19a608e84920d", 1646928524667, 0.057714], "benchmarks.ColorSuite.time_downgrade_to_standard": [null, [], "f5e8556491c977450fff6ebfd9fff4fc8f12d74829aa5b8570bd27ea7a1c9d28", 1646928524724, 0.058216], "benchmarks.ColorSuite.time_downgrade_to_windows": [null, [], "373eb97dd7ce2823e080972249235f528e8b3a47210911981cf432ecf0eef5fb", 1646928524783, 0.058668], "benchmarks.ColorSuiteCached.time_downgrade_to_eight_bit": [null, [], "716ff06a471a5d90af3730f6d4470eba3577432d781e0210dff1fd156b8c549c", 1646928524841, 0.058207], "benchmarks.ColorSuiteCached.time_downgrade_to_standard": [null, [], "3a752a7884e99e095c31b2a28cfefdf916cb2033c06afae1ea146a72f3ba650c", 1646928524900, 0.058317], "benchmarks.ColorSuiteCached.time_downgrade_to_windows": [null, [], "1732bbd18ada49eb7b054fc18b40d6acfb533023463366f37203dab6fbb0cc20", 1646928524958, 0.057998], "benchmarks.PrettySuite.time_pretty": [null, [], "9bb0e6d8a29aad21b3d1b550a160fa5f1e9030c69d16bad500c0dcc77bff6d01", 1646928525016, 0.057999], "benchmarks.PrettySuite.time_pretty_indent_guides": [null, [], "8d71bf19dfe999b0fba95d009986bfd6911c53c7a0c455466725f553005c3bc7", 1646928525074, 0.058439], "benchmarks.PrettySuite.time_pretty_justify_center": [null, [], "54cbf71bacab14ccbe1d063847c0b89198ed1bbe06edc89c14d2e3c7b1986c41", 1646928525133, 0.058496], "benchmarks.StyleSuite.time_parse_ansi": [null, [], "a003aaa8017585efeb1cd9c43351282df4df6249bf28a4c447b1304d984aa753", 1646928525191, 0.058278], "benchmarks.StyleSuite.time_parse_hex": [null, [], "cf5a3f0def435d3da5bc3a6e7549c44c0a02e9cce6c00ecde8dd7f527556f8ca", 1646928525250, 0.05777], "benchmarks.StyleSuite.time_parse_mixed_complex_style": [null, [], "01c9e12ae829b1984e55a5aeef1a9ae6f1461577adaf5ae59f06358c8b52802f", 1646928525308, 0.057742], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_heavy_wrapping": [null, [], "1ed4d74ea424990cfb40c96f07635f9bcf7b8bacc7ade5204aaf96363e1622ee", 1646928525365, 0.058019], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_medium_wrapping": [null, [], "0880e162a4907ee025cef8ac3380502554fde27fd0c90a4c15cebc9c27f3e333", 1646928525423, 0.057995], "benchmarks.SyntaxWrappingSuite.time_text_wide_terminal_no_wrapping": [null, [], "feb11e94ae6a75de2dee899fb93db098b55cde232710660d7d66f9e2b288d9c0", 1646928525481, 0.05858], "benchmarks.TableSuite.time_table_heavy_wrapping": [null, [], "ca515a9739c1e0f8eb922420f9f9caf27321fb13c8bd0bc49b207a0588b370de", 1646928525540, 0.058245], "benchmarks.TableSuite.time_table_no_wrapping": [null, [], "8842a5f141d8208ba2bab66e4973e978cb5d0615f326af5d70385ff8fa44b3b9", 1646928525598, 0.057745], "benchmarks.TextSuite.time_align_center": [null, [], "1ceeeef2de43fcb3d0dfec409972d8f0eb791e9615fa9f9c959e0423725b089b", 1646928525656, 0.058234], "benchmarks.TextSuite.time_align_center_unicode_heavy": [null, [], "a83ff79614dd2ae17e8b68f45981fcaa0d9833c59a7a14f171b896cf970f54ce", 1646928525715, 0.057613], "benchmarks.TextSuite.time_divide": [null, [], "dcc120b921cb2ec77632f8fe2f6f4150d479cb49ef2608f8e86b569a937756e9", 1646928525772, 0.057794], "benchmarks.TextSuite.time_divide_unicode_heavy": [null, [], "ea53e662c0553324f90ac3336dcee77f733bb33638888e1f84bf71945a2f3f8e", 1646928525830, 0.057991], "benchmarks.TextSuite.time_fit": [null, [], "ec77b412db357b1e1c1e7bc620b941dddfc36dc76d2a66a0417feae4f21fe1d3", 1646928525888, 0.058486], "benchmarks.TextSuite.time_fit_unicode_heavy": [null, [], "d1574b4af2ef8b80b95b4dbeeb13e5de67b66783f76f9968834776239dd0dc66", 1646928525947, 0.058217], "benchmarks.TextSuite.time_indent_guides": [null, [], "18da036dcfc15ec5e3c11e72be7c8f0c22fba695a5f19c95836be36952376cf2", 1646928526005, 0.05783], "benchmarks.TextSuite.time_render": [null, [], "907d30581cfdc7bb2c4d302b7e3cb474aaefd8b84821365fe105af7d82be3b09", 1646928526063, 0.05769], "benchmarks.TextSuite.time_render_unicode_heavy": [null, [], "b3f1c09dfd06f412a20dacfe378c3b446727c7d4f9a975336eab3daa8543e1cb", 1646928526121, 0.058295], "benchmarks.TextSuite.time_split": [null, [], "9c165854130cb95fea5491ffcd8b580a5bd373149da2ef8aace0e9480f649854", 1646928526179, 0.058274], "benchmarks.TextSuite.time_split_unicode_heavy": [null, [], "d55b02f6d06f478d70635bac3409f3a9899137d9cee87a70a293b8ccf5a6afa4", 1646928526237, 0.058275], "benchmarks.TextSuite.time_wrapping": [null, [], "8c821eba13d043f228fd902d8f678c397741855db05d02abe9b82f3d65cdf03d", 1646928526296, 0.057623], "benchmarks.TextSuite.time_wrapping_unicode_heavy": [null, [], "ec6e2ef08b6cdee182fef4e26c0043f8c365984f9a31be07dbd792e1aed862d8", 1646928526353, 0.057948]}, "durations": {"": 1.94716215133667}, "version": 2} diff --git a/benchmarks/results/darrenburns-2022-mbp/4bf3f19c-virtualenv-py3.10.json b/benchmarks/results/darrenburns-2022-mbp/4bf3f19c-virtualenv-py3.10.json new file mode 100644 index 0000000000..4a9b4731d6 --- /dev/null +++ b/benchmarks/results/darrenburns-2022-mbp/4bf3f19c-virtualenv-py3.10.json @@ -0,0 +1 @@ +{"commit_hash": "4bf3f19c04f47c60c4fe96b81afe708a0ad812dc", "env_name": "virtualenv-py3.10", "date": 1610056536000, "params": {"arch": "arm64", "cpu": "Apple M1 Pro", "machine": "darrenburns-2022-mbp", "num_cpu": "10", "os": "Darwin 21.2.0", "ram": "17179869184", "python": "3.10"}, "python": "3.10", "requirements": {}, "env_vars": {}, "result_columns": ["result", "params", "version", "started_at", "duration", "stats_ci_99_a", "stats_ci_99_b", "stats_q_25", "stats_q_75", "stats_number", "stats_repeat", "samples", "profile"], "results": {"benchmarks.ColorSuite.time_downgrade_to_eight_bit": [[1.7026700201969953e-07], [], "019b972f782c6291df9a6a4dea9bb3c6268a69b177e71383d6e19a608e84920d", 1646929218340, 0.4496, [1.6901e-07], [1.7073e-07], [1.6983e-07], [1.7059e-07], [63258], [10]], "benchmarks.ColorSuite.time_downgrade_to_standard": [[1.7024261033691904e-07], [], "f5e8556491c977450fff6ebfd9fff4fc8f12d74829aa5b8570bd27ea7a1c9d28", 1646929218564, 0.45474, [1.6906e-07], [1.7206e-07], [1.7001e-07], [1.7056e-07], [64144], [10]], "benchmarks.ColorSuite.time_downgrade_to_windows": [[1.7097329262004033e-07], [], "373eb97dd7ce2823e080972249235f528e8b3a47210911981cf432ecf0eef5fb", 1646929218790, 0.44701, [1.6951e-07], [1.8056e-07], [1.7071e-07], [1.7106e-07], [64271], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_eight_bit": [[1.704293439683435e-07], [], "716ff06a471a5d90af3730f6d4470eba3577432d781e0210dff1fd156b8c549c", 1646929219017, 0.45274, [1.6877e-07], [1.7101e-07], [1.6988e-07], [1.7069e-07], [64637], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_standard": [[1.6998120032705176e-07], [], "3a752a7884e99e095c31b2a28cfefdf916cb2033c06afae1ea146a72f3ba650c", 1646929219246, 0.45383, [1.6869e-07], [1.716e-07], [1.6933e-07], [1.7054e-07], [64363], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_windows": [[1.701495873574819e-07], [], "1732bbd18ada49eb7b054fc18b40d6acfb533023463366f37203dab6fbb0cc20", 1646929219471, 0.45607, [1.686e-07], [1.7108e-07], [1.6982e-07], [1.7058e-07], [64601], [10]], "benchmarks.PrettySuite.time_pretty": [[0.0010267166479025036], [], "9bb0e6d8a29aad21b3d1b550a160fa5f1e9030c69d16bad500c0dcc77bff6d01", 1646929219699, 0.44096, [0.0010256], [0.0010341], [0.0010262], [0.0010296], [10], [10]], "benchmarks.PrettySuite.time_pretty_indent_guides": [[0.0014405237847573257], [], "8d71bf19dfe999b0fba95d009986bfd6911c53c7a0c455466725f553005c3bc7", 1646929219918, 0.43557, [0.0014334], [0.0014522], [0.0014353], [0.0014467], [7], [10]], "benchmarks.PrettySuite.time_pretty_justify_center": [[0.0014132864380371757], [], "54cbf71bacab14ccbe1d063847c0b89198ed1bbe06edc89c14d2e3c7b1986c41", 1646929220133, 0.44405, [0.0014084], [0.0014207], [0.0014108], [0.0014145], [8], [10]], "benchmarks.StyleSuite.time_parse_ansi": [[1.1413694500299339e-07], [], "a003aaa8017585efeb1cd9c43351282df4df6249bf28a4c447b1304d984aa753", 1646929220356, 0.45439, [1.1382e-07], [1.1487e-07], [1.1391e-07], [1.1425e-07], [96002], [10]], "benchmarks.StyleSuite.time_parse_hex": [[1.1450187969337221e-07], [], "cf5a3f0def435d3da5bc3a6e7549c44c0a02e9cce6c00ecde8dd7f527556f8ca", 1646929220583, 0.45646, [1.1404e-07], [1.1666e-07], [1.1436e-07], [1.1468e-07], [96297], [10]], "benchmarks.StyleSuite.time_parse_mixed_complex_style": [[1.1450004689955e-07], [], "01c9e12ae829b1984e55a5aeef1a9ae6f1461577adaf5ae59f06358c8b52802f", 1646929220812, 0.45426, [1.1411e-07], [1.1624e-07], [1.1442e-07], [1.1483e-07], [95933], [10]], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_heavy_wrapping": [null, [], "1ed4d74ea424990cfb40c96f07635f9bcf7b8bacc7ade5204aaf96363e1622ee", 1646929214835, 0.061496], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_medium_wrapping": [null, [], "0880e162a4907ee025cef8ac3380502554fde27fd0c90a4c15cebc9c27f3e333", 1646929214897, 0.061405], "benchmarks.SyntaxWrappingSuite.time_text_wide_terminal_no_wrapping": [null, [], "feb11e94ae6a75de2dee899fb93db098b55cde232710660d7d66f9e2b288d9c0", 1646929214958, 0.061369], "benchmarks.TableSuite.time_table_heavy_wrapping": [[0.003232036375266034], [], "ca515a9739c1e0f8eb922420f9f9caf27321fb13c8bd0bc49b207a0588b370de", 1646929221039, 0.46378, [0.00322], [0.0032609], [0.0032222], [0.0032356], [4], [10]], "benchmarks.TableSuite.time_table_no_wrapping": [[0.0021225292002782226], [], "8842a5f141d8208ba2bab66e4973e978cb5d0615f326af5d70385ff8fa44b3b9", 1646929221273, 0.44284, [0.002113], [0.0021436], [0.0021205], [0.0021334], [5], [10]], "benchmarks.TextSuite.time_align_center": [[0.0006580416884389706], [], "1ceeeef2de43fcb3d0dfec409972d8f0eb791e9615fa9f9c959e0423725b089b", 1646929221498, 0.43619, [0.00065654], [0.00066255], [0.00065709], [0.00065976], [16], [10]], "benchmarks.TextSuite.time_align_center_unicode_heavy": [[0.0005459375258253299], [], "a83ff79614dd2ae17e8b68f45981fcaa0d9833c59a7a14f171b896cf970f54ce", 1646929221718, 0.44058, [0.00054361], [0.00055332], [0.0005442], [0.00054791], [19], [10]], "benchmarks.TextSuite.time_divide": [[2.8382165332216397e-05], [], "dcc120b921cb2ec77632f8fe2f6f4150d479cb49ef2608f8e86b569a937756e9", 1646929221936, 0.44914, [2.8069e-05], [2.8795e-05], [2.8082e-05], [2.8704e-05], [378], [10]], "benchmarks.TextSuite.time_divide_unicode_heavy": [[0.00018698976323082062], [], "ea53e662c0553324f90ac3336dcee77f733bb33638888e1f84bf71945a2f3f8e", 1646929222161, 0.44507, [0.00018619], [0.00018781], [0.00018646], [0.0001872], [57], [10]], "benchmarks.TextSuite.time_fit": [[4.2181391569123746e-05], [], "ec77b412db357b1e1c1e7bc620b941dddfc36dc76d2a66a0417feae4f21fe1d3", 1646929222383, 0.44412, [4.2141e-05], [4.2519e-05], [4.2176e-05], [4.2324e-05], [249], [10]], "benchmarks.TextSuite.time_fit_unicode_heavy": [[0.0003300329352045552], [], "d1574b4af2ef8b80b95b4dbeeb13e5de67b66783f76f9968834776239dd0dc66", 1646929222604, 0.43323, [0.00032818], [0.00033216], [0.00032865], [0.00033058], [31], [10]], "benchmarks.TextSuite.time_indent_guides": [[0.0003932059228715773], [], "18da036dcfc15ec5e3c11e72be7c8f0c22fba695a5f19c95836be36952376cf2", 1646929222820, 0.43423, [0.00039146], [0.00039549], [0.00039154], [0.00039483], [26], [10]], "benchmarks.TextSuite.time_render": [[4.680967959825711e-06], [], "907d30581cfdc7bb2c4d302b7e3cb474aaefd8b84821365fe105af7d82be3b09", 1646929223036, 0.44384, [4.6618e-06], [4.739e-06], [4.6703e-06], [4.7054e-06], [2325], [10]], "benchmarks.TextSuite.time_render_unicode_heavy": [[8.533317190995149e-05], [], "b3f1c09dfd06f412a20dacfe378c3b446727c7d4f9a975336eab3daa8543e1cb", 1646929223261, 0.44865, [8.4655e-05], [8.6092e-05], [8.504e-05], [8.5441e-05], [128], [10]], "benchmarks.TextSuite.time_split": [[3.393354828108605e-05], [], "9c165854130cb95fea5491ffcd8b580a5bd373149da2ef8aace0e9480f649854", 1646929223487, 0.44314, [3.3758e-05], [3.3968e-05], [3.3827e-05], [3.3952e-05], [311], [10]], "benchmarks.TextSuite.time_split_unicode_heavy": [[0.0002790191352392572], [], "d55b02f6d06f478d70635bac3409f3a9899137d9cee87a70a293b8ccf5a6afa4", 1646929223707, 0.43547, [0.00027809], [0.00027992], [0.00027843], [0.00027956], [37], [10]], "benchmarks.TextSuite.time_wrapping": [[0.001142136555346143], [], "8c821eba13d043f228fd902d8f678c397741855db05d02abe9b82f3d65cdf03d", 1646929223924, 0.43895, [0.0011399], [0.0011458], [0.0011402], [0.0011427], [9], [10]], "benchmarks.TextSuite.time_wrapping_unicode_heavy": [[0.0015315089279153782], [], "ec6e2ef08b6cdee182fef4e26c0043f8c365984f9a31be07dbd792e1aed862d8", 1646929224142, 0.44254, [0.0015198], [0.0015369], [0.0015245], [0.0015349], [7], [10]]}, "durations": {"": 1.9530932903289795}, "version": 2} diff --git a/benchmarks/results/darrenburns-2022-mbp/4d6a6d88-virtualenv-py3.10.json b/benchmarks/results/darrenburns-2022-mbp/4d6a6d88-virtualenv-py3.10.json new file mode 100644 index 0000000000..8eb517cd44 --- /dev/null +++ b/benchmarks/results/darrenburns-2022-mbp/4d6a6d88-virtualenv-py3.10.json @@ -0,0 +1 @@ +{"commit_hash": "4d6a6d882048e784aac9e45fc3d0712eac8a44c6", "env_name": "virtualenv-py3.10", "date": 1594653936000, "params": {"arch": "arm64", "cpu": "Apple M1 Pro", "machine": "darrenburns-2022-mbp", "num_cpu": "10", "os": "Darwin 21.2.0", "ram": "17179869184", "python": "3.10"}, "python": "3.10", "requirements": {}, "env_vars": {}, "result_columns": ["result", "params", "version", "started_at", "duration", "stats_ci_99_a", "stats_ci_99_b", "stats_q_25", "stats_q_75", "stats_number", "stats_repeat", "samples", "profile"], "results": {"benchmarks.ColorSuite.time_downgrade_to_eight_bit": [[1.71211830975041e-07], [], "019b972f782c6291df9a6a4dea9bb3c6268a69b177e71383d6e19a608e84920d", 1646928701459, 0.44811, [1.6928e-07], [1.7293e-07], [1.7049e-07], [1.7257e-07], [64070], [10]], "benchmarks.ColorSuite.time_downgrade_to_standard": [[1.7341769853709463e-07], [], "f5e8556491c977450fff6ebfd9fff4fc8f12d74829aa5b8570bd27ea7a1c9d28", 1646928701684, 0.42369, [1.7211e-07], [1.7412e-07], [1.7301e-07], [1.7365e-07], [58559], [10]], "benchmarks.ColorSuite.time_downgrade_to_windows": [[1.733226603416208e-07], [], "373eb97dd7ce2823e080972249235f528e8b3a47210911981cf432ecf0eef5fb", 1646928701894, 0.4239, [1.7258e-07], [1.7531e-07], [1.7287e-07], [1.7381e-07], [58309], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_eight_bit": [[1.7369829756098446e-07], [], "716ff06a471a5d90af3730f6d4470eba3577432d781e0210dff1fd156b8c549c", 1646928702104, 0.42248, [1.7256e-07], [1.7493e-07], [1.7347e-07], [1.7386e-07], [58145], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_standard": [[1.730062267293436e-07], [], "3a752a7884e99e095c31b2a28cfefdf916cb2033c06afae1ea146a72f3ba650c", 1646928702313, 0.42338, [1.7105e-07], [1.7353e-07], [1.727e-07], [1.7323e-07], [58620], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_windows": [[1.73106468285579e-07], [], "1732bbd18ada49eb7b054fc18b40d6acfb533023463366f37203dab6fbb0cc20", 1646928702523, 0.42349, [1.7271e-07], [1.7373e-07], [1.729e-07], [1.736e-07], [58623], [10]], "benchmarks.PrettySuite.time_pretty": [[0.0022415790997911246], [], "9bb0e6d8a29aad21b3d1b550a160fa5f1e9030c69d16bad500c0dcc77bff6d01", 1646928702733, 0.44145, [0.0022111], [0.0022633], [0.0022401], [0.0022491], [5], [10]], "benchmarks.PrettySuite.time_pretty_indent_guides": [null, [], "8d71bf19dfe999b0fba95d009986bfd6911c53c7a0c455466725f553005c3bc7", 1646928697426, 0.058805], "benchmarks.PrettySuite.time_pretty_justify_center": [null, [], "54cbf71bacab14ccbe1d063847c0b89198ed1bbe06edc89c14d2e3c7b1986c41", 1646928697485, 0.058014], "benchmarks.StyleSuite.time_parse_ansi": [[1.1629347304261993e-07], [], "a003aaa8017585efeb1cd9c43351282df4df6249bf28a4c447b1304d984aa753", 1646928702950, 0.41859, [1.1587e-07], [1.1667e-07], [1.1617e-07], [1.1652e-07], [86439], [10]], "benchmarks.StyleSuite.time_parse_hex": [[1.149888907589994e-07], [], "cf5a3f0def435d3da5bc3a6e7549c44c0a02e9cce6c00ecde8dd7f527556f8ca", 1646928703159, 0.43942, [1.1351e-07], [1.158e-07], [1.1392e-07], [1.1576e-07], [96497], [10]], "benchmarks.StyleSuite.time_parse_mixed_complex_style": [[1.1611507526373169e-07], [], "01c9e12ae829b1984e55a5aeef1a9ae6f1461577adaf5ae59f06358c8b52802f", 1646928703375, 0.4299, [1.1585e-07], [1.1631e-07], [1.1609e-07], [1.1613e-07], [96350], [10]], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_heavy_wrapping": [null, [], "1ed4d74ea424990cfb40c96f07635f9bcf7b8bacc7ade5204aaf96363e1622ee", 1646928698192, 0.057811], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_medium_wrapping": [null, [], "0880e162a4907ee025cef8ac3380502554fde27fd0c90a4c15cebc9c27f3e333", 1646928698249, 0.057598], "benchmarks.SyntaxWrappingSuite.time_text_wide_terminal_no_wrapping": [null, [], "feb11e94ae6a75de2dee899fb93db098b55cde232710660d7d66f9e2b288d9c0", 1646928698307, 0.057625], "benchmarks.TableSuite.time_table_heavy_wrapping": [[0.002132087497739121], [], "ca515a9739c1e0f8eb922420f9f9caf27321fb13c8bd0bc49b207a0588b370de", 1646928703590, 0.43733, [0.0021244], [0.0021533], [0.0021308], [0.0021385], [5], [10]], "benchmarks.TableSuite.time_table_no_wrapping": [[0.0014943362142990477], [], "8842a5f141d8208ba2bab66e4973e978cb5d0615f326af5d70385ff8fa44b3b9", 1646928703812, 0.4326, [0.0014916], [0.001502], [0.0014927], [0.0014998], [7], [10]], "benchmarks.TextSuite.time_align_center": [[0.0006707264003731931], [], "1ceeeef2de43fcb3d0dfec409972d8f0eb791e9615fa9f9c959e0423725b089b", 1646928704031, 0.43352, [0.00066986], [0.00067391], [0.00067017], [0.00067108], [15], [10]], "benchmarks.TextSuite.time_align_center_unicode_heavy": [[0.0005578264163988125], [], "a83ff79614dd2ae17e8b68f45981fcaa0d9833c59a7a14f171b896cf970f54ce", 1646928704249, 0.4249, [0.00055723], [0.00056032], [0.00055764], [0.00055827], [18], [10]], "benchmarks.TextSuite.time_divide": [[2.8334253213622352e-05], [], "dcc120b921cb2ec77632f8fe2f6f4150d479cb49ef2608f8e86b569a937756e9", 1646928704458, 0.43659, [2.8239e-05], [2.8549e-05], [2.8276e-05], [2.8421e-05], [385], [10]], "benchmarks.TextSuite.time_divide_unicode_heavy": [[0.0001867837759320913], [], "ea53e662c0553324f90ac3336dcee77f733bb33638888e1f84bf71945a2f3f8e", 1646928704681, 0.44303, [0.00018628], [0.00018719], [0.00018674], [0.00018683], [58], [10]], "benchmarks.TextSuite.time_fit": [[4.252741899453619e-05], [], "ec77b412db357b1e1c1e7bc620b941dddfc36dc76d2a66a0417feae4f21fe1d3", 1646928704903, 0.44296, [4.2042e-05], [4.2936e-05], [4.216e-05], [4.2901e-05], [253], [10]], "benchmarks.TextSuite.time_fit_unicode_heavy": [[0.00032937769297390217], [], "d1574b4af2ef8b80b95b4dbeeb13e5de67b66783f76f9968834776239dd0dc66", 1646928705125, 0.42599, [0.00032873], [0.00032982], [0.00032918], [0.00032955], [31], [10]], "benchmarks.TextSuite.time_indent_guides": [null, [], "18da036dcfc15ec5e3c11e72be7c8f0c22fba695a5f19c95836be36952376cf2", 1646928700099, 0.058176], "benchmarks.TextSuite.time_render": [[4.719828067108801e-06], [], "907d30581cfdc7bb2c4d302b7e3cb474aaefd8b84821365fe105af7d82be3b09", 1646928705336, 0.43846, [4.6846e-06], [4.7627e-06], [4.6917e-06], [4.7593e-06], [2338], [10]], "benchmarks.TextSuite.time_render_unicode_heavy": [[8.595767974384216e-05], [], "b3f1c09dfd06f412a20dacfe378c3b446727c7d4f9a975336eab3daa8543e1cb", 1646928705559, 0.43407, [8.5341e-05], [8.6674e-05], [8.5505e-05], [8.6038e-05], [128], [10]], "benchmarks.TextSuite.time_split": [[3.3765640987663486e-05], [], "9c165854130cb95fea5491ffcd8b580a5bd373149da2ef8aace0e9480f649854", 1646928705773, 0.43021, [3.362e-05], [3.4345e-05], [3.3695e-05], [3.3789e-05], [305], [10]], "benchmarks.TextSuite.time_split_unicode_heavy": [[0.0002785990945994854], [], "d55b02f6d06f478d70635bac3409f3a9899137d9cee87a70a293b8ccf5a6afa4", 1646928705988, 0.42689, [0.00027808], [0.0002792], [0.00027822], [0.00027882], [37], [10]], "benchmarks.TextSuite.time_wrapping": [[0.001152412055590604], [], "8c821eba13d043f228fd902d8f678c397741855db05d02abe9b82f3d65cdf03d", 1646928706201, 0.43271, [0.0011342], [0.0011636], [0.0011365], [0.0011621], [9], [10]], "benchmarks.TextSuite.time_wrapping_unicode_heavy": [[0.0015300982881204358], [], "ec6e2ef08b6cdee182fef4e26c0043f8c365984f9a31be07dbd792e1aed862d8", 1646928706414, 0.435, [0.0015163], [0.0015429], [0.0015173], [0.0015413], [7], [10]]}, "durations": {"": 1.9689950942993164}, "version": 2} diff --git a/benchmarks/results/darrenburns-2022-mbp/52d159aa-virtualenv-py3.10.json b/benchmarks/results/darrenburns-2022-mbp/52d159aa-virtualenv-py3.10.json new file mode 100644 index 0000000000..b78dc3ab4e --- /dev/null +++ b/benchmarks/results/darrenburns-2022-mbp/52d159aa-virtualenv-py3.10.json @@ -0,0 +1 @@ +{"commit_hash": "52d159aae04d12ba24ecdc3d8104e6b8068cbf5f", "env_name": "virtualenv-py3.10", "date": 1628194484000, "params": {"arch": "arm64", "cpu": "Apple M1 Pro", "machine": "darrenburns-2022-mbp", "num_cpu": "10", "os": "Darwin 21.2.0", "ram": "17179869184", "python": "3.10"}, "python": "3.10", "requirements": {}, "env_vars": {}, "result_columns": ["result", "params", "version", "started_at", "duration", "stats_ci_99_a", "stats_ci_99_b", "stats_q_25", "stats_q_75", "stats_number", "stats_repeat", "samples", "profile"], "results": {"benchmarks.ColorSuite.time_downgrade_to_eight_bit": [[1.7058945968935357e-07], [], "019b972f782c6291df9a6a4dea9bb3c6268a69b177e71383d6e19a608e84920d", 1646928419145, 0.46426, [1.6899e-07], [1.7097e-07], [1.6959e-07], [1.7072e-07], [64325], [10]], "benchmarks.ColorSuite.time_downgrade_to_standard": [[1.7007191055197154e-07], [], "f5e8556491c977450fff6ebfd9fff4fc8f12d74829aa5b8570bd27ea7a1c9d28", 1646928419378, 0.46218, [1.6928e-07], [1.7112e-07], [1.6946e-07], [1.7073e-07], [64337], [10]], "benchmarks.ColorSuite.time_downgrade_to_windows": [[1.7047900862400746e-07], [], "373eb97dd7ce2823e080972249235f528e8b3a47210911981cf432ecf0eef5fb", 1646928419608, 0.46293, [1.6988e-07], [1.7222e-07], [1.7034e-07], [1.7087e-07], [64407], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_eight_bit": [[1.6987062918839053e-07], [], "716ff06a471a5d90af3730f6d4470eba3577432d781e0210dff1fd156b8c549c", 1646928419840, 0.43796, [1.6901e-07], [1.7506e-07], [1.6945e-07], [1.7083e-07], [59256], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_standard": [[1.700489583745791e-07], [], "3a752a7884e99e095c31b2a28cfefdf916cb2033c06afae1ea146a72f3ba650c", 1646928420060, 0.46321, [1.6869e-07], [1.7124e-07], [1.6888e-07], [1.7072e-07], [64749], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_windows": [[1.6975048857829784e-07], [], "1732bbd18ada49eb7b054fc18b40d6acfb533023463366f37203dab6fbb0cc20", 1646928420292, 0.45536, [1.6863e-07], [1.7169e-07], [1.6948e-07], [1.7053e-07], [64983], [10]], "benchmarks.PrettySuite.time_pretty": [[0.001030508300755173], [], "9bb0e6d8a29aad21b3d1b550a160fa5f1e9030c69d16bad500c0dcc77bff6d01", 1646928420524, 0.45054, [0.0010281], [0.0010381], [0.0010294], [0.0010319], [10], [10]], "benchmarks.PrettySuite.time_pretty_indent_guides": [[0.0014259791878430406], [], "8d71bf19dfe999b0fba95d009986bfd6911c53c7a0c455466725f553005c3bc7", 1646928420748, 0.46115, [0.0014206], [0.001435], [0.0014241], [0.0014291], [8], [10]], "benchmarks.PrettySuite.time_pretty_justify_center": [[0.0013004270640522009], [], "54cbf71bacab14ccbe1d063847c0b89198ed1bbe06edc89c14d2e3c7b1986c41", 1646928420976, 0.44145, [0.0012931], [0.0013095], [0.0012971], [0.0013017], [8], [10]], "benchmarks.StyleSuite.time_parse_ansi": [[1.151534361549962e-07], [], "a003aaa8017585efeb1cd9c43351282df4df6249bf28a4c447b1304d984aa753", 1646928421200, 0.45048, [1.1363e-07], [1.1659e-07], [1.1394e-07], [1.1649e-07], [95323], [10]], "benchmarks.StyleSuite.time_parse_hex": [[1.1456751691900413e-07], [], "cf5a3f0def435d3da5bc3a6e7549c44c0a02e9cce6c00ecde8dd7f527556f8ca", 1646928421430, 0.45451, [1.143e-07], [1.1497e-07], [1.1441e-07], [1.1481e-07], [96146], [10]], "benchmarks.StyleSuite.time_parse_mixed_complex_style": [[1.142799556713515e-07], [], "01c9e12ae829b1984e55a5aeef1a9ae6f1461577adaf5ae59f06358c8b52802f", 1646928421661, 0.46019, [1.1399e-07], [1.1495e-07], [1.1419e-07], [1.144e-07], [95658], [10]], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_heavy_wrapping": [null, [], "1ed4d74ea424990cfb40c96f07635f9bcf7b8bacc7ade5204aaf96363e1622ee", 1646928415565, 0.064836], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_medium_wrapping": [null, [], "0880e162a4907ee025cef8ac3380502554fde27fd0c90a4c15cebc9c27f3e333", 1646928415630, 0.064728], "benchmarks.SyntaxWrappingSuite.time_text_wide_terminal_no_wrapping": [null, [], "feb11e94ae6a75de2dee899fb93db098b55cde232710660d7d66f9e2b288d9c0", 1646928415695, 0.064479], "benchmarks.TableSuite.time_table_heavy_wrapping": [[0.0021430041990242897], [], "ca515a9739c1e0f8eb922420f9f9caf27321fb13c8bd0bc49b207a0588b370de", 1646928421892, 0.45143, [0.0021284], [0.0021562], [0.0021387], [0.0021471], [5], [10]], "benchmarks.TableSuite.time_table_no_wrapping": [[0.0012858229365519946], [], "8842a5f141d8208ba2bab66e4973e978cb5d0615f326af5d70385ff8fa44b3b9", 1646928422121, 0.43998, [0.001278], [0.0013006], [0.0012844], [0.001293], [8], [10]], "benchmarks.TextSuite.time_align_center": [[0.00037878200029289085], [], "1ceeeef2de43fcb3d0dfec409972d8f0eb791e9615fa9f9c959e0423725b089b", 1646928422344, 0.45186, [0.0003762], [0.00038154], [0.00037638], [0.00038124], [28], [10]], "benchmarks.TextSuite.time_align_center_unicode_heavy": [[0.0003415954359356434], [], "a83ff79614dd2ae17e8b68f45981fcaa0d9833c59a7a14f171b896cf970f54ce", 1646928422568, 0.45219, [0.00033984], [0.00035252], [0.00034056], [0.00034234], [31], [10]], "benchmarks.TextSuite.time_divide": [[2.5294476755905552e-05], [], "dcc120b921cb2ec77632f8fe2f6f4150d479cb49ef2608f8e86b569a937756e9", 1646928422793, 0.45996, [2.526e-05], [2.5386e-05], [2.527e-05], [2.5346e-05], [430], [10]], "benchmarks.TextSuite.time_divide_unicode_heavy": [[0.0001844626466005013], [], "ea53e662c0553324f90ac3336dcee77f733bb33638888e1f84bf71945a2f3f8e", 1646928423023, 0.45289, [0.00018314], [0.00018489], [0.00018439], [0.00018469], [58], [10]], "benchmarks.TextSuite.time_fit": [[4.342586236396948e-05], [], "ec77b412db357b1e1c1e7bc620b941dddfc36dc76d2a66a0417feae4f21fe1d3", 1646928423249, 0.44655, [4.3288e-05], [4.3714e-05], [4.332e-05], [4.3553e-05], [247], [10]], "benchmarks.TextSuite.time_fit_unicode_heavy": [[0.00032384783315302974], [], "d1574b4af2ef8b80b95b4dbeeb13e5de67b66783f76f9968834776239dd0dc66", 1646928423476, 0.45419, [0.000323], [0.00032504], [0.00032364], [0.0003245], [33], [10]], "benchmarks.TextSuite.time_indent_guides": [[0.0003554540172476193], [], "18da036dcfc15ec5e3c11e72be7c8f0c22fba695a5f19c95836be36952376cf2", 1646928423702, 0.44371, [0.00035482], [0.00035661], [0.00035531], [0.00035573], [29], [10]], "benchmarks.TextSuite.time_render": [[4.65925170721221e-06], [], "907d30581cfdc7bb2c4d302b7e3cb474aaefd8b84821365fe105af7d82be3b09", 1646928423922, 0.4521, [4.6509e-06], [4.672e-06], [4.6565e-06], [4.667e-06], [2346], [10]], "benchmarks.TextSuite.time_render_unicode_heavy": [[8.579609456369433e-05], [], "b3f1c09dfd06f412a20dacfe378c3b446727c7d4f9a975336eab3daa8543e1cb", 1646928424152, 0.47335, [8.4585e-05], [8.6328e-05], [8.5135e-05], [8.5863e-05], [127], [10]], "benchmarks.TextSuite.time_split": [[3.51094919114455e-05], [], "9c165854130cb95fea5491ffcd8b580a5bd373149da2ef8aace0e9480f649854", 1646928424380, 0.4494, [3.5084e-05], [3.5232e-05], [3.5094e-05], [3.5152e-05], [309], [10]], "benchmarks.TextSuite.time_split_unicode_heavy": [[0.0002745021839999888], [], "d55b02f6d06f478d70635bac3409f3a9899137d9cee87a70a293b8ccf5a6afa4", 1646928424610, 0.44526, [0.0002739], [0.00027532], [0.00027419], [0.00027463], [38], [10]], "benchmarks.TextSuite.time_wrapping": [[0.001095737499417737], [], "8c821eba13d043f228fd902d8f678c397741855db05d02abe9b82f3d65cdf03d", 1646928424832, 0.45514, [0.0010923], [0.0011003], [0.0010928], [0.0010983], [10], [10]], "benchmarks.TextSuite.time_wrapping_unicode_heavy": [[0.0013680338106496492], [], "ec6e2ef08b6cdee182fef4e26c0043f8c365984f9a31be07dbd792e1aed862d8", 1646928425063, 0.45511, [0.0013634], [0.0013953], [0.0013668], [0.0013697], [8], [10]]}, "durations": {"": 1.9940869808197021}, "version": 2} diff --git a/benchmarks/results/darrenburns-2022-mbp/53d9eeaf-virtualenv-py3.10.json b/benchmarks/results/darrenburns-2022-mbp/53d9eeaf-virtualenv-py3.10.json new file mode 100644 index 0000000000..c5dd5da0f6 --- /dev/null +++ b/benchmarks/results/darrenburns-2022-mbp/53d9eeaf-virtualenv-py3.10.json @@ -0,0 +1 @@ +{"commit_hash": "53d9eeafe01e293a1eb5d9bc65b5a611b46dad53", "env_name": "virtualenv-py3.10", "date": 1638033096000, "params": {"arch": "arm64", "cpu": "Apple M1 Pro", "machine": "darrenburns-2022-mbp", "num_cpu": "10", "os": "Darwin 21.2.0", "ram": "17179869184", "python": "3.10"}, "python": "3.10", "requirements": {}, "env_vars": {}, "result_columns": ["result", "params", "version", "started_at", "duration", "stats_ci_99_a", "stats_ci_99_b", "stats_q_25", "stats_q_75", "stats_number", "stats_repeat", "samples", "profile"], "results": {"benchmarks.ColorSuite.time_downgrade_to_eight_bit": [[1.7049279486400416e-07], [], "019b972f782c6291df9a6a4dea9bb3c6268a69b177e71383d6e19a608e84920d", 1646929440364, 0.46631, [1.6952e-07], [1.7084e-07], [1.7022e-07], [1.7068e-07], [64469], [10]], "benchmarks.ColorSuite.time_downgrade_to_standard": [[1.7017859373834976e-07], [], "f5e8556491c977450fff6ebfd9fff4fc8f12d74829aa5b8570bd27ea7a1c9d28", 1646929440596, 0.46317, [1.6913e-07], [1.7077e-07], [1.6972e-07], [1.7037e-07], [64364], [10]], "benchmarks.ColorSuite.time_downgrade_to_windows": [[1.7037698439109146e-07], [], "373eb97dd7ce2823e080972249235f528e8b3a47210911981cf432ecf0eef5fb", 1646929440827, 0.46392, [1.6957e-07], [1.7122e-07], [1.6996e-07], [1.7081e-07], [64443], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_eight_bit": [[1.7020052975934573e-07], [], "716ff06a471a5d90af3730f6d4470eba3577432d781e0210dff1fd156b8c549c", 1646929441060, 0.46301, [1.6894e-07], [1.7106e-07], [1.6975e-07], [1.7051e-07], [63988], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_standard": [[1.7120931499167352e-07], [], "3a752a7884e99e095c31b2a28cfefdf916cb2033c06afae1ea146a72f3ba650c", 1646929441292, 0.46571, [1.697e-07], [1.8041e-07], [1.7066e-07], [1.7236e-07], [63789], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_windows": [[1.70363939930509e-07], [], "1732bbd18ada49eb7b054fc18b40d6acfb533023463366f37203dab6fbb0cc20", 1646929441525, 0.43888, [1.6949e-07], [1.71e-07], [1.6996e-07], [1.7092e-07], [59154], [10]], "benchmarks.PrettySuite.time_pretty": [[0.0011072729001170957], [], "9bb0e6d8a29aad21b3d1b550a160fa5f1e9030c69d16bad500c0dcc77bff6d01", 1646929441745, 0.45553, [0.0011021], [0.0011113], [0.0011049], [0.001109], [10], [10]], "benchmarks.PrettySuite.time_pretty_indent_guides": [[0.0015153422843598363], [], "8d71bf19dfe999b0fba95d009986bfd6911c53c7a0c455466725f553005c3bc7", 1646929441971, 0.45177, [0.0015073], [0.0015185], [0.0015136], [0.0015181], [7], [10]], "benchmarks.PrettySuite.time_pretty_justify_center": [[0.0014005104385432787], [], "54cbf71bacab14ccbe1d063847c0b89198ed1bbe06edc89c14d2e3c7b1986c41", 1646929442200, 0.45317, [0.0013962], [0.001413], [0.0013972], [0.0014056], [8], [10]], "benchmarks.StyleSuite.time_parse_ansi": [[1.141952810339963e-07], [], "a003aaa8017585efeb1cd9c43351282df4df6249bf28a4c447b1304d984aa753", 1646929442426, 0.46354, [1.1367e-07], [1.1457e-07], [1.1397e-07], [1.1432e-07], [96100], [10]], "benchmarks.StyleSuite.time_parse_hex": [[1.1403247722285144e-07], [], "cf5a3f0def435d3da5bc3a6e7549c44c0a02e9cce6c00ecde8dd7f527556f8ca", 1646929442658, 0.46318, [1.1374e-07], [1.1458e-07], [1.1399e-07], [1.1427e-07], [95929], [10]], "benchmarks.StyleSuite.time_parse_mixed_complex_style": [[1.144795280331981e-07], [], "01c9e12ae829b1984e55a5aeef1a9ae6f1461577adaf5ae59f06358c8b52802f", 1646929442889, 0.46421, [1.1427e-07], [1.1652e-07], [1.1436e-07], [1.1471e-07], [95936], [10]], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_heavy_wrapping": [null, [], "1ed4d74ea424990cfb40c96f07635f9bcf7b8bacc7ade5204aaf96363e1622ee", 1646929436790, 0.065786], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_medium_wrapping": [null, [], "0880e162a4907ee025cef8ac3380502554fde27fd0c90a4c15cebc9c27f3e333", 1646929436856, 0.065362], "benchmarks.SyntaxWrappingSuite.time_text_wide_terminal_no_wrapping": [null, [], "feb11e94ae6a75de2dee899fb93db098b55cde232710660d7d66f9e2b288d9c0", 1646929436922, 0.065903], "benchmarks.TableSuite.time_table_heavy_wrapping": [[0.002355558300041594], [], "ca515a9739c1e0f8eb922420f9f9caf27321fb13c8bd0bc49b207a0588b370de", 1646929443123, 0.46045, [0.0023391], [0.0023658], [0.0023506], [0.0023593], [5], [10]], "benchmarks.TableSuite.time_table_no_wrapping": [[0.0014035625008546049], [], "8842a5f141d8208ba2bab66e4973e978cb5d0615f326af5d70385ff8fa44b3b9", 1646929443357, 0.45078, [0.0013955], [0.0014249], [0.0014003], [0.0014093], [8], [10]], "benchmarks.TextSuite.time_align_center": [[0.00037317783945971835], [], "1ceeeef2de43fcb3d0dfec409972d8f0eb791e9615fa9f9c959e0423725b089b", 1646929443584, 0.44929, [0.00036973], [0.00037654], [0.00037024], [0.00037593], [28], [10]], "benchmarks.TextSuite.time_align_center_unicode_heavy": [[0.00034051880638505665], [], "a83ff79614dd2ae17e8b68f45981fcaa0d9833c59a7a14f171b896cf970f54ce", 1646929443809, 0.45408, [0.00033991], [0.00034984], [0.00034031], [0.00034095], [31], [10]], "benchmarks.TextSuite.time_divide": [[2.544216744663229e-05], [], "dcc120b921cb2ec77632f8fe2f6f4150d479cb49ef2608f8e86b569a937756e9", 1646929444035, 0.45751, [2.5366e-05], [2.5573e-05], [2.5389e-05], [2.5473e-05], [424], [10]], "benchmarks.TextSuite.time_divide_unicode_heavy": [[0.0001841946811102138], [], "ea53e662c0553324f90ac3336dcee77f733bb33638888e1f84bf71945a2f3f8e", 1646929444262, 0.45511, [0.00018351], [0.00018492], [0.00018408], [0.00018442], [58], [10]], "benchmarks.TextSuite.time_fit": [[4.366394494688709e-05], [], "ec77b412db357b1e1c1e7bc620b941dddfc36dc76d2a66a0417feae4f21fe1d3", 1646929444489, 0.44753, [4.3524e-05], [4.388e-05], [4.359e-05], [4.3755e-05], [245], [10]], "benchmarks.TextSuite.time_fit_unicode_heavy": [[0.0003245524191785784], [], "d1574b4af2ef8b80b95b4dbeeb13e5de67b66783f76f9968834776239dd0dc66", 1646929444716, 0.43766, [0.00032402], [0.00032512], [0.00032441], [0.00032487], [31], [10]], "benchmarks.TextSuite.time_indent_guides": [[0.0003566702592973437], [], "18da036dcfc15ec5e3c11e72be7c8f0c22fba695a5f19c95836be36952376cf2", 1646929444934, 0.44644, [0.00035582], [0.00035851], [0.00035621], [0.00035695], [29], [10]], "benchmarks.TextSuite.time_render": [[4.666720238173253e-06], [], "907d30581cfdc7bb2c4d302b7e3cb474aaefd8b84821365fe105af7d82be3b09", 1646929445157, 0.45206, [4.6589e-06], [4.6915e-06], [4.6618e-06], [4.6727e-06], [2327], [10]], "benchmarks.TextSuite.time_render_unicode_heavy": [[8.53927383559494e-05], [], "b3f1c09dfd06f412a20dacfe378c3b446727c7d4f9a975336eab3daa8543e1cb", 1646929445386, 0.45948, [8.4661e-05], [8.5832e-05], [8.515e-05], [8.5439e-05], [128], [10]], "benchmarks.TextSuite.time_split": [[3.512439156564489e-05], [], "9c165854130cb95fea5491ffcd8b580a5bd373149da2ef8aace0e9480f649854", 1646929445617, 0.45113, [3.5094e-05], [3.5178e-05], [3.511e-05], [3.5149e-05], [309], [10]], "benchmarks.TextSuite.time_split_unicode_heavy": [[0.00027426918409458414], [], "d55b02f6d06f478d70635bac3409f3a9899137d9cee87a70a293b8ccf5a6afa4", 1646929445847, 0.44924, [0.00027335], [0.00027611], [0.00027389], [0.00027463], [38], [10]], "benchmarks.TextSuite.time_wrapping": [[0.001357997374725528], [], "8c821eba13d043f228fd902d8f678c397741855db05d02abe9b82f3d65cdf03d", 1646929446071, 0.4553, [0.0013519], [0.0013647], [0.0013535], [0.0013604], [8], [10]], "benchmarks.TextSuite.time_wrapping_unicode_heavy": [[0.0014475237860876533], [], "ec6e2ef08b6cdee182fef4e26c0043f8c365984f9a31be07dbd792e1aed862d8", 1646929446302, 0.44455, [0.0014457], [0.0014561], [0.001446], [0.0014493], [7], [10]]}, "durations": {"": 1.9948718547821045}, "version": 2} diff --git a/benchmarks/results/darrenburns-2022-mbp/550d3911-virtualenv-py3.10.json b/benchmarks/results/darrenburns-2022-mbp/550d3911-virtualenv-py3.10.json new file mode 100644 index 0000000000..3b5c6a76a4 --- /dev/null +++ b/benchmarks/results/darrenburns-2022-mbp/550d3911-virtualenv-py3.10.json @@ -0,0 +1 @@ +{"commit_hash": "550d391171934874ec85ef7bcad2292d8728c1ce", "env_name": "virtualenv-py3.10", "date": 1632474176000, "params": {"arch": "arm64", "cpu": "Apple M1 Pro", "machine": "darrenburns-2022-mbp", "num_cpu": "10", "os": "Darwin 21.2.0", "ram": "17179869184", "python": "3.10"}, "python": "3.10", "requirements": {}, "env_vars": {}, "result_columns": ["result", "params", "version", "started_at", "duration", "stats_ci_99_a", "stats_ci_99_b", "stats_q_25", "stats_q_75", "stats_number", "stats_repeat", "samples", "profile"], "results": {"benchmarks.ColorSuite.time_downgrade_to_eight_bit": [[1.7012055225441422e-07], [], "019b972f782c6291df9a6a4dea9bb3c6268a69b177e71383d6e19a608e84920d", 1646928173768, 0.45874, [1.6935e-07], [1.7183e-07], [1.6987e-07], [1.7106e-07], [64752], [10]], "benchmarks.ColorSuite.time_downgrade_to_standard": [[1.6988035409443387e-07], [], "f5e8556491c977450fff6ebfd9fff4fc8f12d74829aa5b8570bd27ea7a1c9d28", 1646928174000, 0.46387, [1.6862e-07], [1.7053e-07], [1.6945e-07], [1.7023e-07], [64386], [10]], "benchmarks.ColorSuite.time_downgrade_to_windows": [[1.7065502321372411e-07], [], "373eb97dd7ce2823e080972249235f528e8b3a47210911981cf432ecf0eef5fb", 1646928174231, 0.46129, [1.6914e-07], [1.7181e-07], [1.6991e-07], [1.7126e-07], [64542], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_eight_bit": [[1.7065929182325723e-07], [], "716ff06a471a5d90af3730f6d4470eba3577432d781e0210dff1fd156b8c549c", 1646928174465, 0.44014, [1.697e-07], [1.7205e-07], [1.7036e-07], [1.7127e-07], [58848], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_standard": [[1.6986830260259836e-07], [], "3a752a7884e99e095c31b2a28cfefdf916cb2033c06afae1ea146a72f3ba650c", 1646928174682, 0.46129, [1.6949e-07], [1.7137e-07], [1.6968e-07], [1.7093e-07], [63737], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_windows": [[1.7017289076060707e-07], [], "1732bbd18ada49eb7b054fc18b40d6acfb533023463366f37203dab6fbb0cc20", 1646928174913, 0.4629, [1.6913e-07], [1.7065e-07], [1.6973e-07], [1.7043e-07], [64237], [10]], "benchmarks.PrettySuite.time_pretty": [[0.001029439600824844], [], "9bb0e6d8a29aad21b3d1b550a160fa5f1e9030c69d16bad500c0dcc77bff6d01", 1646928175144, 0.45227, [0.0010276], [0.0010308], [0.0010281], [0.0010306], [10], [10]], "benchmarks.PrettySuite.time_pretty_indent_guides": [[0.0014290178556361102], [], "8d71bf19dfe999b0fba95d009986bfd6911c53c7a0c455466725f553005c3bc7", 1646928175369, 0.44384, [0.0014206], [0.001443], [0.0014248], [0.0014332], [7], [10]], "benchmarks.PrettySuite.time_pretty_justify_center": [[0.0013021406248299172], [], "54cbf71bacab14ccbe1d063847c0b89198ed1bbe06edc89c14d2e3c7b1986c41", 1646928175589, 0.44269, [0.0012989], [0.0013057], [0.0013009], [0.0013048], [8], [10]], "benchmarks.StyleSuite.time_parse_ansi": [[1.1429133220318334e-07], [], "a003aaa8017585efeb1cd9c43351282df4df6249bf28a4c447b1304d984aa753", 1646928175814, 0.46182, [1.1391e-07], [1.1468e-07], [1.1422e-07], [1.144e-07], [96462], [10]], "benchmarks.StyleSuite.time_parse_hex": [[1.1416457898368397e-07], [], "cf5a3f0def435d3da5bc3a6e7549c44c0a02e9cce6c00ecde8dd7f527556f8ca", 1646928176047, 0.46146, [1.1384e-07], [1.1438e-07], [1.1407e-07], [1.1428e-07], [95720], [10]], "benchmarks.StyleSuite.time_parse_mixed_complex_style": [[1.1422249136281769e-07], [], "01c9e12ae829b1984e55a5aeef1a9ae6f1461577adaf5ae59f06358c8b52802f", 1646928176278, 0.45943, [1.1376e-07], [1.1534e-07], [1.1416e-07], [1.1494e-07], [95579], [10]], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_heavy_wrapping": [null, [], "1ed4d74ea424990cfb40c96f07635f9bcf7b8bacc7ade5204aaf96363e1622ee", 1646928170194, 0.065791], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_medium_wrapping": [null, [], "0880e162a4907ee025cef8ac3380502554fde27fd0c90a4c15cebc9c27f3e333", 1646928170260, 0.065146], "benchmarks.SyntaxWrappingSuite.time_text_wide_terminal_no_wrapping": [null, [], "feb11e94ae6a75de2dee899fb93db098b55cde232710660d7d66f9e2b288d9c0", 1646928170325, 0.065913], "benchmarks.TableSuite.time_table_heavy_wrapping": [[0.0021364042011555286], [], "ca515a9739c1e0f8eb922420f9f9caf27321fb13c8bd0bc49b207a0588b370de", 1646928176509, 0.45155, [0.0021183], [0.0021539], [0.0021295], [0.002141], [5], [10]], "benchmarks.TableSuite.time_table_no_wrapping": [[0.0012852187519456493], [], "8842a5f141d8208ba2bab66e4973e978cb5d0615f326af5d70385ff8fa44b3b9", 1646928176738, 0.45139, [0.0012792], [0.001293], [0.0012816], [0.0012885], [8], [10]], "benchmarks.TextSuite.time_align_center": [[0.0003731508617859398], [], "1ceeeef2de43fcb3d0dfec409972d8f0eb791e9615fa9f9c959e0423725b089b", 1646928176963, 0.46094, [0.00036765], [0.00037918], [0.00036812], [0.00037813], [29], [10]], "benchmarks.TextSuite.time_align_center_unicode_heavy": [[0.00034339046772314055], [], "a83ff79614dd2ae17e8b68f45981fcaa0d9833c59a7a14f171b896cf970f54ce", 1646928177194, 0.4551, [0.00034029], [0.00034594], [0.00034061], [0.0003452], [31], [10]], "benchmarks.TextSuite.time_divide": [[2.5356557394434596e-05], [], "dcc120b921cb2ec77632f8fe2f6f4150d479cb49ef2608f8e86b569a937756e9", 1646928177421, 0.45924, [2.5314e-05], [2.5461e-05], [2.5326e-05], [2.5394e-05], [427], [10]], "benchmarks.TextSuite.time_divide_unicode_heavy": [[0.00018453017250506272], [], "ea53e662c0553324f90ac3336dcee77f733bb33638888e1f84bf71945a2f3f8e", 1646928177650, 0.4541, [0.00018338], [0.0001853], [0.00018441], [0.00018497], [58], [10]], "benchmarks.TextSuite.time_fit": [[4.3428305671776565e-05], [], "ec77b412db357b1e1c1e7bc620b941dddfc36dc76d2a66a0417feae4f21fe1d3", 1646928177877, 0.44844, [4.3361e-05], [4.3578e-05], [4.3405e-05], [4.3483e-05], [247], [10]], "benchmarks.TextSuite.time_fit_unicode_heavy": [[0.00032479299989063293], [], "d1574b4af2ef8b80b95b4dbeeb13e5de67b66783f76f9968834776239dd0dc66", 1646928178105, 0.43769, [0.00032381], [0.00032571], [0.00032464], [0.00032488], [31], [10]], "benchmarks.TextSuite.time_indent_guides": [[0.0003564590512943486], [], "18da036dcfc15ec5e3c11e72be7c8f0c22fba695a5f19c95836be36952376cf2", 1646928178323, 0.44647, [0.00035473], [0.00035763], [0.00035506], [0.00035739], [29], [10]], "benchmarks.TextSuite.time_render": [[4.6801607524370915e-06], [], "907d30581cfdc7bb2c4d302b7e3cb474aaefd8b84821365fe105af7d82be3b09", 1646928178544, 0.45326, [4.6746e-06], [4.6882e-06], [4.677e-06], [4.6839e-06], [2339], [10]], "benchmarks.TextSuite.time_render_unicode_heavy": [[8.483691408400773e-05], [], "b3f1c09dfd06f412a20dacfe378c3b446727c7d4f9a975336eab3daa8543e1cb", 1646928178775, 0.4581, [8.4367e-05], [8.5389e-05], [8.4512e-05], [8.5327e-05], [128], [10]], "benchmarks.TextSuite.time_split": [[3.525615579451664e-05], [], "9c165854130cb95fea5491ffcd8b580a5bd373149da2ef8aace0e9480f649854", 1646928179006, 0.45066, [3.5121e-05], [3.5416e-05], [3.5163e-05], [3.5352e-05], [308], [10]], "benchmarks.TextSuite.time_split_unicode_heavy": [[0.00027402082885505245], [], "d55b02f6d06f478d70635bac3409f3a9899137d9cee87a70a293b8ccf5a6afa4", 1646928179236, 0.44612, [0.00027276], [0.0002755], [0.00027325], [0.00027431], [38], [10]], "benchmarks.TextSuite.time_wrapping": [[0.0010991021001245827], [], "8c821eba13d043f228fd902d8f678c397741855db05d02abe9b82f3d65cdf03d", 1646928179458, 0.44497, [0.0010967], [0.0011016], [0.0010983], [0.0011004], [10], [10]], "benchmarks.TextSuite.time_wrapping_unicode_heavy": [[0.0013653568112204084], [], "ec6e2ef08b6cdee182fef4e26c0043f8c365984f9a31be07dbd792e1aed862d8", 1646928179680, 0.45591, [0.0013635], [0.0013674], [0.0013648], [0.0013661], [8], [10]]}, "durations": {"": 1.9889721870422363}, "version": 2} diff --git a/benchmarks/results/darrenburns-2022-mbp/55e11902-virtualenv-py3.10.json b/benchmarks/results/darrenburns-2022-mbp/55e11902-virtualenv-py3.10.json new file mode 100644 index 0000000000..ebf974d786 --- /dev/null +++ b/benchmarks/results/darrenburns-2022-mbp/55e11902-virtualenv-py3.10.json @@ -0,0 +1 @@ +{"commit_hash": "55e11902ab7d1c959122baaee4f98966fd30209f", "env_name": "virtualenv-py3.10", "date": 1637873229000, "params": {"arch": "arm64", "cpu": "Apple M1 Pro", "machine": "darrenburns-2022-mbp", "num_cpu": "10", "os": "Darwin 21.2.0", "ram": "17179869184", "python": "3.10"}, "python": "3.10", "requirements": {}, "env_vars": {}, "result_columns": ["result", "params", "version", "started_at", "duration", "stats_ci_99_a", "stats_ci_99_b", "stats_q_25", "stats_q_75", "stats_number", "stats_repeat", "samples", "profile"], "results": {"benchmarks.ColorSuite.time_downgrade_to_eight_bit": [[1.7009309752207926e-07], [], "019b972f782c6291df9a6a4dea9bb3c6268a69b177e71383d6e19a608e84920d", 1646929454849, 0.46725, [1.6942e-07], [1.7118e-07], [1.699e-07], [1.7076e-07], [64529], [10]], "benchmarks.ColorSuite.time_downgrade_to_standard": [[1.7049500323739197e-07], [], "f5e8556491c977450fff6ebfd9fff4fc8f12d74829aa5b8570bd27ea7a1c9d28", 1646929455082, 0.46614, [1.6944e-07], [1.7237e-07], [1.7005e-07], [1.7157e-07], [64644], [10]], "benchmarks.ColorSuite.time_downgrade_to_windows": [[1.70109690025565e-07], [], "373eb97dd7ce2823e080972249235f528e8b3a47210911981cf432ecf0eef5fb", 1646929455316, 0.46141, [1.6911e-07], [1.7078e-07], [1.6966e-07], [1.7031e-07], [63032], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_eight_bit": [[1.6999118625141967e-07], [], "716ff06a471a5d90af3730f6d4470eba3577432d781e0210dff1fd156b8c549c", 1646929455544, 0.46294, [1.6911e-07], [1.7219e-07], [1.6988e-07], [1.7079e-07], [64389], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_standard": [[1.7029554885531188e-07], [], "3a752a7884e99e095c31b2a28cfefdf916cb2033c06afae1ea146a72f3ba650c", 1646929455776, 0.43871, [1.6953e-07], [1.7053e-07], [1.6994e-07], [1.7038e-07], [59178], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_windows": [[1.700329927267081e-07], [], "1732bbd18ada49eb7b054fc18b40d6acfb533023463366f37203dab6fbb0cc20", 1646929455995, 0.46798, [1.6886e-07], [1.712e-07], [1.6983e-07], [1.7066e-07], [64499], [10]], "benchmarks.PrettySuite.time_pretty": [[0.0011053270995034837], [], "9bb0e6d8a29aad21b3d1b550a160fa5f1e9030c69d16bad500c0dcc77bff6d01", 1646929456229, 0.45552, [0.0011022], [0.0011108], [0.001105], [0.0011066], [10], [10]], "benchmarks.PrettySuite.time_pretty_indent_guides": [[0.001516476142569445], [], "8d71bf19dfe999b0fba95d009986bfd6911c53c7a0c455466725f553005c3bc7", 1646929456454, 0.45336, [0.0015102], [0.0015254], [0.0015136], [0.0015206], [7], [10]], "benchmarks.PrettySuite.time_pretty_justify_center": [[0.0014032265626156004], [], "54cbf71bacab14ccbe1d063847c0b89198ed1bbe06edc89c14d2e3c7b1986c41", 1646929456683, 0.4518, [0.0013989], [0.0014156], [0.0014013], [0.0014054], [8], [10]], "benchmarks.StyleSuite.time_parse_ansi": [[1.1443972510031082e-07], [], "a003aaa8017585efeb1cd9c43351282df4df6249bf28a4c447b1304d984aa753", 1646929456911, 0.44705, [1.1404e-07], [1.1613e-07], [1.1435e-07], [1.1463e-07], [87549], [10]], "benchmarks.StyleSuite.time_parse_hex": [[1.145170262736998e-07], [], "cf5a3f0def435d3da5bc3a6e7549c44c0a02e9cce6c00ecde8dd7f527556f8ca", 1646929457140, 0.46136, [1.1389e-07], [1.1622e-07], [1.1412e-07], [1.1476e-07], [95206], [10]], "benchmarks.StyleSuite.time_parse_mixed_complex_style": [[1.1427112499677163e-07], [], "01c9e12ae829b1984e55a5aeef1a9ae6f1461577adaf5ae59f06358c8b52802f", 1646929457370, 0.45761, [1.1383e-07], [1.1437e-07], [1.142e-07], [1.1434e-07], [96356], [10]], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_heavy_wrapping": [null, [], "1ed4d74ea424990cfb40c96f07635f9bcf7b8bacc7ade5204aaf96363e1622ee", 1646929451267, 0.066028], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_medium_wrapping": [null, [], "0880e162a4907ee025cef8ac3380502554fde27fd0c90a4c15cebc9c27f3e333", 1646929451333, 0.065509], "benchmarks.SyntaxWrappingSuite.time_text_wide_terminal_no_wrapping": [null, [], "feb11e94ae6a75de2dee899fb93db098b55cde232710660d7d66f9e2b288d9c0", 1646929451398, 0.065771], "benchmarks.TableSuite.time_table_heavy_wrapping": [[0.002346887398744002], [], "ca515a9739c1e0f8eb922420f9f9caf27321fb13c8bd0bc49b207a0588b370de", 1646929457602, 0.45872, [0.0023343], [0.0023599], [0.0023437], [0.0023479], [5], [10]], "benchmarks.TableSuite.time_table_no_wrapping": [[0.0014088047500990797], [], "8842a5f141d8208ba2bab66e4973e978cb5d0615f326af5d70385ff8fa44b3b9", 1646929457836, 0.46049, [0.0014024], [0.001418], [0.0014048], [0.0014129], [8], [10]], "benchmarks.TextSuite.time_align_center": [[0.0003711837858385739], [], "1ceeeef2de43fcb3d0dfec409972d8f0eb791e9615fa9f9c959e0423725b089b", 1646929458064, 0.4483, [0.0003703], [0.00037339], [0.00037082], [0.00037233], [28], [10]], "benchmarks.TextSuite.time_align_center_unicode_heavy": [[0.0003421592902609958], [], "a83ff79614dd2ae17e8b68f45981fcaa0d9833c59a7a14f171b896cf970f54ce", 1646929458287, 0.45459, [0.00034108], [0.0003524], [0.00034149], [0.0003424], [31], [10]], "benchmarks.TextSuite.time_divide": [[2.5493055157103258e-05], [], "dcc120b921cb2ec77632f8fe2f6f4150d479cb49ef2608f8e86b569a937756e9", 1646929458514, 0.44971, [2.546e-05], [2.5587e-05], [2.5477e-05], [2.5517e-05], [426], [10]], "benchmarks.TextSuite.time_divide_unicode_heavy": [[0.0001844300847042794], [], "ea53e662c0553324f90ac3336dcee77f733bb33638888e1f84bf71945a2f3f8e", 1646929458743, 0.46116, [0.00018405], [0.00018572], [0.00018436], [0.00018474], [59], [10]], "benchmarks.TextSuite.time_fit": [[4.342130773233227e-05], [], "ec77b412db357b1e1c1e7bc620b941dddfc36dc76d2a66a0417feae4f21fe1d3", 1646929458973, 0.44822, [4.3317e-05], [4.359e-05], [4.3382e-05], [4.3503e-05], [247], [10]], "benchmarks.TextSuite.time_fit_unicode_heavy": [[0.0003239267878763547], [], "d1574b4af2ef8b80b95b4dbeeb13e5de67b66783f76f9968834776239dd0dc66", 1646929459201, 0.45607, [0.0003227], [0.00032701], [0.00032375], [0.00032407], [33], [10]], "benchmarks.TextSuite.time_indent_guides": [[0.000356247827735858], [], "18da036dcfc15ec5e3c11e72be7c8f0c22fba695a5f19c95836be36952376cf2", 1646929459429, 0.44639, [0.00035549], [0.00035792], [0.0003556], [0.00035649], [29], [10]], "benchmarks.TextSuite.time_render": [[4.677279566679207e-06], [], "907d30581cfdc7bb2c4d302b7e3cb474aaefd8b84821365fe105af7d82be3b09", 1646929459651, 0.45303, [4.6528e-06], [4.6861e-06], [4.6622e-06], [4.6829e-06], [2334], [10]], "benchmarks.TextSuite.time_render_unicode_heavy": [[8.52260782266967e-05], [], "b3f1c09dfd06f412a20dacfe378c3b446727c7d4f9a975336eab3daa8543e1cb", 1646929459881, 0.45707, [8.4416e-05], [8.5401e-05], [8.5089e-05], [8.526e-05], [128], [10]], "benchmarks.TextSuite.time_split": [[3.524391967268874e-05], [], "9c165854130cb95fea5491ffcd8b580a5bd373149da2ef8aace0e9480f649854", 1646929460110, 0.4482, [3.5221e-05], [3.5331e-05], [3.523e-05], [3.527e-05], [305], [10]], "benchmarks.TextSuite.time_split_unicode_heavy": [[0.0002741030789605391], [], "d55b02f6d06f478d70635bac3409f3a9899137d9cee87a70a293b8ccf5a6afa4", 1646929460338, 0.44744, [0.00027327], [0.00027529], [0.00027397], [0.00027455], [38], [10]], "benchmarks.TextSuite.time_wrapping": [[0.0013605468757305061], [], "8c821eba13d043f228fd902d8f678c397741855db05d02abe9b82f3d65cdf03d", 1646929460561, 0.45554, [0.001354], [0.0013646], [0.0013558], [0.0013632], [8], [10]], "benchmarks.TextSuite.time_wrapping_unicode_heavy": [[0.001452008929585905], [], "ec6e2ef08b6cdee182fef4e26c0043f8c365984f9a31be07dbd792e1aed862d8", 1646929460793, 0.44547, [0.0014487], [0.0014565], [0.0014494], [0.0014536], [7], [10]]}, "durations": {"": 1.9884757995605469}, "version": 2} diff --git a/benchmarks/results/darrenburns-2022-mbp/573125e9-virtualenv-py3.10.json b/benchmarks/results/darrenburns-2022-mbp/573125e9-virtualenv-py3.10.json new file mode 100644 index 0000000000..775e514fec --- /dev/null +++ b/benchmarks/results/darrenburns-2022-mbp/573125e9-virtualenv-py3.10.json @@ -0,0 +1 @@ +{"commit_hash": "573125e9b4eaa4b25bb1a911cf61e365b266afba", "env_name": "virtualenv-py3.10", "date": 1606842626000, "params": {"arch": "arm64", "cpu": "Apple M1 Pro", "machine": "darrenburns-2022-mbp", "num_cpu": "10", "os": "Darwin 21.2.0", "ram": "17179869184", "python": "3.10"}, "python": "3.10", "requirements": {}, "env_vars": {}, "result_columns": ["result", "params", "version", "started_at", "duration", "stats_ci_99_a", "stats_ci_99_b", "stats_q_25", "stats_q_75", "stats_number", "stats_repeat", "samples", "profile"], "results": {"benchmarks.ColorSuite.time_downgrade_to_eight_bit": [[1.7035735748782961e-07], [], "019b972f782c6291df9a6a4dea9bb3c6268a69b177e71383d6e19a608e84920d", 1646929132730, 0.4547, [1.6957e-07], [1.7111e-07], [1.7008e-07], [1.704e-07], [63922], [10]], "benchmarks.ColorSuite.time_downgrade_to_standard": [[1.7011813100056663e-07], [], "f5e8556491c977450fff6ebfd9fff4fc8f12d74829aa5b8570bd27ea7a1c9d28", 1646929132957, 0.45508, [1.6938e-07], [1.7093e-07], [1.6986e-07], [1.7054e-07], [64894], [10]], "benchmarks.ColorSuite.time_downgrade_to_windows": [[1.705091724398945e-07], [], "373eb97dd7ce2823e080972249235f528e8b3a47210911981cf432ecf0eef5fb", 1646929133187, 0.45669, [1.6911e-07], [1.7386e-07], [1.6977e-07], [1.707e-07], [64216], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_eight_bit": [[1.7003631710159307e-07], [], "716ff06a471a5d90af3730f6d4470eba3577432d781e0210dff1fd156b8c549c", 1646929133415, 0.45401, [1.6895e-07], [1.7064e-07], [1.6969e-07], [1.705e-07], [63675], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_standard": [[1.7076965539820025e-07], [], "3a752a7884e99e095c31b2a28cfefdf916cb2033c06afae1ea146a72f3ba650c", 1646929133642, 0.45636, [1.6952e-07], [1.7719e-07], [1.703e-07], [1.731e-07], [64054], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_windows": [[1.704083834704045e-07], [], "1732bbd18ada49eb7b054fc18b40d6acfb533023463366f37203dab6fbb0cc20", 1646929133869, 0.45792, [1.6976e-07], [1.7225e-07], [1.6984e-07], [1.7067e-07], [64175], [10]], "benchmarks.PrettySuite.time_pretty": [[0.0010274875501636415], [], "9bb0e6d8a29aad21b3d1b550a160fa5f1e9030c69d16bad500c0dcc77bff6d01", 1646929134097, 0.44408, [0.0010233], [0.0010341], [0.0010239], [0.0010304], [10], [10]], "benchmarks.PrettySuite.time_pretty_indent_guides": [[0.0014428512118424156], [], "8d71bf19dfe999b0fba95d009986bfd6911c53c7a0c455466725f553005c3bc7", 1646929134318, 0.43837, [0.0014369], [0.0014536], [0.0014413], [0.0014458], [7], [10]], "benchmarks.PrettySuite.time_pretty_justify_center": [[0.0014141536248644115], [], "54cbf71bacab14ccbe1d063847c0b89198ed1bbe06edc89c14d2e3c7b1986c41", 1646929134536, 0.44569, [0.0014093], [0.0014188], [0.0014126], [0.0014145], [8], [10]], "benchmarks.StyleSuite.time_parse_ansi": [[1.1413853433200745e-07], [], "a003aaa8017585efeb1cd9c43351282df4df6249bf28a4c447b1304d984aa753", 1646929134760, 0.45277, [1.1396e-07], [1.161e-07], [1.1402e-07], [1.1467e-07], [96135], [10]], "benchmarks.StyleSuite.time_parse_hex": [[1.14545181153452e-07], [], "cf5a3f0def435d3da5bc3a6e7549c44c0a02e9cce6c00ecde8dd7f527556f8ca", 1646929134987, 0.45326, [1.1433e-07], [1.1619e-07], [1.1443e-07], [1.1497e-07], [94741], [10]], "benchmarks.StyleSuite.time_parse_mixed_complex_style": [[1.1431372140374344e-07], [], "01c9e12ae829b1984e55a5aeef1a9ae6f1461577adaf5ae59f06358c8b52802f", 1646929135215, 0.45566, [1.1376e-07], [1.1534e-07], [1.1389e-07], [1.151e-07], [95894], [10]], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_heavy_wrapping": [null, [], "1ed4d74ea424990cfb40c96f07635f9bcf7b8bacc7ade5204aaf96363e1622ee", 1646929129197, 0.062502], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_medium_wrapping": [null, [], "0880e162a4907ee025cef8ac3380502554fde27fd0c90a4c15cebc9c27f3e333", 1646929129260, 0.061635], "benchmarks.SyntaxWrappingSuite.time_text_wide_terminal_no_wrapping": [null, [], "feb11e94ae6a75de2dee899fb93db098b55cde232710660d7d66f9e2b288d9c0", 1646929129321, 0.061735], "benchmarks.TableSuite.time_table_heavy_wrapping": [[0.002750234376435401], [], "ca515a9739c1e0f8eb922420f9f9caf27321fb13c8bd0bc49b207a0588b370de", 1646929135444, 0.44358, [0.0027407], [0.0027546], [0.002747], [0.0027524], [4], [10]], "benchmarks.TableSuite.time_table_no_wrapping": [[0.0018561249986911812], [], "8842a5f141d8208ba2bab66e4973e978cb5d0615f326af5d70385ff8fa44b3b9", 1646929135663, 0.44993, [0.001845], [0.0018771], [0.0018483], [0.0018688], [6], [10]], "benchmarks.TextSuite.time_align_center": [[0.0006638372187808272], [], "1ceeeef2de43fcb3d0dfec409972d8f0eb791e9615fa9f9c959e0423725b089b", 1646929135885, 0.43884, [0.00065885], [0.00066748], [0.00066337], [0.00066538], [16], [10]], "benchmarks.TextSuite.time_align_center_unicode_heavy": [[0.0005474407892171783], [], "a83ff79614dd2ae17e8b68f45981fcaa0d9833c59a7a14f171b896cf970f54ce", 1646929136107, 0.44273, [0.00054382], [0.00055731], [0.00054666], [0.00055638], [19], [10]], "benchmarks.TextSuite.time_divide": [[2.8176863155462533e-05], [], "dcc120b921cb2ec77632f8fe2f6f4150d479cb49ef2608f8e86b569a937756e9", 1646929136326, 0.449, [2.7763e-05], [2.8728e-05], [2.7805e-05], [2.8691e-05], [380], [10]], "benchmarks.TextSuite.time_divide_unicode_heavy": [[0.000187044956347611], [], "ea53e662c0553324f90ac3336dcee77f733bb33638888e1f84bf71945a2f3f8e", 1646929136552, 0.44621, [0.00018575], [0.00018908], [0.00018607], [0.00018782], [57], [10]], "benchmarks.TextSuite.time_fit": [[4.226137247155476e-05], [], "ec77b412db357b1e1c1e7bc620b941dddfc36dc76d2a66a0417feae4f21fe1d3", 1646929136775, 0.44798, [4.2102e-05], [4.2582e-05], [4.2197e-05], [4.2289e-05], [251], [10]], "benchmarks.TextSuite.time_fit_unicode_heavy": [[0.0003306175964216011], [], "d1574b4af2ef8b80b95b4dbeeb13e5de67b66783f76f9968834776239dd0dc66", 1646929136998, 0.43596, [0.00032933], [0.0003318], [0.00033006], [0.00033124], [31], [10]], "benchmarks.TextSuite.time_indent_guides": [[0.00039414744242094457], [], "18da036dcfc15ec5e3c11e72be7c8f0c22fba695a5f19c95836be36952376cf2", 1646929137215, 0.43587, [0.00039226], [0.00039631], [0.0003928], [0.00039555], [26], [10]], "benchmarks.TextSuite.time_render": [[4.667174434155948e-06], [], "907d30581cfdc7bb2c4d302b7e3cb474aaefd8b84821365fe105af7d82be3b09", 1646929137432, 0.44509, [4.646e-06], [4.6776e-06], [4.6581e-06], [4.6707e-06], [2339], [10]], "benchmarks.TextSuite.time_render_unicode_heavy": [[8.516194520780118e-05], [], "b3f1c09dfd06f412a20dacfe378c3b446727c7d4f9a975336eab3daa8543e1cb", 1646929137659, 0.45219, [8.4795e-05], [8.6022e-05], [8.5094e-05], [8.5459e-05], [128], [10]], "benchmarks.TextSuite.time_split": [[3.374592788765231e-05], [], "9c165854130cb95fea5491ffcd8b580a5bd373149da2ef8aace0e9480f649854", 1646929137887, 0.44454, [3.3683e-05], [3.3824e-05], [3.3728e-05], [3.378e-05], [312], [10]], "benchmarks.TextSuite.time_split_unicode_heavy": [[0.0002786886348936556], [], "d55b02f6d06f478d70635bac3409f3a9899137d9cee87a70a293b8ccf5a6afa4", 1646929138108, 0.44962, [0.00027786], [0.00027951], [0.0002781], [0.00027909], [37], [10]], "benchmarks.TextSuite.time_wrapping": [[0.001147025499247118], [], "8c821eba13d043f228fd902d8f678c397741855db05d02abe9b82f3d65cdf03d", 1646929138326, 0.44111, [0.0011434], [0.0011533], [0.0011447], [0.001149], [9], [10]], "benchmarks.TextSuite.time_wrapping_unicode_heavy": [[0.0015302321428732413], [], "ec6e2ef08b6cdee182fef4e26c0043f8c365984f9a31be07dbd792e1aed862d8", 1646929138544, 0.44527, [0.0015265], [0.0015332], [0.0015278], [0.0015325], [7], [10]]}, "durations": {"": 1.9958610534667969}, "version": 2} diff --git a/benchmarks/results/darrenburns-2022-mbp/579a29c8-virtualenv-py3.10.json b/benchmarks/results/darrenburns-2022-mbp/579a29c8-virtualenv-py3.10.json new file mode 100644 index 0000000000..a3644b13b2 --- /dev/null +++ b/benchmarks/results/darrenburns-2022-mbp/579a29c8-virtualenv-py3.10.json @@ -0,0 +1 @@ +{"commit_hash": "579a29c82081aa74437d9e2483ac9862c048415d", "env_name": "virtualenv-py3.10", "date": 1595868101000, "params": {"arch": "arm64", "cpu": "Apple M1 Pro", "machine": "darrenburns-2022-mbp", "num_cpu": "10", "os": "Darwin 21.2.0", "ram": "17179869184", "python": "3.10"}, "python": "3.10", "requirements": {}, "env_vars": {}, "result_columns": ["result", "params", "version", "started_at", "duration", "stats_ci_99_a", "stats_ci_99_b", "stats_q_25", "stats_q_75", "stats_number", "stats_repeat", "samples", "profile"], "results": {"benchmarks.ColorSuite.time_downgrade_to_eight_bit": [[1.736474545074484e-07], [], "019b972f782c6291df9a6a4dea9bb3c6268a69b177e71383d6e19a608e84920d", 1646928778555, 0.4267, [1.7119e-07], [1.739e-07], [1.7241e-07], [1.7377e-07], [58852], [10]], "benchmarks.ColorSuite.time_downgrade_to_standard": [[1.7340327364317818e-07], [], "f5e8556491c977450fff6ebfd9fff4fc8f12d74829aa5b8570bd27ea7a1c9d28", 1646928778767, 0.42826, [1.7185e-07], [1.7397e-07], [1.7259e-07], [1.7373e-07], [59074], [10]], "benchmarks.ColorSuite.time_downgrade_to_windows": [[1.7354063503795828e-07], [], "373eb97dd7ce2823e080972249235f528e8b3a47210911981cf432ecf0eef5fb", 1646928778980, 0.42553, [1.7303e-07], [1.7386e-07], [1.7329e-07], [1.7369e-07], [58533], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_eight_bit": [[1.7178092996091828e-07], [], "716ff06a471a5d90af3730f6d4470eba3577432d781e0210dff1fd156b8c549c", 1646928779192, 0.4321, [1.692e-07], [1.739e-07], [1.699e-07], [1.7342e-07], [58358], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_standard": [[1.7230198439390232e-07], [], "3a752a7884e99e095c31b2a28cfefdf916cb2033c06afae1ea146a72f3ba650c", 1646928779410, 0.44067, [1.6987e-07], [1.8203e-07], [1.7041e-07], [1.7417e-07], [64308], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_windows": [[1.7332703953086618e-07], [], "1732bbd18ada49eb7b054fc18b40d6acfb533023463366f37203dab6fbb0cc20", 1646928779633, 0.42248, [1.7291e-07], [1.742e-07], [1.7313e-07], [1.7415e-07], [57889], [10]], "benchmarks.PrettySuite.time_pretty": [[0.002227433299412951], [], "9bb0e6d8a29aad21b3d1b550a160fa5f1e9030c69d16bad500c0dcc77bff6d01", 1646928779844, 0.43937, [0.0021946], [0.0022601], [0.0021961], [0.0022555], [5], [10]], "benchmarks.PrettySuite.time_pretty_indent_guides": [null, [], "8d71bf19dfe999b0fba95d009986bfd6911c53c7a0c455466725f553005c3bc7", 1646928774498, 0.059132], "benchmarks.PrettySuite.time_pretty_justify_center": [null, [], "54cbf71bacab14ccbe1d063847c0b89198ed1bbe06edc89c14d2e3c7b1986c41", 1646928774557, 0.059068], "benchmarks.StyleSuite.time_parse_ansi": [[1.1624317894753063e-07], [], "a003aaa8017585efeb1cd9c43351282df4df6249bf28a4c447b1304d984aa753", 1646928780062, 0.44065, [1.1579e-07], [1.1657e-07], [1.1603e-07], [1.1633e-07], [96244], [10]], "benchmarks.StyleSuite.time_parse_hex": [[1.150645199851889e-07], [], "cf5a3f0def435d3da5bc3a6e7549c44c0a02e9cce6c00ecde8dd7f527556f8ca", 1646928780278, 0.44023, [1.1359e-07], [1.1631e-07], [1.1389e-07], [1.1608e-07], [96311], [10]], "benchmarks.StyleSuite.time_parse_mixed_complex_style": [[1.1509978583019232e-07], [], "01c9e12ae829b1984e55a5aeef1a9ae6f1461577adaf5ae59f06358c8b52802f", 1646928780495, 0.44997, [1.1455e-07], [1.1655e-07], [1.1477e-07], [1.1623e-07], [95745], [10]], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_heavy_wrapping": [null, [], "1ed4d74ea424990cfb40c96f07635f9bcf7b8bacc7ade5204aaf96363e1622ee", 1646928775289, 0.058777], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_medium_wrapping": [null, [], "0880e162a4907ee025cef8ac3380502554fde27fd0c90a4c15cebc9c27f3e333", 1646928775348, 0.058742], "benchmarks.SyntaxWrappingSuite.time_text_wide_terminal_no_wrapping": [null, [], "feb11e94ae6a75de2dee899fb93db098b55cde232710660d7d66f9e2b288d9c0", 1646928775407, 0.058794], "benchmarks.TableSuite.time_table_heavy_wrapping": [[0.002142004200140946], [], "ca515a9739c1e0f8eb922420f9f9caf27321fb13c8bd0bc49b207a0588b370de", 1646928780721, 0.44142, [0.0021327], [0.0021544], [0.00214], [0.0021438], [5], [10]], "benchmarks.TableSuite.time_table_no_wrapping": [[0.0014956279275273637], [], "8842a5f141d8208ba2bab66e4973e978cb5d0615f326af5d70385ff8fa44b3b9", 1646928780944, 0.43438, [0.0014902], [0.0015024], [0.001493], [0.0014975], [7], [10]], "benchmarks.TextSuite.time_align_center": [[0.000673062500815528], [], "1ceeeef2de43fcb3d0dfec409972d8f0eb791e9615fa9f9c959e0423725b089b", 1646928781165, 0.43958, [0.00067142], [0.00068082], [0.00067214], [0.00067439], [15], [10]], "benchmarks.TextSuite.time_align_center_unicode_heavy": [[0.0005573969208757933], [], "a83ff79614dd2ae17e8b68f45981fcaa0d9833c59a7a14f171b896cf970f54ce", 1646928781386, 0.43169, [0.00055353], [0.00055903], [0.00055649], [0.00055757], [19], [10]], "benchmarks.TextSuite.time_divide": [[2.8313752580726644e-05], [], "dcc120b921cb2ec77632f8fe2f6f4150d479cb49ef2608f8e86b569a937756e9", 1646928781606, 0.43606, [2.8265e-05], [2.8377e-05], [2.8291e-05], [2.8348e-05], [382], [10]], "benchmarks.TextSuite.time_divide_unicode_heavy": [[0.0001889353068116562], [], "ea53e662c0553324f90ac3336dcee77f733bb33638888e1f84bf71945a2f3f8e", 1646928781829, 0.44303, [0.00018718], [0.00019134], [0.00018733], [0.00019102], [57], [10]], "benchmarks.TextSuite.time_fit": [[4.287974996259436e-05], [], "ec77b412db357b1e1c1e7bc620b941dddfc36dc76d2a66a0417feae4f21fe1d3", 1646928782052, 0.43385, [4.276e-05], [4.301e-05], [4.2847e-05], [4.2901e-05], [250], [10]], "benchmarks.TextSuite.time_fit_unicode_heavy": [[0.0003364569838008573], [], "d1574b4af2ef8b80b95b4dbeeb13e5de67b66783f76f9968834776239dd0dc66", 1646928782272, 0.4345, [0.00033568], [0.00033702], [0.00033619], [0.00033679], [31], [10]], "benchmarks.TextSuite.time_indent_guides": [null, [], "18da036dcfc15ec5e3c11e72be7c8f0c22fba695a5f19c95836be36952376cf2", 1646928777196, 0.059081], "benchmarks.TextSuite.time_render": [[4.732899489164659e-06], [], "907d30581cfdc7bb2c4d302b7e3cb474aaefd8b84821365fe105af7d82be3b09", 1646928782488, 0.44164, [4.6523e-06], [4.8086e-06], [4.668e-06], [4.7919e-06], [2333], [10]], "benchmarks.TextSuite.time_render_unicode_heavy": [[8.669725398898924e-05], [], "b3f1c09dfd06f412a20dacfe378c3b446727c7d4f9a975336eab3daa8543e1cb", 1646928782715, 0.44273, [8.616e-05], [8.6896e-05], [8.6663e-05], [8.675e-05], [126], [10]], "benchmarks.TextSuite.time_split": [[3.4393229165848774e-05], [], "9c165854130cb95fea5491ffcd8b580a5bd373149da2ef8aace0e9480f649854", 1646928782938, 0.44396, [3.4276e-05], [3.5123e-05], [3.4315e-05], [3.4461e-05], [312], [10]], "benchmarks.TextSuite.time_split_unicode_heavy": [[0.00028335472971603677], [], "d55b02f6d06f478d70635bac3409f3a9899137d9cee87a70a293b8ccf5a6afa4", 1646928783160, 0.44001, [0.0002798], [0.00028579], [0.00028012], [0.00028498], [37], [10]], "benchmarks.TextSuite.time_wrapping": [[0.0011618008882376468], [], "8c821eba13d043f228fd902d8f678c397741855db05d02abe9b82f3d65cdf03d", 1646928783384, 0.42902, [0.0011601], [0.001167], [0.0011605], [0.0011627], [9], [10]], "benchmarks.TextSuite.time_wrapping_unicode_heavy": [[0.0015376249981012993], [], "ec6e2ef08b6cdee182fef4e26c0043f8c365984f9a31be07dbd792e1aed862d8", 1646928783601, 0.43825, [0.0015175], [0.0015529], [0.0015184], [0.0015505], [7], [10]]}, "durations": {"": 1.9670758247375488}, "version": 2} diff --git a/benchmarks/results/darrenburns-2022-mbp/5f021978-virtualenv-py3.10.json b/benchmarks/results/darrenburns-2022-mbp/5f021978-virtualenv-py3.10.json new file mode 100644 index 0000000000..b37afa3c8b --- /dev/null +++ b/benchmarks/results/darrenburns-2022-mbp/5f021978-virtualenv-py3.10.json @@ -0,0 +1 @@ +{"commit_hash": "5f0219786bbaf994061011df087602d5edff5d66", "env_name": "virtualenv-py3.10", "date": 1641724467000, "params": {"arch": "arm64", "cpu": "Apple M1 Pro", "machine": "darrenburns-2022-mbp", "num_cpu": "10", "os": "Darwin 21.2.0", "ram": "17179869184", "python": "3.10"}, "python": "3.10", "requirements": {}, "env_vars": {}, "result_columns": ["result", "params", "version", "started_at", "duration", "stats_ci_99_a", "stats_ci_99_b", "stats_q_25", "stats_q_75", "stats_number", "stats_repeat", "samples", "profile"], "results": {"benchmarks.ColorSuite.time_downgrade_to_eight_bit": [[1.7035226366991395e-07], [], "019b972f782c6291df9a6a4dea9bb3c6268a69b177e71383d6e19a608e84920d", 1646928463178, 0.47121, [1.6929e-07], [1.7638e-07], [1.6994e-07], [1.7237e-07], [64033], [10]], "benchmarks.ColorSuite.time_downgrade_to_standard": [[1.7104967550450717e-07], [], "f5e8556491c977450fff6ebfd9fff4fc8f12d74829aa5b8570bd27ea7a1c9d28", 1646928463413, 0.46938, [1.6922e-07], [1.7177e-07], [1.7068e-07], [1.7127e-07], [64539], [10]], "benchmarks.ColorSuite.time_downgrade_to_windows": [[1.7066034108752568e-07], [], "373eb97dd7ce2823e080972249235f528e8b3a47210911981cf432ecf0eef5fb", 1646928463648, 0.46867, [1.7032e-07], [1.7179e-07], [1.7059e-07], [1.7141e-07], [64263], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_eight_bit": [[1.7124313816843975e-07], [], "716ff06a471a5d90af3730f6d4470eba3577432d781e0210dff1fd156b8c549c", 1646928463884, 0.47297, [1.6969e-07], [1.7395e-07], [1.6993e-07], [1.7356e-07], [64706], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_standard": [[1.7017476167767825e-07], [], "3a752a7884e99e095c31b2a28cfefdf916cb2033c06afae1ea146a72f3ba650c", 1646928464120, 0.4696, [1.6905e-07], [1.7056e-07], [1.6976e-07], [1.7038e-07], [64565], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_windows": [[1.697733419053571e-07], [], "1732bbd18ada49eb7b054fc18b40d6acfb533023463366f37203dab6fbb0cc20", 1646928464356, 0.46247, [1.6873e-07], [1.706e-07], [1.6969e-07], [1.7029e-07], [65001], [10]], "benchmarks.PrettySuite.time_pretty": [[0.0011088667015428655], [], "9bb0e6d8a29aad21b3d1b550a160fa5f1e9030c69d16bad500c0dcc77bff6d01", 1646928464592, 0.45823, [0.0011033], [0.0011204], [0.0011067], [0.001113], [10], [10]], "benchmarks.PrettySuite.time_pretty_indent_guides": [[0.001552386928649087], [], "8d71bf19dfe999b0fba95d009986bfd6911c53c7a0c455466725f553005c3bc7", 1646928464819, 0.45069, [0.0015479], [0.001557], [0.0015505], [0.0015543], [7], [10]], "benchmarks.PrettySuite.time_pretty_justify_center": [[0.0014095390633883653], [], "54cbf71bacab14ccbe1d063847c0b89198ed1bbe06edc89c14d2e3c7b1986c41", 1646928465042, 0.45741, [0.0014019], [0.0014361], [0.001404], [0.0014129], [8], [10]], "benchmarks.StyleSuite.time_parse_ansi": [[1.1439336631824014e-07], [], "a003aaa8017585efeb1cd9c43351282df4df6249bf28a4c447b1304d984aa753", 1646928465271, 0.46735, [1.14e-07], [1.1545e-07], [1.1413e-07], [1.1443e-07], [96508], [10]], "benchmarks.StyleSuite.time_parse_hex": [[1.1472853324673091e-07], [], "cf5a3f0def435d3da5bc3a6e7549c44c0a02e9cce6c00ecde8dd7f527556f8ca", 1646928465505, 0.45557, [1.1426e-07], [1.1677e-07], [1.144e-07], [1.153e-07], [95846], [10]], "benchmarks.StyleSuite.time_parse_mixed_complex_style": [[1.1652326348148687e-07], [], "01c9e12ae829b1984e55a5aeef1a9ae6f1461577adaf5ae59f06358c8b52802f", 1646928465728, 0.47055, [1.1609e-07], [1.1682e-07], [1.1644e-07], [1.1658e-07], [96202], [10]], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_heavy_wrapping": [[0.008522239499143325], [], "1ed4d74ea424990cfb40c96f07635f9bcf7b8bacc7ade5204aaf96363e1622ee", 1646928465964, 0.52198, [0.0084901], [0.0085779], [0.0085138], [0.0085343], [2], [10]], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_medium_wrapping": [[0.008546103999833576], [], "0880e162a4907ee025cef8ac3380502554fde27fd0c90a4c15cebc9c27f3e333", 1646928466225, 0.52079, [0.0084924], [0.0085719], [0.0085191], [0.0085522], [2], [10]], "benchmarks.SyntaxWrappingSuite.time_text_wide_terminal_no_wrapping": [[0.008535864493751433], [], "feb11e94ae6a75de2dee899fb93db098b55cde232710660d7d66f9e2b288d9c0", 1646928466486, 0.51968, [0.0084976], [0.0085744], [0.0085191], [0.0085518], [2], [10]], "benchmarks.TableSuite.time_table_heavy_wrapping": [[0.002401412499602884], [], "ca515a9739c1e0f8eb922420f9f9caf27321fb13c8bd0bc49b207a0588b370de", 1646928466746, 0.47729, [0.0023849], [0.0024111], [0.0023929], [0.0024044], [5], [10]], "benchmarks.TableSuite.time_table_no_wrapping": [[0.0014333512143431498], [], "8842a5f141d8208ba2bab66e4973e978cb5d0615f326af5d70385ff8fa44b3b9", 1646928466985, 0.44636, [0.0014275], [0.0014408], [0.0014295], [0.0014357], [7], [10]], "benchmarks.TextSuite.time_align_center": [[0.00038671653549369827], [], "1ceeeef2de43fcb3d0dfec409972d8f0eb791e9615fa9f9c959e0423725b089b", 1646928467206, 0.45238, [0.00038171], [0.00039182], [0.00038211], [0.00039098], [28], [10]], "benchmarks.TextSuite.time_align_center_unicode_heavy": [[0.0003404233871298211], [], "a83ff79614dd2ae17e8b68f45981fcaa0d9833c59a7a14f171b896cf970f54ce", 1646928467438, 0.45553, [0.00033704], [0.00035018], [0.00033738], [0.00034487], [31], [10]], "benchmarks.TextSuite.time_divide": [[2.531585199997211e-05], [], "dcc120b921cb2ec77632f8fe2f6f4150d479cb49ef2608f8e86b569a937756e9", 1646928467663, 0.46305, [2.5279e-05], [2.5447e-05], [2.5293e-05], [2.5356e-05], [429], [10]], "benchmarks.TextSuite.time_divide_unicode_heavy": [[0.00018472809486034936], [], "ea53e662c0553324f90ac3336dcee77f733bb33638888e1f84bf71945a2f3f8e", 1646928467894, 0.45794, [0.00018414], [0.00018541], [0.00018456], [0.00018487], [58], [10]], "benchmarks.TextSuite.time_fit": [[4.3558418377758746e-05], [], "ec77b412db357b1e1c1e7bc620b941dddfc36dc76d2a66a0417feae4f21fe1d3", 1646928468123, 0.44959, [4.3458e-05], [4.3744e-05], [4.3534e-05], [4.3643e-05], [245], [10]], "benchmarks.TextSuite.time_fit_unicode_heavy": [[0.00032473737850192595], [], "d1574b4af2ef8b80b95b4dbeeb13e5de67b66783f76f9968834776239dd0dc66", 1646928468352, 0.4597, [0.0003236], [0.00032612], [0.00032425], [0.00032511], [33], [10]], "benchmarks.TextSuite.time_indent_guides": [[0.00035738648248611596], [], "18da036dcfc15ec5e3c11e72be7c8f0c22fba695a5f19c95836be36952376cf2", 1646928468581, 0.44933, [0.00035701], [0.00035825], [0.00035717], [0.00035775], [29], [10]], "benchmarks.TextSuite.time_render": [[4.668496161822756e-06], [], "907d30581cfdc7bb2c4d302b7e3cb474aaefd8b84821365fe105af7d82be3b09", 1646928468804, 0.45655, [4.6568e-06], [4.6896e-06], [4.6596e-06], [4.6708e-06], [2346], [10]], "benchmarks.TextSuite.time_render_unicode_heavy": [[8.519108200744085e-05], [], "b3f1c09dfd06f412a20dacfe378c3b446727c7d4f9a975336eab3daa8543e1cb", 1646928469036, 0.46041, [8.5037e-05], [8.5481e-05], [8.5088e-05], [8.5372e-05], [128], [10]], "benchmarks.TextSuite.time_split": [[3.5178668325703625e-05], [], "9c165854130cb95fea5491ffcd8b580a5bd373149da2ef8aace0e9480f649854", 1646928469268, 0.45318, [3.5077e-05], [3.5333e-05], [3.5146e-05], [3.5209e-05], [309], [10]], "benchmarks.TextSuite.time_split_unicode_heavy": [[0.0002742088813408229], [], "d55b02f6d06f478d70635bac3409f3a9899137d9cee87a70a293b8ccf5a6afa4", 1646928469499, 0.45048, [0.00027373], [0.00027495], [0.00027405], [0.00027469], [38], [10]], "benchmarks.TextSuite.time_wrapping": [[0.0013609556881419849], [], "8c821eba13d043f228fd902d8f678c397741855db05d02abe9b82f3d65cdf03d", 1646928469724, 0.45751, [0.0013536], [0.001364], [0.0013562], [0.0013628], [8], [10]], "benchmarks.TextSuite.time_wrapping_unicode_heavy": [[0.0014542143554925652], [], "ec6e2ef08b6cdee182fef4e26c0043f8c365984f9a31be07dbd792e1aed862d8", 1646928469956, 0.44957, [0.001449], [0.0014817], [0.0014521], [0.0014696], [7], [10]]}, "durations": {"": 2.003809928894043}, "version": 2} diff --git a/benchmarks/results/darrenburns-2022-mbp/5f03e3ba-virtualenv-py3.10.json b/benchmarks/results/darrenburns-2022-mbp/5f03e3ba-virtualenv-py3.10.json new file mode 100644 index 0000000000..72b74f3e4e --- /dev/null +++ b/benchmarks/results/darrenburns-2022-mbp/5f03e3ba-virtualenv-py3.10.json @@ -0,0 +1 @@ +{"commit_hash": "5f03e3ba5306ea935126d354d71d3c7bb4dec3a3", "env_name": "virtualenv-py3.10", "date": 1603019948000, "params": {"arch": "arm64", "cpu": "Apple M1 Pro", "machine": "darrenburns-2022-mbp", "num_cpu": "10", "os": "Darwin 21.2.0", "ram": "17179869184", "python": "3.10"}, "python": "3.10", "requirements": {}, "env_vars": {}, "result_columns": ["result", "params", "version", "started_at", "duration", "stats_ci_99_a", "stats_ci_99_b", "stats_q_25", "stats_q_75", "stats_number", "stats_repeat", "samples", "profile"], "results": {"benchmarks.ColorSuite.time_downgrade_to_eight_bit": [[1.7029400369316336e-07], [], "019b972f782c6291df9a6a4dea9bb3c6268a69b177e71383d6e19a608e84920d", 1646928962279, 0.4288, [1.7001e-07], [1.7142e-07], [1.7018e-07], [1.7081e-07], [58853], [10]], "benchmarks.ColorSuite.time_downgrade_to_standard": [[1.6975923588875979e-07], [], "f5e8556491c977450fff6ebfd9fff4fc8f12d74829aa5b8570bd27ea7a1c9d28", 1646928962494, 0.45268, [1.6889e-07], [1.7064e-07], [1.6947e-07], [1.7004e-07], [64449], [10]], "benchmarks.ColorSuite.time_downgrade_to_windows": [[1.7122144386242466e-07], [], "373eb97dd7ce2823e080972249235f528e8b3a47210911981cf432ecf0eef5fb", 1646928962720, 0.44383, [1.6952e-07], [1.7701e-07], [1.7086e-07], [1.7138e-07], [64662], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_eight_bit": [[1.7052503344942357e-07], [], "716ff06a471a5d90af3730f6d4470eba3577432d781e0210dff1fd156b8c549c", 1646928962945, 0.45549, [1.7007e-07], [1.7118e-07], [1.7026e-07], [1.71e-07], [64114], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_standard": [[1.7053431360609528e-07], [], "3a752a7884e99e095c31b2a28cfefdf916cb2033c06afae1ea146a72f3ba650c", 1646928963173, 0.45722, [1.6968e-07], [1.7377e-07], [1.7023e-07], [1.7067e-07], [64348], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_windows": [[1.7023318621135e-07], [], "1732bbd18ada49eb7b054fc18b40d6acfb533023463366f37203dab6fbb0cc20", 1646928963401, 0.456, [1.6909e-07], [1.7173e-07], [1.6969e-07], [1.7074e-07], [64144], [10]], "benchmarks.PrettySuite.time_pretty": [[0.0010147333494387567], [], "9bb0e6d8a29aad21b3d1b550a160fa5f1e9030c69d16bad500c0dcc77bff6d01", 1646928963629, 0.4386, [0.0010127], [0.0010217], [0.0010137], [0.0010151], [10], [10]], "benchmarks.PrettySuite.time_pretty_indent_guides": [null, [], "8d71bf19dfe999b0fba95d009986bfd6911c53c7a0c455466725f553005c3bc7", 1646928957985, 0.061291], "benchmarks.PrettySuite.time_pretty_justify_center": [[0.0014055181873118272], [], "54cbf71bacab14ccbe1d063847c0b89198ed1bbe06edc89c14d2e3c7b1986c41", 1646928963848, 0.44808, [0.0014012], [0.0014379], [0.0014023], [0.0014139], [8], [10]], "benchmarks.StyleSuite.time_parse_ansi": [[1.1483355694441893e-07], [], "a003aaa8017585efeb1cd9c43351282df4df6249bf28a4c447b1304d984aa753", 1646928964074, 0.45479, [1.1393e-07], [1.1562e-07], [1.14e-07], [1.1537e-07], [95375], [10]], "benchmarks.StyleSuite.time_parse_hex": [[1.1531780253540436e-07], [], "cf5a3f0def435d3da5bc3a6e7549c44c0a02e9cce6c00ecde8dd7f527556f8ca", 1646928964302, 0.4352, [1.139e-07], [1.158e-07], [1.1473e-07], [1.1552e-07], [87364], [10]], "benchmarks.StyleSuite.time_parse_mixed_complex_style": [[1.1466431835136977e-07], [], "01c9e12ae829b1984e55a5aeef1a9ae6f1461577adaf5ae59f06358c8b52802f", 1646928964524, 0.44575, [1.1395e-07], [1.172e-07], [1.1447e-07], [1.1641e-07], [95954], [10]], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_heavy_wrapping": [null, [], "1ed4d74ea424990cfb40c96f07635f9bcf7b8bacc7ade5204aaf96363e1622ee", 1646928958936, 0.060677], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_medium_wrapping": [null, [], "0880e162a4907ee025cef8ac3380502554fde27fd0c90a4c15cebc9c27f3e333", 1646928958997, 0.060723], "benchmarks.SyntaxWrappingSuite.time_text_wide_terminal_no_wrapping": [null, [], "feb11e94ae6a75de2dee899fb93db098b55cde232710660d7d66f9e2b288d9c0", 1646928959058, 0.060341], "benchmarks.TableSuite.time_table_heavy_wrapping": [[0.0027481563738547266], [], "ca515a9739c1e0f8eb922420f9f9caf27321fb13c8bd0bc49b207a0588b370de", 1646928964743, 0.44822, [0.0027384], [0.0027943], [0.0027456], [0.0027549], [4], [10]], "benchmarks.TableSuite.time_table_no_wrapping": [[0.0018641839997144416], [], "8842a5f141d8208ba2bab66e4973e978cb5d0615f326af5d70385ff8fa44b3b9", 1646928964966, 0.45091, [0.0018554], [0.0018823], [0.0018621], [0.001872], [6], [10]], "benchmarks.TextSuite.time_align_center": [[0.0006637421874984284], [], "1ceeeef2de43fcb3d0dfec409972d8f0eb791e9615fa9f9c959e0423725b089b", 1646928965189, 0.44186, [0.00065813], [0.00067295], [0.00066221], [0.00066779], [16], [10]], "benchmarks.TextSuite.time_align_center_unicode_heavy": [[0.0005481392635326636], [], "a83ff79614dd2ae17e8b68f45981fcaa0d9833c59a7a14f171b896cf970f54ce", 1646928965415, 0.44284, [0.00054686], [0.0005553], [0.0005472], [0.00055266], [19], [10]], "benchmarks.TextSuite.time_divide": [[2.7963297092051037e-05], [], "dcc120b921cb2ec77632f8fe2f6f4150d479cb49ef2608f8e86b569a937756e9", 1646928965636, 0.44729, [2.7859e-05], [2.8125e-05], [2.7886e-05], [2.8073e-05], [382], [10]], "benchmarks.TextSuite.time_divide_unicode_heavy": [[0.00018773648250651985], [], "ea53e662c0553324f90ac3336dcee77f733bb33638888e1f84bf71945a2f3f8e", 1646928965859, 0.44907, [0.00018706], [0.00019296], [0.0001872], [0.00019119], [57], [10]], "benchmarks.TextSuite.time_fit": [[4.22623665238994e-05], [], "ec77b412db357b1e1c1e7bc620b941dddfc36dc76d2a66a0417feae4f21fe1d3", 1646928966086, 0.45329, [4.2169e-05], [4.265e-05], [4.2204e-05], [4.2296e-05], [251], [10]], "benchmarks.TextSuite.time_fit_unicode_heavy": [[0.0003306686773993856], [], "d1574b4af2ef8b80b95b4dbeeb13e5de67b66783f76f9968834776239dd0dc66", 1646928966316, 0.43283, [0.000329], [0.00033176], [0.00033028], [0.00033116], [31], [10]], "benchmarks.TextSuite.time_indent_guides": [null, [], "18da036dcfc15ec5e3c11e72be7c8f0c22fba695a5f19c95836be36952376cf2", 1646928960899, 0.061053], "benchmarks.TextSuite.time_render": [[4.670691716725854e-06], [], "907d30581cfdc7bb2c4d302b7e3cb474aaefd8b84821365fe105af7d82be3b09", 1646928966531, 0.44117, [4.6569e-06], [4.6863e-06], [4.6596e-06], [4.6803e-06], [2329], [10]], "benchmarks.TextSuite.time_render_unicode_heavy": [[8.543684650542523e-05], [], "b3f1c09dfd06f412a20dacfe378c3b446727c7d4f9a975336eab3daa8543e1cb", 1646928966755, 0.44878, [8.492e-05], [8.6589e-05], [8.5022e-05], [8.5955e-05], [127], [10]], "benchmarks.TextSuite.time_split": [[3.391310484373882e-05], [], "9c165854130cb95fea5491ffcd8b580a5bd373149da2ef8aace0e9480f649854", 1646928966982, 0.44135, [3.377e-05], [3.4059e-05], [3.38e-05], [3.4e-05], [310], [10]], "benchmarks.TextSuite.time_split_unicode_heavy": [[0.00027908670214143257], [], "d55b02f6d06f478d70635bac3409f3a9899137d9cee87a70a293b8ccf5a6afa4", 1646928967202, 0.43236, [0.00027816], [0.0002797], [0.00027871], [0.00027919], [37], [10]], "benchmarks.TextSuite.time_wrapping": [[0.0011475694466045955], [], "8c821eba13d043f228fd902d8f678c397741855db05d02abe9b82f3d65cdf03d", 1646928967417, 0.43754, [0.0011417], [0.0011546], [0.0011434], [0.0011509], [9], [10]], "benchmarks.TextSuite.time_wrapping_unicode_heavy": [[0.0015298422139104722], [], "ec6e2ef08b6cdee182fef4e26c0043f8c365984f9a31be07dbd792e1aed862d8", 1646928967634, 0.44091, [0.0015248], [0.0015364], [0.0015273], [0.0015305], [7], [10]]}, "durations": {"": 2.012441873550415}, "version": 2} diff --git a/benchmarks/results/darrenburns-2022-mbp/5f55063b-virtualenv-py3.10.json b/benchmarks/results/darrenburns-2022-mbp/5f55063b-virtualenv-py3.10.json new file mode 100644 index 0000000000..f5d1c5a695 --- /dev/null +++ b/benchmarks/results/darrenburns-2022-mbp/5f55063b-virtualenv-py3.10.json @@ -0,0 +1 @@ +{"commit_hash": "5f55063b139e5fcb70dc75cbebd4195c48f1e9bc", "env_name": "virtualenv-py3.10", "date": 1593030443000, "params": {"arch": "arm64", "cpu": "Apple M1 Pro", "machine": "darrenburns-2022-mbp", "num_cpu": "10", "os": "Darwin 21.2.0", "ram": "17179869184", "python": "3.10"}, "python": "3.10", "requirements": {}, "env_vars": {}, "result_columns": ["result", "params", "version", "started_at", "duration", "stats_ci_99_a", "stats_ci_99_b", "stats_q_25", "stats_q_75", "stats_number", "stats_repeat", "samples", "profile"], "results": {"benchmarks.ColorSuite.time_downgrade_to_eight_bit": [[1.7426155866769343e-07], [], "019b972f782c6291df9a6a4dea9bb3c6268a69b177e71383d6e19a608e84920d", 1646928557720, 0.44015, [1.7078e-07], [1.7553e-07], [1.7241e-07], [1.7483e-07], [64410], [10]], "benchmarks.ColorSuite.time_downgrade_to_standard": [[1.7307732454880455e-07], [], "f5e8556491c977450fff6ebfd9fff4fc8f12d74829aa5b8570bd27ea7a1c9d28", 1646928557935, 0.43725, [1.7199e-07], [1.7359e-07], [1.7266e-07], [1.7338e-07], [64320], [10]], "benchmarks.ColorSuite.time_downgrade_to_windows": [[1.7381171223370905e-07], [], "373eb97dd7ce2823e080972249235f528e8b3a47210911981cf432ecf0eef5fb", 1646928558158, 0.42462, [1.7164e-07], [1.7654e-07], [1.7314e-07], [1.7427e-07], [59024], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_eight_bit": [[1.7338147194241619e-07], [], "716ff06a471a5d90af3730f6d4470eba3577432d781e0210dff1fd156b8c549c", 1646928558369, 0.42713, [1.7146e-07], [1.7358e-07], [1.7326e-07], [1.7349e-07], [58695], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_standard": [[1.7082182191926202e-07], [], "3a752a7884e99e095c31b2a28cfefdf916cb2033c06afae1ea146a72f3ba650c", 1646928558579, 0.43687, [1.6988e-07], [1.7426e-07], [1.6999e-07], [1.7256e-07], [64458], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_windows": [[1.7132887430961657e-07], [], "1732bbd18ada49eb7b054fc18b40d6acfb533023463366f37203dab6fbb0cc20", 1646928558802, 0.44965, [1.6957e-07], [1.739e-07], [1.698e-07], [1.7355e-07], [64441], [10]], "benchmarks.PrettySuite.time_pretty": [[0.002201112496550195], [], "9bb0e6d8a29aad21b3d1b550a160fa5f1e9030c69d16bad500c0dcc77bff6d01", 1646928559028, 0.43323, [0.0021928], [0.0022446], [0.0021973], [0.0022294], [5], [10]], "benchmarks.PrettySuite.time_pretty_indent_guides": [null, [], "8d71bf19dfe999b0fba95d009986bfd6911c53c7a0c455466725f553005c3bc7", 1646928554011, 0.057544], "benchmarks.PrettySuite.time_pretty_justify_center": [null, [], "54cbf71bacab14ccbe1d063847c0b89198ed1bbe06edc89c14d2e3c7b1986c41", 1646928554069, 0.057697], "benchmarks.StyleSuite.time_parse_ansi": [[1.157208851811601e-07], [], "a003aaa8017585efeb1cd9c43351282df4df6249bf28a4c447b1304d984aa753", 1646928559242, 0.4371, [1.1398e-07], [1.1696e-07], [1.143e-07], [1.1675e-07], [95939], [10]], "benchmarks.StyleSuite.time_parse_hex": [[1.152207594246434e-07], [], "cf5a3f0def435d3da5bc3a6e7549c44c0a02e9cce6c00ecde8dd7f527556f8ca", 1646928559457, 0.43555, [1.1365e-07], [1.1663e-07], [1.1392e-07], [1.1644e-07], [95894], [10]], "benchmarks.StyleSuite.time_parse_mixed_complex_style": [[1.1548119693731335e-07], [], "01c9e12ae829b1984e55a5aeef1a9ae6f1461577adaf5ae59f06358c8b52802f", 1646928559671, 0.44418, [1.1413e-07], [1.1717e-07], [1.1445e-07], [1.1647e-07], [94878], [10]], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_heavy_wrapping": [null, [], "1ed4d74ea424990cfb40c96f07635f9bcf7b8bacc7ade5204aaf96363e1622ee", 1646928554793, 0.057445], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_medium_wrapping": [null, [], "0880e162a4907ee025cef8ac3380502554fde27fd0c90a4c15cebc9c27f3e333", 1646928554850, 0.057195], "benchmarks.SyntaxWrappingSuite.time_text_wide_terminal_no_wrapping": [null, [], "feb11e94ae6a75de2dee899fb93db098b55cde232710660d7d66f9e2b288d9c0", 1646928554907, 0.056875], "benchmarks.TableSuite.time_table_heavy_wrapping": [[0.0020350915991002696], [], "ca515a9739c1e0f8eb922420f9f9caf27321fb13c8bd0bc49b207a0588b370de", 1646928559894, 0.42237, [0.0020269], [0.0020659], [0.0020317], [0.0020452], [5], [10]], "benchmarks.TableSuite.time_table_no_wrapping": [[0.0014367262150959245], [], "8842a5f141d8208ba2bab66e4973e978cb5d0615f326af5d70385ff8fa44b3b9", 1646928560108, 0.4207, [0.001434], [0.0014608], [0.0014345], [0.0014396], [7], [10]], "benchmarks.TextSuite.time_align_center": [null, [], "1ceeeef2de43fcb3d0dfec409972d8f0eb791e9615fa9f9c959e0423725b089b", 1646928555382, 0.057685], "benchmarks.TextSuite.time_align_center_unicode_heavy": [null, [], "a83ff79614dd2ae17e8b68f45981fcaa0d9833c59a7a14f171b896cf970f54ce", 1646928555440, 0.057371], "benchmarks.TextSuite.time_divide": [[2.82225680704526e-05], [], "dcc120b921cb2ec77632f8fe2f6f4150d479cb49ef2608f8e86b569a937756e9", 1646928560321, 0.4417, [2.7741e-05], [2.8701e-05], [2.7832e-05], [2.8494e-05], [382], [10]], "benchmarks.TextSuite.time_divide_unicode_heavy": [[0.0001870984136797327], [], "ea53e662c0553324f90ac3336dcee77f733bb33638888e1f84bf71945a2f3f8e", 1646928560542, 0.4333, [0.00018636], [0.000188], [0.00018692], [0.00018728], [58], [10]], "benchmarks.TextSuite.time_fit": [[4.2128788602718785e-05], [], "ec77b412db357b1e1c1e7bc620b941dddfc36dc76d2a66a0417feae4f21fe1d3", 1646928560763, 0.44034, [4.2025e-05], [4.292e-05], [4.2065e-05], [4.2777e-05], [253], [10]], "benchmarks.TextSuite.time_fit_unicode_heavy": [[0.0003335685483292646], [], "d1574b4af2ef8b80b95b4dbeeb13e5de67b66783f76f9968834776239dd0dc66", 1646928560983, 0.42822, [0.00033024], [0.00033744], [0.00033108], [0.00033605], [31], [10]], "benchmarks.TextSuite.time_indent_guides": [null, [], "18da036dcfc15ec5e3c11e72be7c8f0c22fba695a5f19c95836be36952376cf2", 1646928556368, 0.057561], "benchmarks.TextSuite.time_render": [[4.675921118193493e-06], [], "907d30581cfdc7bb2c4d302b7e3cb474aaefd8b84821365fe105af7d82be3b09", 1646928561195, 0.43693, [4.6644e-06], [4.6917e-06], [4.675e-06], [4.6765e-06], [2339], [10]], "benchmarks.TextSuite.time_render_unicode_heavy": [[8.527701947969035e-05], [], "b3f1c09dfd06f412a20dacfe378c3b446727c7d4f9a975336eab3daa8543e1cb", 1646928561417, 0.44177, [8.5037e-05], [8.596e-05], [8.5078e-05], [8.5696e-05], [128], [10]], "benchmarks.TextSuite.time_split": [[3.374086849976561e-05], [], "9c165854130cb95fea5491ffcd8b580a5bd373149da2ef8aace0e9480f649854", 1646928561640, 0.43075, [3.3632e-05], [3.4252e-05], [3.3707e-05], [3.3846e-05], [308], [10]], "benchmarks.TextSuite.time_split_unicode_heavy": [[0.0002787668915540987], [], "d55b02f6d06f478d70635bac3409f3a9899137d9cee87a70a293b8ccf5a6afa4", 1646928561855, 0.42758, [0.00027809], [0.00028596], [0.00027844], [0.00027954], [37], [10]], "benchmarks.TextSuite.time_wrapping": [[0.0011450092214444238], [], "8c821eba13d043f228fd902d8f678c397741855db05d02abe9b82f3d65cdf03d", 1646928562068, 0.42967, [0.001136], [0.0011669], [0.0011372], [0.0011539], [9], [10]], "benchmarks.TextSuite.time_wrapping_unicode_heavy": [[0.0015197291421437903], [], "ec6e2ef08b6cdee182fef4e26c0043f8c365984f9a31be07dbd792e1aed862d8", 1646928562282, 0.43347, [0.0015173], [0.0015357], [0.0015195], [0.0015202], [7], [10]]}, "durations": {"": 1.9274108409881592}, "version": 2} diff --git a/benchmarks/results/darrenburns-2022-mbp/64755d41-virtualenv-py3.10.json b/benchmarks/results/darrenburns-2022-mbp/64755d41-virtualenv-py3.10.json new file mode 100644 index 0000000000..987b04a5f6 --- /dev/null +++ b/benchmarks/results/darrenburns-2022-mbp/64755d41-virtualenv-py3.10.json @@ -0,0 +1 @@ +{"commit_hash": "64755d41fa02fce7ec96e93c2356c45e2e489111", "env_name": "virtualenv-py3.10", "date": 1614430154000, "params": {"arch": "arm64", "cpu": "Apple M1 Pro", "machine": "darrenburns-2022-mbp", "num_cpu": "10", "os": "Darwin 21.2.0", "ram": "17179869184", "python": "3.10"}, "python": "3.10", "requirements": {}, "env_vars": {}, "result_columns": ["result", "params", "version", "started_at", "duration", "stats_ci_99_a", "stats_ci_99_b", "stats_q_25", "stats_q_75", "stats_number", "stats_repeat", "samples", "profile"], "results": {"benchmarks.ColorSuite.time_downgrade_to_eight_bit": [[1.6965338984778662e-07], [], "019b972f782c6291df9a6a4dea9bb3c6268a69b177e71383d6e19a608e84920d", 1646929046829, 0.46, [1.687e-07], [1.7121e-07], [1.6948e-07], [1.7025e-07], [64424], [10]], "benchmarks.ColorSuite.time_downgrade_to_standard": [[1.704037171582712e-07], [], "f5e8556491c977450fff6ebfd9fff4fc8f12d74829aa5b8570bd27ea7a1c9d28", 1646929047060, 0.43072, [1.6973e-07], [1.7137e-07], [1.702e-07], [1.7071e-07], [58920], [10]], "benchmarks.ColorSuite.time_downgrade_to_windows": [[1.706237033781775e-07], [], "373eb97dd7ce2823e080972249235f528e8b3a47210911981cf432ecf0eef5fb", 1646929047274, 0.44922, [1.6924e-07], [1.805e-07], [1.7032e-07], [1.7162e-07], [64400], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_eight_bit": [[1.7043955852118696e-07], [], "716ff06a471a5d90af3730f6d4470eba3577432d781e0210dff1fd156b8c549c", 1646929047503, 0.45591, [1.6887e-07], [1.7088e-07], [1.7008e-07], [1.7055e-07], [64451], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_standard": [[1.7031919212220384e-07], [], "3a752a7884e99e095c31b2a28cfefdf916cb2033c06afae1ea146a72f3ba650c", 1646929047733, 0.45571, [1.6977e-07], [1.7077e-07], [1.7003e-07], [1.7058e-07], [64339], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_windows": [[1.7052593059742275e-07], [], "1732bbd18ada49eb7b054fc18b40d6acfb533023463366f37203dab6fbb0cc20", 1646929047962, 0.45449, [1.6895e-07], [1.711e-07], [1.6988e-07], [1.7096e-07], [63516], [10]], "benchmarks.PrettySuite.time_pretty": [[0.0010033427732361652], [], "9bb0e6d8a29aad21b3d1b550a160fa5f1e9030c69d16bad500c0dcc77bff6d01", 1646929048189, 0.45091, [0.0009986], [0.0010074], [0.0010008], [0.0010042], [11], [10]], "benchmarks.PrettySuite.time_pretty_indent_guides": [[0.0014030390011612326], [], "8d71bf19dfe999b0fba95d009986bfd6911c53c7a0c455466725f553005c3bc7", 1646929048413, 0.4473, [0.0014005], [0.0014155], [0.0014015], [0.0014056], [8], [10]], "benchmarks.PrettySuite.time_pretty_justify_center": [[0.0013944688107585534], [], "54cbf71bacab14ccbe1d063847c0b89198ed1bbe06edc89c14d2e3c7b1986c41", 1646929048637, 0.44478, [0.0013901], [0.001403], [0.0013931], [0.0013962], [8], [10]], "benchmarks.StyleSuite.time_parse_ansi": [[1.1404005064879602e-07], [], "a003aaa8017585efeb1cd9c43351282df4df6249bf28a4c447b1304d984aa753", 1646929048860, 0.45724, [1.1353e-07], [1.1507e-07], [1.1388e-07], [1.1435e-07], [96041], [10]], "benchmarks.StyleSuite.time_parse_hex": [[1.1528624321089372e-07], [], "cf5a3f0def435d3da5bc3a6e7549c44c0a02e9cce6c00ecde8dd7f527556f8ca", 1646929049089, 0.45136, [1.1368e-07], [1.1667e-07], [1.1409e-07], [1.1657e-07], [93866], [10]], "benchmarks.StyleSuite.time_parse_mixed_complex_style": [[1.1400625216944154e-07], [], "01c9e12ae829b1984e55a5aeef1a9ae6f1461577adaf5ae59f06358c8b52802f", 1646929049313, 0.45482, [1.1364e-07], [1.1453e-07], [1.138e-07], [1.1435e-07], [95488], [10]], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_heavy_wrapping": [null, [], "1ed4d74ea424990cfb40c96f07635f9bcf7b8bacc7ade5204aaf96363e1622ee", 1646929043306, 0.063175], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_medium_wrapping": [null, [], "0880e162a4907ee025cef8ac3380502554fde27fd0c90a4c15cebc9c27f3e333", 1646929043370, 0.062626], "benchmarks.SyntaxWrappingSuite.time_text_wide_terminal_no_wrapping": [null, [], "feb11e94ae6a75de2dee899fb93db098b55cde232710660d7d66f9e2b288d9c0", 1646929043432, 0.062161], "benchmarks.TableSuite.time_table_heavy_wrapping": [[0.0023428916989360004], [], "ca515a9739c1e0f8eb922420f9f9caf27321fb13c8bd0bc49b207a0588b370de", 1646929049541, 0.46131, [0.0023405], [0.0023488], [0.002341], [0.0023454], [5], [10]], "benchmarks.TableSuite.time_table_no_wrapping": [[0.0014403332856350712], [], "8842a5f141d8208ba2bab66e4973e978cb5d0615f326af5d70385ff8fa44b3b9", 1646929049772, 0.44078, [0.0014346], [0.0014532], [0.0014393], [0.0014425], [7], [10]], "benchmarks.TextSuite.time_align_center": [[0.0006583841559404391], [], "1ceeeef2de43fcb3d0dfec409972d8f0eb791e9615fa9f9c959e0423725b089b", 1646929049990, 0.43817, [0.00065618], [0.00066033], [0.00065775], [0.00065947], [16], [10]], "benchmarks.TextSuite.time_align_center_unicode_heavy": [[0.0005479879213166178], [], "a83ff79614dd2ae17e8b68f45981fcaa0d9833c59a7a14f171b896cf970f54ce", 1646929050212, 0.445, [0.00054439], [0.00057321], [0.00054576], [0.00055696], [19], [10]], "benchmarks.TextSuite.time_divide": [[2.5343872384283808e-05], [], "dcc120b921cb2ec77632f8fe2f6f4150d479cb49ef2608f8e86b569a937756e9", 1646929050431, 0.4548, [2.5303e-05], [2.5408e-05], [2.5342e-05], [2.5378e-05], [427], [10]], "benchmarks.TextSuite.time_divide_unicode_heavy": [[0.0001848050622876534], [], "ea53e662c0553324f90ac3336dcee77f733bb33638888e1f84bf71945a2f3f8e", 1646929050656, 0.44336, [0.00018405], [0.00018564], [0.00018457], [0.00018496], [56], [10]], "benchmarks.TextSuite.time_fit": [[4.3598299950589335e-05], [], "ec77b412db357b1e1c1e7bc620b941dddfc36dc76d2a66a0417feae4f21fe1d3", 1646929050875, 0.44159, [4.3447e-05], [4.3758e-05], [4.3496e-05], [4.3717e-05], [245], [10]], "benchmarks.TextSuite.time_fit_unicode_heavy": [[0.0003240322581522407], [], "d1574b4af2ef8b80b95b4dbeeb13e5de67b66783f76f9968834776239dd0dc66", 1646929051099, 0.43042, [0.00032367], [0.0003245], [0.00032387], [0.00032422], [31], [10]], "benchmarks.TextSuite.time_indent_guides": [[0.00038991435226139236], [], "18da036dcfc15ec5e3c11e72be7c8f0c22fba695a5f19c95836be36952376cf2", 1646929051313, 0.4457, [0.00038817], [0.00039106], [0.00038868], [0.00039061], [27], [10]], "benchmarks.TextSuite.time_render": [[4.681328553562882e-06], [], "907d30581cfdc7bb2c4d302b7e3cb474aaefd8b84821365fe105af7d82be3b09", 1646929051535, 0.44673, [4.6717e-06], [4.7011e-06], [4.6742e-06], [4.6885e-06], [2336], [10]], "benchmarks.TextSuite.time_render_unicode_heavy": [[8.539192583612021e-05], [], "b3f1c09dfd06f412a20dacfe378c3b446727c7d4f9a975336eab3daa8543e1cb", 1646929051762, 0.45511, [8.477e-05], [8.665e-05], [8.5005e-05], [8.5749e-05], [128], [10]], "benchmarks.TextSuite.time_split": [[3.5212323016278426e-05], [], "9c165854130cb95fea5491ffcd8b580a5bd373149da2ef8aace0e9480f649854", 1646929051988, 0.44421, [3.5087e-05], [3.5336e-05], [3.513e-05], [3.5259e-05], [308], [10]], "benchmarks.TextSuite.time_split_unicode_heavy": [[0.00027470724997233207], [], "d55b02f6d06f478d70635bac3409f3a9899137d9cee87a70a293b8ccf5a6afa4", 1646929052215, 0.44087, [0.00027314], [0.00027617], [0.00027383], [0.00027545], [38], [10]], "benchmarks.TextSuite.time_wrapping": [[0.0010986958499415778], [], "8c821eba13d043f228fd902d8f678c397741855db05d02abe9b82f3d65cdf03d", 1646929052434, 0.43797, [0.0010954], [0.0011024], [0.0010959], [0.0011016], [10], [10]], "benchmarks.TextSuite.time_wrapping_unicode_heavy": [[0.0014876964269205928], [], "ec6e2ef08b6cdee182fef4e26c0043f8c365984f9a31be07dbd792e1aed862d8", 1646929052652, 0.43619, [0.0014852], [0.0014927], [0.0014868], [0.0014895], [7], [10]]}, "durations": {"": 2.0037131309509277}, "version": 2} diff --git a/benchmarks/results/darrenburns-2022-mbp/666d0cf2-virtualenv-py3.10.json b/benchmarks/results/darrenburns-2022-mbp/666d0cf2-virtualenv-py3.10.json new file mode 100644 index 0000000000..ac8a7e6b60 --- /dev/null +++ b/benchmarks/results/darrenburns-2022-mbp/666d0cf2-virtualenv-py3.10.json @@ -0,0 +1 @@ +{"commit_hash": "666d0cf2b2eca98ff75bd260f91b200d0bb82e90", "env_name": "virtualenv-py3.10", "date": 1637405513000, "params": {"arch": "arm64", "cpu": "Apple M1 Pro", "machine": "darrenburns-2022-mbp", "num_cpu": "10", "os": "Darwin 21.2.0", "ram": "17179869184", "python": "3.10"}, "python": "3.10", "requirements": {}, "env_vars": {}, "result_columns": ["result", "params", "version", "started_at", "duration", "stats_ci_99_a", "stats_ci_99_b", "stats_q_25", "stats_q_75", "stats_number", "stats_repeat", "samples", "profile"], "results": {"benchmarks.ColorSuite.time_downgrade_to_eight_bit": [[1.7059216979300207e-07], [], "019b972f782c6291df9a6a4dea9bb3c6268a69b177e71383d6e19a608e84920d", 1646929483869, 0.46535, [1.6993e-07], [1.7094e-07], [1.7045e-07], [1.7081e-07], [64392], [10]], "benchmarks.ColorSuite.time_downgrade_to_standard": [[1.709019096843553e-07], [], "f5e8556491c977450fff6ebfd9fff4fc8f12d74829aa5b8570bd27ea7a1c9d28", 1646929484100, 0.46715, [1.69e-07], [1.717e-07], [1.7019e-07], [1.7136e-07], [64405], [10]], "benchmarks.ColorSuite.time_downgrade_to_windows": [[1.7002134261694357e-07], [], "373eb97dd7ce2823e080972249235f528e8b3a47210911981cf432ecf0eef5fb", 1646929484334, 0.46378, [1.6929e-07], [1.7051e-07], [1.6954e-07], [1.7017e-07], [64543], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_eight_bit": [[1.7039360575301497e-07], [], "716ff06a471a5d90af3730f6d4470eba3577432d781e0210dff1fd156b8c549c", 1646929484568, 0.45849, [1.6915e-07], [1.7143e-07], [1.6969e-07], [1.7058e-07], [63401], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_standard": [[1.7012746920399016e-07], [], "3a752a7884e99e095c31b2a28cfefdf916cb2033c06afae1ea146a72f3ba650c", 1646929484797, 0.46463, [1.6888e-07], [1.7061e-07], [1.6962e-07], [1.7021e-07], [64490], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_windows": [[1.698780700455599e-07], [], "1732bbd18ada49eb7b054fc18b40d6acfb533023463366f37203dab6fbb0cc20", 1646929485030, 0.4678, [1.6942e-07], [1.7151e-07], [1.6966e-07], [1.7036e-07], [64328], [10]], "benchmarks.PrettySuite.time_pretty": [[0.001039016699360218], [], "9bb0e6d8a29aad21b3d1b550a160fa5f1e9030c69d16bad500c0dcc77bff6d01", 1646929485261, 0.45232, [0.0010348], [0.0010461], [0.0010373], [0.0010427], [10], [10]], "benchmarks.PrettySuite.time_pretty_indent_guides": [[0.001429678570795139], [], "8d71bf19dfe999b0fba95d009986bfd6911c53c7a0c455466725f553005c3bc7", 1646929485485, 0.44288, [0.001422], [0.0014424], [0.0014263], [0.0014325], [7], [10]], "benchmarks.PrettySuite.time_pretty_justify_center": [[0.0013064713111816673], [], "54cbf71bacab14ccbe1d063847c0b89198ed1bbe06edc89c14d2e3c7b1986c41", 1646929485704, 0.44442, [0.0013024], [0.0013231], [0.0013039], [0.0013094], [8], [10]], "benchmarks.StyleSuite.time_parse_ansi": [[1.1418550215190512e-07], [], "a003aaa8017585efeb1cd9c43351282df4df6249bf28a4c447b1304d984aa753", 1646929485930, 0.4571, [1.1387e-07], [1.1535e-07], [1.1402e-07], [1.1468e-07], [94759], [10]], "benchmarks.StyleSuite.time_parse_hex": [[1.1405231649255829e-07], [], "cf5a3f0def435d3da5bc3a6e7549c44c0a02e9cce6c00ecde8dd7f527556f8ca", 1646929486158, 0.44506, [1.1346e-07], [1.174e-07], [1.1372e-07], [1.1567e-07], [87802], [10]], "benchmarks.StyleSuite.time_parse_mixed_complex_style": [[1.1406058148527631e-07], [], "01c9e12ae829b1984e55a5aeef1a9ae6f1461577adaf5ae59f06358c8b52802f", 1646929486385, 0.46433, [1.1388e-07], [1.1636e-07], [1.1396e-07], [1.1542e-07], [96465], [10]], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_heavy_wrapping": [null, [], "1ed4d74ea424990cfb40c96f07635f9bcf7b8bacc7ade5204aaf96363e1622ee", 1646929480287, 0.065892], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_medium_wrapping": [null, [], "0880e162a4907ee025cef8ac3380502554fde27fd0c90a4c15cebc9c27f3e333", 1646929480353, 0.06518], "benchmarks.SyntaxWrappingSuite.time_text_wide_terminal_no_wrapping": [null, [], "feb11e94ae6a75de2dee899fb93db098b55cde232710660d7d66f9e2b288d9c0", 1646929480419, 0.064819], "benchmarks.TableSuite.time_table_heavy_wrapping": [[0.0022066499950597063], [], "ca515a9739c1e0f8eb922420f9f9caf27321fb13c8bd0bc49b207a0588b370de", 1646929486618, 0.45052, [0.0021978], [0.0022218], [0.0022014], [0.0022086], [5], [10]], "benchmarks.TableSuite.time_table_no_wrapping": [[0.0013307968747540144], [], "8842a5f141d8208ba2bab66e4973e978cb5d0615f326af5d70385ff8fa44b3b9", 1646929486841, 0.45045, [0.0013223], [0.0013412], [0.0013249], [0.001334], [8], [10]], "benchmarks.TextSuite.time_align_center": [[0.0003770327499036544], [], "1ceeeef2de43fcb3d0dfec409972d8f0eb791e9615fa9f9c959e0423725b089b", 1646929487070, 0.45037, [0.0003715], [0.00037914], [0.00037257], [0.00037736], [28], [10]], "benchmarks.TextSuite.time_align_center_unicode_heavy": [[0.00034180240313177025], [], "a83ff79614dd2ae17e8b68f45981fcaa0d9833c59a7a14f171b896cf970f54ce", 1646929487293, 0.45233, [0.00033766], [0.00034821], [0.00033838], [0.00034259], [31], [10]], "benchmarks.TextSuite.time_divide": [[2.5328922338838523e-05], [], "dcc120b921cb2ec77632f8fe2f6f4150d479cb49ef2608f8e86b569a937756e9", 1646929487517, 0.45603, [2.5101e-05], [2.5532e-05], [2.5159e-05], [2.5482e-05], [425], [10]], "benchmarks.TextSuite.time_divide_unicode_heavy": [[0.00018498636175003224], [], "ea53e662c0553324f90ac3336dcee77f733bb33638888e1f84bf71945a2f3f8e", 1646929487743, 0.45479, [0.00018346], [0.00018634], [0.0001842], [0.00018552], [58], [10]], "benchmarks.TextSuite.time_fit": [[4.349864433222352e-05], [], "ec77b412db357b1e1c1e7bc620b941dddfc36dc76d2a66a0417feae4f21fe1d3", 1646929487970, 0.44737, [4.3458e-05], [4.4164e-05], [4.3487e-05], [4.3546e-05], [246], [10]], "benchmarks.TextSuite.time_fit_unicode_heavy": [[0.0003249583232607092], [], "d1574b4af2ef8b80b95b4dbeeb13e5de67b66783f76f9968834776239dd0dc66", 1646929488197, 0.43982, [0.00032337], [0.00032803], [0.00032414], [0.00032677], [31], [10]], "benchmarks.TextSuite.time_indent_guides": [[0.0003559333335336608], [], "18da036dcfc15ec5e3c11e72be7c8f0c22fba695a5f19c95836be36952376cf2", 1646929488413, 0.45738, [0.00035458], [0.00036427], [0.00035485], [0.0003571], [30], [10]], "benchmarks.TextSuite.time_render": [[4.681305513344945e-06], [], "907d30581cfdc7bb2c4d302b7e3cb474aaefd8b84821365fe105af7d82be3b09", 1646929488639, 0.45041, [4.6548e-06], [4.6957e-06], [4.659e-06], [4.6905e-06], [2324], [10]], "benchmarks.TextSuite.time_render_unicode_heavy": [[8.511783971698605e-05], [], "b3f1c09dfd06f412a20dacfe378c3b446727c7d4f9a975336eab3daa8543e1cb", 1646929488867, 0.45545, [8.4799e-05], [8.5566e-05], [8.5074e-05], [8.5398e-05], [128], [10]], "benchmarks.TextSuite.time_split": [[3.528940459019443e-05], [], "9c165854130cb95fea5491ffcd8b580a5bd373149da2ef8aace0e9480f649854", 1646929489097, 0.44655, [3.5224e-05], [3.5363e-05], [3.5262e-05], [3.5303e-05], [304], [10]], "benchmarks.TextSuite.time_split_unicode_heavy": [[0.00027400657908353756], [], "d55b02f6d06f478d70635bac3409f3a9899137d9cee87a70a293b8ccf5a6afa4", 1646929489324, 0.44615, [0.00027351], [0.00027464], [0.00027372], [0.00027418], [38], [10]], "benchmarks.TextSuite.time_wrapping": [[0.001119129150174558], [], "8c821eba13d043f228fd902d8f678c397741855db05d02abe9b82f3d65cdf03d", 1646929489545, 0.45786, [0.0010965], [0.0011302], [0.0011088], [0.0011242], [10], [10]], "benchmarks.TextSuite.time_wrapping_unicode_heavy": [[0.0013640703109558672], [], "ec6e2ef08b6cdee182fef4e26c0043f8c365984f9a31be07dbd792e1aed862d8", 1646929489779, 0.4553, [0.0013606], [0.0013689], [0.0013627], [0.0013659], [8], [10]]}, "durations": {"": 1.988671064376831}, "version": 2} diff --git a/benchmarks/results/darrenburns-2022-mbp/690507d4-virtualenv-py3.10.json b/benchmarks/results/darrenburns-2022-mbp/690507d4-virtualenv-py3.10.json new file mode 100644 index 0000000000..3204737923 --- /dev/null +++ b/benchmarks/results/darrenburns-2022-mbp/690507d4-virtualenv-py3.10.json @@ -0,0 +1 @@ +{"commit_hash": "690507d4f39ff4ae9e5618711627037ac26e256c", "env_name": "virtualenv-py3.10", "date": 1621287005000, "params": {"arch": "arm64", "cpu": "Apple M1 Pro", "machine": "darrenburns-2022-mbp", "num_cpu": "10", "os": "Darwin 21.2.0", "ram": "17179869184", "python": "3.10"}, "python": "3.10", "requirements": {}, "env_vars": {}, "result_columns": ["result", "params", "version", "started_at", "duration", "stats_ci_99_a", "stats_ci_99_b", "stats_q_25", "stats_q_75", "stats_number", "stats_repeat", "samples", "profile"], "results": {"benchmarks.ColorSuite.time_downgrade_to_eight_bit": [[1.7055391959849702e-07], [], "019b972f782c6291df9a6a4dea9bb3c6268a69b177e71383d6e19a608e84920d", 1646928333083, 0.45456, [1.6973e-07], [1.7106e-07], [1.7025e-07], [1.7079e-07], [63734], [10]], "benchmarks.ColorSuite.time_downgrade_to_standard": [[1.7052009692883833e-07], [], "f5e8556491c977450fff6ebfd9fff4fc8f12d74829aa5b8570bd27ea7a1c9d28", 1646928333310, 0.45405, [1.698e-07], [1.7099e-07], [1.702e-07], [1.7078e-07], [64861], [10]], "benchmarks.ColorSuite.time_downgrade_to_windows": [[1.703780635253241e-07], [], "373eb97dd7ce2823e080972249235f528e8b3a47210911981cf432ecf0eef5fb", 1646928333539, 0.4547, [1.6939e-07], [1.7126e-07], [1.6989e-07], [1.7093e-07], [63369], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_eight_bit": [[1.6995471132619938e-07], [], "716ff06a471a5d90af3730f6d4470eba3577432d781e0210dff1fd156b8c549c", 1646928333766, 0.4524, [1.6931e-07], [1.7085e-07], [1.6965e-07], [1.7004e-07], [62797], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_standard": [[1.696196676231718e-07], [], "3a752a7884e99e095c31b2a28cfefdf916cb2033c06afae1ea146a72f3ba650c", 1646928333992, 0.4566, [1.6902e-07], [1.7076e-07], [1.6928e-07], [1.7005e-07], [64278], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_windows": [[1.7001884858257172e-07], [], "1732bbd18ada49eb7b054fc18b40d6acfb533023463366f37203dab6fbb0cc20", 1646928334220, 0.43228, [1.6891e-07], [1.7229e-07], [1.6969e-07], [1.7032e-07], [59209], [10]], "benchmarks.PrettySuite.time_pretty": [[0.0010318208500393667], [], "9bb0e6d8a29aad21b3d1b550a160fa5f1e9030c69d16bad500c0dcc77bff6d01", 1646928334436, 0.44465, [0.0010292], [0.0010381], [0.0010304], [0.0010331], [10], [10]], "benchmarks.PrettySuite.time_pretty_indent_guides": [[0.0014297995003289543], [], "8d71bf19dfe999b0fba95d009986bfd6911c53c7a0c455466725f553005c3bc7", 1646928334657, 0.46539, [0.0014239], [0.0014329], [0.001426], [0.0014314], [8], [10]], "benchmarks.PrettySuite.time_pretty_justify_center": [[0.0014235286253097001], [], "54cbf71bacab14ccbe1d063847c0b89198ed1bbe06edc89c14d2e3c7b1986c41", 1646928334885, 0.45289, [0.0014219], [0.0014304], [0.0014222], [0.0014275], [8], [10]], "benchmarks.StyleSuite.time_parse_ansi": [[1.1557706520754057e-07], [], "a003aaa8017585efeb1cd9c43351282df4df6249bf28a4c447b1304d984aa753", 1646928335110, 0.45123, [1.1465e-07], [1.1658e-07], [1.1475e-07], [1.1573e-07], [93849], [10]], "benchmarks.StyleSuite.time_parse_hex": [[1.1424178187962725e-07], [], "cf5a3f0def435d3da5bc3a6e7549c44c0a02e9cce6c00ecde8dd7f527556f8ca", 1646928335334, 0.45577, [1.1396e-07], [1.1479e-07], [1.1422e-07], [1.1435e-07], [95551], [10]], "benchmarks.StyleSuite.time_parse_mixed_complex_style": [[1.1490234874890529e-07], [], "01c9e12ae829b1984e55a5aeef1a9ae6f1461577adaf5ae59f06358c8b52802f", 1646928335563, 0.45654, [1.1419e-07], [1.1781e-07], [1.1454e-07], [1.1534e-07], [95247], [10]], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_heavy_wrapping": [null, [], "1ed4d74ea424990cfb40c96f07635f9bcf7b8bacc7ade5204aaf96363e1622ee", 1646928329594, 0.063525], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_medium_wrapping": [null, [], "0880e162a4907ee025cef8ac3380502554fde27fd0c90a4c15cebc9c27f3e333", 1646928329658, 0.062237], "benchmarks.SyntaxWrappingSuite.time_text_wide_terminal_no_wrapping": [null, [], "feb11e94ae6a75de2dee899fb93db098b55cde232710660d7d66f9e2b288d9c0", 1646928329720, 0.062164], "benchmarks.TableSuite.time_table_heavy_wrapping": [[0.002133625099668279], [], "ca515a9739c1e0f8eb922420f9f9caf27321fb13c8bd0bc49b207a0588b370de", 1646928335790, 0.44434, [0.0021128], [0.0021426], [0.002121], [0.0021377], [5], [10]], "benchmarks.TableSuite.time_table_no_wrapping": [[0.0012864271247963188], [], "8842a5f141d8208ba2bab66e4973e978cb5d0615f326af5d70385ff8fa44b3b9", 1646928336016, 0.43432, [0.0012799], [0.0012952], [0.0012842], [0.0012901], [8], [10]], "benchmarks.TextSuite.time_align_center": [[0.0006589544382222812], [], "1ceeeef2de43fcb3d0dfec409972d8f0eb791e9615fa9f9c959e0423725b089b", 1646928336236, 0.439, [0.00065683], [0.00066446], [0.0006584], [0.00065952], [16], [10]], "benchmarks.TextSuite.time_align_center_unicode_heavy": [[0.0005474320519409192], [], "a83ff79614dd2ae17e8b68f45981fcaa0d9833c59a7a14f171b896cf970f54ce", 1646928336457, 0.44326, [0.00054373], [0.00055577], [0.00054547], [0.00055243], [19], [10]], "benchmarks.TextSuite.time_divide": [[2.5388628264943903e-05], [], "dcc120b921cb2ec77632f8fe2f6f4150d479cb49ef2608f8e86b569a937756e9", 1646928336676, 0.45107, [2.5238e-05], [2.5484e-05], [2.531e-05], [2.5444e-05], [425], [10]], "benchmarks.TextSuite.time_divide_unicode_heavy": [[0.00018476078448343444], [], "ea53e662c0553324f90ac3336dcee77f733bb33638888e1f84bf71945a2f3f8e", 1646928336900, 0.44887, [0.00018387], [0.00018535], [0.00018469], [0.00018495], [58], [10]], "benchmarks.TextSuite.time_fit": [[4.347839755803866e-05], [], "ec77b412db357b1e1c1e7bc620b941dddfc36dc76d2a66a0417feae4f21fe1d3", 1646928337125, 0.43851, [4.3333e-05], [4.3669e-05], [4.3353e-05], [4.3572e-05], [244], [10]], "benchmarks.TextSuite.time_fit_unicode_heavy": [[0.00032490995128624017], [], "d1574b4af2ef8b80b95b4dbeeb13e5de67b66783f76f9968834776239dd0dc66", 1646928337348, 0.43061, [0.00032458], [0.0003259], [0.00032468], [0.00032516], [31], [10]], "benchmarks.TextSuite.time_indent_guides": [[0.0003564339136134769], [], "18da036dcfc15ec5e3c11e72be7c8f0c22fba695a5f19c95836be36952376cf2", 1646928337562, 0.43987, [0.00035575], [0.00035723], [0.000356], [0.00035682], [29], [10]], "benchmarks.TextSuite.time_render": [[4.700765783165551e-06], [], "907d30581cfdc7bb2c4d302b7e3cb474aaefd8b84821365fe105af7d82be3b09", 1646928337780, 0.44748, [4.6678e-06], [4.7389e-06], [4.679e-06], [4.7266e-06], [2329], [10]], "benchmarks.TextSuite.time_render_unicode_heavy": [[8.534749599675706e-05], [], "b3f1c09dfd06f412a20dacfe378c3b446727c7d4f9a975336eab3daa8543e1cb", 1646928338008, 0.45211, [8.518e-05], [8.6115e-05], [8.5281e-05], [8.56e-05], [128], [10]], "benchmarks.TextSuite.time_split": [[3.526865361445565e-05], [], "9c165854130cb95fea5491ffcd8b580a5bd373149da2ef8aace0e9480f649854", 1646928338236, 0.44223, [3.5155e-05], [3.5436e-05], [3.5219e-05], [3.5289e-05], [306], [10]], "benchmarks.TextSuite.time_split_unicode_heavy": [[0.0002749084344127608], [], "d55b02f6d06f478d70635bac3409f3a9899137d9cee87a70a293b8ccf5a6afa4", 1646928338461, 0.44124, [0.00027333], [0.00027587], [0.00027442], [0.00027528], [38], [10]], "benchmarks.TextSuite.time_wrapping": [[0.0010947916991426608], [], "8c821eba13d043f228fd902d8f678c397741855db05d02abe9b82f3d65cdf03d", 1646928338681, 0.44788, [0.0010928], [0.0010971], [0.0010935], [0.0010954], [10], [10]], "benchmarks.TextSuite.time_wrapping_unicode_heavy": [[0.0014860387870742542], [], "ec6e2ef08b6cdee182fef4e26c0043f8c365984f9a31be07dbd792e1aed862d8", 1646928338909, 0.43559, [0.0014818], [0.0014929], [0.0014832], [0.00149], [7], [10]]}, "durations": {"": 1.981421947479248}, "version": 2} diff --git a/benchmarks/results/darrenburns-2022-mbp/6d7ba589-virtualenv-py3.10.json b/benchmarks/results/darrenburns-2022-mbp/6d7ba589-virtualenv-py3.10.json new file mode 100644 index 0000000000..641feb6321 --- /dev/null +++ b/benchmarks/results/darrenburns-2022-mbp/6d7ba589-virtualenv-py3.10.json @@ -0,0 +1 @@ +{"commit_hash": "6d7ba589e2e37e91f12d0a0d4e4a6ae0c9e144a5", "env_name": "virtualenv-py3.10", "date": 1591790104000, "params": {"arch": "arm64", "cpu": "Apple M1 Pro", "machine": "darrenburns-2022-mbp", "num_cpu": "10", "os": "Darwin 21.2.0", "ram": "17179869184", "python": "3.10"}, "python": "3.10", "requirements": {}, "env_vars": {}, "result_columns": ["result", "params", "version", "started_at", "duration", "stats_ci_99_a", "stats_ci_99_b", "stats_q_25", "stats_q_75", "stats_number", "stats_repeat", "samples", "profile"], "results": {"benchmarks.ColorSuite.time_downgrade_to_eight_bit": [null, [], "019b972f782c6291df9a6a4dea9bb3c6268a69b177e71383d6e19a608e84920d", 1646928507933, 0.059222], "benchmarks.ColorSuite.time_downgrade_to_standard": [null, [], "f5e8556491c977450fff6ebfd9fff4fc8f12d74829aa5b8570bd27ea7a1c9d28", 1646928507992, 0.058364], "benchmarks.ColorSuite.time_downgrade_to_windows": [null, [], "373eb97dd7ce2823e080972249235f528e8b3a47210911981cf432ecf0eef5fb", 1646928508051, 0.058069], "benchmarks.ColorSuiteCached.time_downgrade_to_eight_bit": [null, [], "716ff06a471a5d90af3730f6d4470eba3577432d781e0210dff1fd156b8c549c", 1646928508109, 0.059971], "benchmarks.ColorSuiteCached.time_downgrade_to_standard": [null, [], "3a752a7884e99e095c31b2a28cfefdf916cb2033c06afae1ea146a72f3ba650c", 1646928508169, 0.058018], "benchmarks.ColorSuiteCached.time_downgrade_to_windows": [null, [], "1732bbd18ada49eb7b054fc18b40d6acfb533023463366f37203dab6fbb0cc20", 1646928508227, 0.058165], "benchmarks.PrettySuite.time_pretty": [null, [], "9bb0e6d8a29aad21b3d1b550a160fa5f1e9030c69d16bad500c0dcc77bff6d01", 1646928508285, 0.058273], "benchmarks.PrettySuite.time_pretty_indent_guides": [null, [], "8d71bf19dfe999b0fba95d009986bfd6911c53c7a0c455466725f553005c3bc7", 1646928508343, 0.05774], "benchmarks.PrettySuite.time_pretty_justify_center": [null, [], "54cbf71bacab14ccbe1d063847c0b89198ed1bbe06edc89c14d2e3c7b1986c41", 1646928508401, 0.057994], "benchmarks.StyleSuite.time_parse_ansi": [null, [], "a003aaa8017585efeb1cd9c43351282df4df6249bf28a4c447b1304d984aa753", 1646928508459, 0.058585], "benchmarks.StyleSuite.time_parse_hex": [null, [], "cf5a3f0def435d3da5bc3a6e7549c44c0a02e9cce6c00ecde8dd7f527556f8ca", 1646928508518, 0.058293], "benchmarks.StyleSuite.time_parse_mixed_complex_style": [null, [], "01c9e12ae829b1984e55a5aeef1a9ae6f1461577adaf5ae59f06358c8b52802f", 1646928508576, 0.059203], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_heavy_wrapping": [null, [], "1ed4d74ea424990cfb40c96f07635f9bcf7b8bacc7ade5204aaf96363e1622ee", 1646928508636, 0.058099], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_medium_wrapping": [null, [], "0880e162a4907ee025cef8ac3380502554fde27fd0c90a4c15cebc9c27f3e333", 1646928508694, 0.058112], "benchmarks.SyntaxWrappingSuite.time_text_wide_terminal_no_wrapping": [null, [], "feb11e94ae6a75de2dee899fb93db098b55cde232710660d7d66f9e2b288d9c0", 1646928508752, 0.057669], "benchmarks.TableSuite.time_table_heavy_wrapping": [null, [], "ca515a9739c1e0f8eb922420f9f9caf27321fb13c8bd0bc49b207a0588b370de", 1646928508810, 0.058181], "benchmarks.TableSuite.time_table_no_wrapping": [null, [], "8842a5f141d8208ba2bab66e4973e978cb5d0615f326af5d70385ff8fa44b3b9", 1646928508868, 0.05935], "benchmarks.TextSuite.time_align_center": [null, [], "1ceeeef2de43fcb3d0dfec409972d8f0eb791e9615fa9f9c959e0423725b089b", 1646928508927, 0.058248], "benchmarks.TextSuite.time_align_center_unicode_heavy": [null, [], "a83ff79614dd2ae17e8b68f45981fcaa0d9833c59a7a14f171b896cf970f54ce", 1646928508986, 0.057603], "benchmarks.TextSuite.time_divide": [null, [], "dcc120b921cb2ec77632f8fe2f6f4150d479cb49ef2608f8e86b569a937756e9", 1646928509043, 0.057807], "benchmarks.TextSuite.time_divide_unicode_heavy": [null, [], "ea53e662c0553324f90ac3336dcee77f733bb33638888e1f84bf71945a2f3f8e", 1646928509101, 0.057848], "benchmarks.TextSuite.time_fit": [null, [], "ec77b412db357b1e1c1e7bc620b941dddfc36dc76d2a66a0417feae4f21fe1d3", 1646928509159, 0.058172], "benchmarks.TextSuite.time_fit_unicode_heavy": [null, [], "d1574b4af2ef8b80b95b4dbeeb13e5de67b66783f76f9968834776239dd0dc66", 1646928509217, 0.057525], "benchmarks.TextSuite.time_indent_guides": [null, [], "18da036dcfc15ec5e3c11e72be7c8f0c22fba695a5f19c95836be36952376cf2", 1646928509275, 0.057732], "benchmarks.TextSuite.time_render": [null, [], "907d30581cfdc7bb2c4d302b7e3cb474aaefd8b84821365fe105af7d82be3b09", 1646928509333, 0.057952], "benchmarks.TextSuite.time_render_unicode_heavy": [null, [], "b3f1c09dfd06f412a20dacfe378c3b446727c7d4f9a975336eab3daa8543e1cb", 1646928509391, 0.057931], "benchmarks.TextSuite.time_split": [null, [], "9c165854130cb95fea5491ffcd8b580a5bd373149da2ef8aace0e9480f649854", 1646928509449, 0.057919], "benchmarks.TextSuite.time_split_unicode_heavy": [null, [], "d55b02f6d06f478d70635bac3409f3a9899137d9cee87a70a293b8ccf5a6afa4", 1646928509507, 0.058091], "benchmarks.TextSuite.time_wrapping": [null, [], "8c821eba13d043f228fd902d8f678c397741855db05d02abe9b82f3d65cdf03d", 1646928509565, 0.057806], "benchmarks.TextSuite.time_wrapping_unicode_heavy": [null, [], "ec6e2ef08b6cdee182fef4e26c0043f8c365984f9a31be07dbd792e1aed862d8", 1646928509623, 0.057942]}, "durations": {"": 1.957338809967041}, "version": 2} diff --git a/benchmarks/results/darrenburns-2022-mbp/7441bf27-virtualenv-py3.10.json b/benchmarks/results/darrenburns-2022-mbp/7441bf27-virtualenv-py3.10.json new file mode 100644 index 0000000000..3483b56087 --- /dev/null +++ b/benchmarks/results/darrenburns-2022-mbp/7441bf27-virtualenv-py3.10.json @@ -0,0 +1 @@ +{"commit_hash": "7441bf27f3a023c9d3cd57229e4e5e06ec1b8e9f", "env_name": "virtualenv-py3.10", "date": 1604838636000, "params": {"arch": "arm64", "cpu": "Apple M1 Pro", "machine": "darrenburns-2022-mbp", "num_cpu": "10", "os": "Darwin 21.2.0", "ram": "17179869184", "python": "3.10"}, "python": "3.10", "requirements": {}, "env_vars": {}, "result_columns": ["result", "params", "version", "started_at", "duration", "stats_ci_99_a", "stats_ci_99_b", "stats_q_25", "stats_q_75", "stats_number", "stats_repeat", "samples", "profile"], "results": {"benchmarks.ColorSuite.time_downgrade_to_eight_bit": [[1.69993956141873e-07], [], "019b972f782c6291df9a6a4dea9bb3c6268a69b177e71383d6e19a608e84920d", 1646929118445, 0.45436, [1.6902e-07], [1.706e-07], [1.6959e-07], [1.7017e-07], [64611], [10]], "benchmarks.ColorSuite.time_downgrade_to_standard": [[1.6992707311881512e-07], [], "f5e8556491c977450fff6ebfd9fff4fc8f12d74829aa5b8570bd27ea7a1c9d28", 1646929118673, 0.455, [1.6811e-07], [1.709e-07], [1.6974e-07], [1.7026e-07], [64160], [10]], "benchmarks.ColorSuite.time_downgrade_to_windows": [[1.7042165959298685e-07], [], "373eb97dd7ce2823e080972249235f528e8b3a47210911981cf432ecf0eef5fb", 1646929118900, 0.45666, [1.6919e-07], [1.7381e-07], [1.7017e-07], [1.7061e-07], [64392], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_eight_bit": [[1.701407808991948e-07], [], "716ff06a471a5d90af3730f6d4470eba3577432d781e0210dff1fd156b8c549c", 1646929119128, 0.45565, [1.6887e-07], [1.7082e-07], [1.6945e-07], [1.7043e-07], [64057], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_standard": [[1.7025582359342565e-07], [], "3a752a7884e99e095c31b2a28cfefdf916cb2033c06afae1ea146a72f3ba650c", 1646929119356, 0.45392, [1.6901e-07], [1.7342e-07], [1.6943e-07], [1.711e-07], [64523], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_windows": [[1.7029257402860175e-07], [], "1732bbd18ada49eb7b054fc18b40d6acfb533023463366f37203dab6fbb0cc20", 1646929119585, 0.45366, [1.6925e-07], [1.7076e-07], [1.6988e-07], [1.7071e-07], [64840], [10]], "benchmarks.PrettySuite.time_pretty": [[0.001029433349322062], [], "9bb0e6d8a29aad21b3d1b550a160fa5f1e9030c69d16bad500c0dcc77bff6d01", 1646929119815, 0.44297, [0.0010255], [0.0010321], [0.0010274], [0.0010301], [10], [10]], "benchmarks.PrettySuite.time_pretty_indent_guides": [[0.0014356697169465146], [], "8d71bf19dfe999b0fba95d009986bfd6911c53c7a0c455466725f553005c3bc7", 1646929120035, 0.43558, [0.0014312], [0.0014429], [0.0014338], [0.0014394], [7], [10]], "benchmarks.PrettySuite.time_pretty_justify_center": [[0.0014150416882330319], [], "54cbf71bacab14ccbe1d063847c0b89198ed1bbe06edc89c14d2e3c7b1986c41", 1646929120252, 0.44498, [0.0014119], [0.0014206], [0.0014127], [0.0014172], [8], [10]], "benchmarks.StyleSuite.time_parse_ansi": [[1.1404079408120664e-07], [], "a003aaa8017585efeb1cd9c43351282df4df6249bf28a4c447b1304d984aa753", 1646929120475, 0.45216, [1.1347e-07], [1.1506e-07], [1.1361e-07], [1.1444e-07], [95443], [10]], "benchmarks.StyleSuite.time_parse_hex": [[1.1443809598085704e-07], [], "cf5a3f0def435d3da5bc3a6e7549c44c0a02e9cce6c00ecde8dd7f527556f8ca", 1646929120701, 0.45489, [1.1399e-07], [1.149e-07], [1.1439e-07], [1.1467e-07], [95745], [10]], "benchmarks.StyleSuite.time_parse_mixed_complex_style": [[1.1409922493678854e-07], [], "01c9e12ae829b1984e55a5aeef1a9ae6f1461577adaf5ae59f06358c8b52802f", 1646929120929, 0.45508, [1.1383e-07], [1.1421e-07], [1.1406e-07], [1.1418e-07], [95989], [10]], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_heavy_wrapping": [null, [], "1ed4d74ea424990cfb40c96f07635f9bcf7b8bacc7ade5204aaf96363e1622ee", 1646929114929, 0.061891], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_medium_wrapping": [null, [], "0880e162a4907ee025cef8ac3380502554fde27fd0c90a4c15cebc9c27f3e333", 1646929114991, 0.061595], "benchmarks.SyntaxWrappingSuite.time_text_wide_terminal_no_wrapping": [null, [], "feb11e94ae6a75de2dee899fb93db098b55cde232710660d7d66f9e2b288d9c0", 1646929115052, 0.061577], "benchmarks.TableSuite.time_table_heavy_wrapping": [[0.0027333021243975963], [], "ca515a9739c1e0f8eb922420f9f9caf27321fb13c8bd0bc49b207a0588b370de", 1646929121156, 0.44115, [0.0027268], [0.0027483], [0.0027288], [0.0027398], [4], [10]], "benchmarks.TableSuite.time_table_no_wrapping": [[0.0018545936666972314], [], "8842a5f141d8208ba2bab66e4973e978cb5d0615f326af5d70385ff8fa44b3b9", 1646929121374, 0.44863, [0.0018451], [0.0018652], [0.0018506], [0.0018572], [6], [10]], "benchmarks.TextSuite.time_align_center": [[0.0006624596562687657], [], "1ceeeef2de43fcb3d0dfec409972d8f0eb791e9615fa9f9c959e0423725b089b", 1646929121595, 0.43908, [0.00065986], [0.00066608], [0.00066138], [0.00066306], [16], [10]], "benchmarks.TextSuite.time_align_center_unicode_heavy": [[0.0005470712632431011], [], "a83ff79614dd2ae17e8b68f45981fcaa0d9833c59a7a14f171b896cf970f54ce", 1646929121816, 0.44171, [0.00054432], [0.0005528], [0.00054458], [0.00054816], [19], [10]], "benchmarks.TextSuite.time_divide": [[2.8061184237135182e-05], [], "dcc120b921cb2ec77632f8fe2f6f4150d479cb49ef2608f8e86b569a937756e9", 1646929122035, 0.44841, [2.8018e-05], [2.8198e-05], [2.8056e-05], [2.8065e-05], [380], [10]], "benchmarks.TextSuite.time_divide_unicode_heavy": [[0.00018741521042804315], [], "ea53e662c0553324f90ac3336dcee77f733bb33638888e1f84bf71945a2f3f8e", 1646929122258, 0.44715, [0.00018649], [0.00018802], [0.00018726], [0.00018763], [57], [10]], "benchmarks.TextSuite.time_fit": [[4.2205236956896074e-05], [], "ec77b412db357b1e1c1e7bc620b941dddfc36dc76d2a66a0417feae4f21fe1d3", 1646929122481, 0.44443, [4.2101e-05], [4.2355e-05], [4.2137e-05], [4.2255e-05], [249], [10]], "benchmarks.TextSuite.time_fit_unicode_heavy": [[0.0003298904517695548], [], "d1574b4af2ef8b80b95b4dbeeb13e5de67b66783f76f9968834776239dd0dc66", 1646929122702, 0.43364, [0.00032901], [0.00033133], [0.00032954], [0.00033032], [31], [10]], "benchmarks.TextSuite.time_indent_guides": [[0.0003926722694394322], [], "18da036dcfc15ec5e3c11e72be7c8f0c22fba695a5f19c95836be36952376cf2", 1646929122917, 0.43529, [0.00039187], [0.00039371], [0.0003923], [0.00039293], [26], [10]], "benchmarks.TextSuite.time_render": [[4.680221675507437e-06], [], "907d30581cfdc7bb2c4d302b7e3cb474aaefd8b84821365fe105af7d82be3b09", 1646929123134, 0.44451, [4.662e-06], [4.6956e-06], [4.6704e-06], [4.6843e-06], [2330], [10]], "benchmarks.TextSuite.time_render_unicode_heavy": [[8.536893306080047e-05], [], "b3f1c09dfd06f412a20dacfe378c3b446727c7d4f9a975336eab3daa8543e1cb", 1646929123359, 0.448, [8.4807e-05], [8.5676e-05], [8.5224e-05], [8.5509e-05], [127], [10]], "benchmarks.TextSuite.time_split": [[3.379626033534578e-05], [], "9c165854130cb95fea5491ffcd8b580a5bd373149da2ef8aace0e9480f649854", 1646929123585, 0.44541, [3.3681e-05], [3.3922e-05], [3.3742e-05], [3.382e-05], [313], [10]], "benchmarks.TextSuite.time_split_unicode_heavy": [[0.0002797815407550818], [], "d55b02f6d06f478d70635bac3409f3a9899137d9cee87a70a293b8ccf5a6afa4", 1646929123806, 0.437, [0.00027888], [0.00028045], [0.0002795], [0.00027998], [37], [10]], "benchmarks.TextSuite.time_wrapping": [[0.001141516221751873], [], "8c821eba13d043f228fd902d8f678c397741855db05d02abe9b82f3d65cdf03d", 1646929124024, 0.43956, [0.0011405], [0.0011435], [0.0011408], [0.0011423], [9], [10]], "benchmarks.TextSuite.time_wrapping_unicode_heavy": [[0.001525812431022392], [], "ec6e2ef08b6cdee182fef4e26c0043f8c365984f9a31be07dbd792e1aed862d8", 1646929124242, 0.44277, [0.0015221], [0.0015345], [0.0015229], [0.0015302], [7], [10]]}, "durations": {"": 1.9917261600494385}, "version": 2} diff --git a/benchmarks/results/darrenburns-2022-mbp/7d00fa83-virtualenv-py3.10.json b/benchmarks/results/darrenburns-2022-mbp/7d00fa83-virtualenv-py3.10.json new file mode 100644 index 0000000000..2d96625aee --- /dev/null +++ b/benchmarks/results/darrenburns-2022-mbp/7d00fa83-virtualenv-py3.10.json @@ -0,0 +1 @@ +{"commit_hash": "7d00fa83f262ae3bd6fa6c27661e0894675900fc", "env_name": "virtualenv-py3.10", "date": 1601133139000, "params": {"arch": "arm64", "cpu": "Apple M1 Pro", "machine": "darrenburns-2022-mbp", "num_cpu": "10", "os": "Darwin 21.2.0", "ram": "17179869184", "python": "3.10"}, "python": "3.10", "requirements": {}, "env_vars": {}, "result_columns": ["result", "params", "version", "started_at", "duration", "stats_ci_99_a", "stats_ci_99_b", "stats_q_25", "stats_q_75", "stats_number", "stats_repeat", "samples", "profile"], "results": {"benchmarks.ColorSuite.time_downgrade_to_eight_bit": [[1.7152168381914458e-07], [], "019b972f782c6291df9a6a4dea9bb3c6268a69b177e71383d6e19a608e84920d", 1646928935586, 0.45022, [1.7037e-07], [1.7468e-07], [1.7094e-07], [1.7302e-07], [64611], [10]], "benchmarks.ColorSuite.time_downgrade_to_standard": [[1.7124719806948264e-07], [], "f5e8556491c977450fff6ebfd9fff4fc8f12d74829aa5b8570bd27ea7a1c9d28", 1646928935812, 0.42435, [1.7021e-07], [1.7596e-07], [1.7065e-07], [1.7297e-07], [59068], [10]], "benchmarks.ColorSuite.time_downgrade_to_windows": [[1.7004018757994035e-07], [], "373eb97dd7ce2823e080972249235f528e8b3a47210911981cf432ecf0eef5fb", 1646928936025, 0.44922, [1.694e-07], [1.7119e-07], [1.695e-07], [1.7066e-07], [64485], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_eight_bit": [[1.7023790921083508e-07], [], "716ff06a471a5d90af3730f6d4470eba3577432d781e0210dff1fd156b8c549c", 1646928936249, 0.44529, [1.6892e-07], [1.7351e-07], [1.6959e-07], [1.7213e-07], [64905], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_standard": [[1.7052329803763258e-07], [], "3a752a7884e99e095c31b2a28cfefdf916cb2033c06afae1ea146a72f3ba650c", 1646928936476, 0.44483, [1.6918e-07], [1.7618e-07], [1.6994e-07], [1.7237e-07], [64791], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_windows": [[1.7033085957146206e-07], [], "1732bbd18ada49eb7b054fc18b40d6acfb533023463366f37203dab6fbb0cc20", 1646928936701, 0.43773, [1.6877e-07], [1.7081e-07], [1.6981e-07], [1.7038e-07], [64680], [10]], "benchmarks.PrettySuite.time_pretty": [[0.0009145681820386512], [], "9bb0e6d8a29aad21b3d1b550a160fa5f1e9030c69d16bad500c0dcc77bff6d01", 1646928936926, 0.42703, [0.00091065], [0.000919], [0.00091292], [0.0009166], [11], [10]], "benchmarks.PrettySuite.time_pretty_indent_guides": [null, [], "8d71bf19dfe999b0fba95d009986bfd6911c53c7a0c455466725f553005c3bc7", 1646928931372, 0.057696], "benchmarks.PrettySuite.time_pretty_justify_center": [[0.0013091172495478531], [], "54cbf71bacab14ccbe1d063847c0b89198ed1bbe06edc89c14d2e3c7b1986c41", 1646928937139, 0.43233, [0.0013056], [0.0013171], [0.0013087], [0.0013098], [8], [10]], "benchmarks.StyleSuite.time_parse_ansi": [[1.1448396771341196e-07], [], "a003aaa8017585efeb1cd9c43351282df4df6249bf28a4c447b1304d984aa753", 1646928937361, 0.42008, [1.1412e-07], [1.1601e-07], [1.1422e-07], [1.1476e-07], [87636], [10]], "benchmarks.StyleSuite.time_parse_hex": [[1.1539506549148682e-07], [], "cf5a3f0def435d3da5bc3a6e7549c44c0a02e9cce6c00ecde8dd7f527556f8ca", 1646928937571, 0.44916, [1.1406e-07], [1.1704e-07], [1.1436e-07], [1.1656e-07], [95693], [10]], "benchmarks.StyleSuite.time_parse_mixed_complex_style": [[1.1471164977843093e-07], [], "01c9e12ae829b1984e55a5aeef1a9ae6f1461577adaf5ae59f06358c8b52802f", 1646928937796, 0.43959, [1.1401e-07], [1.1677e-07], [1.1446e-07], [1.1558e-07], [95306], [10]], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_heavy_wrapping": [null, [], "1ed4d74ea424990cfb40c96f07635f9bcf7b8bacc7ade5204aaf96363e1622ee", 1646928932299, 0.05767], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_medium_wrapping": [null, [], "0880e162a4907ee025cef8ac3380502554fde27fd0c90a4c15cebc9c27f3e333", 1646928932357, 0.057931], "benchmarks.SyntaxWrappingSuite.time_text_wide_terminal_no_wrapping": [null, [], "feb11e94ae6a75de2dee899fb93db098b55cde232710660d7d66f9e2b288d9c0", 1646928932415, 0.057468], "benchmarks.TableSuite.time_table_heavy_wrapping": [[0.002859541626094142], [], "ca515a9739c1e0f8eb922420f9f9caf27321fb13c8bd0bc49b207a0588b370de", 1646928938012, 0.43849, [0.0028467], [0.0028628], [0.002852], [0.0028608], [4], [10]], "benchmarks.TableSuite.time_table_no_wrapping": [[0.001917430582883147], [], "8842a5f141d8208ba2bab66e4973e978cb5d0615f326af5d70385ff8fa44b3b9", 1646928938236, 0.4463, [0.0019126], [0.0019259], [0.0019149], [0.0019222], [6], [10]], "benchmarks.TextSuite.time_align_center": [[0.0006689111003652215], [], "1ceeeef2de43fcb3d0dfec409972d8f0eb791e9615fa9f9c959e0423725b089b", 1646928938458, 0.43736, [0.00066326], [0.00068545], [0.00066453], [0.00068324], [15], [10]], "benchmarks.TextSuite.time_align_center_unicode_heavy": [[0.000553631944866437], [], "a83ff79614dd2ae17e8b68f45981fcaa0d9833c59a7a14f171b896cf970f54ce", 1646928938676, 0.42185, [0.0005489], [0.0005577], [0.00055082], [0.00055466], [18], [10]], "benchmarks.TextSuite.time_divide": [[2.7876415161668826e-05], [], "dcc120b921cb2ec77632f8fe2f6f4150d479cb49ef2608f8e86b569a937756e9", 1646928938884, 0.43846, [2.7764e-05], [2.8006e-05], [2.7789e-05], [2.7922e-05], [383], [10]], "benchmarks.TextSuite.time_divide_unicode_heavy": [[0.00018746380718719018], [], "ea53e662c0553324f90ac3336dcee77f733bb33638888e1f84bf71945a2f3f8e", 1646928939102, 0.43805, [0.00018712], [0.00018808], [0.0001874], [0.00018764], [57], [10]], "benchmarks.TextSuite.time_fit": [[4.230848390582844e-05], [], "ec77b412db357b1e1c1e7bc620b941dddfc36dc76d2a66a0417feae4f21fe1d3", 1646928939321, 0.43639, [4.2038e-05], [4.2757e-05], [4.2158e-05], [4.2459e-05], [249], [10]], "benchmarks.TextSuite.time_fit_unicode_heavy": [[0.0003381525480841857], [], "d1574b4af2ef8b80b95b4dbeeb13e5de67b66783f76f9968834776239dd0dc66", 1646928939537, 0.43111, [0.00033217], [0.00033881], [0.00033273], [0.00033864], [31], [10]], "benchmarks.TextSuite.time_indent_guides": [null, [], "18da036dcfc15ec5e3c11e72be7c8f0c22fba695a5f19c95836be36952376cf2", 1646928934224, 0.058127], "benchmarks.TextSuite.time_render": [[4.670490798636853e-06], [], "907d30581cfdc7bb2c4d302b7e3cb474aaefd8b84821365fe105af7d82be3b09", 1646928939751, 0.43583, [4.667e-06], [4.6942e-06], [4.6685e-06], [4.6866e-06], [2337], [10]], "benchmarks.TextSuite.time_render_unicode_heavy": [[8.537926778516284e-05], [], "b3f1c09dfd06f412a20dacfe378c3b446727c7d4f9a975336eab3daa8543e1cb", 1646928939972, 0.43947, [8.4675e-05], [8.5659e-05], [8.5186e-05], [8.5463e-05], [127], [10]], "benchmarks.TextSuite.time_split": [[3.3882745181192426e-05], [], "9c165854130cb95fea5491ffcd8b580a5bd373149da2ef8aace0e9480f649854", 1646928940193, 0.43579, [3.3822e-05], [3.3982e-05], [3.3851e-05], [3.3898e-05], [312], [10]], "benchmarks.TextSuite.time_split_unicode_heavy": [[0.0002802438110528463], [], "d55b02f6d06f478d70635bac3409f3a9899137d9cee87a70a293b8ccf5a6afa4", 1646928940410, 0.42857, [0.00027797], [0.00028093], [0.00027941], [0.00028069], [37], [10]], "benchmarks.TextSuite.time_wrapping": [[0.0011615555558819324], [], "8c821eba13d043f228fd902d8f678c397741855db05d02abe9b82f3d65cdf03d", 1646928940624, 0.43524, [0.0011469], [0.0011728], [0.0011496], [0.0011715], [9], [10]], "benchmarks.TextSuite.time_wrapping_unicode_heavy": [[0.0015286369286643875], [], "ec6e2ef08b6cdee182fef4e26c0043f8c365984f9a31be07dbd792e1aed862d8", 1646928940839, 0.43395, [0.0015273], [0.0015322], [0.0015279], [0.00153], [7], [10]]}, "durations": {"": 1.9654920101165771}, "version": 2} diff --git a/benchmarks/results/darrenburns-2022-mbp/7d02d29b-virtualenv-py3.10.json b/benchmarks/results/darrenburns-2022-mbp/7d02d29b-virtualenv-py3.10.json new file mode 100644 index 0000000000..3ff3a712b4 --- /dev/null +++ b/benchmarks/results/darrenburns-2022-mbp/7d02d29b-virtualenv-py3.10.json @@ -0,0 +1 @@ +{"commit_hash": "7d02d29ba887c5c2b0203e0fb7e3c34cf1e14079", "env_name": "virtualenv-py3.10", "date": 1620839897000, "params": {"arch": "arm64", "cpu": "Apple M1 Pro", "machine": "darrenburns-2022-mbp", "num_cpu": "10", "os": "Darwin 21.2.0", "ram": "17179869184", "python": "3.10"}, "python": "3.10", "requirements": {}, "env_vars": {}, "result_columns": ["result", "params", "version", "started_at", "duration", "stats_ci_99_a", "stats_ci_99_b", "stats_q_25", "stats_q_75", "stats_number", "stats_repeat", "samples", "profile"], "results": {"benchmarks.ColorSuite.time_downgrade_to_eight_bit": [[1.7077510481264497e-07], [], "019b972f782c6291df9a6a4dea9bb3c6268a69b177e71383d6e19a608e84920d", 1646928318810, 0.45309, [1.6936e-07], [1.7157e-07], [1.707e-07], [1.7092e-07], [64410], [10]], "benchmarks.ColorSuite.time_downgrade_to_standard": [[1.706749065736248e-07], [], "f5e8556491c977450fff6ebfd9fff4fc8f12d74829aa5b8570bd27ea7a1c9d28", 1646928319038, 0.45742, [1.6839e-07], [1.777e-07], [1.7044e-07], [1.7107e-07], [64040], [10]], "benchmarks.ColorSuite.time_downgrade_to_windows": [[1.7087207586668443e-07], [], "373eb97dd7ce2823e080972249235f528e8b3a47210911981cf432ecf0eef5fb", 1646928319267, 0.44896, [1.6999e-07], [1.7179e-07], [1.7071e-07], [1.7138e-07], [64421], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_eight_bit": [[1.6970038628436962e-07], [], "716ff06a471a5d90af3730f6d4470eba3577432d781e0210dff1fd156b8c549c", 1646928319497, 0.45759, [1.6928e-07], [1.7042e-07], [1.6943e-07], [1.7033e-07], [64463], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_standard": [[1.702653902179122e-07], [], "3a752a7884e99e095c31b2a28cfefdf916cb2033c06afae1ea146a72f3ba650c", 1646928319726, 0.45623, [1.6886e-07], [1.7112e-07], [1.6917e-07], [1.7068e-07], [64311], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_windows": [[1.6978547887025366e-07], [], "1732bbd18ada49eb7b054fc18b40d6acfb533023463366f37203dab6fbb0cc20", 1646928319953, 0.45391, [1.6856e-07], [1.7095e-07], [1.6965e-07], [1.7017e-07], [64982], [10]], "benchmarks.PrettySuite.time_pretty": [[0.0010310937490430661], [], "9bb0e6d8a29aad21b3d1b550a160fa5f1e9030c69d16bad500c0dcc77bff6d01", 1646928320182, 0.44358, [0.0010281], [0.0010342], [0.0010303], [0.0010327], [10], [10]], "benchmarks.PrettySuite.time_pretty_indent_guides": [[0.0014274505010689609], [], "8d71bf19dfe999b0fba95d009986bfd6911c53c7a0c455466725f553005c3bc7", 1646928320403, 0.45385, [0.0014251], [0.0014358], [0.0014254], [0.001431], [8], [10]], "benchmarks.PrettySuite.time_pretty_justify_center": [[0.0014291428565879221], [], "54cbf71bacab14ccbe1d063847c0b89198ed1bbe06edc89c14d2e3c7b1986c41", 1646928320629, 0.43585, [0.0014252], [0.0014377], [0.0014274], [0.0014305], [7], [10]], "benchmarks.StyleSuite.time_parse_ansi": [[1.1466584996186426e-07], [], "a003aaa8017585efeb1cd9c43351282df4df6249bf28a4c447b1304d984aa753", 1646928320845, 0.45462, [1.1386e-07], [1.1489e-07], [1.1426e-07], [1.1481e-07], [95309], [10]], "benchmarks.StyleSuite.time_parse_hex": [[1.1440406518055994e-07], [], "cf5a3f0def435d3da5bc3a6e7549c44c0a02e9cce6c00ecde8dd7f527556f8ca", 1646928321073, 0.45606, [1.1405e-07], [1.149e-07], [1.1421e-07], [1.1456e-07], [95471], [10]], "benchmarks.StyleSuite.time_parse_mixed_complex_style": [[1.1432087586143092e-07], [], "01c9e12ae829b1984e55a5aeef1a9ae6f1461577adaf5ae59f06358c8b52802f", 1646928321302, 0.45638, [1.1421e-07], [1.1494e-07], [1.1425e-07], [1.146e-07], [96087], [10]], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_heavy_wrapping": [null, [], "1ed4d74ea424990cfb40c96f07635f9bcf7b8bacc7ade5204aaf96363e1622ee", 1646928315316, 0.062295], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_medium_wrapping": [null, [], "0880e162a4907ee025cef8ac3380502554fde27fd0c90a4c15cebc9c27f3e333", 1646928315379, 0.06217], "benchmarks.SyntaxWrappingSuite.time_text_wide_terminal_no_wrapping": [null, [], "feb11e94ae6a75de2dee899fb93db098b55cde232710660d7d66f9e2b288d9c0", 1646928315441, 0.061908], "benchmarks.TableSuite.time_table_heavy_wrapping": [[0.002121429200633429], [], "ca515a9739c1e0f8eb922420f9f9caf27321fb13c8bd0bc49b207a0588b370de", 1646928321531, 0.44301, [0.0021103], [0.0021321], [0.0021124], [0.0021268], [5], [10]], "benchmarks.TableSuite.time_table_no_wrapping": [[0.0012849895647377707], [], "8842a5f141d8208ba2bab66e4973e978cb5d0615f326af5d70385ff8fa44b3b9", 1646928321756, 0.44529, [0.0012761], [0.0012971], [0.0012803], [0.0012876], [8], [10]], "benchmarks.TextSuite.time_align_center": [[0.0006609492183997645], [], "1ceeeef2de43fcb3d0dfec409972d8f0eb791e9615fa9f9c959e0423725b089b", 1646928321977, 0.44011, [0.00065855], [0.00066375], [0.000659], [0.00066209], [16], [10]], "benchmarks.TextSuite.time_align_center_unicode_heavy": [[0.0005540559474244027], [], "a83ff79614dd2ae17e8b68f45981fcaa0d9833c59a7a14f171b896cf970f54ce", 1646928322200, 0.43631, [0.00054473], [0.00055554], [0.00054723], [0.00055462], [19], [10]], "benchmarks.TextSuite.time_divide": [[2.5303272734231173e-05], [], "dcc120b921cb2ec77632f8fe2f6f4150d479cb49ef2608f8e86b569a937756e9", 1646928322419, 0.4549, [2.5237e-05], [2.5439e-05], [2.5239e-05], [2.5395e-05], [429], [10]], "benchmarks.TextSuite.time_divide_unicode_heavy": [[0.0001852891554931532], [], "ea53e662c0553324f90ac3336dcee77f733bb33638888e1f84bf71945a2f3f8e", 1646928322645, 0.4503, [0.00018411], [0.0001862], [0.0001845], [0.00018571], [58], [10]], "benchmarks.TextSuite.time_fit": [[4.348280693866252e-05], [], "ec77b412db357b1e1c1e7bc620b941dddfc36dc76d2a66a0417feae4f21fe1d3", 1646928322871, 0.44136, [4.3388e-05], [4.3622e-05], [4.344e-05], [4.358e-05], [246], [10]], "benchmarks.TextSuite.time_fit_unicode_heavy": [[0.00032538104841801067], [], "d1574b4af2ef8b80b95b4dbeeb13e5de67b66783f76f9968834776239dd0dc66", 1646928323095, 0.43236, [0.00032391], [0.00032614], [0.00032494], [0.0003257], [31], [10]], "benchmarks.TextSuite.time_indent_guides": [[0.0003564827583714163], [], "18da036dcfc15ec5e3c11e72be7c8f0c22fba695a5f19c95836be36952376cf2", 1646928323309, 0.4387, [0.00035554], [0.00035729], [0.00035597], [0.00035685], [29], [10]], "benchmarks.TextSuite.time_render": [[4.679865193169243e-06], [], "907d30581cfdc7bb2c4d302b7e3cb474aaefd8b84821365fe105af7d82be3b09", 1646928323527, 0.44595, [4.6556e-06], [4.7006e-06], [4.6596e-06], [4.6866e-06], [2333], [10]], "benchmarks.TextSuite.time_render_unicode_heavy": [[8.495348447468132e-05], [], "b3f1c09dfd06f412a20dacfe378c3b446727c7d4f9a975336eab3daa8543e1cb", 1646928323754, 0.45365, [8.4525e-05], [8.6103e-05], [8.4707e-05], [8.5316e-05], [129], [10]], "benchmarks.TextSuite.time_split": [[3.518007681978976e-05], [], "9c165854130cb95fea5491ffcd8b580a5bd373149da2ef8aace0e9480f649854", 1646928323983, 0.44174, [3.5117e-05], [3.5323e-05], [3.5155e-05], [3.5208e-05], [306], [10]], "benchmarks.TextSuite.time_split_unicode_heavy": [[0.0002751134869820242], [], "d55b02f6d06f478d70635bac3409f3a9899137d9cee87a70a293b8ccf5a6afa4", 1646928324208, 0.442, [0.00027418], [0.00027559], [0.00027491], [0.00027528], [38], [10]], "benchmarks.TextSuite.time_wrapping": [[0.0011011437498382294], [], "8c821eba13d043f228fd902d8f678c397741855db05d02abe9b82f3d65cdf03d", 1646928324429, 0.43825, [0.0010993], [0.0011034], [0.0011002], [0.0011017], [10], [10]], "benchmarks.TextSuite.time_wrapping_unicode_heavy": [[0.0014841130718455783], [], "ec6e2ef08b6cdee182fef4e26c0043f8c365984f9a31be07dbd792e1aed862d8", 1646928324647, 0.43485, [0.0014816], [0.0014891], [0.0014835], [0.0014849], [7], [10]]}, "durations": {"": 2.0028321743011475}, "version": 2} diff --git a/benchmarks/results/darrenburns-2022-mbp/7e4a2db4-virtualenv-py3.10.json b/benchmarks/results/darrenburns-2022-mbp/7e4a2db4-virtualenv-py3.10.json new file mode 100644 index 0000000000..adae4f767f --- /dev/null +++ b/benchmarks/results/darrenburns-2022-mbp/7e4a2db4-virtualenv-py3.10.json @@ -0,0 +1 @@ +{"commit_hash": "7e4a2db4afa29a59ff90d265ad115a225038a5d0", "env_name": "virtualenv-py3.10", "date": 1597915067000, "params": {"arch": "arm64", "cpu": "Apple M1 Pro", "machine": "darrenburns-2022-mbp", "num_cpu": "10", "os": "Darwin 21.2.0", "ram": "17179869184", "python": "3.10"}, "python": "3.10", "requirements": {}, "env_vars": {}, "result_columns": ["result", "params", "version", "started_at", "duration", "stats_ci_99_a", "stats_ci_99_b", "stats_q_25", "stats_q_75", "stats_number", "stats_repeat", "samples", "profile"], "results": {"benchmarks.ColorSuite.time_downgrade_to_eight_bit": [[1.7312274627873389e-07], [], "019b972f782c6291df9a6a4dea9bb3c6268a69b177e71383d6e19a608e84920d", 1646928843145, 0.42725, [1.718e-07], [1.7357e-07], [1.7281e-07], [1.733e-07], [59069], [10]], "benchmarks.ColorSuite.time_downgrade_to_standard": [[1.7344319274046708e-07], [], "f5e8556491c977450fff6ebfd9fff4fc8f12d74829aa5b8570bd27ea7a1c9d28", 1646928843357, 0.42102, [1.7202e-07], [1.7496e-07], [1.7232e-07], [1.739e-07], [58188], [10]], "benchmarks.ColorSuite.time_downgrade_to_windows": [[1.777581145458935e-07], [], "373eb97dd7ce2823e080972249235f528e8b3a47210911981cf432ecf0eef5fb", 1646928843566, 0.42961, [1.7185e-07], [1.7928e-07], [1.7674e-07], [1.7828e-07], [58538], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_eight_bit": [[1.772104383225627e-07], [], "716ff06a471a5d90af3730f6d4470eba3577432d781e0210dff1fd156b8c549c", 1646928843781, 0.4363, [1.734e-07], [1.8227e-07], [1.7444e-07], [1.7931e-07], [58927], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_standard": [[1.7272044444259472e-07], [], "3a752a7884e99e095c31b2a28cfefdf916cb2033c06afae1ea146a72f3ba650c", 1646928844001, 0.43276, [1.7104e-07], [1.7416e-07], [1.719e-07], [1.7337e-07], [58999], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_windows": [[1.7308010152578406e-07], [], "1732bbd18ada49eb7b054fc18b40d6acfb533023463366f37203dab6fbb0cc20", 1646928844218, 0.44067, [1.6953e-07], [1.752e-07], [1.7148e-07], [1.7371e-07], [64487], [10]], "benchmarks.PrettySuite.time_pretty": [[0.0012555486108693811], [], "9bb0e6d8a29aad21b3d1b550a160fa5f1e9030c69d16bad500c0dcc77bff6d01", 1646928844434, 0.44469, [0.0012361], [0.0013045], [0.0012413], [0.0012842], [9], [10]], "benchmarks.PrettySuite.time_pretty_indent_guides": [null, [], "8d71bf19dfe999b0fba95d009986bfd6911c53c7a0c455466725f553005c3bc7", 1646928838944, 0.058717], "benchmarks.PrettySuite.time_pretty_justify_center": [[0.0016895034156429272], [], "54cbf71bacab14ccbe1d063847c0b89198ed1bbe06edc89c14d2e3c7b1986c41", 1646928844656, 0.43305, [0.0016802], [0.0017085], [0.001685], [0.0016947], [6], [10]], "benchmarks.StyleSuite.time_parse_ansi": [[1.1612291047267581e-07], [], "a003aaa8017585efeb1cd9c43351282df4df6249bf28a4c447b1304d984aa753", 1646928844871, 0.43274, [1.1511e-07], [1.188e-07], [1.1582e-07], [1.1652e-07], [96550], [10]], "benchmarks.StyleSuite.time_parse_hex": [[1.1627379717064531e-07], [], "cf5a3f0def435d3da5bc3a6e7549c44c0a02e9cce6c00ecde8dd7f527556f8ca", 1646928845087, 0.43524, [1.1587e-07], [1.1659e-07], [1.1606e-07], [1.164e-07], [96787], [10]], "benchmarks.StyleSuite.time_parse_mixed_complex_style": [[1.1638364998192817e-07], [], "01c9e12ae829b1984e55a5aeef1a9ae6f1461577adaf5ae59f06358c8b52802f", 1646928845303, 0.422, [1.1568e-07], [1.1652e-07], [1.1609e-07], [1.1645e-07], [87022], [10]], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_heavy_wrapping": [null, [], "1ed4d74ea424990cfb40c96f07635f9bcf7b8bacc7ade5204aaf96363e1622ee", 1646928839870, 0.057734], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_medium_wrapping": [null, [], "0880e162a4907ee025cef8ac3380502554fde27fd0c90a4c15cebc9c27f3e333", 1646928839928, 0.057605], "benchmarks.SyntaxWrappingSuite.time_text_wide_terminal_no_wrapping": [null, [], "feb11e94ae6a75de2dee899fb93db098b55cde232710660d7d66f9e2b288d9c0", 1646928839986, 0.059306], "benchmarks.TableSuite.time_table_heavy_wrapping": [[0.0022837875003460795], [], "ca515a9739c1e0f8eb922420f9f9caf27321fb13c8bd0bc49b207a0588b370de", 1646928845514, 0.43581, [0.0022611], [0.0023101], [0.002267], [0.0022996], [5], [10]], "benchmarks.TableSuite.time_table_no_wrapping": [[0.0014666101425453754], [], "8842a5f141d8208ba2bab66e4973e978cb5d0615f326af5d70385ff8fa44b3b9", 1646928845733, 0.42564, [0.0014631], [0.0014723], [0.0014644], [0.0014681], [7], [10]], "benchmarks.TextSuite.time_align_center": [[0.0006732291677811493], [], "1ceeeef2de43fcb3d0dfec409972d8f0eb791e9615fa9f9c959e0423725b089b", 1646928845948, 0.43034, [0.00066385], [0.00068119], [0.00066946], [0.00067633], [15], [10]], "benchmarks.TextSuite.time_align_center_unicode_heavy": [[0.0005628495281497533], [], "a83ff79614dd2ae17e8b68f45981fcaa0d9833c59a7a14f171b896cf970f54ce", 1646928846161, 0.42767, [0.00054804], [0.00058536], [0.00055807], [0.00056617], [18], [10]], "benchmarks.TextSuite.time_divide": [[2.8208985658150956e-05], [], "dcc120b921cb2ec77632f8fe2f6f4150d479cb49ef2608f8e86b569a937756e9", 1646928846371, 0.44365, [2.7865e-05], [2.9148e-05], [2.794e-05], [2.8449e-05], [383], [10]], "benchmarks.TextSuite.time_divide_unicode_heavy": [[0.00018850950883668766], [], "ea53e662c0553324f90ac3336dcee77f733bb33638888e1f84bf71945a2f3f8e", 1646928846594, 0.44194, [0.00018701], [0.00019119], [0.00018714], [0.00019033], [57], [10]], "benchmarks.TextSuite.time_fit": [[4.2368358616119776e-05], [], "ec77b412db357b1e1c1e7bc620b941dddfc36dc76d2a66a0417feae4f21fe1d3", 1646928846816, 0.44202, [4.1847e-05], [4.2673e-05], [4.225e-05], [4.2569e-05], [251], [10]], "benchmarks.TextSuite.time_fit_unicode_heavy": [[0.0003364388389708174], [], "d1574b4af2ef8b80b95b4dbeeb13e5de67b66783f76f9968834776239dd0dc66", 1646928847036, 0.43241, [0.00033108], [0.00033716], [0.00033583], [0.00033691], [31], [10]], "benchmarks.TextSuite.time_indent_guides": [null, [], "18da036dcfc15ec5e3c11e72be7c8f0c22fba695a5f19c95836be36952376cf2", 1646928841789, 0.057951], "benchmarks.TextSuite.time_render": [[4.658614678212554e-06], [], "907d30581cfdc7bb2c4d302b7e3cb474aaefd8b84821365fe105af7d82be3b09", 1646928847251, 0.43115, [4.6482e-06], [4.7763e-06], [4.6519e-06], [4.6832e-06], [2119], [10]], "benchmarks.TextSuite.time_render_unicode_heavy": [[8.536262896541302e-05], [], "b3f1c09dfd06f412a20dacfe378c3b446727c7d4f9a975336eab3daa8543e1cb", 1646928847469, 0.4424, [8.4729e-05], [8.5824e-05], [8.5276e-05], [8.5483e-05], [128], [10]], "benchmarks.TextSuite.time_split": [[3.368716559318939e-05], [], "9c165854130cb95fea5491ffcd8b580a5bd373149da2ef8aace0e9480f649854", 1646928847692, 0.43337, [3.3514e-05], [3.4128e-05], [3.3555e-05], [3.38e-05], [311], [10]], "benchmarks.TextSuite.time_split_unicode_heavy": [[0.0002821019191508861], [], "d55b02f6d06f478d70635bac3409f3a9899137d9cee87a70a293b8ccf5a6afa4", 1646928847907, 0.43083, [0.00027847], [0.00028576], [0.00027943], [0.00028431], [37], [10]], "benchmarks.TextSuite.time_wrapping": [[0.0011662615563384155], [], "8c821eba13d043f228fd902d8f678c397741855db05d02abe9b82f3d65cdf03d", 1646928848121, 0.42793, [0.0011651], [0.0011752], [0.0011655], [0.0011683], [9], [10]], "benchmarks.TextSuite.time_wrapping_unicode_heavy": [[0.0015554523581938285], [], "ec6e2ef08b6cdee182fef4e26c0043f8c365984f9a31be07dbd792e1aed862d8", 1646928848338, 0.4403, [0.0015541], [0.0015578], [0.0015549], [0.0015561], [7], [10]]}, "durations": {"": 2.0842061042785645}, "version": 2} diff --git a/benchmarks/results/darrenburns-2022-mbp/7ef7ffee-virtualenv-py3.10.json b/benchmarks/results/darrenburns-2022-mbp/7ef7ffee-virtualenv-py3.10.json new file mode 100644 index 0000000000..3fad19fc4d --- /dev/null +++ b/benchmarks/results/darrenburns-2022-mbp/7ef7ffee-virtualenv-py3.10.json @@ -0,0 +1 @@ +{"commit_hash": "7ef7ffeee33f269be0a9c36efad943ac8bd15487", "env_name": "virtualenv-py3.10", "date": 1609437433000, "params": {"arch": "arm64", "cpu": "Apple M1 Pro", "machine": "darrenburns-2022-mbp", "num_cpu": "10", "os": "Darwin 21.2.0", "ram": "17179869184", "python": "3.10"}, "python": "3.10", "requirements": {}, "env_vars": {}, "result_columns": ["result", "params", "version", "started_at", "duration", "stats_ci_99_a", "stats_ci_99_b", "stats_q_25", "stats_q_75", "stats_number", "stats_repeat", "samples", "profile"], "results": {"benchmarks.ColorSuite.time_downgrade_to_eight_bit": [[1.6997115926848885e-07], [], "019b972f782c6291df9a6a4dea9bb3c6268a69b177e71383d6e19a608e84920d", 1646929204123, 0.45748, [1.6906e-07], [1.7159e-07], [1.6974e-07], [1.7082e-07], [64319], [10]], "benchmarks.ColorSuite.time_downgrade_to_standard": [[1.706327780843142e-07], [], "f5e8556491c977450fff6ebfd9fff4fc8f12d74829aa5b8570bd27ea7a1c9d28", 1646929204351, 0.45507, [1.6897e-07], [1.7215e-07], [1.7017e-07], [1.7123e-07], [64363], [10]], "benchmarks.ColorSuite.time_downgrade_to_windows": [[1.707562660580813e-07], [], "373eb97dd7ce2823e080972249235f528e8b3a47210911981cf432ecf0eef5fb", 1646929204579, 0.44674, [1.6962e-07], [1.7201e-07], [1.6994e-07], [1.7098e-07], [64554], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_eight_bit": [[1.7003118888666897e-07], [], "716ff06a471a5d90af3730f6d4470eba3577432d781e0210dff1fd156b8c549c", 1646929204806, 0.45514, [1.6919e-07], [1.7091e-07], [1.6945e-07], [1.7037e-07], [64286], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_standard": [[1.7044878890213844e-07], [], "3a752a7884e99e095c31b2a28cfefdf916cb2033c06afae1ea146a72f3ba650c", 1646929205033, 0.45498, [1.7014e-07], [1.7266e-07], [1.7024e-07], [1.7136e-07], [64156], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_windows": [[1.7011135523638199e-07], [], "1732bbd18ada49eb7b054fc18b40d6acfb533023463366f37203dab6fbb0cc20", 1646929205260, 0.45723, [1.6903e-07], [1.7123e-07], [1.6939e-07], [1.7038e-07], [64447], [10]], "benchmarks.PrettySuite.time_pretty": [[0.0010279999507474711], [], "9bb0e6d8a29aad21b3d1b550a160fa5f1e9030c69d16bad500c0dcc77bff6d01", 1646929205487, 0.44118, [0.0010227], [0.0010321], [0.0010253], [0.0010298], [10], [10]], "benchmarks.PrettySuite.time_pretty_indent_guides": [[0.0014366607148466365], [], "8d71bf19dfe999b0fba95d009986bfd6911c53c7a0c455466725f553005c3bc7", 1646929205705, 0.43525, [0.0014323], [0.001451], [0.0014361], [0.0014396], [7], [10]], "benchmarks.PrettySuite.time_pretty_justify_center": [[0.0014127708127489313], [], "54cbf71bacab14ccbe1d063847c0b89198ed1bbe06edc89c14d2e3c7b1986c41", 1646929205920, 0.44605, [0.0014089], [0.0014172], [0.0014096], [0.0014134], [8], [10]], "benchmarks.StyleSuite.time_parse_ansi": [[1.1407525987620847e-07], [], "a003aaa8017585efeb1cd9c43351282df4df6249bf28a4c447b1304d984aa753", 1646929206143, 0.45375, [1.1387e-07], [1.1429e-07], [1.1394e-07], [1.1424e-07], [95828], [10]], "benchmarks.StyleSuite.time_parse_hex": [[1.1432287290079367e-07], [], "cf5a3f0def435d3da5bc3a6e7549c44c0a02e9cce6c00ecde8dd7f527556f8ca", 1646929206370, 0.45274, [1.1392e-07], [1.1498e-07], [1.1413e-07], [1.1467e-07], [95344], [10]], "benchmarks.StyleSuite.time_parse_mixed_complex_style": [[1.1463674062890038e-07], [], "01c9e12ae829b1984e55a5aeef1a9ae6f1461577adaf5ae59f06358c8b52802f", 1646929206595, 0.45355, [1.1425e-07], [1.1496e-07], [1.1445e-07], [1.1468e-07], [95385], [10]], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_heavy_wrapping": [null, [], "1ed4d74ea424990cfb40c96f07635f9bcf7b8bacc7ade5204aaf96363e1622ee", 1646929200596, 0.062448], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_medium_wrapping": [null, [], "0880e162a4907ee025cef8ac3380502554fde27fd0c90a4c15cebc9c27f3e333", 1646929200659, 0.061732], "benchmarks.SyntaxWrappingSuite.time_text_wide_terminal_no_wrapping": [null, [], "feb11e94ae6a75de2dee899fb93db098b55cde232710660d7d66f9e2b288d9c0", 1646929200721, 0.061748], "benchmarks.TableSuite.time_table_heavy_wrapping": [[0.003225901000405429], [], "ca515a9739c1e0f8eb922420f9f9caf27321fb13c8bd0bc49b207a0588b370de", 1646929206822, 0.47048, [0.0032218], [0.0032385], [0.0032253], [0.0032281], [4], [10]], "benchmarks.TableSuite.time_table_no_wrapping": [[0.002120674998150207], [], "8842a5f141d8208ba2bab66e4973e978cb5d0615f326af5d70385ff8fa44b3b9", 1646929207055, 0.44282, [0.0021002], [0.0021341], [0.0021094], [0.0021281], [5], [10]], "benchmarks.TextSuite.time_align_center": [[0.0006601445311389398], [], "1ceeeef2de43fcb3d0dfec409972d8f0eb791e9615fa9f9c959e0423725b089b", 1646929207279, 0.44052, [0.00065804], [0.00066373], [0.00065897], [0.00066197], [16], [10]], "benchmarks.TextSuite.time_align_center_unicode_heavy": [[0.000546400237669188], [], "a83ff79614dd2ae17e8b68f45981fcaa0d9833c59a7a14f171b896cf970f54ce", 1646929207500, 0.44218, [0.00054333], [0.00055386], [0.0005453], [0.00054747], [19], [10]], "benchmarks.TextSuite.time_divide": [[2.8034559086825592e-05], [], "dcc120b921cb2ec77632f8fe2f6f4150d479cb49ef2608f8e86b569a937756e9", 1646929207718, 0.44825, [2.7841e-05], [2.831e-05], [2.7864e-05], [2.8285e-05], [381], [10]], "benchmarks.TextSuite.time_divide_unicode_heavy": [[0.00018681578078764703], [], "ea53e662c0553324f90ac3336dcee77f733bb33638888e1f84bf71945a2f3f8e", 1646929207942, 0.44605, [0.0001861], [0.00018853], [0.00018647], [0.00018714], [57], [10]], "benchmarks.TextSuite.time_fit": [[4.239101994845764e-05], [], "ec77b412db357b1e1c1e7bc620b941dddfc36dc76d2a66a0417feae4f21fe1d3", 1646929208165, 0.43927, [4.2093e-05], [4.244e-05], [4.2172e-05], [4.2416e-05], [251], [10]], "benchmarks.TextSuite.time_fit_unicode_heavy": [[0.0003296060604043305], [], "d1574b4af2ef8b80b95b4dbeeb13e5de67b66783f76f9968834776239dd0dc66", 1646929208387, 0.45608, [0.00032852], [0.00033145], [0.00032881], [0.00033094], [33], [10]], "benchmarks.TextSuite.time_indent_guides": [[0.00039179086497125146], [], "18da036dcfc15ec5e3c11e72be7c8f0c22fba695a5f19c95836be36952376cf2", 1646929208613, 0.43372, [0.0003914], [0.00039339], [0.0003916], [0.00039198], [26], [10]], "benchmarks.TextSuite.time_render": [[4.708054804081965e-06], [], "907d30581cfdc7bb2c4d302b7e3cb474aaefd8b84821365fe105af7d82be3b09", 1646929208828, 0.44413, [4.6782e-06], [4.716e-06], [4.7039e-06], [4.7135e-06], [2317], [10]], "benchmarks.TextSuite.time_render_unicode_heavy": [[8.508661421800516e-05], [], "b3f1c09dfd06f412a20dacfe378c3b446727c7d4f9a975336eab3daa8543e1cb", 1646929209053, 0.44699, [8.4722e-05], [8.6361e-05], [8.4774e-05], [8.5719e-05], [127], [10]], "benchmarks.TextSuite.time_split": [[3.385616983928813e-05], [], "9c165854130cb95fea5491ffcd8b580a5bd373149da2ef8aace0e9480f649854", 1646929209279, 0.44384, [3.3669e-05], [3.3995e-05], [3.3734e-05], [3.389e-05], [312], [10]], "benchmarks.TextSuite.time_split_unicode_heavy": [[0.00027874831072482705], [], "d55b02f6d06f478d70635bac3409f3a9899137d9cee87a70a293b8ccf5a6afa4", 1646929209499, 0.43593, [0.00027804], [0.0002805], [0.00027849], [0.00027933], [37], [10]], "benchmarks.TextSuite.time_wrapping": [[0.0011445926098127125], [], "8c821eba13d043f228fd902d8f678c397741855db05d02abe9b82f3d65cdf03d", 1646929209716, 0.43905, [0.0011432], [0.0011518], [0.001144], [0.0011452], [9], [10]], "benchmarks.TextSuite.time_wrapping_unicode_heavy": [[0.0015272857147335473], [], "ec6e2ef08b6cdee182fef4e26c0043f8c365984f9a31be07dbd792e1aed862d8", 1646929209934, 0.4428, [0.0015239], [0.0015356], [0.0015245], [0.0015317], [7], [10]]}, "durations": {"": 1.9905059337615967}, "version": 2} diff --git a/benchmarks/results/darrenburns-2022-mbp/837b6d7e-virtualenv-py3.10.json b/benchmarks/results/darrenburns-2022-mbp/837b6d7e-virtualenv-py3.10.json new file mode 100644 index 0000000000..58d918a829 --- /dev/null +++ b/benchmarks/results/darrenburns-2022-mbp/837b6d7e-virtualenv-py3.10.json @@ -0,0 +1 @@ +{"commit_hash": "837b6d7e85254f0047cb41a4cbe0e4b00f54809d", "env_name": "virtualenv-py3.10", "date": 1593800813000, "params": {"arch": "arm64", "cpu": "Apple M1 Pro", "machine": "darrenburns-2022-mbp", "num_cpu": "10", "os": "Darwin 21.2.0", "ram": "17179869184", "python": "3.10"}, "python": "3.10", "requirements": {}, "env_vars": {}, "result_columns": ["result", "params", "version", "started_at", "duration", "stats_ci_99_a", "stats_ci_99_b", "stats_q_25", "stats_q_75", "stats_number", "stats_repeat", "samples", "profile"], "results": {"benchmarks.ColorSuite.time_downgrade_to_eight_bit": [[1.7314400652883433e-07], [], "019b972f782c6291df9a6a4dea9bb3c6268a69b177e71383d6e19a608e84920d", 1646928628094, 0.43377, [1.7156e-07], [1.7366e-07], [1.7265e-07], [1.7323e-07], [64761], [10]], "benchmarks.ColorSuite.time_downgrade_to_standard": [[1.7027701335729176e-07], [], "f5e8556491c977450fff6ebfd9fff4fc8f12d74829aa5b8570bd27ea7a1c9d28", 1646928628311, 0.45028, [1.6933e-07], [1.7068e-07], [1.6991e-07], [1.7056e-07], [64681], [10]], "benchmarks.ColorSuite.time_downgrade_to_windows": [[1.7082448805436622e-07], [], "373eb97dd7ce2823e080972249235f528e8b3a47210911981cf432ecf0eef5fb", 1646928628535, 0.4374, [1.6882e-07], [1.7336e-07], [1.7015e-07], [1.7289e-07], [64121], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_eight_bit": [[1.716318124119509e-07], [], "716ff06a471a5d90af3730f6d4470eba3577432d781e0210dff1fd156b8c549c", 1646928628757, 0.43994, [1.7043e-07], [1.7408e-07], [1.707e-07], [1.7392e-07], [64315], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_standard": [[1.731136091072997e-07], [], "3a752a7884e99e095c31b2a28cfefdf916cb2033c06afae1ea146a72f3ba650c", 1646928628981, 0.42481, [1.7236e-07], [1.7422e-07], [1.7288e-07], [1.7371e-07], [58807], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_windows": [[1.7379118770533637e-07], [], "1732bbd18ada49eb7b054fc18b40d6acfb533023463366f37203dab6fbb0cc20", 1646928629192, 0.45223, [1.7311e-07], [1.7478e-07], [1.7336e-07], [1.7419e-07], [64285], [10]], "benchmarks.PrettySuite.time_pretty": [[0.0022265042032813655], [], "9bb0e6d8a29aad21b3d1b550a160fa5f1e9030c69d16bad500c0dcc77bff6d01", 1646928629419, 0.43745, [0.0022056], [0.0022521], [0.002208], [0.0022448], [5], [10]], "benchmarks.PrettySuite.time_pretty_indent_guides": [null, [], "8d71bf19dfe999b0fba95d009986bfd6911c53c7a0c455466725f553005c3bc7", 1646928624370, 0.058751], "benchmarks.PrettySuite.time_pretty_justify_center": [null, [], "54cbf71bacab14ccbe1d063847c0b89198ed1bbe06edc89c14d2e3c7b1986c41", 1646928624429, 0.058399], "benchmarks.StyleSuite.time_parse_ansi": [[1.1601193713591404e-07], [], "a003aaa8017585efeb1cd9c43351282df4df6249bf28a4c447b1304d984aa753", 1646928629634, 0.44023, [1.1556e-07], [1.1614e-07], [1.159e-07], [1.1604e-07], [96547], [10]], "benchmarks.StyleSuite.time_parse_hex": [[1.1387365450129381e-07], [], "cf5a3f0def435d3da5bc3a6e7549c44c0a02e9cce6c00ecde8dd7f527556f8ca", 1646928629859, 0.43791, [1.1344e-07], [1.1448e-07], [1.1376e-07], [1.1429e-07], [96434], [10]], "benchmarks.StyleSuite.time_parse_mixed_complex_style": [[1.1488108242607518e-07], [], "01c9e12ae829b1984e55a5aeef1a9ae6f1461577adaf5ae59f06358c8b52802f", 1646928630083, 0.43797, [1.1354e-07], [1.1628e-07], [1.138e-07], [1.1613e-07], [96138], [10]], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_heavy_wrapping": [null, [], "1ed4d74ea424990cfb40c96f07635f9bcf7b8bacc7ade5204aaf96363e1622ee", 1646928625132, 0.058143], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_medium_wrapping": [null, [], "0880e162a4907ee025cef8ac3380502554fde27fd0c90a4c15cebc9c27f3e333", 1646928625190, 0.057854], "benchmarks.SyntaxWrappingSuite.time_text_wide_terminal_no_wrapping": [null, [], "feb11e94ae6a75de2dee899fb93db098b55cde232710660d7d66f9e2b288d9c0", 1646928625248, 0.057857], "benchmarks.TableSuite.time_table_heavy_wrapping": [[0.002100912400055677], [], "ca515a9739c1e0f8eb922420f9f9caf27321fb13c8bd0bc49b207a0588b370de", 1646928630306, 0.43308, [0.0020977], [0.0021073], [0.0021003], [0.0021016], [5], [10]], "benchmarks.TableSuite.time_table_no_wrapping": [[0.0014629047156112002], [], "8842a5f141d8208ba2bab66e4973e978cb5d0615f326af5d70385ff8fa44b3b9", 1646928630525, 0.42589, [0.0014545], [0.0014674], [0.0014561], [0.001465], [7], [10]], "benchmarks.TextSuite.time_align_center": [null, [], "1ceeeef2de43fcb3d0dfec409972d8f0eb791e9615fa9f9c959e0423725b089b", 1646928625732, 0.058355], "benchmarks.TextSuite.time_align_center_unicode_heavy": [null, [], "a83ff79614dd2ae17e8b68f45981fcaa0d9833c59a7a14f171b896cf970f54ce", 1646928625790, 0.058843], "benchmarks.TextSuite.time_divide": [[2.778382078357428e-05], [], "dcc120b921cb2ec77632f8fe2f6f4150d479cb49ef2608f8e86b569a937756e9", 1646928630740, 0.44048, [2.7731e-05], [2.783e-05], [2.774e-05], [2.7793e-05], [385], [10]], "benchmarks.TextSuite.time_divide_unicode_heavy": [[0.0001872054037225449], [], "ea53e662c0553324f90ac3336dcee77f733bb33638888e1f84bf71945a2f3f8e", 1646928630960, 0.43882, [0.00018586], [0.0001878], [0.00018685], [0.00018744], [57], [10]], "benchmarks.TextSuite.time_fit": [[4.273183603072539e-05], [], "ec77b412db357b1e1c1e7bc620b941dddfc36dc76d2a66a0417feae4f21fe1d3", 1646928631179, 0.44109, [4.2158e-05], [4.3363e-05], [4.227e-05], [4.3173e-05], [250], [10]], "benchmarks.TextSuite.time_fit_unicode_heavy": [[0.000335991935102239], [], "d1574b4af2ef8b80b95b4dbeeb13e5de67b66783f76f9968834776239dd0dc66", 1646928631400, 0.43127, [0.00033443], [0.00033806], [0.00033488], [0.00033686], [31], [10]], "benchmarks.TextSuite.time_indent_guides": [null, [], "18da036dcfc15ec5e3c11e72be7c8f0c22fba695a5f19c95836be36952376cf2", 1646928626729, 0.058235], "benchmarks.TextSuite.time_render": [[4.682887363269996e-06], [], "907d30581cfdc7bb2c4d302b7e3cb474aaefd8b84821365fe105af7d82be3b09", 1646928631614, 0.4372, [4.6773e-06], [4.6896e-06], [4.681e-06], [4.6848e-06], [2326], [10]], "benchmarks.TextSuite.time_render_unicode_heavy": [[8.672292907557296e-05], [], "b3f1c09dfd06f412a20dacfe378c3b446727c7d4f9a975336eab3daa8543e1cb", 1646928631836, 0.44366, [8.4552e-05], [8.811e-05], [8.6325e-05], [8.7698e-05], [127], [10]], "benchmarks.TextSuite.time_split": [[3.445008112905341e-05], [], "9c165854130cb95fea5491ffcd8b580a5bd373149da2ef8aace0e9480f649854", 1646928632058, 0.43619, [3.3619e-05], [3.4768e-05], [3.4274e-05], [3.4602e-05], [308], [10]], "benchmarks.TextSuite.time_split_unicode_heavy": [[0.0002822015812853351], [], "d55b02f6d06f478d70635bac3409f3a9899137d9cee87a70a293b8ccf5a6afa4", 1646928632274, 0.43194, [0.00027969], [0.00028413], [0.0002807], [0.00028398], [37], [10]], "benchmarks.TextSuite.time_wrapping": [[0.0011445162219590405], [], "8c821eba13d043f228fd902d8f678c397741855db05d02abe9b82f3d65cdf03d", 1646928632490, 0.43268, [0.0011387], [0.0011504], [0.001142], [0.0011454], [9], [10]], "benchmarks.TextSuite.time_wrapping_unicode_heavy": [[0.0015336725711157279], [], "ec6e2ef08b6cdee182fef4e26c0043f8c365984f9a31be07dbd792e1aed862d8", 1646928632704, 0.43729, [0.0015169], [0.0015511], [0.0015199], [0.0015466], [7], [10]]}, "durations": {"": 1.9572207927703857}, "version": 2} diff --git a/benchmarks/results/darrenburns-2022-mbp/88b07b3e-virtualenv-py3.10.json b/benchmarks/results/darrenburns-2022-mbp/88b07b3e-virtualenv-py3.10.json new file mode 100644 index 0000000000..4e730690a1 --- /dev/null +++ b/benchmarks/results/darrenburns-2022-mbp/88b07b3e-virtualenv-py3.10.json @@ -0,0 +1 @@ +{"commit_hash": "88b07b3ebc64356e6036bb8a2f33b006af64f7a7", "env_name": "virtualenv-py3.10", "date": 1610705207000, "params": {"arch": "arm64", "cpu": "Apple M1 Pro", "machine": "darrenburns-2022-mbp", "num_cpu": "10", "os": "Darwin 21.2.0", "ram": "17179869184", "python": "3.10"}, "python": "3.10", "requirements": {}, "env_vars": {}, "result_columns": ["result", "params", "version", "started_at", "duration", "stats_ci_99_a", "stats_ci_99_b", "stats_q_25", "stats_q_75", "stats_number", "stats_repeat", "samples", "profile"], "results": {"benchmarks.ColorSuite.time_downgrade_to_eight_bit": [[1.7024395317885234e-07], [], "019b972f782c6291df9a6a4dea9bb3c6268a69b177e71383d6e19a608e84920d", 1646929275552, 0.4558, [1.6925e-07], [1.7062e-07], [1.6967e-07], [1.7054e-07], [59618], [10]], "benchmarks.ColorSuite.time_downgrade_to_standard": [[1.7039474633023662e-07], [], "f5e8556491c977450fff6ebfd9fff4fc8f12d74829aa5b8570bd27ea7a1c9d28", 1646929275769, 0.45688, [1.6977e-07], [1.707e-07], [1.7021e-07], [1.7051e-07], [64259], [10]], "benchmarks.ColorSuite.time_downgrade_to_windows": [[1.7085925471028554e-07], [], "373eb97dd7ce2823e080972249235f528e8b3a47210911981cf432ecf0eef5fb", 1646929275997, 0.45949, [1.7047e-07], [1.716e-07], [1.7067e-07], [1.713e-07], [63654], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_eight_bit": [[1.6988362170702758e-07], [], "716ff06a471a5d90af3730f6d4470eba3577432d781e0210dff1fd156b8c549c", 1646929276226, 0.45801, [1.6885e-07], [1.7161e-07], [1.6956e-07], [1.7016e-07], [63835], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_standard": [[1.699852078992171e-07], [], "3a752a7884e99e095c31b2a28cfefdf916cb2033c06afae1ea146a72f3ba650c", 1646929276456, 0.45899, [1.691e-07], [1.7179e-07], [1.697e-07], [1.7004e-07], [64392], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_windows": [[1.7007414558399993e-07], [], "1732bbd18ada49eb7b054fc18b40d6acfb533023463366f37203dab6fbb0cc20", 1646929276686, 0.46057, [1.6966e-07], [1.709e-07], [1.6978e-07], [1.7068e-07], [64252], [10]], "benchmarks.PrettySuite.time_pretty": [[0.0010232624990749173], [], "9bb0e6d8a29aad21b3d1b550a160fa5f1e9030c69d16bad500c0dcc77bff6d01", 1646929276914, 0.44575, [0.0010199], [0.0010282], [0.0010218], [0.0010261], [10], [10]], "benchmarks.PrettySuite.time_pretty_indent_guides": [[0.0014402618565197503], [], "8d71bf19dfe999b0fba95d009986bfd6911c53c7a0c455466725f553005c3bc7", 1646929277134, 0.43938, [0.0014295], [0.0014576], [0.0014332], [0.0014474], [7], [10]], "benchmarks.PrettySuite.time_pretty_justify_center": [[0.0014254296856961446], [], "54cbf71bacab14ccbe1d063847c0b89198ed1bbe06edc89c14d2e3c7b1986c41", 1646929277353, 0.45935, [0.0014094], [0.0014915], [0.001415], [0.0014579], [8], [10]], "benchmarks.StyleSuite.time_parse_ansi": [[1.1414959633109373e-07], [], "a003aaa8017585efeb1cd9c43351282df4df6249bf28a4c447b1304d984aa753", 1646929277591, 0.45539, [1.1374e-07], [1.1518e-07], [1.1406e-07], [1.1437e-07], [95751], [10]], "benchmarks.StyleSuite.time_parse_hex": [[1.1459040947674226e-07], [], "cf5a3f0def435d3da5bc3a6e7549c44c0a02e9cce6c00ecde8dd7f527556f8ca", 1646929277820, 0.45661, [1.142e-07], [1.1646e-07], [1.1422e-07], [1.1584e-07], [95759], [10]], "benchmarks.StyleSuite.time_parse_mixed_complex_style": [[1.1420448083004163e-07], [], "01c9e12ae829b1984e55a5aeef1a9ae6f1461577adaf5ae59f06358c8b52802f", 1646929278050, 0.45519, [1.137e-07], [1.1515e-07], [1.1399e-07], [1.1464e-07], [95630], [10]], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_heavy_wrapping": [null, [], "1ed4d74ea424990cfb40c96f07635f9bcf7b8bacc7ade5204aaf96363e1622ee", 1646929271990, 0.062413], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_medium_wrapping": [null, [], "0880e162a4907ee025cef8ac3380502554fde27fd0c90a4c15cebc9c27f3e333", 1646929272053, 0.061734], "benchmarks.SyntaxWrappingSuite.time_text_wide_terminal_no_wrapping": [null, [], "feb11e94ae6a75de2dee899fb93db098b55cde232710660d7d66f9e2b288d9c0", 1646929272115, 0.061817], "benchmarks.TableSuite.time_table_heavy_wrapping": [[0.0032390416236012243], [], "ca515a9739c1e0f8eb922420f9f9caf27321fb13c8bd0bc49b207a0588b370de", 1646929278278, 0.46664, [0.0032268], [0.0032562], [0.0032348], [0.0032404], [4], [10]], "benchmarks.TableSuite.time_table_no_wrapping": [[0.00213432919990737], [], "8842a5f141d8208ba2bab66e4973e978cb5d0615f326af5d70385ff8fa44b3b9", 1646929278514, 0.44632, [0.0021176], [0.0021573], [0.0021264], [0.0021419], [5], [10]], "benchmarks.TextSuite.time_align_center": [[0.0006624570314670564], [], "1ceeeef2de43fcb3d0dfec409972d8f0eb791e9615fa9f9c959e0423725b089b", 1646929278740, 0.44399, [0.00065892], [0.0006752], [0.00066057], [0.00067112], [16], [10]], "benchmarks.TextSuite.time_align_center_unicode_heavy": [[0.0005475789473980274], [], "a83ff79614dd2ae17e8b68f45981fcaa0d9833c59a7a14f171b896cf970f54ce", 1646929278964, 0.44477, [0.00054442], [0.00055428], [0.00054638], [0.00054814], [19], [10]], "benchmarks.TextSuite.time_divide": [[2.785563578661385e-05], [], "dcc120b921cb2ec77632f8fe2f6f4150d479cb49ef2608f8e86b569a937756e9", 1646929279184, 0.44793, [2.7741e-05], [2.7975e-05], [2.7784e-05], [2.787e-05], [383], [10]], "benchmarks.TextSuite.time_divide_unicode_heavy": [[0.00018819684492913877], [], "ea53e662c0553324f90ac3336dcee77f733bb33638888e1f84bf71945a2f3f8e", 1646929279408, 0.45633, [0.000187], [0.00019449], [0.00018749], [0.00018916], [58], [10]], "benchmarks.TextSuite.time_fit": [[4.244121055492023e-05], [], "ec77b412db357b1e1c1e7bc620b941dddfc36dc76d2a66a0417feae4f21fe1d3", 1646929279635, 0.44965, [4.2208e-05], [4.386e-05], [4.227e-05], [4.2752e-05], [247], [10]], "benchmarks.TextSuite.time_fit_unicode_heavy": [[0.0003306290323493041], [], "d1574b4af2ef8b80b95b4dbeeb13e5de67b66783f76f9968834776239dd0dc66", 1646929279855, 0.43765, [0.00032947], [0.00033426], [0.00033029], [0.00033243], [31], [10]], "benchmarks.TextSuite.time_indent_guides": [[0.00039268511542244454], [], "18da036dcfc15ec5e3c11e72be7c8f0c22fba695a5f19c95836be36952376cf2", 1646929280072, 0.43942, [0.00039134], [0.00040039], [0.00039235], [0.0003952], [26], [10]], "benchmarks.TextSuite.time_render": [[4.67088127233714e-06], [], "907d30581cfdc7bb2c4d302b7e3cb474aaefd8b84821365fe105af7d82be3b09", 1646929280287, 0.45986, [4.6494e-06], [4.7587e-06], [4.6563e-06], [4.6839e-06], [2333], [10]], "benchmarks.TextSuite.time_render_unicode_heavy": [[8.528571428513036e-05], [], "b3f1c09dfd06f412a20dacfe378c3b446727c7d4f9a975336eab3daa8543e1cb", 1646929280516, 0.45045, [8.4575e-05], [8.6745e-05], [8.494e-05], [8.629e-05], [126], [10]], "benchmarks.TextSuite.time_split": [[3.392754973528776e-05], [], "9c165854130cb95fea5491ffcd8b580a5bd373149da2ef8aace0e9480f649854", 1646929280742, 0.44714, [3.3744e-05], [3.4147e-05], [3.3868e-05], [3.4032e-05], [312], [10]], "benchmarks.TextSuite.time_split_unicode_heavy": [[0.0002799898647936061], [], "d55b02f6d06f478d70635bac3409f3a9899137d9cee87a70a293b8ccf5a6afa4", 1646929280965, 0.44157, [0.00027838], [0.00028276], [0.00027951], [0.00028074], [37], [10]], "benchmarks.TextSuite.time_wrapping": [[0.001156333332700241], [], "8c821eba13d043f228fd902d8f678c397741855db05d02abe9b82f3d65cdf03d", 1646929281184, 0.43864, [0.0011494], [0.0012274], [0.00115], [0.0011836], [9], [10]], "benchmarks.TextSuite.time_wrapping_unicode_heavy": [[0.0015330029979980153], [], "ec6e2ef08b6cdee182fef4e26c0043f8c365984f9a31be07dbd792e1aed862d8", 1646929281404, 0.45116, [0.0015266], [0.0015464], [0.0015283], [0.0015362], [7], [10]]}, "durations": {"": 2.0033068656921387}, "version": 2} diff --git a/benchmarks/results/darrenburns-2022-mbp/8a7f5d82-virtualenv-py3.10.json b/benchmarks/results/darrenburns-2022-mbp/8a7f5d82-virtualenv-py3.10.json new file mode 100644 index 0000000000..86e519b5bf --- /dev/null +++ b/benchmarks/results/darrenburns-2022-mbp/8a7f5d82-virtualenv-py3.10.json @@ -0,0 +1 @@ +{"commit_hash": "8a7f5d82ba7bbe108a17bdc75720d11852968aed", "env_name": "virtualenv-py3.10", "date": 1608315995000, "params": {"arch": "arm64", "cpu": "Apple M1 Pro", "machine": "darrenburns-2022-mbp", "num_cpu": "10", "os": "Darwin 21.2.0", "ram": "17179869184", "python": "3.10"}, "python": "3.10", "requirements": {}, "env_vars": {}, "result_columns": ["result", "params", "version", "started_at", "duration", "stats_ci_99_a", "stats_ci_99_b", "stats_q_25", "stats_q_75", "stats_number", "stats_repeat", "samples", "profile"], "results": {"benchmarks.ColorSuite.time_downgrade_to_eight_bit": [[1.6953014842832631e-07], [], "019b972f782c6291df9a6a4dea9bb3c6268a69b177e71383d6e19a608e84920d", 1646929175581, 0.45837, [1.6859e-07], [1.7111e-07], [1.6924e-07], [1.7013e-07], [64614], [10]], "benchmarks.ColorSuite.time_downgrade_to_standard": [[1.7055859463819154e-07], [], "f5e8556491c977450fff6ebfd9fff4fc8f12d74829aa5b8570bd27ea7a1c9d28", 1646929175811, 0.4559, [1.6873e-07], [1.7156e-07], [1.7018e-07], [1.708e-07], [64605], [10]], "benchmarks.ColorSuite.time_downgrade_to_windows": [[1.6983904257291298e-07], [], "373eb97dd7ce2823e080972249235f528e8b3a47210911981cf432ecf0eef5fb", 1646929176040, 0.44875, [1.6884e-07], [1.7136e-07], [1.6931e-07], [1.7113e-07], [64837], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_eight_bit": [[1.7045226080122942e-07], [], "716ff06a471a5d90af3730f6d4470eba3577432d781e0210dff1fd156b8c549c", 1646929176270, 0.45509, [1.6886e-07], [1.7153e-07], [1.6988e-07], [1.7096e-07], [64664], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_standard": [[1.7083843096820946e-07], [], "3a752a7884e99e095c31b2a28cfefdf916cb2033c06afae1ea146a72f3ba650c", 1646929176500, 0.45395, [1.7e-07], [1.7213e-07], [1.7072e-07], [1.7119e-07], [63852], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_windows": [[1.7056262349747764e-07], [], "1732bbd18ada49eb7b054fc18b40d6acfb533023463366f37203dab6fbb0cc20", 1646929176726, 0.45651, [1.6929e-07], [1.7151e-07], [1.7002e-07], [1.7084e-07], [64784], [10]], "benchmarks.PrettySuite.time_pretty": [[0.0010255041997879744], [], "9bb0e6d8a29aad21b3d1b550a160fa5f1e9030c69d16bad500c0dcc77bff6d01", 1646929176955, 0.44675, [0.0010244], [0.0010292], [0.0010247], [0.0010267], [10], [10]], "benchmarks.PrettySuite.time_pretty_indent_guides": [[0.0014361369290522166], [], "8d71bf19dfe999b0fba95d009986bfd6911c53c7a0c455466725f553005c3bc7", 1646929177179, 0.43637, [0.0014333], [0.0014427], [0.0014342], [0.0014383], [7], [10]], "benchmarks.PrettySuite.time_pretty_justify_center": [[0.0014121197491476778], [], "54cbf71bacab14ccbe1d063847c0b89198ed1bbe06edc89c14d2e3c7b1986c41", 1646929177395, 0.447, [0.0014098], [0.001421], [0.0014109], [0.0014151], [8], [10]], "benchmarks.StyleSuite.time_parse_ansi": [[1.1425290498552254e-07], [], "a003aaa8017585efeb1cd9c43351282df4df6249bf28a4c447b1304d984aa753", 1646929177619, 0.45619, [1.1397e-07], [1.1464e-07], [1.1399e-07], [1.1454e-07], [96212], [10]], "benchmarks.StyleSuite.time_parse_hex": [[1.1409599503140356e-07], [], "cf5a3f0def435d3da5bc3a6e7549c44c0a02e9cce6c00ecde8dd7f527556f8ca", 1646929177848, 0.454, [1.1369e-07], [1.1445e-07], [1.14e-07], [1.1423e-07], [95630], [10]], "benchmarks.StyleSuite.time_parse_mixed_complex_style": [[1.1446415029047722e-07], [], "01c9e12ae829b1984e55a5aeef1a9ae6f1461577adaf5ae59f06358c8b52802f", 1646929178076, 0.45409, [1.1422e-07], [1.1472e-07], [1.144e-07], [1.1465e-07], [95440], [10]], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_heavy_wrapping": [null, [], "1ed4d74ea424990cfb40c96f07635f9bcf7b8bacc7ade5204aaf96363e1622ee", 1646929172058, 0.062077], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_medium_wrapping": [null, [], "0880e162a4907ee025cef8ac3380502554fde27fd0c90a4c15cebc9c27f3e333", 1646929172120, 0.062048], "benchmarks.SyntaxWrappingSuite.time_text_wide_terminal_no_wrapping": [null, [], "feb11e94ae6a75de2dee899fb93db098b55cde232710660d7d66f9e2b288d9c0", 1646929172183, 0.0617], "benchmarks.TableSuite.time_table_heavy_wrapping": [[0.003236182252294384], [], "ca515a9739c1e0f8eb922420f9f9caf27321fb13c8bd0bc49b207a0588b370de", 1646929178304, 0.47107, [0.0032297], [0.0032508], [0.0032342], [0.0032376], [4], [10]], "benchmarks.TableSuite.time_table_no_wrapping": [[0.0021179625007789584], [], "8842a5f141d8208ba2bab66e4973e978cb5d0615f326af5d70385ff8fa44b3b9", 1646929178538, 0.44453, [0.0021047], [0.0021287], [0.0021112], [0.0021221], [5], [10]], "benchmarks.TextSuite.time_align_center": [[0.0006580625004062313], [], "1ceeeef2de43fcb3d0dfec409972d8f0eb791e9615fa9f9c959e0423725b089b", 1646929178763, 0.43839, [0.00065668], [0.00066048], [0.00065736], [0.00065853], [16], [10]], "benchmarks.TextSuite.time_align_center_unicode_heavy": [[0.0005475537105475699], [], "a83ff79614dd2ae17e8b68f45981fcaa0d9833c59a7a14f171b896cf970f54ce", 1646929178985, 0.44479, [0.00054448], [0.00055454], [0.00054663], [0.00054887], [19], [10]], "benchmarks.TextSuite.time_divide": [[2.7875818851161895e-05], [], "dcc120b921cb2ec77632f8fe2f6f4150d479cb49ef2608f8e86b569a937756e9", 1646929179207, 0.44904, [2.7843e-05], [2.942e-05], [2.7866e-05], [2.7925e-05], [381], [10]], "benchmarks.TextSuite.time_divide_unicode_heavy": [[0.00018679458758254585], [], "ea53e662c0553324f90ac3336dcee77f733bb33638888e1f84bf71945a2f3f8e", 1646929179430, 0.44714, [0.00018551], [0.00018738], [0.0001863], [0.00018695], [57], [10]], "benchmarks.TextSuite.time_fit": [[4.2090219780690065e-05], [], "ec77b412db357b1e1c1e7bc620b941dddfc36dc76d2a66a0417feae4f21fe1d3", 1646929179653, 0.44407, [4.1999e-05], [4.2323e-05], [4.2038e-05], [4.2205e-05], [248], [10]], "benchmarks.TextSuite.time_fit_unicode_heavy": [[0.00032867472609429953], [], "d1574b4af2ef8b80b95b4dbeeb13e5de67b66783f76f9968834776239dd0dc66", 1646929179874, 0.43478, [0.00032795], [0.00032909], [0.00032818], [0.00032894], [31], [10]], "benchmarks.TextSuite.time_indent_guides": [[0.0003919551348259959], [], "18da036dcfc15ec5e3c11e72be7c8f0c22fba695a5f19c95836be36952376cf2", 1646929180091, 0.43392, [0.00039115], [0.00039297], [0.00039193], [0.00039203], [26], [10]], "benchmarks.TextSuite.time_render": [[4.666072373758572e-06], [], "907d30581cfdc7bb2c4d302b7e3cb474aaefd8b84821365fe105af7d82be3b09", 1646929180306, 0.44691, [4.6561e-06], [4.6793e-06], [4.6635e-06], [4.6687e-06], [2349], [10]], "benchmarks.TextSuite.time_render_unicode_heavy": [[8.524071870397165e-05], [], "b3f1c09dfd06f412a20dacfe378c3b446727c7d4f9a975336eab3daa8543e1cb", 1646929180534, 0.45074, [8.491e-05], [8.5762e-05], [8.5152e-05], [8.5361e-05], [128], [10]], "benchmarks.TextSuite.time_split": [[3.3787192268601546e-05], [], "9c165854130cb95fea5491ffcd8b580a5bd373149da2ef8aace0e9480f649854", 1646929180761, 0.44501, [3.3666e-05], [3.4061e-05], [3.376e-05], [3.385e-05], [312], [10]], "benchmarks.TextSuite.time_split_unicode_heavy": [[0.00027918186498101095], [], "d55b02f6d06f478d70635bac3409f3a9899137d9cee87a70a293b8ccf5a6afa4", 1646929180982, 0.43643, [0.00027714], [0.00028031], [0.00027802], [0.00027992], [37], [10]], "benchmarks.TextSuite.time_wrapping": [[0.0011476018892911573], [], "8c821eba13d043f228fd902d8f678c397741855db05d02abe9b82f3d65cdf03d", 1646929181199, 0.44175, [0.001142], [0.0011542], [0.0011425], [0.0011533], [9], [10]], "benchmarks.TextSuite.time_wrapping_unicode_heavy": [[0.001525970215360368], [], "ec6e2ef08b6cdee182fef4e26c0043f8c365984f9a31be07dbd792e1aed862d8", 1646929181419, 0.44329, [0.0015241], [0.0015296], [0.0015258], [0.0015279], [7], [10]]}, "durations": {"": 1.9889202117919922}, "version": 2} diff --git a/benchmarks/results/darrenburns-2022-mbp/8b185610-virtualenv-py3.10.json b/benchmarks/results/darrenburns-2022-mbp/8b185610-virtualenv-py3.10.json new file mode 100644 index 0000000000..420214fe0e --- /dev/null +++ b/benchmarks/results/darrenburns-2022-mbp/8b185610-virtualenv-py3.10.json @@ -0,0 +1 @@ +{"commit_hash": "8b185610d336693f2ff08c30157682ba7382d9ee", "env_name": "virtualenv-py3.10", "date": 1594399550000, "params": {"arch": "arm64", "cpu": "Apple M1 Pro", "machine": "darrenburns-2022-mbp", "num_cpu": "10", "os": "Darwin 21.2.0", "ram": "17179869184", "python": "3.10"}, "python": "3.10", "requirements": {}, "env_vars": {}, "result_columns": ["result", "params", "version", "started_at", "duration", "stats_ci_99_a", "stats_ci_99_b", "stats_q_25", "stats_q_75", "stats_number", "stats_repeat", "samples", "profile"], "results": {"benchmarks.ColorSuite.time_downgrade_to_eight_bit": [[1.7168903867823397e-07], [], "019b972f782c6291df9a6a4dea9bb3c6268a69b177e71383d6e19a608e84920d", 1646928676356, 0.42605, [1.6868e-07], [1.7356e-07], [1.6987e-07], [1.7322e-07], [59181], [10]], "benchmarks.ColorSuite.time_downgrade_to_standard": [[1.7156599994907917e-07], [], "f5e8556491c977450fff6ebfd9fff4fc8f12d74829aa5b8570bd27ea7a1c9d28", 1646928676570, 0.45073, [1.6883e-07], [1.7373e-07], [1.6964e-07], [1.7334e-07], [64303], [10]], "benchmarks.ColorSuite.time_downgrade_to_windows": [[1.718635833089222e-07], [], "373eb97dd7ce2823e080972249235f528e8b3a47210911981cf432ecf0eef5fb", 1646928676797, 0.42913, [1.7004e-07], [1.7429e-07], [1.704e-07], [1.7331e-07], [64325], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_eight_bit": [[1.7129236887015558e-07], [], "716ff06a471a5d90af3730f6d4470eba3577432d781e0210dff1fd156b8c549c", 1646928677012, 0.44036, [1.6838e-07], [1.74e-07], [1.6978e-07], [1.7338e-07], [64711], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_standard": [[1.7331575899968566e-07], [], "3a752a7884e99e095c31b2a28cfefdf916cb2033c06afae1ea146a72f3ba650c", 1646928677228, 0.44188, [1.6939e-07], [1.7654e-07], [1.7198e-07], [1.7369e-07], [64611], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_windows": [[1.730976246412862e-07], [], "1732bbd18ada49eb7b054fc18b40d6acfb533023463366f37203dab6fbb0cc20", 1646928677444, 0.4325, [1.7272e-07], [1.7357e-07], [1.728e-07], [1.7333e-07], [64538], [10]], "benchmarks.PrettySuite.time_pretty": [[0.0022552750015165657], [], "9bb0e6d8a29aad21b3d1b550a160fa5f1e9030c69d16bad500c0dcc77bff6d01", 1646928677659, 0.44322, [0.0022378], [0.0022778], [0.002239], [0.0022725], [5], [10]], "benchmarks.PrettySuite.time_pretty_indent_guides": [null, [], "8d71bf19dfe999b0fba95d009986bfd6911c53c7a0c455466725f553005c3bc7", 1646928672618, 0.058588], "benchmarks.PrettySuite.time_pretty_justify_center": [null, [], "54cbf71bacab14ccbe1d063847c0b89198ed1bbe06edc89c14d2e3c7b1986c41", 1646928672677, 0.058272], "benchmarks.StyleSuite.time_parse_ansi": [[1.1619377396060483e-07], [], "a003aaa8017585efeb1cd9c43351282df4df6249bf28a4c447b1304d984aa753", 1646928677879, 0.42452, [1.1594e-07], [1.1652e-07], [1.1606e-07], [1.1642e-07], [87793], [10]], "benchmarks.StyleSuite.time_parse_hex": [[1.1637748378131947e-07], [], "cf5a3f0def435d3da5bc3a6e7549c44c0a02e9cce6c00ecde8dd7f527556f8ca", 1646928678091, 0.44074, [1.1421e-07], [1.1725e-07], [1.1488e-07], [1.1682e-07], [95873], [10]], "benchmarks.StyleSuite.time_parse_mixed_complex_style": [[1.155181537751077e-07], [], "01c9e12ae829b1984e55a5aeef1a9ae6f1461577adaf5ae59f06358c8b52802f", 1646928678307, 0.44095, [1.1416e-07], [1.1656e-07], [1.1456e-07], [1.1643e-07], [96041], [10]], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_heavy_wrapping": [null, [], "1ed4d74ea424990cfb40c96f07635f9bcf7b8bacc7ade5204aaf96363e1622ee", 1646928673397, 0.058196], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_medium_wrapping": [null, [], "0880e162a4907ee025cef8ac3380502554fde27fd0c90a4c15cebc9c27f3e333", 1646928673455, 0.057861], "benchmarks.SyntaxWrappingSuite.time_text_wide_terminal_no_wrapping": [null, [], "feb11e94ae6a75de2dee899fb93db098b55cde232710660d7d66f9e2b288d9c0", 1646928673513, 0.058665], "benchmarks.TableSuite.time_table_heavy_wrapping": [[0.002130449903779663], [], "ca515a9739c1e0f8eb922420f9f9caf27321fb13c8bd0bc49b207a0588b370de", 1646928678525, 0.43856, [0.0021231], [0.0021428], [0.0021275], [0.0021371], [5], [10]], "benchmarks.TableSuite.time_table_no_wrapping": [[0.0014712708590585472], [], "8842a5f141d8208ba2bab66e4973e978cb5d0615f326af5d70385ff8fa44b3b9", 1646928678747, 0.42785, [0.0014624], [0.0014875], [0.0014652], [0.001481], [7], [10]], "benchmarks.TextSuite.time_align_center": [null, [], "1ceeeef2de43fcb3d0dfec409972d8f0eb791e9615fa9f9c959e0423725b089b", 1646928673999, 0.058368], "benchmarks.TextSuite.time_align_center_unicode_heavy": [null, [], "a83ff79614dd2ae17e8b68f45981fcaa0d9833c59a7a14f171b896cf970f54ce", 1646928674057, 0.058557], "benchmarks.TextSuite.time_divide": [[2.8091873364175325e-05], [], "dcc120b921cb2ec77632f8fe2f6f4150d479cb49ef2608f8e86b569a937756e9", 1646928678964, 0.44376, [2.7756e-05], [2.8428e-05], [2.7814e-05], [2.8354e-05], [383], [10]], "benchmarks.TextSuite.time_divide_unicode_heavy": [[0.00018709247345676677], [], "ea53e662c0553324f90ac3336dcee77f733bb33638888e1f84bf71945a2f3f8e", 1646928679187, 0.439, [0.00018632], [0.00018768], [0.00018648], [0.00018735], [57], [10]], "benchmarks.TextSuite.time_fit": [[4.283656973523492e-05], [], "ec77b412db357b1e1c1e7bc620b941dddfc36dc76d2a66a0417feae4f21fe1d3", 1646928679407, 0.43359, [4.2742e-05], [4.3007e-05], [4.2786e-05], [4.2897e-05], [251], [10]], "benchmarks.TextSuite.time_fit_unicode_heavy": [[0.0003362728551315564], [], "d1574b4af2ef8b80b95b4dbeeb13e5de67b66783f76f9968834776239dd0dc66", 1646928679627, 0.43277, [0.00033497], [0.00033736], [0.00033578], [0.0003365], [31], [10]], "benchmarks.TextSuite.time_indent_guides": [null, [], "18da036dcfc15ec5e3c11e72be7c8f0c22fba695a5f19c95836be36952376cf2", 1646928674988, 0.058294], "benchmarks.TextSuite.time_render": [[4.684978898870939e-06], [], "907d30581cfdc7bb2c4d302b7e3cb474aaefd8b84821365fe105af7d82be3b09", 1646928679842, 0.43744, [4.6601e-06], [4.7325e-06], [4.6687e-06], [4.705e-06], [2322], [10]], "benchmarks.TextSuite.time_render_unicode_heavy": [[8.625716418464435e-05], [], "b3f1c09dfd06f412a20dacfe378c3b446727c7d4f9a975336eab3daa8543e1cb", 1646928680065, 0.44709, [8.5348e-05], [8.7329e-05], [8.5556e-05], [8.6888e-05], [128], [10]], "benchmarks.TextSuite.time_split": [[3.4101948380515346e-05], [], "9c165854130cb95fea5491ffcd8b580a5bd373149da2ef8aace0e9480f649854", 1646928680292, 0.43858, [3.3711e-05], [3.456e-05], [3.3737e-05], [3.4476e-05], [310], [10]], "benchmarks.TextSuite.time_split_unicode_heavy": [[0.000282641891563135], [], "d55b02f6d06f478d70635bac3409f3a9899137d9cee87a70a293b8ccf5a6afa4", 1646928680511, 0.43373, [0.00027884], [0.00028615], [0.00027948], [0.00028494], [37], [10]], "benchmarks.TextSuite.time_wrapping": [[0.0011528495573050654], [], "8c821eba13d043f228fd902d8f678c397741855db05d02abe9b82f3d65cdf03d", 1646928680726, 0.43438, [0.0011346], [0.0011632], [0.0011372], [0.0011614], [9], [10]], "benchmarks.TextSuite.time_wrapping_unicode_heavy": [[0.0015347560007025354], [], "ec6e2ef08b6cdee182fef4e26c0043f8c365984f9a31be07dbd792e1aed862d8", 1646928680939, 0.43682, [0.001515], [0.0015497], [0.0015179], [0.0015489], [7], [10]]}, "durations": {"": 1.964888095855713}, "version": 2} diff --git a/benchmarks/results/darrenburns-2022-mbp/8b47f338-virtualenv-py3.10.json b/benchmarks/results/darrenburns-2022-mbp/8b47f338-virtualenv-py3.10.json new file mode 100644 index 0000000000..f586b61617 --- /dev/null +++ b/benchmarks/results/darrenburns-2022-mbp/8b47f338-virtualenv-py3.10.json @@ -0,0 +1 @@ +{"commit_hash": "8b47f338e2b17e0e97c973fb488c6d039cade3a6", "env_name": "virtualenv-py3.10", "date": 1637241388000, "params": {"arch": "arm64", "cpu": "Apple M1 Pro", "machine": "darrenburns-2022-mbp", "num_cpu": "10", "os": "Darwin 21.2.0", "ram": "17179869184", "python": "3.10"}, "python": "3.10", "requirements": {}, "env_vars": {}, "result_columns": ["result", "params", "version", "started_at", "duration", "stats_ci_99_a", "stats_ci_99_b", "stats_q_25", "stats_q_75", "stats_number", "stats_repeat", "samples", "profile"], "results": {"benchmarks.ColorSuite.time_downgrade_to_eight_bit": [[1.704770948299811e-07], [], "019b972f782c6291df9a6a4dea9bb3c6268a69b177e71383d6e19a608e84920d", 1646929498335, 0.46535, [1.6941e-07], [1.7118e-07], [1.6981e-07], [1.7073e-07], [64505], [10]], "benchmarks.ColorSuite.time_downgrade_to_standard": [[1.7028041498662157e-07], [], "f5e8556491c977450fff6ebfd9fff4fc8f12d74829aa5b8570bd27ea7a1c9d28", 1646929498566, 0.46247, [1.6948e-07], [1.7149e-07], [1.6998e-07], [1.7051e-07], [64845], [10]], "benchmarks.ColorSuite.time_downgrade_to_windows": [[1.7013318067423483e-07], [], "373eb97dd7ce2823e080972249235f528e8b3a47210911981cf432ecf0eef5fb", 1646929498799, 0.4604, [1.6967e-07], [1.7044e-07], [1.7005e-07], [1.7037e-07], [64480], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_eight_bit": [[1.7048964461196602e-07], [], "716ff06a471a5d90af3730f6d4470eba3577432d781e0210dff1fd156b8c549c", 1646929499030, 0.46266, [1.6978e-07], [1.7342e-07], [1.7018e-07], [1.7111e-07], [64702], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_standard": [[1.710183421980304e-07], [], "3a752a7884e99e095c31b2a28cfefdf916cb2033c06afae1ea146a72f3ba650c", 1646929499262, 0.4644, [1.6905e-07], [1.7343e-07], [1.7023e-07], [1.7189e-07], [64659], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_windows": [[1.7028929748629222e-07], [], "1732bbd18ada49eb7b054fc18b40d6acfb533023463366f37203dab6fbb0cc20", 1646929499495, 0.4667, [1.6938e-07], [1.7198e-07], [1.7009e-07], [1.7052e-07], [64686], [10]], "benchmarks.PrettySuite.time_pretty": [[0.001039081248745788], [], "9bb0e6d8a29aad21b3d1b550a160fa5f1e9030c69d16bad500c0dcc77bff6d01", 1646929499727, 0.44389, [0.0010375], [0.0010456], [0.0010384], [0.0010401], [10], [10]], "benchmarks.PrettySuite.time_pretty_indent_guides": [[0.0014347708129207604], [], "8d71bf19dfe999b0fba95d009986bfd6911c53c7a0c455466725f553005c3bc7", 1646929499952, 0.46215, [0.0014232], [0.0014423], [0.0014295], [0.0014374], [8], [10]], "benchmarks.PrettySuite.time_pretty_justify_center": [[0.0013174009982321877], [], "54cbf71bacab14ccbe1d063847c0b89198ed1bbe06edc89c14d2e3c7b1986c41", 1646929500183, 0.44583, [0.0012999], [0.0013229], [0.0013051], [0.0013205], [8], [10]], "benchmarks.StyleSuite.time_parse_ansi": [[1.144420922600396e-07], [], "a003aaa8017585efeb1cd9c43351282df4df6249bf28a4c447b1304d984aa753", 1646929500410, 0.46225, [1.1388e-07], [1.1708e-07], [1.1436e-07], [1.1517e-07], [96170], [10]], "benchmarks.StyleSuite.time_parse_hex": [[1.1470633126258756e-07], [], "cf5a3f0def435d3da5bc3a6e7549c44c0a02e9cce6c00ecde8dd7f527556f8ca", 1646929500642, 0.44546, [1.1391e-07], [1.185e-07], [1.1428e-07], [1.1517e-07], [87568], [10]], "benchmarks.StyleSuite.time_parse_mixed_complex_style": [[1.1445141108981999e-07], [], "01c9e12ae829b1984e55a5aeef1a9ae6f1461577adaf5ae59f06358c8b52802f", 1646929500869, 0.46398, [1.1408e-07], [1.1492e-07], [1.1428e-07], [1.1471e-07], [96174], [10]], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_heavy_wrapping": [null, [], "1ed4d74ea424990cfb40c96f07635f9bcf7b8bacc7ade5204aaf96363e1622ee", 1646929494748, 0.066077], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_medium_wrapping": [null, [], "0880e162a4907ee025cef8ac3380502554fde27fd0c90a4c15cebc9c27f3e333", 1646929494814, 0.066052], "benchmarks.SyntaxWrappingSuite.time_text_wide_terminal_no_wrapping": [null, [], "feb11e94ae6a75de2dee899fb93db098b55cde232710660d7d66f9e2b288d9c0", 1646929494880, 0.065718], "benchmarks.TableSuite.time_table_heavy_wrapping": [[0.0022119542001746593], [], "ca515a9739c1e0f8eb922420f9f9caf27321fb13c8bd0bc49b207a0588b370de", 1646929501102, 0.45225, [0.0021935], [0.0022166], [0.0022008], [0.0022153], [5], [10]], "benchmarks.TableSuite.time_table_no_wrapping": [[0.0013303228770382702], [], "8842a5f141d8208ba2bab66e4973e978cb5d0615f326af5d70385ff8fa44b3b9", 1646929501325, 0.45344, [0.0013251], [0.0013386], [0.0013292], [0.0013349], [8], [10]], "benchmarks.TextSuite.time_align_center": [[0.0003806986605923157], [], "1ceeeef2de43fcb3d0dfec409972d8f0eb791e9615fa9f9c959e0423725b089b", 1646929501556, 0.45671, [0.00038033], [0.00038155], [0.00038042], [0.00038078], [28], [10]], "benchmarks.TextSuite.time_align_center_unicode_heavy": [[0.00034290322641496575], [], "a83ff79614dd2ae17e8b68f45981fcaa0d9833c59a7a14f171b896cf970f54ce", 1646929501782, 0.45645, [0.0003397], [0.0003518], [0.00034112], [0.0003484], [31], [10]], "benchmarks.TextSuite.time_divide": [[2.5345872369522895e-05], [], "dcc120b921cb2ec77632f8fe2f6f4150d479cb49ef2608f8e86b569a937756e9", 1646929502009, 0.4603, [2.5248e-05], [2.5446e-05], [2.5287e-05], [2.5395e-05], [427], [10]], "benchmarks.TextSuite.time_divide_unicode_heavy": [[0.00018478592241520127], [], "ea53e662c0553324f90ac3336dcee77f733bb33638888e1f84bf71945a2f3f8e", 1646929502238, 0.45732, [0.0001843], [0.00019192], [0.0001846], [0.00018495], [58], [10]], "benchmarks.TextSuite.time_fit": [[4.3506973496714264e-05], [], "ec77b412db357b1e1c1e7bc620b941dddfc36dc76d2a66a0417feae4f21fe1d3", 1646929502467, 0.44784, [4.342e-05], [4.4112e-05], [4.3461e-05], [4.3614e-05], [245], [10]], "benchmarks.TextSuite.time_fit_unicode_heavy": [[0.00032628562926660264], [], "d1574b4af2ef8b80b95b4dbeeb13e5de67b66783f76f9968834776239dd0dc66", 1646929502694, 0.43938, [0.00032502], [0.00032752], [0.00032557], [0.00032668], [31], [10]], "benchmarks.TextSuite.time_indent_guides": [[0.000355923844898794], [], "18da036dcfc15ec5e3c11e72be7c8f0c22fba695a5f19c95836be36952376cf2", 1646929502912, 0.44618, [0.00035429], [0.00035689], [0.00035487], [0.00035642], [29], [10]], "benchmarks.TextSuite.time_render": [[4.654723462910036e-06], [], "907d30581cfdc7bb2c4d302b7e3cb474aaefd8b84821365fe105af7d82be3b09", 1646929503134, 0.45355, [4.6398e-06], [4.6846e-06], [4.6485e-06], [4.6608e-06], [2327], [10]], "benchmarks.TextSuite.time_render_unicode_heavy": [[8.532660635184555e-05], [], "b3f1c09dfd06f412a20dacfe378c3b446727c7d4f9a975336eab3daa8543e1cb", 1646929503365, 0.45703, [8.4378e-05], [8.6022e-05], [8.5116e-05], [8.5704e-05], [127], [10]], "benchmarks.TextSuite.time_split": [[3.539265578313332e-05], [], "9c165854130cb95fea5491ffcd8b580a5bd373149da2ef8aace0e9480f649854", 1646929503594, 0.45204, [3.5322e-05], [3.5428e-05], [3.5374e-05], [3.5422e-05], [308], [10]], "benchmarks.TextSuite.time_split_unicode_heavy": [[0.0002751573418591809], [], "d55b02f6d06f478d70635bac3409f3a9899137d9cee87a70a293b8ccf5a6afa4", 1646929503825, 0.4488, [0.00027426], [0.00028041], [0.00027456], [0.00027936], [38], [10]], "benchmarks.TextSuite.time_wrapping": [[0.0010963458495098165], [], "8c821eba13d043f228fd902d8f678c397741855db05d02abe9b82f3d65cdf03d", 1646929504049, 0.44783, [0.0010906], [0.0011211], [0.001092], [0.0011161], [10], [10]], "benchmarks.TextSuite.time_wrapping_unicode_heavy": [[0.0013667968742083758], [], "ec6e2ef08b6cdee182fef4e26c0043f8c365984f9a31be07dbd792e1aed862d8", 1646929504272, 0.45775, [0.0013635], [0.0013722], [0.0013649], [0.0013686], [8], [10]]}, "durations": {"": 1.9783689975738525}, "version": 2} diff --git a/benchmarks/results/darrenburns-2022-mbp/911d305f-virtualenv-py3.10.json b/benchmarks/results/darrenburns-2022-mbp/911d305f-virtualenv-py3.10.json new file mode 100644 index 0000000000..964846052e --- /dev/null +++ b/benchmarks/results/darrenburns-2022-mbp/911d305f-virtualenv-py3.10.json @@ -0,0 +1 @@ +{"commit_hash": "911d305fe718d989a5d3606c8e0cdf5db97bf8fe", "env_name": "virtualenv-py3.10", "date": 1592142712000, "params": {"arch": "arm64", "cpu": "Apple M1 Pro", "machine": "darrenburns-2022-mbp", "num_cpu": "10", "os": "Darwin 21.2.0", "ram": "17179869184", "python": "3.10"}, "python": "3.10", "requirements": {}, "env_vars": {}, "result_columns": ["result", "params", "version", "started_at", "duration", "stats_ci_99_a", "stats_ci_99_b", "stats_q_25", "stats_q_75", "stats_number", "stats_repeat", "samples", "profile"], "results": {"benchmarks.ColorSuite.time_downgrade_to_eight_bit": [null, [], "019b972f782c6291df9a6a4dea9bb3c6268a69b177e71383d6e19a608e84920d", 1646928519164, 0.05889], "benchmarks.ColorSuite.time_downgrade_to_standard": [null, [], "f5e8556491c977450fff6ebfd9fff4fc8f12d74829aa5b8570bd27ea7a1c9d28", 1646928519223, 0.058991], "benchmarks.ColorSuite.time_downgrade_to_windows": [null, [], "373eb97dd7ce2823e080972249235f528e8b3a47210911981cf432ecf0eef5fb", 1646928519282, 0.058612], "benchmarks.ColorSuiteCached.time_downgrade_to_eight_bit": [null, [], "716ff06a471a5d90af3730f6d4470eba3577432d781e0210dff1fd156b8c549c", 1646928519341, 0.058286], "benchmarks.ColorSuiteCached.time_downgrade_to_standard": [null, [], "3a752a7884e99e095c31b2a28cfefdf916cb2033c06afae1ea146a72f3ba650c", 1646928519400, 0.057999], "benchmarks.ColorSuiteCached.time_downgrade_to_windows": [null, [], "1732bbd18ada49eb7b054fc18b40d6acfb533023463366f37203dab6fbb0cc20", 1646928519458, 0.058387], "benchmarks.PrettySuite.time_pretty": [null, [], "9bb0e6d8a29aad21b3d1b550a160fa5f1e9030c69d16bad500c0dcc77bff6d01", 1646928519516, 0.057659], "benchmarks.PrettySuite.time_pretty_indent_guides": [null, [], "8d71bf19dfe999b0fba95d009986bfd6911c53c7a0c455466725f553005c3bc7", 1646928519574, 0.057636], "benchmarks.PrettySuite.time_pretty_justify_center": [null, [], "54cbf71bacab14ccbe1d063847c0b89198ed1bbe06edc89c14d2e3c7b1986c41", 1646928519631, 0.057999], "benchmarks.StyleSuite.time_parse_ansi": [null, [], "a003aaa8017585efeb1cd9c43351282df4df6249bf28a4c447b1304d984aa753", 1646928519690, 0.058697], "benchmarks.StyleSuite.time_parse_hex": [null, [], "cf5a3f0def435d3da5bc3a6e7549c44c0a02e9cce6c00ecde8dd7f527556f8ca", 1646928519748, 0.060165], "benchmarks.StyleSuite.time_parse_mixed_complex_style": [null, [], "01c9e12ae829b1984e55a5aeef1a9ae6f1461577adaf5ae59f06358c8b52802f", 1646928519809, 0.057682], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_heavy_wrapping": [null, [], "1ed4d74ea424990cfb40c96f07635f9bcf7b8bacc7ade5204aaf96363e1622ee", 1646928519866, 0.058021], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_medium_wrapping": [null, [], "0880e162a4907ee025cef8ac3380502554fde27fd0c90a4c15cebc9c27f3e333", 1646928519924, 0.05799], "benchmarks.SyntaxWrappingSuite.time_text_wide_terminal_no_wrapping": [null, [], "feb11e94ae6a75de2dee899fb93db098b55cde232710660d7d66f9e2b288d9c0", 1646928519982, 0.05768], "benchmarks.TableSuite.time_table_heavy_wrapping": [null, [], "ca515a9739c1e0f8eb922420f9f9caf27321fb13c8bd0bc49b207a0588b370de", 1646928520040, 0.058119], "benchmarks.TableSuite.time_table_no_wrapping": [null, [], "8842a5f141d8208ba2bab66e4973e978cb5d0615f326af5d70385ff8fa44b3b9", 1646928520098, 0.059722], "benchmarks.TextSuite.time_align_center": [null, [], "1ceeeef2de43fcb3d0dfec409972d8f0eb791e9615fa9f9c959e0423725b089b", 1646928520158, 0.058841], "benchmarks.TextSuite.time_align_center_unicode_heavy": [null, [], "a83ff79614dd2ae17e8b68f45981fcaa0d9833c59a7a14f171b896cf970f54ce", 1646928520217, 0.057828], "benchmarks.TextSuite.time_divide": [null, [], "dcc120b921cb2ec77632f8fe2f6f4150d479cb49ef2608f8e86b569a937756e9", 1646928520275, 0.058048], "benchmarks.TextSuite.time_divide_unicode_heavy": [null, [], "ea53e662c0553324f90ac3336dcee77f733bb33638888e1f84bf71945a2f3f8e", 1646928520333, 0.057758], "benchmarks.TextSuite.time_fit": [null, [], "ec77b412db357b1e1c1e7bc620b941dddfc36dc76d2a66a0417feae4f21fe1d3", 1646928520391, 0.05827], "benchmarks.TextSuite.time_fit_unicode_heavy": [null, [], "d1574b4af2ef8b80b95b4dbeeb13e5de67b66783f76f9968834776239dd0dc66", 1646928520449, 0.057695], "benchmarks.TextSuite.time_indent_guides": [null, [], "18da036dcfc15ec5e3c11e72be7c8f0c22fba695a5f19c95836be36952376cf2", 1646928520507, 0.057978], "benchmarks.TextSuite.time_render": [null, [], "907d30581cfdc7bb2c4d302b7e3cb474aaefd8b84821365fe105af7d82be3b09", 1646928520565, 0.057817], "benchmarks.TextSuite.time_render_unicode_heavy": [null, [], "b3f1c09dfd06f412a20dacfe378c3b446727c7d4f9a975336eab3daa8543e1cb", 1646928520623, 0.057796], "benchmarks.TextSuite.time_split": [null, [], "9c165854130cb95fea5491ffcd8b580a5bd373149da2ef8aace0e9480f649854", 1646928520681, 0.05822], "benchmarks.TextSuite.time_split_unicode_heavy": [null, [], "d55b02f6d06f478d70635bac3409f3a9899137d9cee87a70a293b8ccf5a6afa4", 1646928520739, 0.057887], "benchmarks.TextSuite.time_wrapping": [null, [], "8c821eba13d043f228fd902d8f678c397741855db05d02abe9b82f3d65cdf03d", 1646928520797, 0.05788], "benchmarks.TextSuite.time_wrapping_unicode_heavy": [null, [], "ec6e2ef08b6cdee182fef4e26c0043f8c365984f9a31be07dbd792e1aed862d8", 1646928520855, 0.057894]}, "durations": {"": 1.9719171524047852}, "version": 2} diff --git a/benchmarks/results/darrenburns-2022-mbp/932e26b6-virtualenv-py3.10.json b/benchmarks/results/darrenburns-2022-mbp/932e26b6-virtualenv-py3.10.json new file mode 100644 index 0000000000..a383d78389 --- /dev/null +++ b/benchmarks/results/darrenburns-2022-mbp/932e26b6-virtualenv-py3.10.json @@ -0,0 +1 @@ +{"commit_hash": "932e26b6508ccc10469a091f5e629dee8f2c124b", "env_name": "virtualenv-py3.10", "date": 1594142083000, "params": {"arch": "arm64", "cpu": "Apple M1 Pro", "machine": "darrenburns-2022-mbp", "num_cpu": "10", "os": "Darwin 21.2.0", "ram": "17179869184", "python": "3.10"}, "python": "3.10", "requirements": {}, "env_vars": {}, "result_columns": ["result", "params", "version", "started_at", "duration", "stats_ci_99_a", "stats_ci_99_b", "stats_q_25", "stats_q_75", "stats_number", "stats_repeat", "samples", "profile"], "results": {"benchmarks.ColorSuite.time_downgrade_to_eight_bit": [[1.7375078801034093e-07], [], "019b972f782c6291df9a6a4dea9bb3c6268a69b177e71383d6e19a608e84920d", 1646928652230, 0.42456, [1.7282e-07], [1.7517e-07], [1.7355e-07], [1.7453e-07], [58370], [10]], "benchmarks.ColorSuite.time_downgrade_to_standard": [[1.7232673024938964e-07], [], "f5e8556491c977450fff6ebfd9fff4fc8f12d74829aa5b8570bd27ea7a1c9d28", 1646928652441, 0.42474, [1.7162e-07], [1.7374e-07], [1.7202e-07], [1.7317e-07], [59113], [10]], "benchmarks.ColorSuite.time_downgrade_to_windows": [[1.7179807855122533e-07], [], "373eb97dd7ce2823e080972249235f528e8b3a47210911981cf432ecf0eef5fb", 1646928652652, 0.43885, [1.6901e-07], [1.7767e-07], [1.7004e-07], [1.7416e-07], [64119], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_eight_bit": [[1.738748867612897e-07], [], "716ff06a471a5d90af3730f6d4470eba3577432d781e0210dff1fd156b8c549c", 1646928652874, 0.42584, [1.7288e-07], [1.7448e-07], [1.7346e-07], [1.7405e-07], [58579], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_standard": [[1.7205797626414604e-07], [], "3a752a7884e99e095c31b2a28cfefdf916cb2033c06afae1ea146a72f3ba650c", 1646928653085, 0.44103, [1.6998e-07], [1.7542e-07], [1.7083e-07], [1.7433e-07], [64328], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_windows": [[1.7357968707662575e-07], [], "1732bbd18ada49eb7b054fc18b40d6acfb533023463366f37203dab6fbb0cc20", 1646928653301, 0.44615, [1.6884e-07], [1.7752e-07], [1.7302e-07], [1.7394e-07], [64314], [10]], "benchmarks.PrettySuite.time_pretty": [[0.0022556415991857644], [], "9bb0e6d8a29aad21b3d1b550a160fa5f1e9030c69d16bad500c0dcc77bff6d01", 1646928653529, 0.44268, [0.0022447], [0.0022682], [0.0022478], [0.0022604], [5], [10]], "benchmarks.PrettySuite.time_pretty_indent_guides": [null, [], "8d71bf19dfe999b0fba95d009986bfd6911c53c7a0c455466725f553005c3bc7", 1646928648504, 0.058183], "benchmarks.PrettySuite.time_pretty_justify_center": [null, [], "54cbf71bacab14ccbe1d063847c0b89198ed1bbe06edc89c14d2e3c7b1986c41", 1646928648562, 0.058728], "benchmarks.StyleSuite.time_parse_ansi": [[1.1636780299431053e-07], [], "a003aaa8017585efeb1cd9c43351282df4df6249bf28a4c447b1304d984aa753", 1646928653747, 0.42378, [1.1596e-07], [1.1654e-07], [1.1619e-07], [1.1651e-07], [87415], [10]], "benchmarks.StyleSuite.time_parse_hex": [[1.1610518087156556e-07], [], "cf5a3f0def435d3da5bc3a6e7549c44c0a02e9cce6c00ecde8dd7f527556f8ca", 1646928653959, 0.42607, [1.1602e-07], [1.1714e-07], [1.1605e-07], [1.1639e-07], [87825], [10]], "benchmarks.StyleSuite.time_parse_mixed_complex_style": [[1.1519156793616148e-07], [], "01c9e12ae829b1984e55a5aeef1a9ae6f1461577adaf5ae59f06358c8b52802f", 1646928654172, 0.44173, [1.1384e-07], [1.1696e-07], [1.1411e-07], [1.165e-07], [96420], [10]], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_heavy_wrapping": [null, [], "1ed4d74ea424990cfb40c96f07635f9bcf7b8bacc7ade5204aaf96363e1622ee", 1646928649271, 0.058128], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_medium_wrapping": [null, [], "0880e162a4907ee025cef8ac3380502554fde27fd0c90a4c15cebc9c27f3e333", 1646928649329, 0.058031], "benchmarks.SyntaxWrappingSuite.time_text_wide_terminal_no_wrapping": [null, [], "feb11e94ae6a75de2dee899fb93db098b55cde232710660d7d66f9e2b288d9c0", 1646928649387, 0.057526], "benchmarks.TableSuite.time_table_heavy_wrapping": [[0.0021029166993685065], [], "ca515a9739c1e0f8eb922420f9f9caf27321fb13c8bd0bc49b207a0588b370de", 1646928654389, 0.43446, [0.0020978], [0.0021154], [0.0020997], [0.0021052], [5], [10]], "benchmarks.TableSuite.time_table_no_wrapping": [[0.0014632678544980343], [], "8842a5f141d8208ba2bab66e4973e978cb5d0615f326af5d70385ff8fa44b3b9", 1646928654609, 0.42624, [0.0014495], [0.0014684], [0.0014525], [0.0014662], [7], [10]], "benchmarks.TextSuite.time_align_center": [null, [], "1ceeeef2de43fcb3d0dfec409972d8f0eb791e9615fa9f9c959e0423725b089b", 1646928649870, 0.058305], "benchmarks.TextSuite.time_align_center_unicode_heavy": [null, [], "a83ff79614dd2ae17e8b68f45981fcaa0d9833c59a7a14f171b896cf970f54ce", 1646928649929, 0.05829], "benchmarks.TextSuite.time_divide": [[2.779296494252351e-05], [], "dcc120b921cb2ec77632f8fe2f6f4150d479cb49ef2608f8e86b569a937756e9", 1646928654825, 0.44419, [2.7688e-05], [2.8234e-05], [2.7726e-05], [2.8139e-05], [385], [10]], "benchmarks.TextSuite.time_divide_unicode_heavy": [[0.00019048204332397414], [], "ea53e662c0553324f90ac3336dcee77f733bb33638888e1f84bf71945a2f3f8e", 1646928655048, 0.43886, [0.00018928], [0.00019078], [0.00019018], [0.00019067], [58], [10]], "benchmarks.TextSuite.time_fit": [[4.241432530345418e-05], [], "ec77b412db357b1e1c1e7bc620b941dddfc36dc76d2a66a0417feae4f21fe1d3", 1646928655273, 0.44251, [4.2136e-05], [4.3417e-05], [4.2318e-05], [4.2513e-05], [249], [10]], "benchmarks.TextSuite.time_fit_unicode_heavy": [[0.0003329099516474432], [], "d1574b4af2ef8b80b95b4dbeeb13e5de67b66783f76f9968834776239dd0dc66", 1646928655494, 0.43602, [0.00032839], [0.000338], [0.00032894], [0.000337], [31], [10]], "benchmarks.TextSuite.time_indent_guides": [null, [], "18da036dcfc15ec5e3c11e72be7c8f0c22fba695a5f19c95836be36952376cf2", 1646928650860, 0.058311], "benchmarks.TextSuite.time_render": [[4.727717685895485e-06], [], "907d30581cfdc7bb2c4d302b7e3cb474aaefd8b84821365fe105af7d82be3b09", 1646928655715, 0.44039, [4.6884e-06], [4.7761e-06], [4.6927e-06], [4.7662e-06], [2329], [10]], "benchmarks.TextSuite.time_render_unicode_heavy": [[8.719368349829892e-05], [], "b3f1c09dfd06f412a20dacfe378c3b446727c7d4f9a975336eab3daa8543e1cb", 1646928655940, 0.44761, [8.6326e-05], [8.8197e-05], [8.68e-05], [8.7318e-05], [128], [10]], "benchmarks.TextSuite.time_split": [[3.4062033638549154e-05], [], "9c165854130cb95fea5491ffcd8b580a5bd373149da2ef8aace0e9480f649854", 1646928656165, 0.43906, [3.3642e-05], [3.4534e-05], [3.3693e-05], [3.4464e-05], [312], [10]], "benchmarks.TextSuite.time_split_unicode_heavy": [[0.00028500112160612405], [], "d55b02f6d06f478d70635bac3409f3a9899137d9cee87a70a293b8ccf5a6afa4", 1646928656385, 0.43557, [0.00028298], [0.00028643], [0.0002842], [0.00028562], [37], [10]], "benchmarks.TextSuite.time_wrapping": [[0.0011527013880873306], [], "8c821eba13d043f228fd902d8f678c397741855db05d02abe9b82f3d65cdf03d", 1646928656602, 0.43383, [0.0011354], [0.0011624], [0.0011386], [0.0011614], [9], [10]], "benchmarks.TextSuite.time_wrapping_unicode_heavy": [[0.0015521250004115117], [], "ec6e2ef08b6cdee182fef4e26c0043f8c365984f9a31be07dbd792e1aed862d8", 1646928656818, 0.4409, [0.0015454], [0.0015612], [0.0015494], [0.0015548], [7], [10]]}, "durations": {"": 1.9519822597503662}, "version": 2} diff --git a/benchmarks/results/darrenburns-2022-mbp/949e1f72-virtualenv-py3.10.json b/benchmarks/results/darrenburns-2022-mbp/949e1f72-virtualenv-py3.10.json new file mode 100644 index 0000000000..f21df2e97f --- /dev/null +++ b/benchmarks/results/darrenburns-2022-mbp/949e1f72-virtualenv-py3.10.json @@ -0,0 +1 @@ +{"commit_hash": "949e1f72fb9f2f90abb18cbdef47609a24febdb7", "env_name": "virtualenv-py3.10", "date": 1607775158000, "params": {"arch": "arm64", "cpu": "Apple M1 Pro", "machine": "darrenburns-2022-mbp", "num_cpu": "10", "os": "Darwin 21.2.0", "ram": "17179869184", "python": "3.10"}, "python": "3.10", "requirements": {}, "env_vars": {}, "result_columns": ["result", "params", "version", "started_at", "duration", "stats_ci_99_a", "stats_ci_99_b", "stats_q_25", "stats_q_75", "stats_number", "stats_repeat", "samples", "profile"], "results": {"benchmarks.ColorSuite.time_downgrade_to_eight_bit": [[1.7029757551577644e-07], [], "019b972f782c6291df9a6a4dea9bb3c6268a69b177e71383d6e19a608e84920d", 1646929147028, 0.45655, [1.6968e-07], [1.7081e-07], [1.7003e-07], [1.7045e-07], [64550], [10]], "benchmarks.ColorSuite.time_downgrade_to_standard": [[1.7129334648886068e-07], [], "f5e8556491c977450fff6ebfd9fff4fc8f12d74829aa5b8570bd27ea7a1c9d28", 1646929147257, 0.45789, [1.7057e-07], [1.7384e-07], [1.7095e-07], [1.7286e-07], [64175], [10]], "benchmarks.ColorSuite.time_downgrade_to_windows": [[1.7037231874163812e-07], [], "373eb97dd7ce2823e080972249235f528e8b3a47210911981cf432ecf0eef5fb", 1646929147485, 0.45818, [1.6941e-07], [1.733e-07], [1.6993e-07], [1.7098e-07], [64097], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_eight_bit": [[1.7019146784158564e-07], [], "716ff06a471a5d90af3730f6d4470eba3577432d781e0210dff1fd156b8c549c", 1646929147713, 0.45524, [1.6928e-07], [1.7084e-07], [1.6971e-07], [1.7038e-07], [64123], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_standard": [[1.7040813538765309e-07], [], "3a752a7884e99e095c31b2a28cfefdf916cb2033c06afae1ea146a72f3ba650c", 1646929147941, 0.45569, [1.697e-07], [1.7467e-07], [1.7002e-07], [1.7059e-07], [63784], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_windows": [[1.7041177953576877e-07], [], "1732bbd18ada49eb7b054fc18b40d6acfb533023463366f37203dab6fbb0cc20", 1646929148168, 0.45847, [1.697e-07], [1.712e-07], [1.7006e-07], [1.7062e-07], [64356], [10]], "benchmarks.PrettySuite.time_pretty": [[0.0010309937002602964], [], "9bb0e6d8a29aad21b3d1b550a160fa5f1e9030c69d16bad500c0dcc77bff6d01", 1646929148396, 0.44574, [0.0010281], [0.0010354], [0.0010298], [0.0010314], [10], [10]], "benchmarks.PrettySuite.time_pretty_indent_guides": [[0.0014440446414352793], [], "8d71bf19dfe999b0fba95d009986bfd6911c53c7a0c455466725f553005c3bc7", 1646929148618, 0.43949, [0.0014396], [0.0014538], [0.001441], [0.001446], [7], [10]], "benchmarks.PrettySuite.time_pretty_justify_center": [[0.0014179766258166637], [], "54cbf71bacab14ccbe1d063847c0b89198ed1bbe06edc89c14d2e3c7b1986c41", 1646929148836, 0.44533, [0.0014117], [0.0014268], [0.0014147], [0.0014216], [8], [10]], "benchmarks.StyleSuite.time_parse_ansi": [[1.1481544149288418e-07], [], "a003aaa8017585efeb1cd9c43351282df4df6249bf28a4c447b1304d984aa753", 1646929149061, 0.45295, [1.1427e-07], [1.1543e-07], [1.1445e-07], [1.1495e-07], [94829], [10]], "benchmarks.StyleSuite.time_parse_hex": [[1.1436803517864134e-07], [], "cf5a3f0def435d3da5bc3a6e7549c44c0a02e9cce6c00ecde8dd7f527556f8ca", 1646929149288, 0.45272, [1.1379e-07], [1.1477e-07], [1.1416e-07], [1.1451e-07], [95120], [10]], "benchmarks.StyleSuite.time_parse_mixed_complex_style": [[1.1455043607759289e-07], [], "01c9e12ae829b1984e55a5aeef1a9ae6f1461577adaf5ae59f06358c8b52802f", 1646929149514, 0.45456, [1.1413e-07], [1.152e-07], [1.1445e-07], [1.1475e-07], [95309], [10]], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_heavy_wrapping": [null, [], "1ed4d74ea424990cfb40c96f07635f9bcf7b8bacc7ade5204aaf96363e1622ee", 1646929143508, 0.061859], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_medium_wrapping": [null, [], "0880e162a4907ee025cef8ac3380502554fde27fd0c90a4c15cebc9c27f3e333", 1646929143570, 0.061879], "benchmarks.SyntaxWrappingSuite.time_text_wide_terminal_no_wrapping": [null, [], "feb11e94ae6a75de2dee899fb93db098b55cde232710660d7d66f9e2b288d9c0", 1646929143632, 0.061608], "benchmarks.TableSuite.time_table_heavy_wrapping": [[0.002748364622675581], [], "ca515a9739c1e0f8eb922420f9f9caf27321fb13c8bd0bc49b207a0588b370de", 1646929149742, 0.45106, [0.0027357], [0.0027663], [0.0027416], [0.0027589], [4], [10]], "benchmarks.TableSuite.time_table_no_wrapping": [[0.0018719340005191043], [], "8842a5f141d8208ba2bab66e4973e978cb5d0615f326af5d70385ff8fa44b3b9", 1646929149962, 0.44157, [0.0018634], [0.0018768], [0.0018703], [0.0018723], [6], [10]], "benchmarks.TextSuite.time_align_center": [[0.0006610716236536973], [], "1ceeeef2de43fcb3d0dfec409972d8f0eb791e9615fa9f9c959e0423725b089b", 1646929150185, 0.44031, [0.00065694], [0.0006701], [0.00065804], [0.00066623], [16], [10]], "benchmarks.TextSuite.time_align_center_unicode_heavy": [[0.0005484835526562835], [], "a83ff79614dd2ae17e8b68f45981fcaa0d9833c59a7a14f171b896cf970f54ce", 1646929150409, 0.44485, [0.00054418], [0.00055302], [0.00054563], [0.00055031], [19], [10]], "benchmarks.TextSuite.time_divide": [[2.786643714436783e-05], [], "dcc120b921cb2ec77632f8fe2f6f4150d479cb49ef2608f8e86b569a937756e9", 1646929150628, 0.4467, [2.7809e-05], [2.795e-05], [2.7834e-05], [2.7885e-05], [382], [10]], "benchmarks.TextSuite.time_divide_unicode_heavy": [[0.0001872562192658191], [], "ea53e662c0553324f90ac3336dcee77f733bb33638888e1f84bf71945a2f3f8e", 1646929150851, 0.44655, [0.00018629], [0.00018763], [0.000187], [0.00018742], [57], [10]], "benchmarks.TextSuite.time_fit": [[4.215380280098666e-05], [], "ec77b412db357b1e1c1e7bc620b941dddfc36dc76d2a66a0417feae4f21fe1d3", 1646929151074, 0.44672, [4.2108e-05], [4.2228e-05], [4.2135e-05], [4.219e-05], [251], [10]], "benchmarks.TextSuite.time_fit_unicode_heavy": [[0.0003298608874413936], [], "d1574b4af2ef8b80b95b4dbeeb13e5de67b66783f76f9968834776239dd0dc66", 1646929151296, 0.43489, [0.00032922], [0.00033071], [0.00032967], [0.00033], [31], [10]], "benchmarks.TextSuite.time_indent_guides": [[0.0003935088081142077], [], "18da036dcfc15ec5e3c11e72be7c8f0c22fba695a5f19c95836be36952376cf2", 1646929151512, 0.43634, [0.00039083], [0.00039563], [0.00039177], [0.00039506], [26], [10]], "benchmarks.TextSuite.time_render": [[4.689375974753977e-06], [], "907d30581cfdc7bb2c4d302b7e3cb474aaefd8b84821365fe105af7d82be3b09", 1646929151728, 0.4435, [4.6454e-06], [4.7239e-06], [4.6508e-06], [4.7204e-06], [2310], [10]], "benchmarks.TextSuite.time_render_unicode_heavy": [[8.544791398890084e-05], [], "b3f1c09dfd06f412a20dacfe378c3b446727c7d4f9a975336eab3daa8543e1cb", 1646929151952, 0.45091, [8.4735e-05], [8.6213e-05], [8.532e-05], [8.5682e-05], [128], [10]], "benchmarks.TextSuite.time_split": [[3.376495670892883e-05], [], "9c165854130cb95fea5491ffcd8b580a5bd373149da2ef8aace0e9480f649854", 1646929152179, 0.44394, [3.3636e-05], [3.3927e-05], [3.37e-05], [3.3829e-05], [312], [10]], "benchmarks.TextSuite.time_split_unicode_heavy": [[0.0002801216213737388], [], "d55b02f6d06f478d70635bac3409f3a9899137d9cee87a70a293b8ccf5a6afa4", 1646929152401, 0.43747, [0.00027783], [0.00028155], [0.0002787], [0.00028053], [37], [10]], "benchmarks.TextSuite.time_wrapping": [[0.001147650444181636], [], "8c821eba13d043f228fd902d8f678c397741855db05d02abe9b82f3d65cdf03d", 1646929152618, 0.44158, [0.0011449], [0.0011499], [0.0011466], [0.0011488], [9], [10]], "benchmarks.TextSuite.time_wrapping_unicode_heavy": [[0.0015247916432729524], [], "ec6e2ef08b6cdee182fef4e26c0043f8c365984f9a31be07dbd792e1aed862d8", 1646929152837, 0.44279, [0.0015232], [0.0015308], [0.001524], [0.001526], [7], [10]]}, "durations": {"": 1.9965839385986328}, "version": 2} diff --git a/benchmarks/results/darrenburns-2022-mbp/95d8bf98-virtualenv-py3.10.json b/benchmarks/results/darrenburns-2022-mbp/95d8bf98-virtualenv-py3.10.json new file mode 100644 index 0000000000..c9cb5bc562 --- /dev/null +++ b/benchmarks/results/darrenburns-2022-mbp/95d8bf98-virtualenv-py3.10.json @@ -0,0 +1 @@ +{"commit_hash": "95d8bf9841d0f7f467d87e347d1620a054b9eee6", "env_name": "virtualenv-py3.10", "date": 1591521223000, "params": {"arch": "arm64", "cpu": "Apple M1 Pro", "machine": "darrenburns-2022-mbp", "num_cpu": "10", "os": "Darwin 21.2.0", "ram": "17179869184", "python": "3.10"}, "python": "3.10", "requirements": {}, "env_vars": {}, "result_columns": ["result", "params", "version", "started_at", "duration", "stats_ci_99_a", "stats_ci_99_b", "stats_q_25", "stats_q_75", "stats_number", "stats_repeat", "samples", "profile"], "results": {"benchmarks.ColorSuite.time_downgrade_to_eight_bit": [null, [], "019b972f782c6291df9a6a4dea9bb3c6268a69b177e71383d6e19a608e84920d", 1646928504190, 0.060062], "benchmarks.ColorSuite.time_downgrade_to_standard": [null, [], "f5e8556491c977450fff6ebfd9fff4fc8f12d74829aa5b8570bd27ea7a1c9d28", 1646928504251, 0.058234], "benchmarks.ColorSuite.time_downgrade_to_windows": [null, [], "373eb97dd7ce2823e080972249235f528e8b3a47210911981cf432ecf0eef5fb", 1646928504309, 0.05794], "benchmarks.ColorSuiteCached.time_downgrade_to_eight_bit": [null, [], "716ff06a471a5d90af3730f6d4470eba3577432d781e0210dff1fd156b8c549c", 1646928504367, 0.057871], "benchmarks.ColorSuiteCached.time_downgrade_to_standard": [null, [], "3a752a7884e99e095c31b2a28cfefdf916cb2033c06afae1ea146a72f3ba650c", 1646928504425, 0.057688], "benchmarks.ColorSuiteCached.time_downgrade_to_windows": [null, [], "1732bbd18ada49eb7b054fc18b40d6acfb533023463366f37203dab6fbb0cc20", 1646928504483, 0.058], "benchmarks.PrettySuite.time_pretty": [null, [], "9bb0e6d8a29aad21b3d1b550a160fa5f1e9030c69d16bad500c0dcc77bff6d01", 1646928504541, 0.058312], "benchmarks.PrettySuite.time_pretty_indent_guides": [null, [], "8d71bf19dfe999b0fba95d009986bfd6911c53c7a0c455466725f553005c3bc7", 1646928504599, 0.058035], "benchmarks.PrettySuite.time_pretty_justify_center": [null, [], "54cbf71bacab14ccbe1d063847c0b89198ed1bbe06edc89c14d2e3c7b1986c41", 1646928504657, 0.058021], "benchmarks.StyleSuite.time_parse_ansi": [null, [], "a003aaa8017585efeb1cd9c43351282df4df6249bf28a4c447b1304d984aa753", 1646928504715, 0.059098], "benchmarks.StyleSuite.time_parse_hex": [null, [], "cf5a3f0def435d3da5bc3a6e7549c44c0a02e9cce6c00ecde8dd7f527556f8ca", 1646928504774, 0.059978], "benchmarks.StyleSuite.time_parse_mixed_complex_style": [null, [], "01c9e12ae829b1984e55a5aeef1a9ae6f1461577adaf5ae59f06358c8b52802f", 1646928504835, 0.063138], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_heavy_wrapping": [null, [], "1ed4d74ea424990cfb40c96f07635f9bcf7b8bacc7ade5204aaf96363e1622ee", 1646928504898, 0.060041], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_medium_wrapping": [null, [], "0880e162a4907ee025cef8ac3380502554fde27fd0c90a4c15cebc9c27f3e333", 1646928504958, 0.058854], "benchmarks.SyntaxWrappingSuite.time_text_wide_terminal_no_wrapping": [null, [], "feb11e94ae6a75de2dee899fb93db098b55cde232710660d7d66f9e2b288d9c0", 1646928505017, 0.058735], "benchmarks.TableSuite.time_table_heavy_wrapping": [null, [], "ca515a9739c1e0f8eb922420f9f9caf27321fb13c8bd0bc49b207a0588b370de", 1646928505076, 0.059871], "benchmarks.TableSuite.time_table_no_wrapping": [null, [], "8842a5f141d8208ba2bab66e4973e978cb5d0615f326af5d70385ff8fa44b3b9", 1646928505136, 0.058193], "benchmarks.TextSuite.time_align_center": [null, [], "1ceeeef2de43fcb3d0dfec409972d8f0eb791e9615fa9f9c959e0423725b089b", 1646928505194, 0.058021], "benchmarks.TextSuite.time_align_center_unicode_heavy": [null, [], "a83ff79614dd2ae17e8b68f45981fcaa0d9833c59a7a14f171b896cf970f54ce", 1646928505252, 0.05804], "benchmarks.TextSuite.time_divide": [null, [], "dcc120b921cb2ec77632f8fe2f6f4150d479cb49ef2608f8e86b569a937756e9", 1646928505310, 0.057805], "benchmarks.TextSuite.time_divide_unicode_heavy": [null, [], "ea53e662c0553324f90ac3336dcee77f733bb33638888e1f84bf71945a2f3f8e", 1646928505368, 0.058285], "benchmarks.TextSuite.time_fit": [null, [], "ec77b412db357b1e1c1e7bc620b941dddfc36dc76d2a66a0417feae4f21fe1d3", 1646928505426, 0.057829], "benchmarks.TextSuite.time_fit_unicode_heavy": [null, [], "d1574b4af2ef8b80b95b4dbeeb13e5de67b66783f76f9968834776239dd0dc66", 1646928505484, 0.057966], "benchmarks.TextSuite.time_indent_guides": [null, [], "18da036dcfc15ec5e3c11e72be7c8f0c22fba695a5f19c95836be36952376cf2", 1646928505542, 0.058825], "benchmarks.TextSuite.time_render": [null, [], "907d30581cfdc7bb2c4d302b7e3cb474aaefd8b84821365fe105af7d82be3b09", 1646928505601, 0.058993], "benchmarks.TextSuite.time_render_unicode_heavy": [null, [], "b3f1c09dfd06f412a20dacfe378c3b446727c7d4f9a975336eab3daa8543e1cb", 1646928505660, 0.058045], "benchmarks.TextSuite.time_split": [null, [], "9c165854130cb95fea5491ffcd8b580a5bd373149da2ef8aace0e9480f649854", 1646928505718, 0.057868], "benchmarks.TextSuite.time_split_unicode_heavy": [null, [], "d55b02f6d06f478d70635bac3409f3a9899137d9cee87a70a293b8ccf5a6afa4", 1646928505776, 0.057619], "benchmarks.TextSuite.time_wrapping": [null, [], "8c821eba13d043f228fd902d8f678c397741855db05d02abe9b82f3d65cdf03d", 1646928505834, 0.058251], "benchmarks.TextSuite.time_wrapping_unicode_heavy": [null, [], "ec6e2ef08b6cdee182fef4e26c0043f8c365984f9a31be07dbd792e1aed862d8", 1646928505892, 0.057668]}, "durations": {"": 2.12862491607666}, "version": 2} diff --git a/benchmarks/results/darrenburns-2022-mbp/96ea5fed-virtualenv-py3.10.json b/benchmarks/results/darrenburns-2022-mbp/96ea5fed-virtualenv-py3.10.json new file mode 100644 index 0000000000..d7a93d49cf --- /dev/null +++ b/benchmarks/results/darrenburns-2022-mbp/96ea5fed-virtualenv-py3.10.json @@ -0,0 +1 @@ +{"commit_hash": "96ea5feddfa8130ca8e961ab772dfdbb836cb3fa", "env_name": "virtualenv-py3.10", "date": 1598372847000, "params": {"arch": "arm64", "cpu": "Apple M1 Pro", "machine": "darrenburns-2022-mbp", "num_cpu": "10", "os": "Darwin 21.2.0", "ram": "17179869184", "python": "3.10"}, "python": "3.10", "requirements": {}, "env_vars": {}, "result_columns": ["result", "params", "version", "started_at", "duration", "stats_ci_99_a", "stats_ci_99_b", "stats_q_25", "stats_q_75", "stats_number", "stats_repeat", "samples", "profile"], "results": {"benchmarks.ColorSuite.time_downgrade_to_eight_bit": [[1.7316030840513793e-07], [], "019b972f782c6291df9a6a4dea9bb3c6268a69b177e71383d6e19a608e84920d", 1646928856427, 0.42741, [1.7267e-07], [1.7448e-07], [1.7288e-07], [1.7347e-07], [58952], [10]], "benchmarks.ColorSuite.time_downgrade_to_standard": [[1.7276608421838726e-07], [], "f5e8556491c977450fff6ebfd9fff4fc8f12d74829aa5b8570bd27ea7a1c9d28", 1646928856639, 0.4259, [1.7187e-07], [1.743e-07], [1.7218e-07], [1.7377e-07], [58923], [10]], "benchmarks.ColorSuite.time_downgrade_to_windows": [[1.7196527954547122e-07], [], "373eb97dd7ce2823e080972249235f528e8b3a47210911981cf432ecf0eef5fb", 1646928856852, 0.43995, [1.6886e-07], [1.7405e-07], [1.7053e-07], [1.7321e-07], [64443], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_eight_bit": [[1.7357961115949515e-07], [], "716ff06a471a5d90af3730f6d4470eba3577432d781e0210dff1fd156b8c549c", 1646928857076, 0.43478, [1.6868e-07], [1.7463e-07], [1.7103e-07], [1.7398e-07], [64809], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_standard": [[1.7308621182496977e-07], [], "3a752a7884e99e095c31b2a28cfefdf916cb2033c06afae1ea146a72f3ba650c", 1646928857291, 0.43332, [1.717e-07], [1.744e-07], [1.7214e-07], [1.7368e-07], [58623], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_windows": [[1.7374265166264073e-07], [], "1732bbd18ada49eb7b054fc18b40d6acfb533023463366f37203dab6fbb0cc20", 1646928857511, 0.42335, [1.7291e-07], [1.7402e-07], [1.7341e-07], [1.7396e-07], [58652], [10]], "benchmarks.PrettySuite.time_pretty": [[0.001097102051426191], [], "9bb0e6d8a29aad21b3d1b550a160fa5f1e9030c69d16bad500c0dcc77bff6d01", 1646928857721, 0.43139, [0.0010913], [0.0011045], [0.0010954], [0.001099], [10], [10]], "benchmarks.PrettySuite.time_pretty_indent_guides": [null, [], "8d71bf19dfe999b0fba95d009986bfd6911c53c7a0c455466725f553005c3bc7", 1646928852181, 0.058487], "benchmarks.PrettySuite.time_pretty_justify_center": [[0.001493163641758396], [], "54cbf71bacab14ccbe1d063847c0b89198ed1bbe06edc89c14d2e3c7b1986c41", 1646928857937, 0.43031, [0.0014892], [0.0015001], [0.0014917], [0.0014972], [7], [10]], "benchmarks.StyleSuite.time_parse_ansi": [[1.1650578665402596e-07], [], "a003aaa8017585efeb1cd9c43351282df4df6249bf28a4c447b1304d984aa753", 1646928858156, 0.42528, [1.161e-07], [1.1773e-07], [1.1645e-07], [1.1664e-07], [87616], [10]], "benchmarks.StyleSuite.time_parse_hex": [[1.1636110488428678e-07], [], "cf5a3f0def435d3da5bc3a6e7549c44c0a02e9cce6c00ecde8dd7f527556f8ca", 1646928858369, 0.44929, [1.1598e-07], [1.1696e-07], [1.1628e-07], [1.1656e-07], [94647], [10]], "benchmarks.StyleSuite.time_parse_mixed_complex_style": [[1.1662411426497627e-07], [], "01c9e12ae829b1984e55a5aeef1a9ae6f1461577adaf5ae59f06358c8b52802f", 1646928858593, 0.42483, [1.1595e-07], [1.2152e-07], [1.164e-07], [1.1852e-07], [86956], [10]], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_heavy_wrapping": [null, [], "1ed4d74ea424990cfb40c96f07635f9bcf7b8bacc7ade5204aaf96363e1622ee", 1646928853102, 0.059031], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_medium_wrapping": [null, [], "0880e162a4907ee025cef8ac3380502554fde27fd0c90a4c15cebc9c27f3e333", 1646928853162, 0.057906], "benchmarks.SyntaxWrappingSuite.time_text_wide_terminal_no_wrapping": [null, [], "feb11e94ae6a75de2dee899fb93db098b55cde232710660d7d66f9e2b288d9c0", 1646928853219, 0.057841], "benchmarks.TableSuite.time_table_heavy_wrapping": [[0.0030062344994803425], [], "ca515a9739c1e0f8eb922420f9f9caf27321fb13c8bd0bc49b207a0588b370de", 1646928858805, 0.45159, [0.0029959], [0.003032], [0.0030028], [0.0030158], [4], [10]], "benchmarks.TableSuite.time_table_no_wrapping": [[0.0019549964999896474], [], "8842a5f141d8208ba2bab66e4973e978cb5d0615f326af5d70385ff8fa44b3b9", 1646928859036, 0.4454, [0.0019383], [0.0019804], [0.0019503], [0.0019601], [6], [10]], "benchmarks.TextSuite.time_align_center": [[0.0006746847328031435], [], "1ceeeef2de43fcb3d0dfec409972d8f0eb791e9615fa9f9c959e0423725b089b", 1646928859261, 0.42948, [0.00067265], [0.00068436], [0.00067422], [0.0006759], [15], [10]], "benchmarks.TextSuite.time_align_center_unicode_heavy": [[0.0005672357365256175], [], "a83ff79614dd2ae17e8b68f45981fcaa0d9833c59a7a14f171b896cf970f54ce", 1646928859472, 0.43532, [0.00055666], [0.00057062], [0.00056009], [0.00056754], [19], [10]], "benchmarks.TextSuite.time_divide": [[2.8418685870028115e-05], [], "dcc120b921cb2ec77632f8fe2f6f4150d479cb49ef2608f8e86b569a937756e9", 1646928859694, 0.44721, [2.8232e-05], [2.8618e-05], [2.8245e-05], [2.8555e-05], [382], [10]], "benchmarks.TextSuite.time_divide_unicode_heavy": [[0.0001885252192886056], [], "ea53e662c0553324f90ac3336dcee77f733bb33638888e1f84bf71945a2f3f8e", 1646928859918, 0.44345, [0.00018577], [0.00019176], [0.00018654], [0.00019079], [57], [10]], "benchmarks.TextSuite.time_fit": [[4.254158431510759e-05], [], "ec77b412db357b1e1c1e7bc620b941dddfc36dc76d2a66a0417feae4f21fe1d3", 1646928860137, 0.44786, [4.194e-05], [4.3131e-05], [4.2003e-05], [4.3078e-05], [249], [10]], "benchmarks.TextSuite.time_fit_unicode_heavy": [[0.0003303958388466028], [], "d1574b4af2ef8b80b95b4dbeeb13e5de67b66783f76f9968834776239dd0dc66", 1646928860354, 0.42865, [0.00032919], [0.00033584], [0.00032968], [0.00033251], [31], [10]], "benchmarks.TextSuite.time_indent_guides": [null, [], "18da036dcfc15ec5e3c11e72be7c8f0c22fba695a5f19c95836be36952376cf2", 1646928855047, 0.05887], "benchmarks.TextSuite.time_render": [[4.739229232535885e-06], [], "907d30581cfdc7bb2c4d302b7e3cb474aaefd8b84821365fe105af7d82be3b09", 1646928860567, 0.44225, [4.6743e-06], [4.8503e-06], [4.6821e-06], [4.7958e-06], [2323], [10]], "benchmarks.TextSuite.time_render_unicode_heavy": [[8.498502347720205e-05], [], "b3f1c09dfd06f412a20dacfe378c3b446727c7d4f9a975336eab3daa8543e1cb", 1646928860790, 0.44589, [8.4331e-05], [8.5831e-05], [8.4775e-05], [8.5298e-05], [128], [10]], "benchmarks.TextSuite.time_split": [[3.433012977602163e-05], [], "9c165854130cb95fea5491ffcd8b580a5bd373149da2ef8aace0e9480f649854", 1646928861012, 0.44415, [3.41e-05], [3.4515e-05], [3.4156e-05], [3.4444e-05], [312], [10]], "benchmarks.TextSuite.time_split_unicode_heavy": [[0.00028185135129574885], [], "d55b02f6d06f478d70635bac3409f3a9899137d9cee87a70a293b8ccf5a6afa4", 1646928861231, 0.43494, [0.00027825], [0.00028467], [0.00027917], [0.00028441], [37], [10]], "benchmarks.TextSuite.time_wrapping": [[0.0011610370565904304], [], "8c821eba13d043f228fd902d8f678c397741855db05d02abe9b82f3d65cdf03d", 1646928861446, 0.43957, [0.0011431], [0.0011705], [0.0011456], [0.0011688], [9], [10]], "benchmarks.TextSuite.time_wrapping_unicode_heavy": [[0.0015498154992071378], [], "ec6e2ef08b6cdee182fef4e26c0043f8c365984f9a31be07dbd792e1aed862d8", 1646928861673, 0.44193, [0.0015472], [0.0015531], [0.0015492], [0.0015514], [7], [10]]}, "durations": {"": 2.083641767501831}, "version": 2} diff --git a/benchmarks/results/darrenburns-2022-mbp/972dedff-virtualenv-py3.10.json b/benchmarks/results/darrenburns-2022-mbp/972dedff-virtualenv-py3.10.json new file mode 100644 index 0000000000..ce18b94a9f --- /dev/null +++ b/benchmarks/results/darrenburns-2022-mbp/972dedff-virtualenv-py3.10.json @@ -0,0 +1 @@ +{"commit_hash": "972dedff546a60642db36831dbb8aaab19077a2c", "env_name": "virtualenv-py3.10", "date": 1644350984000, "params": {"arch": "arm64", "cpu": "Apple M1 Pro", "machine": "darrenburns-2022-mbp", "num_cpu": "10", "os": "Darwin 21.2.0", "ram": "17179869184", "python": "3.10"}, "python": "3.10", "requirements": {}, "env_vars": {}, "result_columns": ["result", "params", "version", "started_at", "duration", "stats_ci_99_a", "stats_ci_99_b", "stats_q_25", "stats_q_75", "stats_number", "stats_repeat", "samples", "profile"], "results": {"benchmarks.ColorSuite.time_downgrade_to_eight_bit": [[1.6966378869754063e-07], [], "019b972f782c6291df9a6a4dea9bb3c6268a69b177e71383d6e19a608e84920d", 1646928495086, 0.46992, [1.6874e-07], [1.7064e-07], [1.6945e-07], [1.7023e-07], [64687], [10]], "benchmarks.ColorSuite.time_downgrade_to_standard": [[1.7017139318109407e-07], [], "f5e8556491c977450fff6ebfd9fff4fc8f12d74829aa5b8570bd27ea7a1c9d28", 1646928495321, 0.45793, [1.6932e-07], [1.7182e-07], [1.6983e-07], [1.703e-07], [64740], [10]], "benchmarks.ColorSuite.time_downgrade_to_windows": [[1.7002950434441852e-07], [], "373eb97dd7ce2823e080972249235f528e8b3a47210911981cf432ecf0eef5fb", 1646928495556, 0.46019, [1.6913e-07], [1.7472e-07], [1.6977e-07], [1.7424e-07], [64312], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_eight_bit": [[1.7467250773761525e-07], [], "716ff06a471a5d90af3730f6d4470eba3577432d781e0210dff1fd156b8c549c", 1646928495790, 0.45191, [1.7185e-07], [1.7663e-07], [1.7369e-07], [1.7497e-07], [60206], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_standard": [[1.7190822590057033e-07], [], "3a752a7884e99e095c31b2a28cfefdf916cb2033c06afae1ea146a72f3ba650c", 1646928496014, 0.46004, [1.6948e-07], [1.7801e-07], [1.7119e-07], [1.7264e-07], [64735], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_windows": [[1.7009651108030483e-07], [], "1732bbd18ada49eb7b054fc18b40d6acfb533023463366f37203dab6fbb0cc20", 1646928496250, 0.4653, [1.6952e-07], [1.7196e-07], [1.6986e-07], [1.707e-07], [64319], [10]], "benchmarks.PrettySuite.time_pretty": [[0.0011247847222774806], [], "9bb0e6d8a29aad21b3d1b550a160fa5f1e9030c69d16bad500c0dcc77bff6d01", 1646928496482, 0.44639, [0.001112], [0.0011365], [0.0011158], [0.0011325], [9], [10]], "benchmarks.PrettySuite.time_pretty_indent_guides": [[0.0015590207850826637], [], "8d71bf19dfe999b0fba95d009986bfd6911c53c7a0c455466725f553005c3bc7", 1646928496704, 0.4506, [0.0015551], [0.0015745], [0.0015573], [0.0015604], [7], [10]], "benchmarks.PrettySuite.time_pretty_justify_center": [[0.0014094245016167406], [], "54cbf71bacab14ccbe1d063847c0b89198ed1bbe06edc89c14d2e3c7b1986c41", 1646928496927, 0.45541, [0.0014043], [0.0014183], [0.0014068], [0.0014121], [8], [10]], "benchmarks.StyleSuite.time_parse_ansi": [[1.15377114080549e-07], [], "a003aaa8017585efeb1cd9c43351282df4df6249bf28a4c447b1304d984aa753", 1646928497155, 0.46082, [1.1383e-07], [1.1643e-07], [1.1402e-07], [1.1641e-07], [96374], [10]], "benchmarks.StyleSuite.time_parse_hex": [[1.1530580833173779e-07], [], "cf5a3f0def435d3da5bc3a6e7549c44c0a02e9cce6c00ecde8dd7f527556f8ca", 1646928497380, 0.4676, [1.1424e-07], [1.1631e-07], [1.1452e-07], [1.1606e-07], [95519], [10]], "benchmarks.StyleSuite.time_parse_mixed_complex_style": [[1.1414555468820137e-07], [], "01c9e12ae829b1984e55a5aeef1a9ae6f1461577adaf5ae59f06358c8b52802f", 1646928497613, 0.43722, [1.1394e-07], [1.1443e-07], [1.1403e-07], [1.1429e-07], [87802], [10]], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_heavy_wrapping": [[0.00856696874689078], [], "1ed4d74ea424990cfb40c96f07635f9bcf7b8bacc7ade5204aaf96363e1622ee", 1646928497832, 0.52107, [0.0085105], [0.0085887], [0.0085325], [0.0085761], [2], [10]], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_medium_wrapping": [[0.008623926994914655], [], "0880e162a4907ee025cef8ac3380502554fde27fd0c90a4c15cebc9c27f3e333", 1646928498093, 0.52342, [0.0084933], [0.008741], [0.0085369], [0.0087188], [2], [10]], "benchmarks.SyntaxWrappingSuite.time_text_wide_terminal_no_wrapping": [[0.0085112914966885], [], "feb11e94ae6a75de2dee899fb93db098b55cde232710660d7d66f9e2b288d9c0", 1646928498357, 0.52026, [0.0084441], [0.0085937], [0.0084911], [0.0085498], [2], [10]], "benchmarks.TableSuite.time_table_heavy_wrapping": [[0.0018723436684619323], [], "ca515a9739c1e0f8eb922420f9f9caf27321fb13c8bd0bc49b207a0588b370de", 1646928498617, 0.46144, [0.0018687], [0.0018865], [0.0018704], [0.0018784], [6], [10]], "benchmarks.TableSuite.time_table_no_wrapping": [[0.001163543945747531], [], "8842a5f141d8208ba2bab66e4973e978cb5d0615f326af5d70385ff8fa44b3b9", 1646928498844, 0.45098, [0.0011545], [0.0011705], [0.0011583], [0.0011655], [9], [10]], "benchmarks.TextSuite.time_align_center": [[0.0003731056432505804], [], "1ceeeef2de43fcb3d0dfec409972d8f0eb791e9615fa9f9c959e0423725b089b", 1646928499071, 0.45304, [0.00036918], [0.0003779], [0.00036939], [0.00037736], [28], [10]], "benchmarks.TextSuite.time_align_center_unicode_heavy": [[0.0003431505324589389], [], "a83ff79614dd2ae17e8b68f45981fcaa0d9833c59a7a14f171b896cf970f54ce", 1646928499294, 0.45801, [0.00033954], [0.00035455], [0.00034024], [0.00034843], [31], [10]], "benchmarks.TextSuite.time_divide": [[2.5219379093086475e-05], [], "dcc120b921cb2ec77632f8fe2f6f4150d479cb49ef2608f8e86b569a937756e9", 1646928499521, 0.48708, [2.5129e-05], [2.5432e-05], [2.5169e-05], [2.5248e-05], [430], [10]], "benchmarks.TextSuite.time_divide_unicode_heavy": [[0.0001847848450716842], [], "ea53e662c0553324f90ac3336dcee77f733bb33638888e1f84bf71945a2f3f8e", 1646928499751, 0.45863, [0.00018368], [0.00018612], [0.00018468], [0.00018542], [58], [10]], "benchmarks.TextSuite.time_fit": [[4.354522359317047e-05], [], "ec77b412db357b1e1c1e7bc620b941dddfc36dc76d2a66a0417feae4f21fe1d3", 1646928499980, 0.45059, [4.3406e-05], [4.3589e-05], [4.3499e-05], [4.3567e-05], [246], [10]], "benchmarks.TextSuite.time_fit_unicode_heavy": [[0.0003285789090582649], [], "d1574b4af2ef8b80b95b4dbeeb13e5de67b66783f76f9968834776239dd0dc66", 1646928500208, 0.46249, [0.00032374], [0.00033239], [0.00032437], [0.00033095], [33], [10]], "benchmarks.TextSuite.time_indent_guides": [[0.00036147917201341095], [], "18da036dcfc15ec5e3c11e72be7c8f0c22fba695a5f19c95836be36952376cf2", 1646928500440, 0.45334, [0.00035645], [0.00036522], [0.0003572], [0.00036511], [29], [10]], "benchmarks.TextSuite.time_render": [[4.6709620594807475e-06], [], "907d30581cfdc7bb2c4d302b7e3cb474aaefd8b84821365fe105af7d82be3b09", 1646928500664, 0.45489, [4.6603e-06], [4.6945e-06], [4.6672e-06], [4.6786e-06], [2333], [10]], "benchmarks.TextSuite.time_render_unicode_heavy": [[8.508430858000793e-05], [], "b3f1c09dfd06f412a20dacfe378c3b446727c7d4f9a975336eab3daa8543e1cb", 1646928500895, 0.46037, [8.4182e-05], [8.555e-05], [8.4551e-05], [8.528e-05], [128], [10]], "benchmarks.TextSuite.time_split": [[3.515611525153282e-05], [], "9c165854130cb95fea5491ffcd8b580a5bd373149da2ef8aace0e9480f649854", 1646928501126, 0.45158, [3.5113e-05], [3.5189e-05], [3.5147e-05], [3.5168e-05], [308], [10]], "benchmarks.TextSuite.time_split_unicode_heavy": [[0.0002742062053398397], [], "d55b02f6d06f478d70635bac3409f3a9899137d9cee87a70a293b8ccf5a6afa4", 1646928501356, 0.45824, [0.00027279], [0.00027536], [0.00027397], [0.00027449], [39], [10]], "benchmarks.TextSuite.time_wrapping": [[0.001361679685942363], [], "8c821eba13d043f228fd902d8f678c397741855db05d02abe9b82f3d65cdf03d", 1646928501585, 0.45899, [0.0013561], [0.0013646], [0.0013591], [0.0013633], [8], [10]], "benchmarks.TextSuite.time_wrapping_unicode_heavy": [[0.0014518333607286746], [], "ec6e2ef08b6cdee182fef4e26c0043f8c365984f9a31be07dbd792e1aed862d8", 1646928501817, 0.44956, [0.0014478], [0.0014776], [0.0014492], [0.0014702], [7], [10]]}, "durations": {"": 1.9903857707977295}, "version": 2} diff --git a/benchmarks/results/darrenburns-2022-mbp/99831099-virtualenv-py3.10.json b/benchmarks/results/darrenburns-2022-mbp/99831099-virtualenv-py3.10.json new file mode 100644 index 0000000000..fe9ca7d510 --- /dev/null +++ b/benchmarks/results/darrenburns-2022-mbp/99831099-virtualenv-py3.10.json @@ -0,0 +1 @@ +{"commit_hash": "99831099bddeb1fc133dc17deb3743f0a6eeeabd", "env_name": "virtualenv-py3.10", "date": 1638115235000, "params": {"arch": "arm64", "cpu": "Apple M1 Pro", "machine": "darrenburns-2022-mbp", "num_cpu": "10", "os": "Darwin 21.2.0", "ram": "17179869184", "python": "3.10"}, "python": "3.10", "requirements": {}, "env_vars": {}, "result_columns": ["result", "params", "version", "started_at", "duration", "stats_ci_99_a", "stats_ci_99_b", "stats_q_25", "stats_q_75", "stats_number", "stats_repeat", "samples", "profile"], "results": {"benchmarks.ColorSuite.time_downgrade_to_eight_bit": [[1.6982679175346359e-07], [], "019b972f782c6291df9a6a4dea9bb3c6268a69b177e71383d6e19a608e84920d", 1646929411358, 0.4647, [1.6906e-07], [1.7112e-07], [1.6956e-07], [1.7051e-07], [64561], [10]], "benchmarks.ColorSuite.time_downgrade_to_standard": [[1.706459781564628e-07], [], "f5e8556491c977450fff6ebfd9fff4fc8f12d74829aa5b8570bd27ea7a1c9d28", 1646929411589, 0.46668, [1.6944e-07], [1.7227e-07], [1.6994e-07], [1.7091e-07], [64359], [10]], "benchmarks.ColorSuite.time_downgrade_to_windows": [[1.7064087511396272e-07], [], "373eb97dd7ce2823e080972249235f528e8b3a47210911981cf432ecf0eef5fb", 1646929411824, 0.44285, [1.6919e-07], [1.7259e-07], [1.703e-07], [1.7147e-07], [58843], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_eight_bit": [[1.7012664847376487e-07], [], "716ff06a471a5d90af3730f6d4470eba3577432d781e0210dff1fd156b8c549c", 1646929412045, 0.46681, [1.6876e-07], [1.7083e-07], [1.6977e-07], [1.7042e-07], [64367], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_standard": [[1.7029855906558936e-07], [], "3a752a7884e99e095c31b2a28cfefdf916cb2033c06afae1ea146a72f3ba650c", 1646929412279, 0.44022, [1.687e-07], [1.7099e-07], [1.6991e-07], [1.706e-07], [59129], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_windows": [[1.7017031937624742e-07], [], "1732bbd18ada49eb7b054fc18b40d6acfb533023463366f37203dab6fbb0cc20", 1646929412500, 0.44931, [1.683e-07], [1.7164e-07], [1.6926e-07], [1.7109e-07], [61097], [10]], "benchmarks.PrettySuite.time_pretty": [[0.0011088145998655818], [], "9bb0e6d8a29aad21b3d1b550a160fa5f1e9030c69d16bad500c0dcc77bff6d01", 1646929412725, 0.45704, [0.0011029], [0.001145], [0.0011059], [0.0011133], [10], [10]], "benchmarks.PrettySuite.time_pretty_indent_guides": [[0.0015167499285390867], [], "8d71bf19dfe999b0fba95d009986bfd6911c53c7a0c455466725f553005c3bc7", 1646929412951, 0.45188, [0.0015075], [0.0015242], [0.0015143], [0.0015202], [7], [10]], "benchmarks.PrettySuite.time_pretty_justify_center": [[0.0013967474369565025], [], "54cbf71bacab14ccbe1d063847c0b89198ed1bbe06edc89c14d2e3c7b1986c41", 1646929413181, 0.45271, [0.0013941], [0.0014128], [0.0013961], [0.0013988], [8], [10]], "benchmarks.StyleSuite.time_parse_ansi": [[1.1438807979086921e-07], [], "a003aaa8017585efeb1cd9c43351282df4df6249bf28a4c447b1304d984aa753", 1646929413407, 0.46603, [1.1408e-07], [1.1454e-07], [1.1426e-07], [1.1447e-07], [96350], [10]], "benchmarks.StyleSuite.time_parse_hex": [[1.1441311339866706e-07], [], "cf5a3f0def435d3da5bc3a6e7549c44c0a02e9cce6c00ecde8dd7f527556f8ca", 1646929413641, 0.45787, [1.1415e-07], [1.1478e-07], [1.1421e-07], [1.1447e-07], [96505], [10]], "benchmarks.StyleSuite.time_parse_mixed_complex_style": [[1.1426662973699961e-07], [], "01c9e12ae829b1984e55a5aeef1a9ae6f1461577adaf5ae59f06358c8b52802f", 1646929413875, 0.4625, [1.1388e-07], [1.1447e-07], [1.1409e-07], [1.1438e-07], [95582], [10]], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_heavy_wrapping": [null, [], "1ed4d74ea424990cfb40c96f07635f9bcf7b8bacc7ade5204aaf96363e1622ee", 1646929407766, 0.066034], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_medium_wrapping": [null, [], "0880e162a4907ee025cef8ac3380502554fde27fd0c90a4c15cebc9c27f3e333", 1646929407832, 0.065672], "benchmarks.SyntaxWrappingSuite.time_text_wide_terminal_no_wrapping": [null, [], "feb11e94ae6a75de2dee899fb93db098b55cde232710660d7d66f9e2b288d9c0", 1646929407898, 0.070778], "benchmarks.TableSuite.time_table_heavy_wrapping": [[0.002354537500650622], [], "ca515a9739c1e0f8eb922420f9f9caf27321fb13c8bd0bc49b207a0588b370de", 1646929414107, 0.46527, [0.0023322], [0.0023688], [0.0023464], [0.0023621], [5], [10]], "benchmarks.TableSuite.time_table_no_wrapping": [[0.001406848936312599], [], "8842a5f141d8208ba2bab66e4973e978cb5d0615f326af5d70385ff8fa44b3b9", 1646929414342, 0.45461, [0.0013948], [0.0014186], [0.0014015], [0.0014138], [8], [10]], "benchmarks.TextSuite.time_align_center": [[0.00037511310750103027], [], "1ceeeef2de43fcb3d0dfec409972d8f0eb791e9615fa9f9c959e0423725b089b", 1646929414571, 0.452, [0.00036923], [0.00038161], [0.0003696], [0.00038101], [28], [10]], "benchmarks.TextSuite.time_align_center_unicode_heavy": [[0.00033897580672806547], [], "a83ff79614dd2ae17e8b68f45981fcaa0d9833c59a7a14f171b896cf970f54ce", 1646929414798, 0.45278, [0.0003382], [0.00034913], [0.00033863], [0.00033953], [31], [10]], "benchmarks.TextSuite.time_divide": [[2.5416714819191904e-05], [], "dcc120b921cb2ec77632f8fe2f6f4150d479cb49ef2608f8e86b569a937756e9", 1646929415024, 0.45998, [2.5256e-05], [2.5557e-05], [2.5292e-05], [2.5498e-05], [426], [10]], "benchmarks.TextSuite.time_divide_unicode_heavy": [[0.00018457614627048568], [], "ea53e662c0553324f90ac3336dcee77f733bb33638888e1f84bf71945a2f3f8e", 1646929415253, 0.45621, [0.00018413], [0.00018542], [0.00018451], [0.00018495], [58], [10]], "benchmarks.TextSuite.time_fit": [[4.359315854839875e-05], [], "ec77b412db357b1e1c1e7bc620b941dddfc36dc76d2a66a0417feae4f21fe1d3", 1646929415482, 0.45154, [4.341e-05], [4.4443e-05], [4.3421e-05], [4.3797e-05], [246], [10]], "benchmarks.TextSuite.time_fit_unicode_heavy": [[0.0003251639671713835], [], "d1574b4af2ef8b80b95b4dbeeb13e5de67b66783f76f9968834776239dd0dc66", 1646929415712, 0.44338, [0.00032456], [0.00032633], [0.0003251], [0.00032562], [31], [10]], "benchmarks.TextSuite.time_indent_guides": [[0.00035597701709524823], [], "18da036dcfc15ec5e3c11e72be7c8f0c22fba695a5f19c95836be36952376cf2", 1646929415931, 0.44762, [0.00035452], [0.00035662], [0.00035576], [0.00035616], [29], [10]], "benchmarks.TextSuite.time_render": [[4.6830586492034534e-06], [], "907d30581cfdc7bb2c4d302b7e3cb474aaefd8b84821365fe105af7d82be3b09", 1646929416153, 0.45532, [4.6658e-06], [4.7253e-06], [4.678e-06], [4.6892e-06], [2336], [10]], "benchmarks.TextSuite.time_render_unicode_heavy": [[8.519799996251754e-05], [], "b3f1c09dfd06f412a20dacfe378c3b446727c7d4f9a975336eab3daa8543e1cb", 1646929416385, 0.45802, [8.4782e-05], [8.5324e-05], [8.5154e-05], [8.5293e-05], [127], [10]], "benchmarks.TextSuite.time_split": [[3.5137730366032985e-05], [], "9c165854130cb95fea5491ffcd8b580a5bd373149da2ef8aace0e9480f649854", 1646929416615, 0.4508, [3.5055e-05], [3.5293e-05], [3.5131e-05], [3.5204e-05], [306], [10]], "benchmarks.TextSuite.time_split_unicode_heavy": [[0.00027435251295652335], [], "d55b02f6d06f478d70635bac3409f3a9899137d9cee87a70a293b8ccf5a6afa4", 1646929416846, 0.44989, [0.0002739], [0.00027633], [0.00027395], [0.00027475], [38], [10]], "benchmarks.TextSuite.time_wrapping": [[0.0013601067494164454], [], "8c821eba13d043f228fd902d8f678c397741855db05d02abe9b82f3d65cdf03d", 1646929417070, 0.4556, [0.0013565], [0.0013641], [0.0013585], [0.0013618], [8], [10]], "benchmarks.TextSuite.time_wrapping_unicode_heavy": [[0.00144711607260563], [], "ec6e2ef08b6cdee182fef4e26c0043f8c365984f9a31be07dbd792e1aed862d8", 1646929417301, 0.44477, [0.001445], [0.0014551], [0.0014462], [0.0014513], [7], [10]]}, "durations": {"": 1.9822556972503662}, "version": 2} diff --git a/benchmarks/results/darrenburns-2022-mbp/9a4fbf83-virtualenv-py3.10.json b/benchmarks/results/darrenburns-2022-mbp/9a4fbf83-virtualenv-py3.10.json new file mode 100644 index 0000000000..568bd0a564 --- /dev/null +++ b/benchmarks/results/darrenburns-2022-mbp/9a4fbf83-virtualenv-py3.10.json @@ -0,0 +1 @@ +{"commit_hash": "9a4fbf83c5051eaf94a88996292c438c895306d5", "env_name": "virtualenv-py3.10", "date": 1595437545000, "params": {"arch": "arm64", "cpu": "Apple M1 Pro", "machine": "darrenburns-2022-mbp", "num_cpu": "10", "os": "Darwin 21.2.0", "ram": "17179869184", "python": "3.10"}, "python": "3.10", "requirements": {}, "env_vars": {}, "result_columns": ["result", "params", "version", "started_at", "duration", "stats_ci_99_a", "stats_ci_99_b", "stats_q_25", "stats_q_75", "stats_number", "stats_repeat", "samples", "profile"], "results": {"benchmarks.ColorSuite.time_downgrade_to_eight_bit": [[1.7386930548873132e-07], [], "019b972f782c6291df9a6a4dea9bb3c6268a69b177e71383d6e19a608e84920d", 1646928739952, 0.45265, [1.7111e-07], [1.7619e-07], [1.7318e-07], [1.7463e-07], [63637], [10]], "benchmarks.ColorSuite.time_downgrade_to_standard": [[1.7230044321104053e-07], [], "f5e8556491c977450fff6ebfd9fff4fc8f12d74829aa5b8570bd27ea7a1c9d28", 1646928740177, 0.44588, [1.6995e-07], [1.7494e-07], [1.7036e-07], [1.7383e-07], [62521], [10]], "benchmarks.ColorSuite.time_downgrade_to_windows": [[1.72545012648743e-07], [], "373eb97dd7ce2823e080972249235f528e8b3a47210911981cf432ecf0eef5fb", 1646928740397, 0.44363, [1.695e-07], [1.759e-07], [1.7023e-07], [1.7427e-07], [62227], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_eight_bit": [[1.7037679203746364e-07], [], "716ff06a471a5d90af3730f6d4470eba3577432d781e0210dff1fd156b8c549c", 1646928740615, 0.44989, [1.6957e-07], [1.7424e-07], [1.6983e-07], [1.7327e-07], [64452], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_standard": [[1.737208866830249e-07], [], "3a752a7884e99e095c31b2a28cfefdf916cb2033c06afae1ea146a72f3ba650c", 1646928740839, 0.43956, [1.6957e-07], [1.7818e-07], [1.7001e-07], [1.7405e-07], [64524], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_windows": [[1.7139659365246047e-07], [], "1732bbd18ada49eb7b054fc18b40d6acfb533023463366f37203dab6fbb0cc20", 1646928741057, 0.45054, [1.6827e-07], [1.7392e-07], [1.6965e-07], [1.7337e-07], [64972], [10]], "benchmarks.PrettySuite.time_pretty": [[0.0021915999008342625], [], "9bb0e6d8a29aad21b3d1b550a160fa5f1e9030c69d16bad500c0dcc77bff6d01", 1646928741282, 0.43506, [0.0021855], [0.0022052], [0.0021888], [0.0021949], [5], [10]], "benchmarks.PrettySuite.time_pretty_indent_guides": [null, [], "8d71bf19dfe999b0fba95d009986bfd6911c53c7a0c455466725f553005c3bc7", 1646928735895, 0.062236], "benchmarks.PrettySuite.time_pretty_justify_center": [null, [], "54cbf71bacab14ccbe1d063847c0b89198ed1bbe06edc89c14d2e3c7b1986c41", 1646928735957, 0.06095], "benchmarks.StyleSuite.time_parse_ansi": [[1.1658293135745944e-07], [], "a003aaa8017585efeb1cd9c43351282df4df6249bf28a4c447b1304d984aa753", 1646928741497, 0.42647, [1.1614e-07], [1.1683e-07], [1.1638e-07], [1.1675e-07], [87476], [10]], "benchmarks.StyleSuite.time_parse_hex": [[1.1498905654465906e-07], [], "cf5a3f0def435d3da5bc3a6e7549c44c0a02e9cce6c00ecde8dd7f527556f8ca", 1646928741709, 0.43337, [1.1385e-07], [1.1637e-07], [1.1408e-07], [1.1618e-07], [87677], [10]], "benchmarks.StyleSuite.time_parse_mixed_complex_style": [[1.145625050099677e-07], [], "01c9e12ae829b1984e55a5aeef1a9ae6f1461577adaf5ae59f06358c8b52802f", 1646928741928, 0.44186, [1.14e-07], [1.1499e-07], [1.1421e-07], [1.1496e-07], [96016], [10]], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_heavy_wrapping": [null, [], "1ed4d74ea424990cfb40c96f07635f9bcf7b8bacc7ade5204aaf96363e1622ee", 1646928736665, 0.060719], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_medium_wrapping": [null, [], "0880e162a4907ee025cef8ac3380502554fde27fd0c90a4c15cebc9c27f3e333", 1646928736726, 0.058912], "benchmarks.SyntaxWrappingSuite.time_text_wide_terminal_no_wrapping": [null, [], "feb11e94ae6a75de2dee899fb93db098b55cde232710660d7d66f9e2b288d9c0", 1646928736785, 0.058785], "benchmarks.TableSuite.time_table_heavy_wrapping": [[0.00213501249672845], [], "ca515a9739c1e0f8eb922420f9f9caf27321fb13c8bd0bc49b207a0588b370de", 1646928742152, 0.44067, [0.0020952], [0.0021407], [0.0021285], [0.0021365], [5], [10]], "benchmarks.TableSuite.time_table_no_wrapping": [[0.001505148786236532], [], "8842a5f141d8208ba2bab66e4973e978cb5d0615f326af5d70385ff8fa44b3b9", 1646928742376, 0.43714, [0.0014974], [0.0015108], [0.0015001], [0.0015081], [7], [10]], "benchmarks.TextSuite.time_align_center": [[0.000671309699343207], [], "1ceeeef2de43fcb3d0dfec409972d8f0eb791e9615fa9f9c959e0423725b089b", 1646928742598, 0.43843, [0.00065785], [0.0006777], [0.00066951], [0.00067533], [15], [10]], "benchmarks.TextSuite.time_align_center_unicode_heavy": [[0.0005592442232429878], [], "a83ff79614dd2ae17e8b68f45981fcaa0d9833c59a7a14f171b896cf970f54ce", 1646928742818, 0.42836, [0.0005557], [0.00056451], [0.00055711], [0.00056129], [18], [10]], "benchmarks.TextSuite.time_divide": [[2.8101753942839998e-05], [], "dcc120b921cb2ec77632f8fe2f6f4150d479cb49ef2608f8e86b569a937756e9", 1646928743030, 0.43291, [2.7832e-05], [2.8438e-05], [2.7841e-05], [2.839e-05], [380], [10]], "benchmarks.TextSuite.time_divide_unicode_heavy": [[0.00018889364033831252], [], "ea53e662c0553324f90ac3336dcee77f733bb33638888e1f84bf71945a2f3f8e", 1646928743250, 0.44454, [0.00018637], [0.0001921], [0.00018701], [0.0001909], [57], [10]], "benchmarks.TextSuite.time_fit": [[4.2501335963606834e-05], [], "ec77b412db357b1e1c1e7bc620b941dddfc36dc76d2a66a0417feae4f21fe1d3", 1646928743471, 0.43217, [4.2014e-05], [4.3025e-05], [4.2117e-05], [4.295e-05], [250], [10]], "benchmarks.TextSuite.time_fit_unicode_heavy": [[0.0003339798549272781], [], "d1574b4af2ef8b80b95b4dbeeb13e5de67b66783f76f9968834776239dd0dc66", 1646928743690, 0.43164, [0.0003302], [0.00033798], [0.00033052], [0.00033699], [31], [10]], "benchmarks.TextSuite.time_indent_guides": [null, [], "18da036dcfc15ec5e3c11e72be7c8f0c22fba695a5f19c95836be36952376cf2", 1646928738581, 0.059351], "benchmarks.TextSuite.time_render": [[4.728479212368737e-06], [], "907d30581cfdc7bb2c4d302b7e3cb474aaefd8b84821365fe105af7d82be3b09", 1646928743904, 0.43175, [4.6732e-06], [4.7967e-06], [4.6806e-06], [4.7775e-06], [2333], [10]], "benchmarks.TextSuite.time_render_unicode_heavy": [[8.626853532476834e-05], [], "b3f1c09dfd06f412a20dacfe378c3b446727c7d4f9a975336eab3daa8543e1cb", 1646928744120, 0.44458, [8.5439e-05], [8.705e-05], [8.5642e-05], [8.6704e-05], [127], [10]], "benchmarks.TextSuite.time_split": [[3.386980897866033e-05], [], "9c165854130cb95fea5491ffcd8b580a5bd373149da2ef8aace0e9480f649854", 1646928744345, 0.4354, [3.3638e-05], [3.3934e-05], [3.3678e-05], [3.391e-05], [309], [10]], "benchmarks.TextSuite.time_split_unicode_heavy": [[0.0002787044052368131], [], "d55b02f6d06f478d70635bac3409f3a9899137d9cee87a70a293b8ccf5a6afa4", 1646928744562, 0.42997, [0.00027754], [0.00027963], [0.0002786], [0.00027892], [37], [10]], "benchmarks.TextSuite.time_wrapping": [[0.001163493056083098], [], "8c821eba13d043f228fd902d8f678c397741855db05d02abe9b82f3d65cdf03d", 1646928744776, 0.4368, [0.0011444], [0.0011821], [0.0011587], [0.0011653], [9], [10]], "benchmarks.TextSuite.time_wrapping_unicode_heavy": [[0.001542642856033386], [], "ec6e2ef08b6cdee182fef4e26c0043f8c365984f9a31be07dbd792e1aed862d8", 1646928744993, 0.44139, [0.0015144], [0.0015682], [0.0015177], [0.0015639], [7], [10]]}, "durations": {"": 2.0578808784484863}, "version": 2} diff --git a/benchmarks/results/darrenburns-2022-mbp/9abc0292-virtualenv-py3.10.json b/benchmarks/results/darrenburns-2022-mbp/9abc0292-virtualenv-py3.10.json new file mode 100644 index 0000000000..a68ea29c55 --- /dev/null +++ b/benchmarks/results/darrenburns-2022-mbp/9abc0292-virtualenv-py3.10.json @@ -0,0 +1 @@ +{"commit_hash": "9abc0292c1f96433e4f87b10d5dea0d617b0ab23", "env_name": "virtualenv-py3.10", "date": 1597074281000, "params": {"arch": "arm64", "cpu": "Apple M1 Pro", "machine": "darrenburns-2022-mbp", "num_cpu": "10", "os": "Darwin 21.2.0", "ram": "17179869184", "python": "3.10"}, "python": "3.10", "requirements": {}, "env_vars": {}, "result_columns": ["result", "params", "version", "started_at", "duration", "stats_ci_99_a", "stats_ci_99_b", "stats_q_25", "stats_q_75", "stats_number", "stats_repeat", "samples", "profile"], "results": {"benchmarks.ColorSuite.time_downgrade_to_eight_bit": [[1.7436755900738068e-07], [], "019b972f782c6291df9a6a4dea9bb3c6268a69b177e71383d6e19a608e84920d", 1646928830015, 0.43858, [1.7219e-07], [1.9119e-07], [1.7358e-07], [1.8241e-07], [58543], [10]], "benchmarks.ColorSuite.time_downgrade_to_standard": [[1.7281580510216833e-07], [], "f5e8556491c977450fff6ebfd9fff4fc8f12d74829aa5b8570bd27ea7a1c9d28", 1646928830235, 0.45154, [1.7127e-07], [1.76e-07], [1.7158e-07], [1.7382e-07], [62214], [10]], "benchmarks.ColorSuite.time_downgrade_to_windows": [[1.7408680274644608e-07], [], "373eb97dd7ce2823e080972249235f528e8b3a47210911981cf432ecf0eef5fb", 1646928830455, 0.43516, [1.7292e-07], [1.8035e-07], [1.7353e-07], [1.7709e-07], [59854], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_eight_bit": [[1.7334309856629754e-07], [], "716ff06a471a5d90af3730f6d4470eba3577432d781e0210dff1fd156b8c549c", 1646928830671, 0.45819, [1.7233e-07], [1.7734e-07], [1.7275e-07], [1.7519e-07], [63301], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_standard": [[1.726152067704983e-07], [], "3a752a7884e99e095c31b2a28cfefdf916cb2033c06afae1ea146a72f3ba650c", 1646928830903, 0.45786, [1.6992e-07], [1.7717e-07], [1.7109e-07], [1.7322e-07], [63629], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_windows": [[1.7279195024118287e-07], [], "1732bbd18ada49eb7b054fc18b40d6acfb533023463366f37203dab6fbb0cc20", 1646928831134, 0.43673, [1.697e-07], [1.7473e-07], [1.7052e-07], [1.7368e-07], [64946], [10]], "benchmarks.PrettySuite.time_pretty": [[0.0013254479381430428], [], "9bb0e6d8a29aad21b3d1b550a160fa5f1e9030c69d16bad500c0dcc77bff6d01", 1646928831351, 0.4335, [0.0013162], [0.0013434], [0.0013177], [0.0013398], [8], [10]], "benchmarks.PrettySuite.time_pretty_indent_guides": [null, [], "8d71bf19dfe999b0fba95d009986bfd6911c53c7a0c455466725f553005c3bc7", 1646928825940, 0.058209], "benchmarks.PrettySuite.time_pretty_justify_center": [null, [], "54cbf71bacab14ccbe1d063847c0b89198ed1bbe06edc89c14d2e3c7b1986c41", 1646928825998, 0.057693], "benchmarks.StyleSuite.time_parse_ansi": [[1.1619074018194943e-07], [], "a003aaa8017585efeb1cd9c43351282df4df6249bf28a4c447b1304d984aa753", 1646928831567, 0.45128, [1.146e-07], [1.1696e-07], [1.16e-07], [1.1642e-07], [95735], [10]], "benchmarks.StyleSuite.time_parse_hex": [[1.1617918764174161e-07], [], "cf5a3f0def435d3da5bc3a6e7549c44c0a02e9cce6c00ecde8dd7f527556f8ca", 1646928831793, 0.4337, [1.147e-07], [1.1718e-07], [1.1571e-07], [1.1632e-07], [96226], [10]], "benchmarks.StyleSuite.time_parse_mixed_complex_style": [[1.1625632190902994e-07], [], "01c9e12ae829b1984e55a5aeef1a9ae6f1461577adaf5ae59f06358c8b52802f", 1646928832012, 0.4454, [1.1471e-07], [1.1751e-07], [1.1619e-07], [1.1638e-07], [96646], [10]], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_heavy_wrapping": [null, [], "1ed4d74ea424990cfb40c96f07635f9bcf7b8bacc7ade5204aaf96363e1622ee", 1646928826725, 0.058334], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_medium_wrapping": [null, [], "0880e162a4907ee025cef8ac3380502554fde27fd0c90a4c15cebc9c27f3e333", 1646928826784, 0.057861], "benchmarks.SyntaxWrappingSuite.time_text_wide_terminal_no_wrapping": [null, [], "feb11e94ae6a75de2dee899fb93db098b55cde232710660d7d66f9e2b288d9c0", 1646928826842, 0.057589], "benchmarks.TableSuite.time_table_heavy_wrapping": [[0.0023085165972588583], [], "ca515a9739c1e0f8eb922420f9f9caf27321fb13c8bd0bc49b207a0588b370de", 1646928832229, 0.44221, [0.0023022], [0.002314], [0.0023044], [0.002309], [5], [10]], "benchmarks.TableSuite.time_table_no_wrapping": [[0.0014938482158218644], [], "8842a5f141d8208ba2bab66e4973e978cb5d0615f326af5d70385ff8fa44b3b9", 1646928832452, 0.43078, [0.0014653], [0.0015017], [0.0014732], [0.0014962], [7], [10]], "benchmarks.TextSuite.time_align_center": [[0.0006769309684386826], [], "1ceeeef2de43fcb3d0dfec409972d8f0eb791e9615fa9f9c959e0423725b089b", 1646928832670, 0.44257, [0.00067313], [0.00069285], [0.00067405], [0.00068539], [16], [10]], "benchmarks.TextSuite.time_align_center_unicode_heavy": [[0.000564776638283446], [], "a83ff79614dd2ae17e8b68f45981fcaa0d9833c59a7a14f171b896cf970f54ce", 1646928832897, 0.43519, [0.00055025], [0.00057366], [0.00056426], [0.00056881], [18], [10]], "benchmarks.TextSuite.time_divide": [[2.8389237465098558e-05], [], "dcc120b921cb2ec77632f8fe2f6f4150d479cb49ef2608f8e86b569a937756e9", 1646928833117, 0.44553, [2.8336e-05], [2.841e-05], [2.8386e-05], [2.8393e-05], [379], [10]], "benchmarks.TextSuite.time_divide_unicode_heavy": [[0.00019049086825505488], [], "ea53e662c0553324f90ac3336dcee77f733bb33638888e1f84bf71945a2f3f8e", 1646928833338, 0.44401, [0.00018818], [0.00019159], [0.00018865], [0.00019092], [57], [10]], "benchmarks.TextSuite.time_fit": [[4.248857458737949e-05], [], "ec77b412db357b1e1c1e7bc620b941dddfc36dc76d2a66a0417feae4f21fe1d3", 1646928833559, 0.43865, [4.1986e-05], [4.3156e-05], [4.2111e-05], [4.3017e-05], [248], [10]], "benchmarks.TextSuite.time_fit_unicode_heavy": [[0.00033843211290772045], [], "d1574b4af2ef8b80b95b4dbeeb13e5de67b66783f76f9968834776239dd0dc66", 1646928833779, 0.43836, [0.00033167], [0.00035884], [0.00033615], [0.00033982], [31], [10]], "benchmarks.TextSuite.time_indent_guides": [null, [], "18da036dcfc15ec5e3c11e72be7c8f0c22fba695a5f19c95836be36952376cf2", 1646928828651, 0.063001], "benchmarks.TextSuite.time_render": [[4.777508618050992e-06], [], "907d30581cfdc7bb2c4d302b7e3cb474aaefd8b84821365fe105af7d82be3b09", 1646928833997, 0.4336, [4.7379e-06], [4.8187e-06], [4.751e-06], [4.8037e-06], [2322], [10]], "benchmarks.TextSuite.time_render_unicode_heavy": [[8.65903406018584e-05], [], "b3f1c09dfd06f412a20dacfe378c3b446727c7d4f9a975336eab3daa8543e1cb", 1646928834215, 0.42096, [8.5511e-05], [8.7115e-05], [8.6415e-05], [8.6664e-05], [116], [10]], "benchmarks.TextSuite.time_split": [[3.43698573907694e-05], [], "9c165854130cb95fea5491ffcd8b580a5bd373149da2ef8aace0e9480f649854", 1646928834428, 0.44215, [3.4307e-05], [3.4539e-05], [3.432e-05], [3.4417e-05], [312], [10]], "benchmarks.TextSuite.time_split_unicode_heavy": [[0.0002845039463765617], [], "d55b02f6d06f478d70635bac3409f3a9899137d9cee87a70a293b8ccf5a6afa4", 1646928834648, 0.43493, [0.00028015], [0.00029144], [0.00028329], [0.00028692], [37], [10]], "benchmarks.TextSuite.time_wrapping": [[0.0011678935002742542], [], "8c821eba13d043f228fd902d8f678c397741855db05d02abe9b82f3d65cdf03d", 1646928834866, 0.43851, [0.001162], [0.0011697], [0.0011639], [0.0011683], [9], [10]], "benchmarks.TextSuite.time_wrapping_unicode_heavy": [[0.0015627648577459954], [], "ec6e2ef08b6cdee182fef4e26c0043f8c365984f9a31be07dbd792e1aed862d8", 1646928835084, 0.42995, [0.0015509], [0.0015655], [0.0015528], [0.0015645], [7], [10]]}, "durations": {"": 2.013007164001465}, "version": 2} diff --git a/benchmarks/results/darrenburns-2022-mbp/9f2a426e-virtualenv-py3.10.json b/benchmarks/results/darrenburns-2022-mbp/9f2a426e-virtualenv-py3.10.json new file mode 100644 index 0000000000..b50271a036 --- /dev/null +++ b/benchmarks/results/darrenburns-2022-mbp/9f2a426e-virtualenv-py3.10.json @@ -0,0 +1 @@ +{"commit_hash": "9f2a426ea7b27e9ef41bb08bff7b0481d4755aa6", "env_name": "virtualenv-py3.10", "date": 1603122075000, "params": {"arch": "arm64", "cpu": "Apple M1 Pro", "machine": "darrenburns-2022-mbp", "num_cpu": "10", "os": "Darwin 21.2.0", "ram": "17179869184", "python": "3.10"}, "python": "3.10", "requirements": {}, "env_vars": {}, "result_columns": ["result", "params", "version", "started_at", "duration", "stats_ci_99_a", "stats_ci_99_b", "stats_q_25", "stats_q_75", "stats_number", "stats_repeat", "samples", "profile"], "results": {"benchmarks.ColorSuite.time_downgrade_to_eight_bit": [[1.7051829723035e-07], [], "019b972f782c6291df9a6a4dea9bb3c6268a69b177e71383d6e19a608e84920d", 1646928975704, 0.45428, [1.693e-07], [1.7101e-07], [1.6986e-07], [1.7082e-07], [64518], [10]], "benchmarks.ColorSuite.time_downgrade_to_standard": [[1.7051761587887072e-07], [], "f5e8556491c977450fff6ebfd9fff4fc8f12d74829aa5b8570bd27ea7a1c9d28", 1646928975930, 0.46355, [1.6948e-07], [1.7215e-07], [1.6979e-07], [1.7076e-07], [65168], [10]], "benchmarks.ColorSuite.time_downgrade_to_windows": [[1.709415406481479e-07], [], "373eb97dd7ce2823e080972249235f528e8b3a47210911981cf432ecf0eef5fb", 1646928976171, 0.45347, [1.7005e-07], [1.7176e-07], [1.7036e-07], [1.7125e-07], [64344], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_eight_bit": [[1.7059708729575333e-07], [], "716ff06a471a5d90af3730f6d4470eba3577432d781e0210dff1fd156b8c549c", 1646928976397, 0.45258, [1.6983e-07], [1.7114e-07], [1.6995e-07], [1.7092e-07], [64550], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_standard": [[1.703384136445452e-07], [], "3a752a7884e99e095c31b2a28cfefdf916cb2033c06afae1ea146a72f3ba650c", 1646928976624, 0.45418, [1.6833e-07], [1.7615e-07], [1.7024e-07], [1.7078e-07], [64235], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_windows": [[1.7177979153814433e-07], [], "1732bbd18ada49eb7b054fc18b40d6acfb533023463366f37203dab6fbb0cc20", 1646928976850, 0.45908, [1.7044e-07], [1.7848e-07], [1.7136e-07], [1.7486e-07], [64112], [10]], "benchmarks.PrettySuite.time_pretty": [[0.0010149916502996347], [], "9bb0e6d8a29aad21b3d1b550a160fa5f1e9030c69d16bad500c0dcc77bff6d01", 1646928977080, 0.43868, [0.0010119], [0.0010181], [0.0010128], [0.0010166], [10], [10]], "benchmarks.PrettySuite.time_pretty_indent_guides": [null, [], "8d71bf19dfe999b0fba95d009986bfd6911c53c7a0c455466725f553005c3bc7", 1646928971420, 0.060655], "benchmarks.PrettySuite.time_pretty_justify_center": [[0.0014040807491255691], [], "54cbf71bacab14ccbe1d063847c0b89198ed1bbe06edc89c14d2e3c7b1986c41", 1646928977300, 0.44256, [0.0013988], [0.0014065], [0.0014005], [0.0014055], [8], [10]], "benchmarks.StyleSuite.time_parse_ansi": [[1.1532585875856004e-07], [], "a003aaa8017585efeb1cd9c43351282df4df6249bf28a4c447b1304d984aa753", 1646928977521, 0.45513, [1.1431e-07], [1.158e-07], [1.1448e-07], [1.1559e-07], [96195], [10]], "benchmarks.StyleSuite.time_parse_hex": [[1.1603592188811979e-07], [], "cf5a3f0def435d3da5bc3a6e7549c44c0a02e9cce6c00ecde8dd7f527556f8ca", 1646928977749, 0.45409, [1.1362e-07], [1.167e-07], [1.1585e-07], [1.1627e-07], [96473], [10]], "benchmarks.StyleSuite.time_parse_mixed_complex_style": [[1.1415330291053145e-07], [], "01c9e12ae829b1984e55a5aeef1a9ae6f1461577adaf5ae59f06358c8b52802f", 1646928977978, 0.45153, [1.1392e-07], [1.1481e-07], [1.141e-07], [1.1423e-07], [96554], [10]], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_heavy_wrapping": [null, [], "1ed4d74ea424990cfb40c96f07635f9bcf7b8bacc7ade5204aaf96363e1622ee", 1646928972379, 0.060603], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_medium_wrapping": [null, [], "0880e162a4907ee025cef8ac3380502554fde27fd0c90a4c15cebc9c27f3e333", 1646928972440, 0.060561], "benchmarks.SyntaxWrappingSuite.time_text_wide_terminal_no_wrapping": [null, [], "feb11e94ae6a75de2dee899fb93db098b55cde232710660d7d66f9e2b288d9c0", 1646928972501, 0.060786], "benchmarks.TableSuite.time_table_heavy_wrapping": [[0.002737713624810567], [], "ca515a9739c1e0f8eb922420f9f9caf27321fb13c8bd0bc49b207a0588b370de", 1646928978205, 0.43842, [0.0027315], [0.0027451], [0.0027353], [0.0027411], [4], [10]], "benchmarks.TableSuite.time_table_no_wrapping": [[0.0018642640012937286], [], "8842a5f141d8208ba2bab66e4973e978cb5d0615f326af5d70385ff8fa44b3b9", 1646928978422, 0.45057, [0.0018511], [0.0018769], [0.0018549], [0.0018688], [6], [10]], "benchmarks.TextSuite.time_align_center": [[0.0006623398439842276], [], "1ceeeef2de43fcb3d0dfec409972d8f0eb791e9615fa9f9c959e0423725b089b", 1646928978646, 0.43926, [0.00065982], [0.00067771], [0.00066149], [0.00066308], [16], [10]], "benchmarks.TextSuite.time_align_center_unicode_heavy": [[0.0005538772108449944], [], "a83ff79614dd2ae17e8b68f45981fcaa0d9833c59a7a14f171b896cf970f54ce", 1646928978870, 0.43759, [0.0005478], [0.00055745], [0.00055289], [0.00055427], [19], [10]], "benchmarks.TextSuite.time_divide": [[2.804970606462419e-05], [], "dcc120b921cb2ec77632f8fe2f6f4150d479cb49ef2608f8e86b569a937756e9", 1646928979094, 0.44976, [2.7928e-05], [2.8551e-05], [2.7933e-05], [2.8397e-05], [381], [10]], "benchmarks.TextSuite.time_divide_unicode_heavy": [[0.00018746636857956713], [], "ea53e662c0553324f90ac3336dcee77f733bb33638888e1f84bf71945a2f3f8e", 1646928979321, 0.44782, [0.0001871], [0.00018883], [0.00018734], [0.00018771], [57], [10]], "benchmarks.TextSuite.time_fit": [[4.2384543824399195e-05], [], "ec77b412db357b1e1c1e7bc620b941dddfc36dc76d2a66a0417feae4f21fe1d3", 1646928979547, 0.44542, [4.2257e-05], [4.2464e-05], [4.237e-05], [4.2415e-05], [251], [10]], "benchmarks.TextSuite.time_fit_unicode_heavy": [[0.0003300188062337017], [], "d1574b4af2ef8b80b95b4dbeeb13e5de67b66783f76f9968834776239dd0dc66", 1646928979769, 0.43135, [0.00032851], [0.00033092], [0.00032977], [0.00033058], [31], [10]], "benchmarks.TextSuite.time_indent_guides": [null, [], "18da036dcfc15ec5e3c11e72be7c8f0c22fba695a5f19c95836be36952376cf2", 1646928974326, 0.060808], "benchmarks.TextSuite.time_render": [[4.699827059279202e-06], [], "907d30581cfdc7bb2c4d302b7e3cb474aaefd8b84821365fe105af7d82be3b09", 1646928979983, 0.43533, [4.6639e-06], [4.7512e-06], [4.6833e-06], [4.7404e-06], [2339], [10]], "benchmarks.TextSuite.time_render_unicode_heavy": [[8.536799998637434e-05], [], "b3f1c09dfd06f412a20dacfe378c3b446727c7d4f9a975336eab3daa8543e1cb", 1646928980202, 0.44936, [8.4795e-05], [8.5609e-05], [8.507e-05], [8.5445e-05], [128], [10]], "benchmarks.TextSuite.time_split": [[3.391292790556923e-05], [], "9c165854130cb95fea5491ffcd8b580a5bd373149da2ef8aace0e9480f649854", 1646928980429, 0.44202, [3.3827e-05], [3.41e-05], [3.3843e-05], [3.4002e-05], [312], [10]], "benchmarks.TextSuite.time_split_unicode_heavy": [[0.00028034289189727624], [], "d55b02f6d06f478d70635bac3409f3a9899137d9cee87a70a293b8ccf5a6afa4", 1646928980649, 0.43415, [0.00027901], [0.00028106], [0.00027971], [0.00028047], [37], [10]], "benchmarks.TextSuite.time_wrapping": [[0.0011459815011928892], [], "8c821eba13d043f228fd902d8f678c397741855db05d02abe9b82f3d65cdf03d", 1646928980866, 0.43887, [0.001144], [0.001169], [0.001145], [0.0011484], [9], [10]], "benchmarks.TextSuite.time_wrapping_unicode_heavy": [[0.0015235238575509618], [], "ec6e2ef08b6cdee182fef4e26c0043f8c365984f9a31be07dbd792e1aed862d8", 1646928981084, 0.43962, [0.0015199], [0.0015304], [0.001521], [0.0015274], [7], [10]]}, "durations": {"": 1.9609119892120361}, "version": 2} diff --git a/benchmarks/results/darrenburns-2022-mbp/a27a3ee2-virtualenv-py3.10.json b/benchmarks/results/darrenburns-2022-mbp/a27a3ee2-virtualenv-py3.10.json new file mode 100644 index 0000000000..6cbcf721ad --- /dev/null +++ b/benchmarks/results/darrenburns-2022-mbp/a27a3ee2-virtualenv-py3.10.json @@ -0,0 +1 @@ +{"commit_hash": "a27a3ee20bff6c6aa0642f31fb736e72d16abbce", "env_name": "virtualenv-py3.10", "date": 1600101858000, "params": {"arch": "arm64", "cpu": "Apple M1 Pro", "machine": "darrenburns-2022-mbp", "num_cpu": "10", "os": "Darwin 21.2.0", "ram": "17179869184", "python": "3.10"}, "python": "3.10", "requirements": {}, "env_vars": {}, "result_columns": ["result", "params", "version", "started_at", "duration", "stats_ci_99_a", "stats_ci_99_b", "stats_q_25", "stats_q_75", "stats_number", "stats_repeat", "samples", "profile"], "results": {"benchmarks.ColorSuite.time_downgrade_to_eight_bit": [[1.7042800680936237e-07], [], "019b972f782c6291df9a6a4dea9bb3c6268a69b177e71383d6e19a608e84920d", 1646928909229, 0.42891, [1.6948e-07], [1.7485e-07], [1.7001e-07], [1.7153e-07], [64527], [10]], "benchmarks.ColorSuite.time_downgrade_to_standard": [[1.7180735607927396e-07], [], "f5e8556491c977450fff6ebfd9fff4fc8f12d74829aa5b8570bd27ea7a1c9d28", 1646928909443, 0.43918, [1.6933e-07], [1.7368e-07], [1.7038e-07], [1.7321e-07], [64518], [10]], "benchmarks.ColorSuite.time_downgrade_to_windows": [[1.717659715346583e-07], [], "373eb97dd7ce2823e080972249235f528e8b3a47210911981cf432ecf0eef5fb", 1646928909659, 0.42738, [1.6846e-07], [1.734e-07], [1.6999e-07], [1.7322e-07], [64490], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_eight_bit": [[1.737773394621508e-07], [], "716ff06a471a5d90af3730f6d4470eba3577432d781e0210dff1fd156b8c549c", 1646928909873, 0.43312, [1.7368e-07], [1.741e-07], [1.7373e-07], [1.7393e-07], [64504], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_standard": [[1.7345675113671666e-07], [], "3a752a7884e99e095c31b2a28cfefdf916cb2033c06afae1ea146a72f3ba650c", 1646928910088, 0.42318, [1.724e-07], [1.7388e-07], [1.7312e-07], [1.7368e-07], [58799], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_windows": [[1.7281638282229994e-07], [], "1732bbd18ada49eb7b054fc18b40d6acfb533023463366f37203dab6fbb0cc20", 1646928910299, 0.42297, [1.715e-07], [1.736e-07], [1.7232e-07], [1.734e-07], [59044], [10]], "benchmarks.PrettySuite.time_pretty": [[0.0011325370562392184], [], "9bb0e6d8a29aad21b3d1b550a160fa5f1e9030c69d16bad500c0dcc77bff6d01", 1646928910509, 0.42988, [0.0011302], [0.0011429], [0.0011322], [0.0011335], [9], [10]], "benchmarks.PrettySuite.time_pretty_indent_guides": [null, [], "8d71bf19dfe999b0fba95d009986bfd6911c53c7a0c455466725f553005c3bc7", 1646928905022, 0.057851], "benchmarks.PrettySuite.time_pretty_justify_center": [[0.0015301667133046848], [], "54cbf71bacab14ccbe1d063847c0b89198ed1bbe06edc89c14d2e3c7b1986c41", 1646928910722, 0.43497, [0.0015273], [0.0015373], [0.0015285], [0.0015313], [7], [10]], "benchmarks.StyleSuite.time_parse_ansi": [[1.1514082085278366e-07], [], "a003aaa8017585efeb1cd9c43351282df4df6249bf28a4c447b1304d984aa753", 1646928910943, 0.43922, [1.1388e-07], [1.1636e-07], [1.1418e-07], [1.1629e-07], [96321], [10]], "benchmarks.StyleSuite.time_parse_hex": [[1.148777592758897e-07], [], "cf5a3f0def435d3da5bc3a6e7549c44c0a02e9cce6c00ecde8dd7f527556f8ca", 1646928911167, 0.44638, [1.144e-07], [1.1545e-07], [1.1446e-07], [1.1538e-07], [95312], [10]], "benchmarks.StyleSuite.time_parse_mixed_complex_style": [[1.1430559190946105e-07], [], "01c9e12ae829b1984e55a5aeef1a9ae6f1461577adaf5ae59f06358c8b52802f", 1646928911391, 0.44827, [1.1411e-07], [1.1458e-07], [1.1427e-07], [1.1436e-07], [96462], [10]], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_heavy_wrapping": [null, [], "1ed4d74ea424990cfb40c96f07635f9bcf7b8bacc7ade5204aaf96363e1622ee", 1646928905957, 0.057415], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_medium_wrapping": [null, [], "0880e162a4907ee025cef8ac3380502554fde27fd0c90a4c15cebc9c27f3e333", 1646928906014, 0.057183], "benchmarks.SyntaxWrappingSuite.time_text_wide_terminal_no_wrapping": [null, [], "feb11e94ae6a75de2dee899fb93db098b55cde232710660d7d66f9e2b288d9c0", 1646928906072, 0.057108], "benchmarks.TableSuite.time_table_heavy_wrapping": [[0.0030256926220317837], [], "ca515a9739c1e0f8eb922420f9f9caf27321fb13c8bd0bc49b207a0588b370de", 1646928911616, 0.45324, [0.0030176], [0.0030308], [0.0030228], [0.0030281], [4], [10]], "benchmarks.TableSuite.time_table_no_wrapping": [[0.001963548582959144], [], "8842a5f141d8208ba2bab66e4973e978cb5d0615f326af5d70385ff8fa44b3b9", 1646928911846, 0.44673, [0.0019601], [0.0020088], [0.0019621], [0.0019669], [6], [10]], "benchmarks.TextSuite.time_align_center": [[0.0006744960937794531], [], "1ceeeef2de43fcb3d0dfec409972d8f0eb791e9615fa9f9c959e0423725b089b", 1646928912074, 0.43447, [0.00067075], [0.00067785], [0.00067261], [0.0006755], [16], [10]], "benchmarks.TextSuite.time_align_center_unicode_heavy": [[0.0005577971314778551], [], "a83ff79614dd2ae17e8b68f45981fcaa0d9833c59a7a14f171b896cf970f54ce", 1646928912294, 0.43981, [0.00055435], [0.00056808], [0.00055484], [0.00055944], [19], [10]], "benchmarks.TextSuite.time_divide": [[2.844203366817173e-05], [], "dcc120b921cb2ec77632f8fe2f6f4150d479cb49ef2608f8e86b569a937756e9", 1646928912514, 0.43454, [2.8263e-05], [2.8525e-05], [2.8334e-05], [2.8503e-05], [386], [10]], "benchmarks.TextSuite.time_divide_unicode_heavy": [[0.00019038999105983398], [], "ea53e662c0553324f90ac3336dcee77f733bb33638888e1f84bf71945a2f3f8e", 1646928912736, 0.44125, [0.00018992], [0.00019128], [0.00019023], [0.0001911], [57], [10]], "benchmarks.TextSuite.time_fit": [[4.279382467275463e-05], [], "ec77b412db357b1e1c1e7bc620b941dddfc36dc76d2a66a0417feae4f21fe1d3", 1646928912956, 0.43349, [4.2366e-05], [4.3206e-05], [4.2775e-05], [4.2928e-05], [251], [10]], "benchmarks.TextSuite.time_fit_unicode_heavy": [[0.00033351546763667775], [], "d1574b4af2ef8b80b95b4dbeeb13e5de67b66783f76f9968834776239dd0dc66", 1646928913178, 0.42827, [0.00033053], [0.00033667], [0.0003312], [0.0003356], [31], [10]], "benchmarks.TextSuite.time_indent_guides": [null, [], "18da036dcfc15ec5e3c11e72be7c8f0c22fba695a5f19c95836be36952376cf2", 1646928907867, 0.057792], "benchmarks.TextSuite.time_render": [[4.679437361052641e-06], [], "907d30581cfdc7bb2c4d302b7e3cb474aaefd8b84821365fe105af7d82be3b09", 1646928913392, 0.43419, [4.66e-06], [4.7068e-06], [4.6688e-06], [4.7015e-06], [2323], [10]], "benchmarks.TextSuite.time_render_unicode_heavy": [[8.515022648225568e-05], [], "b3f1c09dfd06f412a20dacfe378c3b446727c7d4f9a975336eab3daa8543e1cb", 1646928913612, 0.44249, [8.4387e-05], [8.599e-05], [8.5056e-05], [8.5285e-05], [128], [10]], "benchmarks.TextSuite.time_split": [[3.3680288489006504e-05], [], "9c165854130cb95fea5491ffcd8b580a5bd373149da2ef8aace0e9480f649854", 1646928913834, 0.4347, [3.3615e-05], [3.4087e-05], [3.3652e-05], [3.3837e-05], [312], [10]], "benchmarks.TextSuite.time_split_unicode_heavy": [[0.0002821311893451304], [], "d55b02f6d06f478d70635bac3409f3a9899137d9cee87a70a293b8ccf5a6afa4", 1646928914050, 0.43042, [0.00027872], [0.00028469], [0.00027904], [0.00028425], [37], [10]], "benchmarks.TextSuite.time_wrapping": [[0.0011427662215687127], [], "8c821eba13d043f228fd902d8f678c397741855db05d02abe9b82f3d65cdf03d", 1646928914265, 0.43025, [0.0011399], [0.0011449], [0.0011416], [0.0011444], [9], [10]], "benchmarks.TextSuite.time_wrapping_unicode_heavy": [[0.0015367023567835402], [], "ec6e2ef08b6cdee182fef4e26c0043f8c365984f9a31be07dbd792e1aed862d8", 1646928914478, 0.43563, [0.0015217], [0.0015512], [0.0015235], [0.0015504], [7], [10]]}, "durations": {"": 1.9690570831298828}, "version": 2} diff --git a/benchmarks/results/darrenburns-2022-mbp/a6d1d784-virtualenv-py3.10.json b/benchmarks/results/darrenburns-2022-mbp/a6d1d784-virtualenv-py3.10.json new file mode 100644 index 0000000000..774c3c94f3 --- /dev/null +++ b/benchmarks/results/darrenburns-2022-mbp/a6d1d784-virtualenv-py3.10.json @@ -0,0 +1 @@ +{"commit_hash": "a6d1d784879fe939cd9c262d9b2f25a673ce88c9", "env_name": "virtualenv-py3.10", "date": 1638115443000, "params": {"arch": "arm64", "cpu": "Apple M1 Pro", "machine": "darrenburns-2022-mbp", "num_cpu": "10", "os": "Darwin 21.2.0", "ram": "17179869184", "python": "3.10"}, "python": "3.10", "requirements": {}, "env_vars": {}, "result_columns": ["result", "params", "version", "started_at", "duration", "stats_ci_99_a", "stats_ci_99_b", "stats_q_25", "stats_q_75", "stats_number", "stats_repeat", "samples", "profile"], "results": {"benchmarks.ColorSuite.time_downgrade_to_eight_bit": [[1.693641204731282e-07], [], "019b972f782c6291df9a6a4dea9bb3c6268a69b177e71383d6e19a608e84920d", 1646929367764, 0.46266, [1.6873e-07], [1.7074e-07], [1.69e-07], [1.6981e-07], [64513], [10]], "benchmarks.ColorSuite.time_downgrade_to_standard": [[1.7028117153496322e-07], [], "f5e8556491c977450fff6ebfd9fff4fc8f12d74829aa5b8570bd27ea7a1c9d28", 1646929367995, 0.45723, [1.6951e-07], [1.7192e-07], [1.6977e-07], [1.7154e-07], [64843], [10]], "benchmarks.ColorSuite.time_downgrade_to_windows": [[1.7094650969542762e-07], [], "373eb97dd7ce2823e080972249235f528e8b3a47210911981cf432ecf0eef5fb", 1646929368229, 0.46035, [1.6947e-07], [1.7956e-07], [1.7021e-07], [1.7948e-07], [64021], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_eight_bit": [[1.702568146514439e-07], [], "716ff06a471a5d90af3730f6d4470eba3577432d781e0210dff1fd156b8c549c", 1646929368461, 0.44046, [1.6985e-07], [1.7068e-07], [1.7013e-07], [1.7055e-07], [59358], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_standard": [[1.702479761820018e-07], [], "3a752a7884e99e095c31b2a28cfefdf916cb2033c06afae1ea146a72f3ba650c", 1646929368681, 0.46671, [1.6968e-07], [1.7882e-07], [1.6997e-07], [1.7147e-07], [64234], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_windows": [[1.6955152081863054e-07], [], "1732bbd18ada49eb7b054fc18b40d6acfb533023463366f37203dab6fbb0cc20", 1646929368913, 0.46156, [1.6816e-07], [1.7047e-07], [1.6899e-07], [1.6997e-07], [65168], [10]], "benchmarks.PrettySuite.time_pretty": [[0.001111442111626578], [], "9bb0e6d8a29aad21b3d1b550a160fa5f1e9030c69d16bad500c0dcc77bff6d01", 1646929369147, 0.44229, [0.0011071], [0.0011155], [0.0011092], [0.0011131], [9], [10]], "benchmarks.PrettySuite.time_pretty_indent_guides": [[0.0015210982861130365], [], "8d71bf19dfe999b0fba95d009986bfd6911c53c7a0c455466725f553005c3bc7", 1646929369368, 0.45264, [0.0015103], [0.0015274], [0.0015192], [0.0015228], [7], [10]], "benchmarks.PrettySuite.time_pretty_justify_center": [[0.0014059401237318525], [], "54cbf71bacab14ccbe1d063847c0b89198ed1bbe06edc89c14d2e3c7b1986c41", 1646929369598, 0.4546, [0.0014008], [0.0014107], [0.0014018], [0.001407], [8], [10]], "benchmarks.StyleSuite.time_parse_ansi": [[1.152333821686819e-07], [], "a003aaa8017585efeb1cd9c43351282df4df6249bf28a4c447b1304d984aa753", 1646929369823, 0.44698, [1.1407e-07], [1.1656e-07], [1.1484e-07], [1.1631e-07], [86564], [10]], "benchmarks.StyleSuite.time_parse_hex": [[1.1524275221005641e-07], [], "cf5a3f0def435d3da5bc3a6e7549c44c0a02e9cce6c00ecde8dd7f527556f8ca", 1646929370052, 0.44112, [1.1338e-07], [1.1696e-07], [1.1372e-07], [1.1677e-07], [85855], [10]], "benchmarks.StyleSuite.time_parse_mixed_complex_style": [[1.1440585883210438e-07], [], "01c9e12ae829b1984e55a5aeef1a9ae6f1461577adaf5ae59f06358c8b52802f", 1646929370275, 0.46163, [1.1379e-07], [1.1472e-07], [1.1427e-07], [1.1459e-07], [95086], [10]], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_heavy_wrapping": [null, [], "1ed4d74ea424990cfb40c96f07635f9bcf7b8bacc7ade5204aaf96363e1622ee", 1646929364174, 0.068449], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_medium_wrapping": [null, [], "0880e162a4907ee025cef8ac3380502554fde27fd0c90a4c15cebc9c27f3e333", 1646929364243, 0.066985], "benchmarks.SyntaxWrappingSuite.time_text_wide_terminal_no_wrapping": [null, [], "feb11e94ae6a75de2dee899fb93db098b55cde232710660d7d66f9e2b288d9c0", 1646929364310, 0.066614], "benchmarks.TableSuite.time_table_heavy_wrapping": [[0.0023555874009616676], [], "ca515a9739c1e0f8eb922420f9f9caf27321fb13c8bd0bc49b207a0588b370de", 1646929370506, 0.46066, [0.0023453], [0.0023707], [0.0023519], [0.00236], [5], [10]], "benchmarks.TableSuite.time_table_no_wrapping": [[0.001407257812388707], [], "8842a5f141d8208ba2bab66e4973e978cb5d0615f326af5d70385ff8fa44b3b9", 1646929370741, 0.45093, [0.0014003], [0.0014115], [0.0014025], [0.0014098], [8], [10]], "benchmarks.TextSuite.time_align_center": [[0.00038124766703091426], [], "1ceeeef2de43fcb3d0dfec409972d8f0eb791e9615fa9f9c959e0423725b089b", 1646929370968, 0.45235, [0.00036827], [0.00038583], [0.00036968], [0.0003839], [27], [10]], "benchmarks.TextSuite.time_align_center_unicode_heavy": [[0.0003428434030220453], [], "a83ff79614dd2ae17e8b68f45981fcaa0d9833c59a7a14f171b896cf970f54ce", 1646929371195, 0.45595, [0.00033961], [0.00035342], [0.00034035], [0.00035196], [31], [10]], "benchmarks.TextSuite.time_divide": [[2.545662413365415e-05], [], "dcc120b921cb2ec77632f8fe2f6f4150d479cb49ef2608f8e86b569a937756e9", 1646929371422, 0.46099, [2.5421e-05], [2.5591e-05], [2.5437e-05], [2.5505e-05], [427], [10]], "benchmarks.TextSuite.time_divide_unicode_heavy": [[0.00018464798280359087], [], "ea53e662c0553324f90ac3336dcee77f733bb33638888e1f84bf71945a2f3f8e", 1646929371653, 0.4549, [0.00018372], [0.00018503], [0.00018448], [0.00018482], [58], [10]], "benchmarks.TextSuite.time_fit": [[4.341412396917907e-05], [], "ec77b412db357b1e1c1e7bc620b941dddfc36dc76d2a66a0417feae4f21fe1d3", 1646929371880, 0.44664, [4.3359e-05], [4.36e-05], [4.3363e-05], [4.3447e-05], [246], [10]], "benchmarks.TextSuite.time_fit_unicode_heavy": [[0.0003247979850240165], [], "d1574b4af2ef8b80b95b4dbeeb13e5de67b66783f76f9968834776239dd0dc66", 1646929372107, 0.45621, [0.00032323], [0.00032554], [0.00032421], [0.00032509], [33], [10]], "benchmarks.TextSuite.time_indent_guides": [[0.0003560538617452478], [], "18da036dcfc15ec5e3c11e72be7c8f0c22fba695a5f19c95836be36952376cf2", 1646929372333, 0.4457, [0.00035422], [0.00035843], [0.00035561], [0.00035645], [29], [10]], "benchmarks.TextSuite.time_render": [[4.68243460391974e-06], [], "907d30581cfdc7bb2c4d302b7e3cb474aaefd8b84821365fe105af7d82be3b09", 1646929372555, 0.45353, [4.6678e-06], [4.708e-06], [4.6728e-06], [4.6874e-06], [2332], [10]], "benchmarks.TextSuite.time_render_unicode_heavy": [[8.542684113061735e-05], [], "b3f1c09dfd06f412a20dacfe378c3b446727c7d4f9a975336eab3daa8543e1cb", 1646929372785, 0.46289, [8.4381e-05], [9.2768e-05], [8.4666e-05], [8.5745e-05], [129], [10]], "benchmarks.TextSuite.time_split": [[3.5212895430828403e-05], [], "9c165854130cb95fea5491ffcd8b580a5bd373149da2ef8aace0e9480f649854", 1646929373019, 0.45, [3.5156e-05], [3.5402e-05], [3.5192e-05], [3.5231e-05], [306], [10]], "benchmarks.TextSuite.time_split_unicode_heavy": [[0.0002742187502199637], [], "d55b02f6d06f478d70635bac3409f3a9899137d9cee87a70a293b8ccf5a6afa4", 1646929373248, 0.44813, [0.00027246], [0.00027636], [0.00027312], [0.00027488], [38], [10]], "benchmarks.TextSuite.time_wrapping": [[0.00135714318639657], [], "8c821eba13d043f228fd902d8f678c397741855db05d02abe9b82f3d65cdf03d", 1646929373471, 0.45506, [0.0013541], [0.0013627], [0.0013552], [0.0013592], [8], [10]], "benchmarks.TextSuite.time_wrapping_unicode_heavy": [[0.0014486667142981397], [], "ec6e2ef08b6cdee182fef4e26c0043f8c365984f9a31be07dbd792e1aed862d8", 1646929373701, 0.44424, [0.0014465], [0.0014527], [0.001448], [0.0014514], [7], [10]]}, "durations": {"": 2.0430939197540283}, "version": 2} diff --git a/benchmarks/results/darrenburns-2022-mbp/a81230bc-virtualenv-py3.10.json b/benchmarks/results/darrenburns-2022-mbp/a81230bc-virtualenv-py3.10.json new file mode 100644 index 0000000000..7be9e6e7b3 --- /dev/null +++ b/benchmarks/results/darrenburns-2022-mbp/a81230bc-virtualenv-py3.10.json @@ -0,0 +1 @@ +{"commit_hash": "a81230bcff8e66a6e16522a0ab9186416d615f09", "env_name": "virtualenv-py3.10", "date": 1621440919000, "params": {"arch": "arm64", "cpu": "Apple M1 Pro", "machine": "darrenburns-2022-mbp", "num_cpu": "10", "os": "Darwin 21.2.0", "ram": "17179869184", "python": "3.10"}, "python": "3.10", "requirements": {}, "env_vars": {}, "result_columns": ["result", "params", "version", "started_at", "duration", "stats_ci_99_a", "stats_ci_99_b", "stats_q_25", "stats_q_75", "stats_number", "stats_repeat", "samples", "profile"], "results": {"benchmarks.ColorSuite.time_downgrade_to_eight_bit": [[1.7089820134849163e-07], [], "019b972f782c6291df9a6a4dea9bb3c6268a69b177e71383d6e19a608e84920d", 1646928347340, 0.45862, [1.7e-07], [1.7457e-07], [1.7038e-07], [1.7177e-07], [64166], [10]], "benchmarks.ColorSuite.time_downgrade_to_standard": [[1.7021133058504719e-07], [], "f5e8556491c977450fff6ebfd9fff4fc8f12d74829aa5b8570bd27ea7a1c9d28", 1646928347569, 0.44902, [1.696e-07], [1.7089e-07], [1.6974e-07], [1.706e-07], [64851], [10]], "benchmarks.ColorSuite.time_downgrade_to_windows": [[1.7093464614946301e-07], [], "373eb97dd7ce2823e080972249235f528e8b3a47210911981cf432ecf0eef5fb", 1646928347799, 0.43832, [1.6961e-07], [1.7247e-07], [1.7055e-07], [1.7112e-07], [60333], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_eight_bit": [[1.708929539256602e-07], [], "716ff06a471a5d90af3730f6d4470eba3577432d781e0210dff1fd156b8c549c", 1646928348018, 0.45747, [1.6953e-07], [1.7288e-07], [1.7004e-07], [1.7116e-07], [64374], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_standard": [[1.7095533240400798e-07], [], "3a752a7884e99e095c31b2a28cfefdf916cb2033c06afae1ea146a72f3ba650c", 1646928348248, 0.45705, [1.6957e-07], [1.7225e-07], [1.7007e-07], [1.7169e-07], [64006], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_windows": [[1.7013976745683384e-07], [], "1732bbd18ada49eb7b054fc18b40d6acfb533023463366f37203dab6fbb0cc20", 1646928348476, 0.45399, [1.7002e-07], [1.7076e-07], [1.701e-07], [1.7062e-07], [63806], [10]], "benchmarks.PrettySuite.time_pretty": [[0.0010306896001566201], [], "9bb0e6d8a29aad21b3d1b550a160fa5f1e9030c69d16bad500c0dcc77bff6d01", 1646928348703, 0.44456, [0.0010285], [0.0010362], [0.0010301], [0.0010322], [10], [10]], "benchmarks.PrettySuite.time_pretty_indent_guides": [[0.001427216124284314], [], "8d71bf19dfe999b0fba95d009986bfd6911c53c7a0c455466725f553005c3bc7", 1646928348925, 0.45429, [0.0014229], [0.0014321], [0.0014246], [0.0014298], [8], [10]], "benchmarks.PrettySuite.time_pretty_justify_center": [[0.0014342976418057723], [], "54cbf71bacab14ccbe1d063847c0b89198ed1bbe06edc89c14d2e3c7b1986c41", 1646928349151, 0.43711, [0.0014271], [0.0014412], [0.0014308], [0.0014379], [7], [10]], "benchmarks.StyleSuite.time_parse_ansi": [[1.1472595696275204e-07], [], "a003aaa8017585efeb1cd9c43351282df4df6249bf28a4c447b1304d984aa753", 1646928349368, 0.45598, [1.1421e-07], [1.1517e-07], [1.1438e-07], [1.1482e-07], [95828], [10]], "benchmarks.StyleSuite.time_parse_hex": [[1.1479176945339659e-07], [], "cf5a3f0def435d3da5bc3a6e7549c44c0a02e9cce6c00ecde8dd7f527556f8ca", 1646928349597, 0.45676, [1.1441e-07], [1.1687e-07], [1.1472e-07], [1.1508e-07], [95752], [10]], "benchmarks.StyleSuite.time_parse_mixed_complex_style": [[1.146414121082228e-07], [], "01c9e12ae829b1984e55a5aeef1a9ae6f1461577adaf5ae59f06358c8b52802f", 1646928349826, 0.45598, [1.1409e-07], [1.1498e-07], [1.1449e-07], [1.1481e-07], [95593], [10]], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_heavy_wrapping": [null, [], "1ed4d74ea424990cfb40c96f07635f9bcf7b8bacc7ade5204aaf96363e1622ee", 1646928343833, 0.063079], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_medium_wrapping": [null, [], "0880e162a4907ee025cef8ac3380502554fde27fd0c90a4c15cebc9c27f3e333", 1646928343896, 0.062244], "benchmarks.SyntaxWrappingSuite.time_text_wide_terminal_no_wrapping": [null, [], "feb11e94ae6a75de2dee899fb93db098b55cde232710660d7d66f9e2b288d9c0", 1646928343958, 0.062379], "benchmarks.TableSuite.time_table_heavy_wrapping": [[0.002125933303614147], [], "ca515a9739c1e0f8eb922420f9f9caf27321fb13c8bd0bc49b207a0588b370de", 1646928350055, 0.44442, [0.0021152], [0.0021442], [0.002121], [0.0021357], [5], [10]], "benchmarks.TableSuite.time_table_no_wrapping": [[0.001284916625081678], [], "8842a5f141d8208ba2bab66e4973e978cb5d0615f326af5d70385ff8fa44b3b9", 1646928350280, 0.44527, [0.0012786], [0.0012955], [0.0012825], [0.00129], [8], [10]], "benchmarks.TextSuite.time_align_center": [[0.0006593489679289632], [], "1ceeeef2de43fcb3d0dfec409972d8f0eb791e9615fa9f9c959e0423725b089b", 1646928350502, 0.43857, [0.0006576], [0.00066139], [0.00065902], [0.00065983], [16], [10]], "benchmarks.TextSuite.time_align_center_unicode_heavy": [[0.0005478475795825943], [], "a83ff79614dd2ae17e8b68f45981fcaa0d9833c59a7a14f171b896cf970f54ce", 1646928350724, 0.44481, [0.00054467], [0.00055428], [0.00054712], [0.00054821], [19], [10]], "benchmarks.TextSuite.time_divide": [[2.5265698322256757e-05], [], "dcc120b921cb2ec77632f8fe2f6f4150d479cb49ef2608f8e86b569a937756e9", 1646928350945, 0.45124, [2.5191e-05], [2.537e-05], [2.5224e-05], [2.5303e-05], [426], [10]], "benchmarks.TextSuite.time_divide_unicode_heavy": [[0.00018454670674239833], [], "ea53e662c0553324f90ac3336dcee77f733bb33638888e1f84bf71945a2f3f8e", 1646928351169, 0.44915, [0.00018408], [0.00018504], [0.0001844], [0.00018485], [58], [10]], "benchmarks.TextSuite.time_fit": [[4.3587735771273485e-05], [], "ec77b412db357b1e1c1e7bc620b941dddfc36dc76d2a66a0417feae4f21fe1d3", 1646928351394, 0.44117, [4.3434e-05], [4.3712e-05], [4.3511e-05], [4.3678e-05], [246], [10]], "benchmarks.TextSuite.time_fit_unicode_heavy": [[0.00032423104593445635], [], "d1574b4af2ef8b80b95b4dbeeb13e5de67b66783f76f9968834776239dd0dc66", 1646928351617, 0.45005, [0.00032311], [0.00032504], [0.00032386], [0.00032476], [33], [10]], "benchmarks.TextSuite.time_indent_guides": [[0.00035670832760937123], [], "18da036dcfc15ec5e3c11e72be7c8f0c22fba695a5f19c95836be36952376cf2", 1646928351841, 0.43927, [0.00035589], [0.00035784], [0.00035626], [0.00035733], [29], [10]], "benchmarks.TextSuite.time_render": [[4.675652580225816e-06], [], "907d30581cfdc7bb2c4d302b7e3cb474aaefd8b84821365fe105af7d82be3b09", 1646928352059, 0.44572, [4.6561e-06], [4.7094e-06], [4.6589e-06], [4.6924e-06], [2330], [10]], "benchmarks.TextSuite.time_render_unicode_heavy": [[8.618554682016111e-05], [], "b3f1c09dfd06f412a20dacfe378c3b446727c7d4f9a975336eab3daa8543e1cb", 1646928352285, 0.45317, [8.456e-05], [8.6489e-05], [8.6002e-05], [8.6316e-05], [128], [10]], "benchmarks.TextSuite.time_split": [[3.5144470565879314e-05], [], "9c165854130cb95fea5491ffcd8b580a5bd373149da2ef8aace0e9480f649854", 1646928352514, 0.44139, [3.5063e-05], [3.5388e-05], [3.5078e-05], [3.5229e-05], [306], [10]], "benchmarks.TextSuite.time_split_unicode_heavy": [[0.00027454221019165983], [], "d55b02f6d06f478d70635bac3409f3a9899137d9cee87a70a293b8ccf5a6afa4", 1646928352738, 0.44116, [0.00027362], [0.00027615], [0.00027384], [0.00027542], [38], [10]], "benchmarks.TextSuite.time_wrapping": [[0.0010963437511236408], [], "8c821eba13d043f228fd902d8f678c397741855db05d02abe9b82f3d65cdf03d", 1646928352959, 0.43727, [0.0010932], [0.0010995], [0.0010945], [0.0010984], [10], [10]], "benchmarks.TextSuite.time_wrapping_unicode_heavy": [[0.0014880772858824848], [], "ec6e2ef08b6cdee182fef4e26c0043f8c365984f9a31be07dbd792e1aed862d8", 1646928353177, 0.4356, [0.0014842], [0.001494], [0.0014856], [0.0014912], [7], [10]]}, "durations": {"": 1.9775969982147217}, "version": 2} diff --git a/benchmarks/results/darrenburns-2022-mbp/aaea99f7-virtualenv-py3.10.json b/benchmarks/results/darrenburns-2022-mbp/aaea99f7-virtualenv-py3.10.json new file mode 100644 index 0000000000..f14bca4dbb --- /dev/null +++ b/benchmarks/results/darrenburns-2022-mbp/aaea99f7-virtualenv-py3.10.json @@ -0,0 +1 @@ +{"commit_hash": "aaea99f764bcd48a12fd09e5b53efd2bafd9281d", "env_name": "virtualenv-py3.10", "date": 1613822412000, "params": {"arch": "arm64", "cpu": "Apple M1 Pro", "machine": "darrenburns-2022-mbp", "num_cpu": "10", "os": "Darwin 21.2.0", "ram": "17179869184", "python": "3.10"}, "python": "3.10", "requirements": {}, "env_vars": {}, "result_columns": ["result", "params", "version", "started_at", "duration", "stats_ci_99_a", "stats_ci_99_b", "stats_q_25", "stats_q_75", "stats_number", "stats_repeat", "samples", "profile"], "results": {"benchmarks.ColorSuite.time_downgrade_to_eight_bit": [[1.7035946231118903e-07], [], "019b972f782c6291df9a6a4dea9bb3c6268a69b177e71383d6e19a608e84920d", 1646929032498, 0.45811, [1.6948e-07], [1.7147e-07], [1.701e-07], [1.7055e-07], [64698], [10]], "benchmarks.ColorSuite.time_downgrade_to_standard": [[1.7005740944381448e-07], [], "f5e8556491c977450fff6ebfd9fff4fc8f12d74829aa5b8570bd27ea7a1c9d28", 1646929032727, 0.45645, [1.6892e-07], [1.712e-07], [1.6964e-07], [1.7091e-07], [64397], [10]], "benchmarks.ColorSuite.time_downgrade_to_windows": [[1.6961856813956265e-07], [], "373eb97dd7ce2823e080972249235f528e8b3a47210911981cf432ecf0eef5fb", 1646929032955, 0.45848, [1.6895e-07], [1.7124e-07], [1.6924e-07], [1.702e-07], [64697], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_eight_bit": [[1.7039711889193895e-07], [], "716ff06a471a5d90af3730f6d4470eba3577432d781e0210dff1fd156b8c549c", 1646929033184, 0.45721, [1.6908e-07], [1.707e-07], [1.6999e-07], [1.7052e-07], [64419], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_standard": [[1.710571628402691e-07], [], "3a752a7884e99e095c31b2a28cfefdf916cb2033c06afae1ea146a72f3ba650c", 1646929033413, 0.45837, [1.6945e-07], [1.7495e-07], [1.7003e-07], [1.7149e-07], [64054], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_windows": [[1.708411568939796e-07], [], "1732bbd18ada49eb7b054fc18b40d6acfb533023463366f37203dab6fbb0cc20", 1646929033640, 0.43101, [1.7029e-07], [1.7254e-07], [1.7071e-07], [1.7122e-07], [59074], [10]], "benchmarks.PrettySuite.time_pretty": [[0.0010266583500197156], [], "9bb0e6d8a29aad21b3d1b550a160fa5f1e9030c69d16bad500c0dcc77bff6d01", 1646929033856, 0.44167, [0.0010232], [0.0010299], [0.0010262], [0.0010291], [10], [10]], "benchmarks.PrettySuite.time_pretty_indent_guides": [[0.0014252031251089647], [], "8d71bf19dfe999b0fba95d009986bfd6911c53c7a0c455466725f553005c3bc7", 1646929034075, 0.4615, [0.0014176], [0.0014349], [0.0014196], [0.0014259], [8], [10]], "benchmarks.PrettySuite.time_pretty_justify_center": [[0.0014211224388418486], [], "54cbf71bacab14ccbe1d063847c0b89198ed1bbe06edc89c14d2e3c7b1986c41", 1646929034299, 0.44766, [0.0014098], [0.0014256], [0.0014148], [0.0014221], [8], [10]], "benchmarks.StyleSuite.time_parse_ansi": [[1.138836964717925e-07], [], "a003aaa8017585efeb1cd9c43351282df4df6249bf28a4c447b1304d984aa753", 1646929034524, 0.45651, [1.1352e-07], [1.1451e-07], [1.1381e-07], [1.1396e-07], [96360], [10]], "benchmarks.StyleSuite.time_parse_hex": [[1.1403014810501425e-07], [], "cf5a3f0def435d3da5bc3a6e7549c44c0a02e9cce6c00ecde8dd7f527556f8ca", 1646929034753, 0.45591, [1.1371e-07], [1.1484e-07], [1.1378e-07], [1.142e-07], [96374], [10]], "benchmarks.StyleSuite.time_parse_mixed_complex_style": [[1.1407160758650121e-07], [], "01c9e12ae829b1984e55a5aeef1a9ae6f1461577adaf5ae59f06358c8b52802f", 1646929034982, 0.45675, [1.1373e-07], [1.147e-07], [1.1401e-07], [1.1419e-07], [96589], [10]], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_heavy_wrapping": [null, [], "1ed4d74ea424990cfb40c96f07635f9bcf7b8bacc7ade5204aaf96363e1622ee", 1646929028981, 0.061856], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_medium_wrapping": [null, [], "0880e162a4907ee025cef8ac3380502554fde27fd0c90a4c15cebc9c27f3e333", 1646929029043, 0.061734], "benchmarks.SyntaxWrappingSuite.time_text_wide_terminal_no_wrapping": [null, [], "feb11e94ae6a75de2dee899fb93db098b55cde232710660d7d66f9e2b288d9c0", 1646929029105, 0.061513], "benchmarks.TableSuite.time_table_heavy_wrapping": [[0.0032523646259505767], [], "ca515a9739c1e0f8eb922420f9f9caf27321fb13c8bd0bc49b207a0588b370de", 1646929035211, 0.46727, [0.0032449], [0.0032725], [0.0032476], [0.0032594], [4], [10]], "benchmarks.TableSuite.time_table_no_wrapping": [[0.002136987398262136], [], "8842a5f141d8208ba2bab66e4973e978cb5d0615f326af5d70385ff8fa44b3b9", 1646929035447, 0.43601, [0.0021279], [0.0021504], [0.002132], [0.0021421], [5], [10]], "benchmarks.TextSuite.time_align_center": [[0.0006721614681737265], [], "1ceeeef2de43fcb3d0dfec409972d8f0eb791e9615fa9f9c959e0423725b089b", 1646929035663, 0.4419, [0.00065748], [0.00068076], [0.00065921], [0.00067391], [16], [10]], "benchmarks.TextSuite.time_align_center_unicode_heavy": [[0.0005539429992878516], [], "a83ff79614dd2ae17e8b68f45981fcaa0d9833c59a7a14f171b896cf970f54ce", 1646929035889, 0.44698, [0.00054715], [0.00055713], [0.0005492], [0.0005551], [19], [10]], "benchmarks.TextSuite.time_divide": [[2.5422931233603327e-05], [], "dcc120b921cb2ec77632f8fe2f6f4150d479cb49ef2608f8e86b569a937756e9", 1646929036111, 0.44501, [2.5357e-05], [2.575e-05], [2.5395e-05], [2.5453e-05], [429], [10]], "benchmarks.TextSuite.time_divide_unicode_heavy": [[0.0001846386467463915], [], "ea53e662c0553324f90ac3336dcee77f733bb33638888e1f84bf71945a2f3f8e", 1646929036338, 0.45035, [0.00018376], [0.00018493], [0.00018456], [0.00018488], [58], [10]], "benchmarks.TextSuite.time_fit": [[4.3481876030166796e-05], [], "ec77b412db357b1e1c1e7bc620b941dddfc36dc76d2a66a0417feae4f21fe1d3", 1646929036562, 0.43963, [4.3443e-05], [4.3648e-05], [4.346e-05], [4.3548e-05], [246], [10]], "benchmarks.TextSuite.time_fit_unicode_heavy": [[0.000324092166424221], [], "d1574b4af2ef8b80b95b4dbeeb13e5de67b66783f76f9968834776239dd0dc66", 1646929036786, 0.44884, [0.0003231], [0.00032853], [0.00032364], [0.00032525], [33], [10]], "benchmarks.TextSuite.time_indent_guides": [[0.0003891874819398961], [], "18da036dcfc15ec5e3c11e72be7c8f0c22fba695a5f19c95836be36952376cf2", 1646929037009, 0.44444, [0.00038819], [0.0003903], [0.00038851], [0.00038941], [27], [10]], "benchmarks.TextSuite.time_render": [[4.667558423783678e-06], [], "907d30581cfdc7bb2c4d302b7e3cb474aaefd8b84821365fe105af7d82be3b09", 1646929037230, 0.44597, [4.6504e-06], [4.6887e-06], [4.6572e-06], [4.6793e-06], [2336], [10]], "benchmarks.TextSuite.time_render_unicode_heavy": [[8.518782431110594e-05], [], "b3f1c09dfd06f412a20dacfe378c3b446727c7d4f9a975336eab3daa8543e1cb", 1646929037456, 0.45257, [8.4762e-05], [8.5916e-05], [8.5165e-05], [8.5228e-05], [128], [10]], "benchmarks.TextSuite.time_split": [[3.5262270256030014e-05], [], "9c165854130cb95fea5491ffcd8b580a5bd373149da2ef8aace0e9480f649854", 1646929037683, 0.44676, [3.5062e-05], [3.5386e-05], [3.5127e-05], [3.5343e-05], [309], [10]], "benchmarks.TextSuite.time_split_unicode_heavy": [[0.0002739638025798884], [], "d55b02f6d06f478d70635bac3409f3a9899137d9cee87a70a293b8ccf5a6afa4", 1646929037911, 0.44074, [0.00027237], [0.00027468], [0.0002733], [0.00027416], [38], [10]], "benchmarks.TextSuite.time_wrapping": [[0.001097691699396819], [], "8c821eba13d043f228fd902d8f678c397741855db05d02abe9b82f3d65cdf03d", 1646929038130, 0.44915, [0.0010951], [0.0011009], [0.0010968], [0.0010992], [10], [10]], "benchmarks.TextSuite.time_wrapping_unicode_heavy": [[0.0014937857132671134], [], "ec6e2ef08b6cdee182fef4e26c0043f8c365984f9a31be07dbd792e1aed862d8", 1646929038358, 0.43867, [0.0014845], [0.0015002], [0.0014882], [0.0014994], [7], [10]]}, "durations": {"": 1.9741952419281006}, "version": 2} diff --git a/benchmarks/results/darrenburns-2022-mbp/ac1a33da-virtualenv-py3.10.json b/benchmarks/results/darrenburns-2022-mbp/ac1a33da-virtualenv-py3.10.json new file mode 100644 index 0000000000..6a34ddbf04 --- /dev/null +++ b/benchmarks/results/darrenburns-2022-mbp/ac1a33da-virtualenv-py3.10.json @@ -0,0 +1 @@ +{"commit_hash": "ac1a33da175972f895e894121df609d0cb1448fe", "env_name": "virtualenv-py3.10", "date": 1636301366000, "params": {"arch": "arm64", "cpu": "Apple M1 Pro", "machine": "darrenburns-2022-mbp", "num_cpu": "10", "os": "Darwin 21.2.0", "ram": "17179869184", "python": "3.10"}, "python": "3.10", "requirements": {}, "env_vars": {}, "result_columns": ["result", "params", "version", "started_at", "duration", "stats_ci_99_a", "stats_ci_99_b", "stats_q_25", "stats_q_75", "stats_number", "stats_repeat", "samples", "profile"], "results": {"benchmarks.ColorSuite.time_downgrade_to_eight_bit": [[1.7055549280694258e-07], [], "019b972f782c6291df9a6a4dea9bb3c6268a69b177e71383d6e19a608e84920d", 1646928202672, 0.4663, [1.7013e-07], [1.7073e-07], [1.7032e-07], [1.7064e-07], [64576], [10]], "benchmarks.ColorSuite.time_downgrade_to_standard": [[1.7031432603515683e-07], [], "f5e8556491c977450fff6ebfd9fff4fc8f12d74829aa5b8570bd27ea7a1c9d28", 1646928202904, 0.45468, [1.6951e-07], [1.7082e-07], [1.6996e-07], [1.7049e-07], [64659], [10]], "benchmarks.ColorSuite.time_downgrade_to_windows": [[1.7019480119984683e-07], [], "373eb97dd7ce2823e080972249235f528e8b3a47210911981cf432ecf0eef5fb", 1646928203138, 0.45417, [1.6919e-07], [1.7198e-07], [1.6968e-07], [1.7063e-07], [64399], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_eight_bit": [[1.7046419165111376e-07], [], "716ff06a471a5d90af3730f6d4470eba3577432d781e0210dff1fd156b8c549c", 1646928203370, 0.46493, [1.6904e-07], [1.7262e-07], [1.6947e-07], [1.7156e-07], [64203], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_standard": [[1.6996182278878235e-07], [], "3a752a7884e99e095c31b2a28cfefdf916cb2033c06afae1ea146a72f3ba650c", 1646928203602, 0.4653, [1.6973e-07], [1.7054e-07], [1.6985e-07], [1.7013e-07], [64476], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_windows": [[1.7035111172927143e-07], [], "1732bbd18ada49eb7b054fc18b40d6acfb533023463366f37203dab6fbb0cc20", 1646928203835, 0.46646, [1.6925e-07], [1.7059e-07], [1.7011e-07], [1.7038e-07], [64545], [10]], "benchmarks.PrettySuite.time_pretty": [[0.0010278916495735759], [], "9bb0e6d8a29aad21b3d1b550a160fa5f1e9030c69d16bad500c0dcc77bff6d01", 1646928204069, 0.45261, [0.0010256], [0.0010317], [0.0010275], [0.0010283], [10], [10]], "benchmarks.PrettySuite.time_pretty_indent_guides": [[0.0014257812490541255], [], "8d71bf19dfe999b0fba95d009986bfd6911c53c7a0c455466725f553005c3bc7", 1646928204294, 0.4625, [0.0014199], [0.0014303], [0.0014227], [0.0014282], [8], [10]], "benchmarks.PrettySuite.time_pretty_justify_center": [[0.0013062031248409767], [], "54cbf71bacab14ccbe1d063847c0b89198ed1bbe06edc89c14d2e3c7b1986c41", 1646928204524, 0.44475, [0.0012951], [0.0013184], [0.0013016], [0.001311], [8], [10]], "benchmarks.StyleSuite.time_parse_ansi": [[1.140761227710675e-07], [], "a003aaa8017585efeb1cd9c43351282df4df6249bf28a4c447b1304d984aa753", 1646928204750, 0.4639, [1.1362e-07], [1.1469e-07], [1.1396e-07], [1.1454e-07], [96423], [10]], "benchmarks.StyleSuite.time_parse_hex": [[1.1431385233683782e-07], [], "cf5a3f0def435d3da5bc3a6e7549c44c0a02e9cce6c00ecde8dd7f527556f8ca", 1646928204982, 0.46453, [1.137e-07], [1.155e-07], [1.1399e-07], [1.1478e-07], [96367], [10]], "benchmarks.StyleSuite.time_parse_mixed_complex_style": [[1.1405374051054004e-07], [], "01c9e12ae829b1984e55a5aeef1a9ae6f1461577adaf5ae59f06358c8b52802f", 1646928205215, 0.43433, [1.1363e-07], [1.1545e-07], [1.1393e-07], [1.1418e-07], [87764], [10]], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_heavy_wrapping": [null, [], "1ed4d74ea424990cfb40c96f07635f9bcf7b8bacc7ade5204aaf96363e1622ee", 1646928199111, 0.066393], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_medium_wrapping": [null, [], "0880e162a4907ee025cef8ac3380502554fde27fd0c90a4c15cebc9c27f3e333", 1646928199178, 0.065317], "benchmarks.SyntaxWrappingSuite.time_text_wide_terminal_no_wrapping": [null, [], "feb11e94ae6a75de2dee899fb93db098b55cde232710660d7d66f9e2b288d9c0", 1646928199243, 0.065764], "benchmarks.TableSuite.time_table_heavy_wrapping": [[0.0021228875033557416], [], "ca515a9739c1e0f8eb922420f9f9caf27321fb13c8bd0bc49b207a0588b370de", 1646928205432, 0.45023, [0.0021096], [0.0021335], [0.0021166], [0.0021325], [5], [10]], "benchmarks.TableSuite.time_table_no_wrapping": [[0.0012783515630871989], [], "8842a5f141d8208ba2bab66e4973e978cb5d0615f326af5d70385ff8fa44b3b9", 1646928205660, 0.44969, [0.0012736], [0.0012911], [0.0012762], [0.0012803], [8], [10]], "benchmarks.TextSuite.time_align_center": [[0.00037327826794353314], [], "1ceeeef2de43fcb3d0dfec409972d8f0eb791e9615fa9f9c959e0423725b089b", 1646928205884, 0.44954, [0.00036982], [0.00037671], [0.00037034], [0.00037575], [28], [10]], "benchmarks.TextSuite.time_align_center_unicode_heavy": [[0.0003444326503085904], [], "a83ff79614dd2ae17e8b68f45981fcaa0d9833c59a7a14f171b896cf970f54ce", 1646928206106, 0.44373, [0.00033653], [0.00035535], [0.00033847], [0.00034547], [30], [10]], "benchmarks.TextSuite.time_divide": [[2.525865081146688e-05], [], "dcc120b921cb2ec77632f8fe2f6f4150d479cb49ef2608f8e86b569a937756e9", 1646928206325, 0.45105, [2.5184e-05], [2.5635e-05], [2.5192e-05], [2.5311e-05], [431], [10]], "benchmarks.TextSuite.time_divide_unicode_heavy": [[0.00018414331887093983], [], "ea53e662c0553324f90ac3336dcee77f733bb33638888e1f84bf71945a2f3f8e", 1646928206555, 0.4542, [0.0001836], [0.00018511], [0.00018411], [0.00018432], [58], [10]], "benchmarks.TextSuite.time_fit": [[4.462133887249228e-05], [], "ec77b412db357b1e1c1e7bc620b941dddfc36dc76d2a66a0417feae4f21fe1d3", 1646928206782, 0.44513, [4.4237e-05], [4.4688e-05], [4.4356e-05], [4.4651e-05], [239], [10]], "benchmarks.TextSuite.time_fit_unicode_heavy": [[0.00032451075845352944], [], "d1574b4af2ef8b80b95b4dbeeb13e5de67b66783f76f9968834776239dd0dc66", 1646928207007, 0.43806, [0.00032392], [0.00032553], [0.00032405], [0.00032477], [31], [10]], "benchmarks.TextSuite.time_indent_guides": [[0.0003554676549011392], [], "18da036dcfc15ec5e3c11e72be7c8f0c22fba695a5f19c95836be36952376cf2", 1646928207225, 0.44502, [0.00035469], [0.00035578], [0.00035515], [0.00035563], [29], [10]], "benchmarks.TextSuite.time_render": [[4.663124727711817e-06], [], "907d30581cfdc7bb2c4d302b7e3cb474aaefd8b84821365fe105af7d82be3b09", 1646928207446, 0.45325, [4.652e-06], [4.6689e-06], [4.656e-06], [4.6658e-06], [2341], [10]], "benchmarks.TextSuite.time_render_unicode_heavy": [[8.480436326863128e-05], [], "b3f1c09dfd06f412a20dacfe378c3b446727c7d4f9a975336eab3daa8543e1cb", 1646928207677, 0.45763, [8.4385e-05], [8.5518e-05], [8.449e-05], [8.5311e-05], [128], [10]], "benchmarks.TextSuite.time_split": [[3.614149831044769e-05], [], "9c165854130cb95fea5491ffcd8b580a5bd373149da2ef8aace0e9480f649854", 1646928207907, 0.44961, [3.6062e-05], [3.6293e-05], [3.612e-05], [3.6185e-05], [298], [10]], "benchmarks.TextSuite.time_split_unicode_heavy": [[0.0002741100384483639], [], "d55b02f6d06f478d70635bac3409f3a9899137d9cee87a70a293b8ccf5a6afa4", 1646928208135, 0.45469, [0.00027323], [0.00027512], [0.00027334], [0.00027444], [39], [10]], "benchmarks.TextSuite.time_wrapping": [[0.0011020895515684971], [], "8c821eba13d043f228fd902d8f678c397741855db05d02abe9b82f3d65cdf03d", 1646928208362, 0.44548, [0.0011001], [0.0011044], [0.0011011], [0.0011024], [10], [10]], "benchmarks.TextSuite.time_wrapping_unicode_heavy": [[0.0013700364997930592], [], "ec6e2ef08b6cdee182fef4e26c0043f8c365984f9a31be07dbd792e1aed862d8", 1646928208584, 0.44717, [0.0013585], [0.0013829], [0.0013604], [0.0013801], [8], [10]]}, "durations": {"": 2.0034019947052}, "version": 2} diff --git a/benchmarks/results/darrenburns-2022-mbp/aca0b60b-virtualenv-py3.10.json b/benchmarks/results/darrenburns-2022-mbp/aca0b60b-virtualenv-py3.10.json new file mode 100644 index 0000000000..2149629b03 --- /dev/null +++ b/benchmarks/results/darrenburns-2022-mbp/aca0b60b-virtualenv-py3.10.json @@ -0,0 +1 @@ +{"commit_hash": "aca0b60b22fae4c6e16cec7615c2e7c00f73e44d", "env_name": "virtualenv-py3.10", "date": 1610557278000, "params": {"arch": "arm64", "cpu": "Apple M1 Pro", "machine": "darrenburns-2022-mbp", "num_cpu": "10", "os": "Darwin 21.2.0", "ram": "17179869184", "python": "3.10"}, "python": "3.10", "requirements": {}, "env_vars": {}, "result_columns": ["result", "params", "version", "started_at", "duration", "stats_ci_99_a", "stats_ci_99_b", "stats_q_25", "stats_q_75", "stats_number", "stats_repeat", "samples", "profile"], "results": {"benchmarks.ColorSuite.time_downgrade_to_eight_bit": [[1.6979068882969545e-07], [], "019b972f782c6291df9a6a4dea9bb3c6268a69b177e71383d6e19a608e84920d", 1646929261153, 0.45869, [1.692e-07], [1.7053e-07], [1.6942e-07], [1.7042e-07], [64600], [10]], "benchmarks.ColorSuite.time_downgrade_to_standard": [[1.7020309905146757e-07], [], "f5e8556491c977450fff6ebfd9fff4fc8f12d74829aa5b8570bd27ea7a1c9d28", 1646929261381, 0.45617, [1.6895e-07], [1.7099e-07], [1.6948e-07], [1.7042e-07], [64407], [10]], "benchmarks.ColorSuite.time_downgrade_to_windows": [[1.705886511498212e-07], [], "373eb97dd7ce2823e080972249235f528e8b3a47210911981cf432ecf0eef5fb", 1646929261609, 0.45585, [1.6981e-07], [1.7164e-07], [1.7036e-07], [1.7076e-07], [63823], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_eight_bit": [[1.703659859609806e-07], [], "716ff06a471a5d90af3730f6d4470eba3577432d781e0210dff1fd156b8c549c", 1646929261836, 0.45617, [1.6927e-07], [1.7076e-07], [1.6999e-07], [1.7067e-07], [64691], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_standard": [[1.704958673588024e-07], [], "3a752a7884e99e095c31b2a28cfefdf916cb2033c06afae1ea146a72f3ba650c", 1646929262066, 0.45714, [1.6901e-07], [1.7978e-07], [1.6968e-07], [1.7486e-07], [64363], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_windows": [[1.6980670332693827e-07], [], "1732bbd18ada49eb7b054fc18b40d6acfb533023463366f37203dab6fbb0cc20", 1646929262293, 0.45681, [1.689e-07], [1.7111e-07], [1.6963e-07], [1.7049e-07], [64463], [10]], "benchmarks.PrettySuite.time_pretty": [[0.0010281833514454775], [], "9bb0e6d8a29aad21b3d1b550a160fa5f1e9030c69d16bad500c0dcc77bff6d01", 1646929262522, 0.44339, [0.0010218], [0.0010329], [0.0010269], [0.0010292], [10], [10]], "benchmarks.PrettySuite.time_pretty_indent_guides": [[0.0014339881433573154], [], "8d71bf19dfe999b0fba95d009986bfd6911c53c7a0c455466725f553005c3bc7", 1646929262742, 0.43562, [0.0014306], [0.0014466], [0.0014326], [0.0014363], [7], [10]], "benchmarks.PrettySuite.time_pretty_justify_center": [[0.0014138098758849083], [], "54cbf71bacab14ccbe1d063847c0b89198ed1bbe06edc89c14d2e3c7b1986c41", 1646929262958, 0.44435, [0.0014093], [0.0014185], [0.0014117], [0.001417], [8], [10]], "benchmarks.StyleSuite.time_parse_ansi": [[1.1401449880373922e-07], [], "a003aaa8017585efeb1cd9c43351282df4df6249bf28a4c447b1304d984aa753", 1646929263181, 0.45645, [1.1387e-07], [1.1445e-07], [1.1392e-07], [1.1421e-07], [95939], [10]], "benchmarks.StyleSuite.time_parse_hex": [[1.1443270225171499e-07], [], "cf5a3f0def435d3da5bc3a6e7549c44c0a02e9cce6c00ecde8dd7f527556f8ca", 1646929263411, 0.45604, [1.1387e-07], [1.1499e-07], [1.1415e-07], [1.1463e-07], [95568], [10]], "benchmarks.StyleSuite.time_parse_mixed_complex_style": [[1.1406076018727822e-07], [], "01c9e12ae829b1984e55a5aeef1a9ae6f1461577adaf5ae59f06358c8b52802f", 1646929263640, 0.45291, [1.1364e-07], [1.1429e-07], [1.139e-07], [1.1415e-07], [95103], [10]], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_heavy_wrapping": [null, [], "1ed4d74ea424990cfb40c96f07635f9bcf7b8bacc7ade5204aaf96363e1622ee", 1646929257617, 0.063062], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_medium_wrapping": [null, [], "0880e162a4907ee025cef8ac3380502554fde27fd0c90a4c15cebc9c27f3e333", 1646929257680, 0.062193], "benchmarks.SyntaxWrappingSuite.time_text_wide_terminal_no_wrapping": [null, [], "feb11e94ae6a75de2dee899fb93db098b55cde232710660d7d66f9e2b288d9c0", 1646929257743, 0.062107], "benchmarks.TableSuite.time_table_heavy_wrapping": [[0.003231895749195246], [], "ca515a9739c1e0f8eb922420f9f9caf27321fb13c8bd0bc49b207a0588b370de", 1646929263867, 0.47303, [0.0032274], [0.0032412], [0.0032312], [0.0032359], [4], [10]], "benchmarks.TableSuite.time_table_no_wrapping": [[0.00212119999632705], [], "8842a5f141d8208ba2bab66e4973e978cb5d0615f326af5d70385ff8fa44b3b9", 1646929264102, 0.4479, [0.0021128], [0.0021326], [0.0021166], [0.0021248], [5], [10]], "benchmarks.TextSuite.time_align_center": [[0.0006615611873712623], [], "1ceeeef2de43fcb3d0dfec409972d8f0eb791e9615fa9f9c959e0423725b089b", 1646929264332, 0.44166, [0.00066031], [0.0006646], [0.00066088], [0.00066344], [16], [10]], "benchmarks.TextSuite.time_align_center_unicode_heavy": [[0.000546990130954471], [], "a83ff79614dd2ae17e8b68f45981fcaa0d9833c59a7a14f171b896cf970f54ce", 1646929264556, 0.44545, [0.00054453], [0.00055482], [0.00054522], [0.00054746], [19], [10]], "benchmarks.TextSuite.time_divide": [[2.8134737607254584e-05], [], "dcc120b921cb2ec77632f8fe2f6f4150d479cb49ef2608f8e86b569a937756e9", 1646929264778, 0.45325, [2.7757e-05], [2.8699e-05], [2.7795e-05], [2.8536e-05], [383], [10]], "benchmarks.TextSuite.time_divide_unicode_heavy": [[0.00018772002633277065], [], "ea53e662c0553324f90ac3336dcee77f733bb33638888e1f84bf71945a2f3f8e", 1646929265006, 0.44781, [0.0001871], [0.00018804], [0.00018724], [0.00018801], [57], [10]], "benchmarks.TextSuite.time_fit": [[4.241892768268335e-05], [], "ec77b412db357b1e1c1e7bc620b941dddfc36dc76d2a66a0417feae4f21fe1d3", 1646929265229, 0.44642, [4.2121e-05], [4.2643e-05], [4.2294e-05], [4.256e-05], [249], [10]], "benchmarks.TextSuite.time_fit_unicode_heavy": [[0.00033005645109956424], [], "d1574b4af2ef8b80b95b4dbeeb13e5de67b66783f76f9968834776239dd0dc66", 1646929265451, 0.43617, [0.00032916], [0.00033341], [0.00032984], [0.00033081], [31], [10]], "benchmarks.TextSuite.time_indent_guides": [[0.0003927091350375961], [], "18da036dcfc15ec5e3c11e72be7c8f0c22fba695a5f19c95836be36952376cf2", 1646929265668, 0.4359, [0.00039106], [0.00040295], [0.00039214], [0.00039385], [26], [10]], "benchmarks.TextSuite.time_render": [[4.700245483344387e-06], [], "907d30581cfdc7bb2c4d302b7e3cb474aaefd8b84821365fe105af7d82be3b09", 1646929265885, 0.44808, [4.6844e-06], [4.7747e-06], [4.6901e-06], [4.707e-06], [2326], [10]], "benchmarks.TextSuite.time_render_unicode_heavy": [[8.508284383879072e-05], [], "b3f1c09dfd06f412a20dacfe378c3b446727c7d4f9a975336eab3daa8543e1cb", 1646929266114, 0.45134, [8.4051e-05], [8.5437e-05], [8.4758e-05], [8.5298e-05], [128], [10]], "benchmarks.TextSuite.time_split": [[3.381015594758189e-05], [], "9c165854130cb95fea5491ffcd8b580a5bd373149da2ef8aace0e9480f649854", 1646929266341, 0.44531, [3.3708e-05], [3.3933e-05], [3.3794e-05], [3.39e-05], [311], [10]], "benchmarks.TextSuite.time_split_unicode_heavy": [[0.0002796486349669411], [], "d55b02f6d06f478d70635bac3409f3a9899137d9cee87a70a293b8ccf5a6afa4", 1646929266563, 0.43816, [0.00027817], [0.00028029], [0.00027899], [0.00028003], [37], [10]], "benchmarks.TextSuite.time_wrapping": [[0.0011550139445009539], [], "8c821eba13d043f228fd902d8f678c397741855db05d02abe9b82f3d65cdf03d", 1646929266781, 0.44439, [0.0011491], [0.0011623], [0.0011497], [0.0011609], [9], [10]], "benchmarks.TextSuite.time_wrapping_unicode_heavy": [[0.0015380804273133564], [], "ec6e2ef08b6cdee182fef4e26c0043f8c365984f9a31be07dbd792e1aed862d8", 1646929267003, 0.44982, [0.0015263], [0.0016385], [0.0015297], [0.0015829], [7], [10]]}, "durations": {"": 1.9768939018249512}, "version": 2} diff --git a/benchmarks/results/darrenburns-2022-mbp/ad6e3dea-virtualenv-py3.10.json b/benchmarks/results/darrenburns-2022-mbp/ad6e3dea-virtualenv-py3.10.json new file mode 100644 index 0000000000..e1c80e0ae8 --- /dev/null +++ b/benchmarks/results/darrenburns-2022-mbp/ad6e3dea-virtualenv-py3.10.json @@ -0,0 +1 @@ +{"commit_hash": "ad6e3dea2dfe549a309ae602164a6dc7540f3c05", "env_name": "virtualenv-py3.10", "date": 1638117333000, "params": {"arch": "arm64", "cpu": "Apple M1 Pro", "machine": "darrenburns-2022-mbp", "num_cpu": "10", "os": "Darwin 21.2.0", "ram": "17179869184", "python": "3.10"}, "python": "3.10", "requirements": {}, "env_vars": {}, "result_columns": ["result", "params", "version", "started_at", "duration", "stats_ci_99_a", "stats_ci_99_b", "stats_q_25", "stats_q_75", "stats_number", "stats_repeat", "samples", "profile"], "results": {"benchmarks.ColorSuite.time_downgrade_to_eight_bit": [[1.7166836254051273e-07], [], "019b972f782c6291df9a6a4dea9bb3c6268a69b177e71383d6e19a608e84920d", 1646929353186, 0.46998, [1.7069e-07], [1.7348e-07], [1.7139e-07], [1.7207e-07], [64474], [10]], "benchmarks.ColorSuite.time_downgrade_to_standard": [[1.707324738468546e-07], [], "f5e8556491c977450fff6ebfd9fff4fc8f12d74829aa5b8570bd27ea7a1c9d28", 1646929353422, 0.46564, [1.6994e-07], [1.7235e-07], [1.7037e-07], [1.7184e-07], [64732], [10]], "benchmarks.ColorSuite.time_downgrade_to_windows": [[1.7161118860790375e-07], [], "373eb97dd7ce2823e080972249235f528e8b3a47210911981cf432ecf0eef5fb", 1646929353655, 0.45741, [1.7007e-07], [1.7974e-07], [1.705e-07], [1.7178e-07], [64440], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_eight_bit": [[1.7128570427507506e-07], [], "716ff06a471a5d90af3730f6d4470eba3577432d781e0210dff1fd156b8c549c", 1646929353880, 0.46379, [1.6983e-07], [1.7205e-07], [1.7045e-07], [1.7161e-07], [64033], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_standard": [[1.7106433715715202e-07], [], "3a752a7884e99e095c31b2a28cfefdf916cb2033c06afae1ea146a72f3ba650c", 1646929354112, 0.46647, [1.6997e-07], [1.7178e-07], [1.7035e-07], [1.7124e-07], [64916], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_windows": [[1.7102998742249e-07], [], "1732bbd18ada49eb7b054fc18b40d6acfb533023463366f37203dab6fbb0cc20", 1646929354346, 0.46544, [1.6975e-07], [1.7176e-07], [1.7055e-07], [1.7154e-07], [64477], [10]], "benchmarks.PrettySuite.time_pretty": [[0.0011044375496567227], [], "9bb0e6d8a29aad21b3d1b550a160fa5f1e9030c69d16bad500c0dcc77bff6d01", 1646929354579, 0.46642, [0.0011009], [0.0011078], [0.0011033], [0.0011057], [10], [10]], "benchmarks.PrettySuite.time_pretty_indent_guides": [[0.001517199428885111], [], "8d71bf19dfe999b0fba95d009986bfd6911c53c7a0c455466725f553005c3bc7", 1646929354802, 0.45288, [0.0015077], [0.0015347], [0.001514], [0.0015253], [7], [10]], "benchmarks.PrettySuite.time_pretty_justify_center": [[0.0014020651251485106], [], "54cbf71bacab14ccbe1d063847c0b89198ed1bbe06edc89c14d2e3c7b1986c41", 1646929355033, 0.45724, [0.0013925], [0.0014177], [0.0013955], [0.0014041], [8], [10]], "benchmarks.StyleSuite.time_parse_ansi": [[1.1427258234920079e-07], [], "a003aaa8017585efeb1cd9c43351282df4df6249bf28a4c447b1304d984aa753", 1646929355264, 0.46601, [1.1402e-07], [1.1459e-07], [1.142e-07], [1.1434e-07], [96037], [10]], "benchmarks.StyleSuite.time_parse_hex": [[1.1419825515356431e-07], [], "cf5a3f0def435d3da5bc3a6e7549c44c0a02e9cce6c00ecde8dd7f527556f8ca", 1646929355496, 0.46227, [1.1369e-07], [1.1468e-07], [1.14e-07], [1.1441e-07], [96111], [10]], "benchmarks.StyleSuite.time_parse_mixed_complex_style": [[1.1511939419719757e-07], [], "01c9e12ae829b1984e55a5aeef1a9ae6f1461577adaf5ae59f06358c8b52802f", 1646929355729, 0.46656, [1.1397e-07], [1.1595e-07], [1.1405e-07], [1.1567e-07], [95838], [10]], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_heavy_wrapping": [null, [], "1ed4d74ea424990cfb40c96f07635f9bcf7b8bacc7ade5204aaf96363e1622ee", 1646929349589, 0.066147], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_medium_wrapping": [null, [], "0880e162a4907ee025cef8ac3380502554fde27fd0c90a4c15cebc9c27f3e333", 1646929349655, 0.065858], "benchmarks.SyntaxWrappingSuite.time_text_wide_terminal_no_wrapping": [null, [], "feb11e94ae6a75de2dee899fb93db098b55cde232710660d7d66f9e2b288d9c0", 1646929349721, 0.065511], "benchmarks.TableSuite.time_table_heavy_wrapping": [[0.0023498082999140026], [], "ca515a9739c1e0f8eb922420f9f9caf27321fb13c8bd0bc49b207a0588b370de", 1646929355962, 0.4605, [0.002325], [0.0023617], [0.0023403], [0.0023549], [5], [10]], "benchmarks.TableSuite.time_table_no_wrapping": [[0.0014064557490200968], [], "8842a5f141d8208ba2bab66e4973e978cb5d0615f326af5d70385ff8fa44b3b9", 1646929356196, 0.45041, [0.0013961], [0.0014107], [0.0013998], [0.0014099], [8], [10]], "benchmarks.TextSuite.time_align_center": [[0.00037908333927459486], [], "1ceeeef2de43fcb3d0dfec409972d8f0eb791e9615fa9f9c959e0423725b089b", 1646929356422, 0.45708, [0.00037676], [0.00038228], [0.00037721], [0.0003807], [28], [10]], "benchmarks.TextSuite.time_align_center_unicode_heavy": [[0.00034137632258446707], [], "a83ff79614dd2ae17e8b68f45981fcaa0d9833c59a7a14f171b896cf970f54ce", 1646929356651, 0.45521, [0.00034074], [0.00034201], [0.00034102], [0.00034167], [31], [10]], "benchmarks.TextSuite.time_divide": [[2.5464340687057997e-05], [], "dcc120b921cb2ec77632f8fe2f6f4150d479cb49ef2608f8e86b569a937756e9", 1646929356878, 0.46274, [2.5285e-05], [2.5611e-05], [2.5328e-05], [2.5575e-05], [430], [10]], "benchmarks.TextSuite.time_divide_unicode_heavy": [[0.00018554943208227534], [], "ea53e662c0553324f90ac3336dcee77f733bb33638888e1f84bf71945a2f3f8e", 1646929357110, 0.46631, [0.00018464], [0.00019381], [0.00018482], [0.00018943], [59], [10]], "benchmarks.TextSuite.time_fit": [[4.3584937243892056e-05], [], "ec77b412db357b1e1c1e7bc620b941dddfc36dc76d2a66a0417feae4f21fe1d3", 1646929357345, 0.45508, [4.3453e-05], [4.3719e-05], [4.3483e-05], [4.3643e-05], [247], [10]], "benchmarks.TextSuite.time_fit_unicode_heavy": [[0.0003247758938937984], [], "d1574b4af2ef8b80b95b4dbeeb13e5de67b66783f76f9968834776239dd0dc66", 1646929357580, 0.45681, [0.00032376], [0.00032589], [0.00032453], [0.00032519], [33], [10]], "benchmarks.TextSuite.time_indent_guides": [[0.0003560352071935054], [], "18da036dcfc15ec5e3c11e72be7c8f0c22fba695a5f19c95836be36952376cf2", 1646929357807, 0.44608, [0.00035437], [0.00035714], [0.00035504], [0.00035665], [29], [10]], "benchmarks.TextSuite.time_render": [[4.681095323915653e-06], [], "907d30581cfdc7bb2c4d302b7e3cb474aaefd8b84821365fe105af7d82be3b09", 1646929358029, 0.45275, [4.6634e-06], [4.7022e-06], [4.6711e-06], [4.6989e-06], [2329], [10]], "benchmarks.TextSuite.time_render_unicode_heavy": [[8.607275378835766e-05], [], "b3f1c09dfd06f412a20dacfe378c3b446727c7d4f9a975336eab3daa8543e1cb", 1646929358259, 0.46141, [8.5438e-05], [8.7824e-05], [8.5806e-05], [8.6341e-05], [128], [10]], "benchmarks.TextSuite.time_split": [[3.522174513527478e-05], [], "9c165854130cb95fea5491ffcd8b580a5bd373149da2ef8aace0e9480f649854", 1646929358492, 0.4514, [3.502e-05], [3.5961e-05], [3.5081e-05], [3.5341e-05], [306], [10]], "benchmarks.TextSuite.time_split_unicode_heavy": [[0.0002766790543368237], [], "d55b02f6d06f478d70635bac3409f3a9899137d9cee87a70a293b8ccf5a6afa4", 1646929358722, 0.44555, [0.00027452], [0.00027891], [0.00027538], [0.00027792], [37], [10]], "benchmarks.TextSuite.time_wrapping": [[0.0013801171880913898], [], "8c821eba13d043f228fd902d8f678c397741855db05d02abe9b82f3d65cdf03d", 1646929358943, 0.46369, [0.0013621], [0.0013958], [0.0013763], [0.0013877], [8], [10]], "benchmarks.TextSuite.time_wrapping_unicode_heavy": [[0.0014559939985961784], [], "ec6e2ef08b6cdee182fef4e26c0043f8c365984f9a31be07dbd792e1aed862d8", 1646929359178, 0.45188, [0.0014476], [0.0015803], [0.0014507], [0.0015258], [7], [10]]}, "durations": {"": 2.005476951599121}, "version": 2} diff --git a/benchmarks/results/darrenburns-2022-mbp/b391635e-virtualenv-py3.10.json b/benchmarks/results/darrenburns-2022-mbp/b391635e-virtualenv-py3.10.json new file mode 100644 index 0000000000..5f1e9c9b6b --- /dev/null +++ b/benchmarks/results/darrenburns-2022-mbp/b391635e-virtualenv-py3.10.json @@ -0,0 +1 @@ +{"commit_hash": "b391635ee4a325fb96ed531b00e4b55f66909639", "env_name": "virtualenv-py3.10", "date": 1599839230000, "params": {"arch": "arm64", "cpu": "Apple M1 Pro", "machine": "darrenburns-2022-mbp", "num_cpu": "10", "os": "Darwin 21.2.0", "ram": "17179869184", "python": "3.10"}, "python": "3.10", "requirements": {}, "env_vars": {}, "result_columns": ["result", "params", "version", "started_at", "duration", "stats_ci_99_a", "stats_ci_99_b", "stats_q_25", "stats_q_75", "stats_number", "stats_repeat", "samples", "profile"], "results": {"benchmarks.ColorSuite.time_downgrade_to_eight_bit": [[1.7171113977231818e-07], [], "019b972f782c6291df9a6a4dea9bb3c6268a69b177e71383d6e19a608e84920d", 1646928896057, 0.4208, [1.6891e-07], [1.7364e-07], [1.6974e-07], [1.733e-07], [59058], [10]], "benchmarks.ColorSuite.time_downgrade_to_standard": [[1.7326176896325207e-07], [], "f5e8556491c977450fff6ebfd9fff4fc8f12d74829aa5b8570bd27ea7a1c9d28", 1646928896265, 0.44149, [1.7222e-07], [1.7407e-07], [1.724e-07], [1.7361e-07], [64704], [10]], "benchmarks.ColorSuite.time_downgrade_to_windows": [[1.7326500571829757e-07], [], "373eb97dd7ce2823e080972249235f528e8b3a47210911981cf432ecf0eef5fb", 1646928896481, 0.42514, [1.722e-07], [1.742e-07], [1.7323e-07], [1.7336e-07], [58910], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_eight_bit": [[1.7424341945248364e-07], [], "716ff06a471a5d90af3730f6d4470eba3577432d781e0210dff1fd156b8c549c", 1646928896692, 0.44518, [1.7185e-07], [1.7549e-07], [1.7362e-07], [1.7535e-07], [62645], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_standard": [[1.7319663555598585e-07], [], "3a752a7884e99e095c31b2a28cfefdf916cb2033c06afae1ea146a72f3ba650c", 1646928896913, 0.45123, [1.7105e-07], [1.7535e-07], [1.7212e-07], [1.7448e-07], [64322], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_windows": [[1.7316413064189517e-07], [], "1732bbd18ada49eb7b054fc18b40d6acfb533023463366f37203dab6fbb0cc20", 1646928897137, 0.44729, [1.7235e-07], [1.7447e-07], [1.7284e-07], [1.7398e-07], [62627], [10]], "benchmarks.PrettySuite.time_pretty": [[0.0011370277788955718], [], "9bb0e6d8a29aad21b3d1b550a160fa5f1e9030c69d16bad500c0dcc77bff6d01", 1646928897358, 0.43163, [0.0011311], [0.0011522], [0.0011326], [0.0011388], [9], [10]], "benchmarks.PrettySuite.time_pretty_indent_guides": [null, [], "8d71bf19dfe999b0fba95d009986bfd6911c53c7a0c455466725f553005c3bc7", 1646928891817, 0.06109], "benchmarks.PrettySuite.time_pretty_justify_center": [[0.0015254762152575754], [], "54cbf71bacab14ccbe1d063847c0b89198ed1bbe06edc89c14d2e3c7b1986c41", 1646928897572, 0.43484, [0.0015008], [0.0015435], [0.0015115], [0.0015373], [7], [10]], "benchmarks.StyleSuite.time_parse_ansi": [[1.1690353489742776e-07], [], "a003aaa8017585efeb1cd9c43351282df4df6249bf28a4c447b1304d984aa753", 1646928897793, 0.441, [1.1616e-07], [1.1735e-07], [1.1657e-07], [1.1727e-07], [92790], [10]], "benchmarks.StyleSuite.time_parse_hex": [[1.1696400284598351e-07], [], "cf5a3f0def435d3da5bc3a6e7549c44c0a02e9cce6c00ecde8dd7f527556f8ca", 1646928898013, 0.44085, [1.1638e-07], [1.1757e-07], [1.1672e-07], [1.1714e-07], [96244], [10]], "benchmarks.StyleSuite.time_parse_mixed_complex_style": [[1.164986364381274e-07], [], "01c9e12ae829b1984e55a5aeef1a9ae6f1461577adaf5ae59f06358c8b52802f", 1646928898229, 0.43071, [1.1623e-07], [1.1716e-07], [1.1631e-07], [1.1664e-07], [96438], [10]], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_heavy_wrapping": [null, [], "1ed4d74ea424990cfb40c96f07635f9bcf7b8bacc7ade5204aaf96363e1622ee", 1646928892754, 0.057563], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_medium_wrapping": [null, [], "0880e162a4907ee025cef8ac3380502554fde27fd0c90a4c15cebc9c27f3e333", 1646928892811, 0.057408], "benchmarks.SyntaxWrappingSuite.time_text_wide_terminal_no_wrapping": [null, [], "feb11e94ae6a75de2dee899fb93db098b55cde232710660d7d66f9e2b288d9c0", 1646928892869, 0.057671], "benchmarks.TableSuite.time_table_heavy_wrapping": [[0.0030024322513781954], [], "ca515a9739c1e0f8eb922420f9f9caf27321fb13c8bd0bc49b207a0588b370de", 1646928898445, 0.45038, [0.0029655], [0.0030357], [0.0029746], [0.0030236], [4], [10]], "benchmarks.TableSuite.time_table_no_wrapping": [[0.0019979833014076576], [], "8842a5f141d8208ba2bab66e4973e978cb5d0615f326af5d70385ff8fa44b3b9", 1646928898674, 0.44609, [0.0019748], [0.0020109], [0.0019847], [0.0020074], [5], [10]], "benchmarks.TextSuite.time_align_center": [[0.0006732166667158404], [], "1ceeeef2de43fcb3d0dfec409972d8f0eb791e9615fa9f9c959e0423725b089b", 1646928898886, 0.42553, [0.00067161], [0.00067601], [0.00067253], [0.0006743], [15], [10]], "benchmarks.TextSuite.time_align_center_unicode_heavy": [[0.0005606853159597928], [], "a83ff79614dd2ae17e8b68f45981fcaa0d9833c59a7a14f171b896cf970f54ce", 1646928899095, 0.42972, [0.0005544], [0.00056468], [0.00055669], [0.00056445], [19], [10]], "benchmarks.TextSuite.time_divide": [[2.8459909917633523e-05], [], "dcc120b921cb2ec77632f8fe2f6f4150d479cb49ef2608f8e86b569a937756e9", 1646928899314, 0.44467, [2.7853e-05], [3.1088e-05], [2.8005e-05], [2.8508e-05], [383], [10]], "benchmarks.TextSuite.time_divide_unicode_heavy": [[0.00019092872772537368], [], "ea53e662c0553324f90ac3336dcee77f733bb33638888e1f84bf71945a2f3f8e", 1646928899536, 0.44513, [0.00019008], [0.00019125], [0.00019078], [0.00019102], [57], [10]], "benchmarks.TextSuite.time_fit": [[4.2737418028991665e-05], [], "ec77b412db357b1e1c1e7bc620b941dddfc36dc76d2a66a0417feae4f21fe1d3", 1646928899758, 0.44079, [4.2264e-05], [4.3084e-05], [4.2369e-05], [4.3044e-05], [250], [10]], "benchmarks.TextSuite.time_fit_unicode_heavy": [[0.00033374933850756214], [], "d1574b4af2ef8b80b95b4dbeeb13e5de67b66783f76f9968834776239dd0dc66", 1646928899978, 0.43169, [0.00033055], [0.00033774], [0.00033095], [0.00033693], [31], [10]], "benchmarks.TextSuite.time_indent_guides": [null, [], "18da036dcfc15ec5e3c11e72be7c8f0c22fba695a5f19c95836be36952376cf2", 1646928894692, 0.05768], "benchmarks.TextSuite.time_render": [[4.72765888174202e-06], [], "907d30581cfdc7bb2c4d302b7e3cb474aaefd8b84821365fe105af7d82be3b09", 1646928900196, 0.43982, [4.6917e-06], [4.7693e-06], [4.6954e-06], [4.7597e-06], [2335], [10]], "benchmarks.TextSuite.time_render_unicode_heavy": [[8.674470639865225e-05], [], "b3f1c09dfd06f412a20dacfe378c3b446727c7d4f9a975336eab3daa8543e1cb", 1646928900421, 0.44408, [8.6065e-05], [8.7558e-05], [8.6628e-05], [8.7371e-05], [126], [10]], "benchmarks.TextSuite.time_split": [[3.434052237476142e-05], [], "9c165854130cb95fea5491ffcd8b580a5bd373149da2ef8aace0e9480f649854", 1646928900645, 0.44066, [3.4247e-05], [3.457e-05], [3.4281e-05], [3.4382e-05], [313], [10]], "benchmarks.TextSuite.time_split_unicode_heavy": [[0.0002858738652493402], [], "d55b02f6d06f478d70635bac3409f3a9899137d9cee87a70a293b8ccf5a6afa4", 1646928900864, 0.43354, [0.00028464], [0.00028642], [0.00028531], [0.00028597], [37], [10]], "benchmarks.TextSuite.time_wrapping": [[0.0011589119999876453], [], "8c821eba13d043f228fd902d8f678c397741855db05d02abe9b82f3d65cdf03d", 1646928901080, 0.43463, [0.0011506], [0.0011699], [0.0011509], [0.0011668], [9], [10]], "benchmarks.TextSuite.time_wrapping_unicode_heavy": [[0.001540008928194376], [], "ec6e2ef08b6cdee182fef4e26c0043f8c365984f9a31be07dbd792e1aed862d8", 1646928901297, 0.43582, [0.0015223], [0.0015583], [0.0015242], [0.0015552], [7], [10]]}, "durations": {"": 1.9634599685668945}, "version": 2} diff --git a/benchmarks/results/darrenburns-2022-mbp/b9e0014a-virtualenv-py3.10.json b/benchmarks/results/darrenburns-2022-mbp/b9e0014a-virtualenv-py3.10.json new file mode 100644 index 0000000000..78bc2d38e8 --- /dev/null +++ b/benchmarks/results/darrenburns-2022-mbp/b9e0014a-virtualenv-py3.10.json @@ -0,0 +1 @@ +{"commit_hash": "b9e0014add85dcbb3c725289955db2e346c84dfb", "env_name": "virtualenv-py3.10", "date": 1616751437000, "params": {"arch": "arm64", "cpu": "Apple M1 Pro", "machine": "darrenburns-2022-mbp", "num_cpu": "10", "os": "Darwin 21.2.0", "ram": "17179869184", "python": "3.10"}, "python": "3.10", "requirements": {}, "env_vars": {}, "result_columns": ["result", "params", "version", "started_at", "duration", "stats_ci_99_a", "stats_ci_99_b", "stats_q_25", "stats_q_75", "stats_number", "stats_repeat", "samples", "profile"], "results": {"benchmarks.ColorSuite.time_downgrade_to_eight_bit": [[1.6998178342983942e-07], [], "019b972f782c6291df9a6a4dea9bb3c6268a69b177e71383d6e19a608e84920d", 1646928116323, 0.44799, [1.6818e-07], [1.7116e-07], [1.6978e-07], [1.7052e-07], [64666], [10]], "benchmarks.ColorSuite.time_downgrade_to_standard": [[1.70502177501734e-07], [], "f5e8556491c977450fff6ebfd9fff4fc8f12d74829aa5b8570bd27ea7a1c9d28", 1646928116553, 0.42977, [1.7013e-07], [1.7116e-07], [1.7031e-07], [1.7065e-07], [59010], [10]], "benchmarks.ColorSuite.time_downgrade_to_windows": [[1.708060499454652e-07], [], "373eb97dd7ce2823e080972249235f528e8b3a47210911981cf432ecf0eef5fb", 1646928116767, 0.45767, [1.6922e-07], [1.762e-07], [1.6994e-07], [1.712e-07], [64447], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_eight_bit": [[1.7004442711291243e-07], [], "716ff06a471a5d90af3730f6d4470eba3577432d781e0210dff1fd156b8c549c", 1646928116994, 0.45538, [1.689e-07], [1.71e-07], [1.6962e-07], [1.704e-07], [64139], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_standard": [[1.702947773471493e-07], [], "3a752a7884e99e095c31b2a28cfefdf916cb2033c06afae1ea146a72f3ba650c", 1646928117221, 0.46279, [1.6903e-07], [1.7138e-07], [1.698e-07], [1.709e-07], [65105], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_windows": [[1.7016582945508121e-07], [], "1732bbd18ada49eb7b054fc18b40d6acfb533023463366f37203dab6fbb0cc20", 1646928117451, 0.45508, [1.6871e-07], [1.712e-07], [1.697e-07], [1.7088e-07], [64319], [10]], "benchmarks.PrettySuite.time_pretty": [[0.0010140812504687347], [], "9bb0e6d8a29aad21b3d1b550a160fa5f1e9030c69d16bad500c0dcc77bff6d01", 1646928117678, 0.43782, [0.0010096], [0.001016], [0.0010115], [0.0010144], [10], [10]], "benchmarks.PrettySuite.time_pretty_indent_guides": [[0.0014073906259000069], [], "8d71bf19dfe999b0fba95d009986bfd6911c53c7a0c455466725f553005c3bc7", 1646928117895, 0.44708, [0.0014003], [0.0014124], [0.0014051], [0.0014088], [8], [10]], "benchmarks.PrettySuite.time_pretty_justify_center": [[0.0013990103761898354], [], "54cbf71bacab14ccbe1d063847c0b89198ed1bbe06edc89c14d2e3c7b1986c41", 1646928118118, 0.44505, [0.0013951], [0.0014053], [0.0013976], [0.0014011], [8], [10]], "benchmarks.StyleSuite.time_parse_ansi": [[1.1467188923626322e-07], [], "a003aaa8017585efeb1cd9c43351282df4df6249bf28a4c447b1304d984aa753", 1646928118341, 0.45495, [1.1409e-07], [1.1642e-07], [1.1452e-07], [1.1502e-07], [95867], [10]], "benchmarks.StyleSuite.time_parse_hex": [[1.1468241056827694e-07], [], "cf5a3f0def435d3da5bc3a6e7549c44c0a02e9cce6c00ecde8dd7f527556f8ca", 1646928118569, 0.44641, [1.1419e-07], [1.1647e-07], [1.145e-07], [1.1622e-07], [96195], [10]], "benchmarks.StyleSuite.time_parse_mixed_complex_style": [[1.1533843505286693e-07], [], "01c9e12ae829b1984e55a5aeef1a9ae6f1461577adaf5ae59f06358c8b52802f", 1646928118797, 0.45388, [1.1398e-07], [1.1714e-07], [1.1432e-07], [1.166e-07], [95296], [10]], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_heavy_wrapping": [null, [], "1ed4d74ea424990cfb40c96f07635f9bcf7b8bacc7ade5204aaf96363e1622ee", 1646928112783, 0.06405], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_medium_wrapping": [null, [], "0880e162a4907ee025cef8ac3380502554fde27fd0c90a4c15cebc9c27f3e333", 1646928112847, 0.063369], "benchmarks.SyntaxWrappingSuite.time_text_wide_terminal_no_wrapping": [null, [], "feb11e94ae6a75de2dee899fb93db098b55cde232710660d7d66f9e2b288d9c0", 1646928112910, 0.063683], "benchmarks.TableSuite.time_table_heavy_wrapping": [[0.0020583042001817375], [], "ca515a9739c1e0f8eb922420f9f9caf27321fb13c8bd0bc49b207a0588b370de", 1646928119023, 0.43674, [0.0020375], [0.0020835], [0.0020558], [0.0020705], [5], [10]], "benchmarks.TableSuite.time_table_no_wrapping": [[0.0012585462763025942], [], "8842a5f141d8208ba2bab66e4973e978cb5d0615f326af5d70385ff8fa44b3b9", 1646928119243, 0.45369, [0.0012464], [0.001273], [0.0012522], [0.0012689], [9], [10]], "benchmarks.TextSuite.time_align_center": [[0.0006639763664376612], [], "1ceeeef2de43fcb3d0dfec409972d8f0eb791e9615fa9f9c959e0423725b089b", 1646928119468, 0.44393, [0.00065901], [0.00066992], [0.00066003], [0.00066843], [15], [10]], "benchmarks.TextSuite.time_align_center_unicode_heavy": [[0.000550776316422822], [], "a83ff79614dd2ae17e8b68f45981fcaa0d9833c59a7a14f171b896cf970f54ce", 1646928119690, 0.44585, [0.00054582], [0.00055971], [0.00054866], [0.00055531], [19], [10]], "benchmarks.TextSuite.time_divide": [[2.592313389588474e-05], [], "dcc120b921cb2ec77632f8fe2f6f4150d479cb49ef2608f8e86b569a937756e9", 1646928119910, 0.4457, [2.5675e-05], [2.6046e-05], [2.5705e-05], [2.5967e-05], [422], [10]], "benchmarks.TextSuite.time_divide_unicode_heavy": [[0.00018688303488919412], [], "ea53e662c0553324f90ac3336dcee77f733bb33638888e1f84bf71945a2f3f8e", 1646928120137, 0.44773, [0.00018391], [0.00018843], [0.00018498], [0.00018813], [57], [10]], "benchmarks.TextSuite.time_fit": [[4.362060948446285e-05], [], "ec77b412db357b1e1c1e7bc620b941dddfc36dc76d2a66a0417feae4f21fe1d3", 1646928120358, 0.44746, [4.3169e-05], [4.4233e-05], [4.319e-05], [4.4155e-05], [242], [10]], "benchmarks.TextSuite.time_fit_unicode_heavy": [[0.00032757661275325286], [], "d1574b4af2ef8b80b95b4dbeeb13e5de67b66783f76f9968834776239dd0dc66", 1646928120578, 0.43624, [0.00032508], [0.00033857], [0.00032604], [0.00033228], [31], [10]], "benchmarks.TextSuite.time_indent_guides": [[0.00035616805010552826], [], "18da036dcfc15ec5e3c11e72be7c8f0c22fba695a5f19c95836be36952376cf2", 1646928120792, 0.44982, [0.0003548], [0.00035831], [0.00035588], [0.00035735], [30], [10]], "benchmarks.TextSuite.time_render": [[4.678165021476379e-06], [], "907d30581cfdc7bb2c4d302b7e3cb474aaefd8b84821365fe105af7d82be3b09", 1646928121015, 0.4452, [4.651e-06], [4.6976e-06], [4.6594e-06], [4.6905e-06], [2330], [10]], "benchmarks.TextSuite.time_render_unicode_heavy": [[8.535840231616021e-05], [], "b3f1c09dfd06f412a20dacfe378c3b446727c7d4f9a975336eab3daa8543e1cb", 1646928121242, 0.4644, [8.4407e-05], [8.5812e-05], [8.5252e-05], [8.56e-05], [128], [10]], "benchmarks.TextSuite.time_split": [[3.5228553957388027e-05], [], "9c165854130cb95fea5491ffcd8b580a5bd373149da2ef8aace0e9480f649854", 1646928121467, 0.44109, [3.5154e-05], [3.5396e-05], [3.5201e-05], [3.5298e-05], [306], [10]], "benchmarks.TextSuite.time_split_unicode_heavy": [[0.00027554385527956153], [], "d55b02f6d06f478d70635bac3409f3a9899137d9cee87a70a293b8ccf5a6afa4", 1646928121692, 0.43998, [0.0002732], [0.00027617], [0.00027442], [0.00027572], [38], [10]], "benchmarks.TextSuite.time_wrapping": [[0.0010960312516544945], [], "8c821eba13d043f228fd902d8f678c397741855db05d02abe9b82f3d65cdf03d", 1646928121910, 0.44672, [0.0010919], [0.0010989], [0.0010943], [0.0010978], [10], [10]], "benchmarks.TextSuite.time_wrapping_unicode_heavy": [[0.0014901487842767633], [], "ec6e2ef08b6cdee182fef4e26c0043f8c365984f9a31be07dbd792e1aed862d8", 1646928122138, 0.43597, [0.0014879], [0.0014951], [0.0014892], [0.0014913], [7], [10]]}, "durations": {}, "version": 2} diff --git a/benchmarks/results/darrenburns-2022-mbp/ba5d0c2c-virtualenv-py3.10.json b/benchmarks/results/darrenburns-2022-mbp/ba5d0c2c-virtualenv-py3.10.json new file mode 100644 index 0000000000..d1199db221 --- /dev/null +++ b/benchmarks/results/darrenburns-2022-mbp/ba5d0c2c-virtualenv-py3.10.json @@ -0,0 +1 @@ +{"commit_hash": "ba5d0c2cfc35e929022dbe26c2edb4c210cb11ee", "env_name": "virtualenv-py3.10", "date": 1637405586000, "params": {"arch": "arm64", "cpu": "Apple M1 Pro", "machine": "darrenburns-2022-mbp", "num_cpu": "10", "os": "Darwin 21.2.0", "ram": "17179869184", "python": "3.10"}, "python": "3.10", "requirements": {}, "env_vars": {}, "result_columns": ["result", "params", "version", "started_at", "duration", "stats_ci_99_a", "stats_ci_99_b", "stats_q_25", "stats_q_75", "stats_number", "stats_repeat", "samples", "profile"], "results": {"benchmarks.ColorSuite.time_downgrade_to_eight_bit": [[1.7099719111164134e-07], [], "019b972f782c6291df9a6a4dea9bb3c6268a69b177e71383d6e19a608e84920d", 1646929469379, 0.46212, [1.7e-07], [1.7237e-07], [1.7059e-07], [1.7156e-07], [64614], [10]], "benchmarks.ColorSuite.time_downgrade_to_standard": [[1.6992863450832084e-07], [], "f5e8556491c977450fff6ebfd9fff4fc8f12d74829aa5b8570bd27ea7a1c9d28", 1646929469612, 0.46668, [1.6965e-07], [1.706e-07], [1.6968e-07], [1.7036e-07], [64506], [10]], "benchmarks.ColorSuite.time_downgrade_to_windows": [[1.7590241712395733e-07], [], "373eb97dd7ce2823e080972249235f528e8b3a47210911981cf432ecf0eef5fb", 1646929469847, 0.46733, [1.6986e-07], [1.806e-07], [1.7063e-07], [1.788e-07], [62716], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_eight_bit": [[1.70707002050929e-07], [], "716ff06a471a5d90af3730f6d4470eba3577432d781e0210dff1fd156b8c549c", 1646929470083, 0.45427, [1.6823e-07], [1.7291e-07], [1.7007e-07], [1.7193e-07], [64939], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_standard": [[1.693035584829865e-07], [], "3a752a7884e99e095c31b2a28cfefdf916cb2033c06afae1ea146a72f3ba650c", 1646929470312, 0.46714, [1.6847e-07], [1.7146e-07], [1.6881e-07], [1.6973e-07], [64691], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_windows": [[1.7005772273243105e-07], [], "1732bbd18ada49eb7b054fc18b40d6acfb533023463366f37203dab6fbb0cc20", 1646929470548, 0.46326, [1.6928e-07], [1.7169e-07], [1.6995e-07], [1.7037e-07], [64680], [10]], "benchmarks.PrettySuite.time_pretty": [[0.0010359979496570304], [], "9bb0e6d8a29aad21b3d1b550a160fa5f1e9030c69d16bad500c0dcc77bff6d01", 1646929470779, 0.45233, [0.0010316], [0.0010429], [0.0010329], [0.0010386], [10], [10]], "benchmarks.PrettySuite.time_pretty_indent_guides": [[0.001431943430881282], [], "8d71bf19dfe999b0fba95d009986bfd6911c53c7a0c455466725f553005c3bc7", 1646929471005, 0.44223, [0.0014292], [0.0014394], [0.0014299], [0.001434], [7], [10]], "benchmarks.PrettySuite.time_pretty_justify_center": [[0.0013096198126731906], [], "54cbf71bacab14ccbe1d063847c0b89198ed1bbe06edc89c14d2e3c7b1986c41", 1646929471224, 0.44682, [0.001304], [0.0013227], [0.0013055], [0.001315], [8], [10]], "benchmarks.StyleSuite.time_parse_ansi": [[1.1422716500932673e-07], [], "a003aaa8017585efeb1cd9c43351282df4df6249bf28a4c447b1304d984aa753", 1646929471453, 0.46259, [1.1321e-07], [1.1439e-07], [1.1366e-07], [1.1431e-07], [96135], [10]], "benchmarks.StyleSuite.time_parse_hex": [[1.1448200174943257e-07], [], "cf5a3f0def435d3da5bc3a6e7549c44c0a02e9cce6c00ecde8dd7f527556f8ca", 1646929471684, 0.46498, [1.1412e-07], [1.2063e-07], [1.1435e-07], [1.1702e-07], [96010], [10]], "benchmarks.StyleSuite.time_parse_mixed_complex_style": [[1.1426247877882212e-07], [], "01c9e12ae829b1984e55a5aeef1a9ae6f1461577adaf5ae59f06358c8b52802f", 1646929471919, 0.45399, [1.1407e-07], [1.1621e-07], [1.1417e-07], [1.1485e-07], [96585], [10]], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_heavy_wrapping": [null, [], "1ed4d74ea424990cfb40c96f07635f9bcf7b8bacc7ade5204aaf96363e1622ee", 1646929465787, 0.065325], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_medium_wrapping": [null, [], "0880e162a4907ee025cef8ac3380502554fde27fd0c90a4c15cebc9c27f3e333", 1646929465852, 0.064656], "benchmarks.SyntaxWrappingSuite.time_text_wide_terminal_no_wrapping": [null, [], "feb11e94ae6a75de2dee899fb93db098b55cde232710660d7d66f9e2b288d9c0", 1646929465917, 0.064757], "benchmarks.TableSuite.time_table_heavy_wrapping": [[0.0022018249990651386], [], "ca515a9739c1e0f8eb922420f9f9caf27321fb13c8bd0bc49b207a0588b370de", 1646929472142, 0.44804, [0.0021871], [0.0022209], [0.0021976], [0.0022047], [5], [10]], "benchmarks.TableSuite.time_table_no_wrapping": [[0.0013314192492543953], [], "8842a5f141d8208ba2bab66e4973e978cb5d0615f326af5d70385ff8fa44b3b9", 1646929472364, 0.4441, [0.0013222], [0.0014545], [0.0013259], [0.0013835], [8], [10]], "benchmarks.TextSuite.time_align_center": [[0.00038731405543836043], [], "1ceeeef2de43fcb3d0dfec409972d8f0eb791e9615fa9f9c959e0423725b089b", 1646929472588, 0.4463, [0.0003837], [0.00038774], [0.00038438], [0.00038755], [27], [10]], "benchmarks.TextSuite.time_align_center_unicode_heavy": [[0.00034269085482528975], [], "a83ff79614dd2ae17e8b68f45981fcaa0d9833c59a7a14f171b896cf970f54ce", 1646929472808, 0.45312, [0.00033989], [0.00035148], [0.00034092], [0.00034969], [31], [10]], "benchmarks.TextSuite.time_divide": [[2.5358665487215255e-05], [], "dcc120b921cb2ec77632f8fe2f6f4150d479cb49ef2608f8e86b569a937756e9", 1646929473033, 0.45872, [2.526e-05], [2.553e-05], [2.5311e-05], [2.5471e-05], [426], [10]], "benchmarks.TextSuite.time_divide_unicode_heavy": [[0.0001850423876272418], [], "ea53e662c0553324f90ac3336dcee77f733bb33638888e1f84bf71945a2f3f8e", 1646929473262, 0.45789, [0.00018349], [0.00018715], [0.00018417], [0.00018611], [58], [10]], "benchmarks.TextSuite.time_fit": [[4.378081666800426e-05], [], "ec77b412db357b1e1c1e7bc620b941dddfc36dc76d2a66a0417feae4f21fe1d3", 1646929473490, 0.45569, [4.3516e-05], [4.4552e-05], [4.3555e-05], [4.426e-05], [240], [10]], "benchmarks.TextSuite.time_fit_unicode_heavy": [[0.00032770027445944687], [], "d1574b4af2ef8b80b95b4dbeeb13e5de67b66783f76f9968834776239dd0dc66", 1646929473715, 0.44077, [0.00032418], [0.00033175], [0.00032457], [0.00032793], [31], [10]], "benchmarks.TextSuite.time_indent_guides": [[0.00035871982781200446], [], "18da036dcfc15ec5e3c11e72be7c8f0c22fba695a5f19c95836be36952376cf2", 1646929473933, 0.45091, [0.00035736], [0.00037312], [0.0003578], [0.00036066], [29], [10]], "benchmarks.TextSuite.time_render": [[4.662722945550666e-06], [], "907d30581cfdc7bb2c4d302b7e3cb474aaefd8b84821365fe105af7d82be3b09", 1646929474156, 0.45536, [4.6424e-06], [4.6853e-06], [4.6601e-06], [4.6774e-06], [2319], [10]], "benchmarks.TextSuite.time_render_unicode_heavy": [[8.52210273478704e-05], [], "b3f1c09dfd06f412a20dacfe378c3b446727c7d4f9a975336eab3daa8543e1cb", 1646929474384, 0.46074, [8.4844e-05], [8.5595e-05], [8.5096e-05], [8.5269e-05], [128], [10]], "benchmarks.TextSuite.time_split": [[3.511532793402091e-05], [], "9c165854130cb95fea5491ffcd8b580a5bd373149da2ef8aace0e9480f649854", 1646929474616, 0.44927, [3.5022e-05], [3.5207e-05], [3.5058e-05], [3.5169e-05], [308], [10]], "benchmarks.TextSuite.time_split_unicode_heavy": [[0.0002737938683774126], [], "d55b02f6d06f478d70635bac3409f3a9899137d9cee87a70a293b8ccf5a6afa4", 1646929474845, 0.44867, [0.00027329], [0.00027608], [0.00027358], [0.00027495], [38], [10]], "benchmarks.TextSuite.time_wrapping": [[0.0010997395496815444], [], "8c821eba13d043f228fd902d8f678c397741855db05d02abe9b82f3d65cdf03d", 1646929475068, 0.45672, [0.0010966], [0.0011037], [0.0010976], [0.0011008], [10], [10]], "benchmarks.TextSuite.time_wrapping_unicode_heavy": [[0.001370867188597913], [], "ec6e2ef08b6cdee182fef4e26c0043f8c365984f9a31be07dbd792e1aed862d8", 1646929475301, 0.45793, [0.001363], [0.001396], [0.0013674], [0.001374], [8], [10]]}, "durations": {"": 2.0138518810272217}, "version": 2} diff --git a/benchmarks/results/darrenburns-2022-mbp/bd34e0a1-virtualenv-py3.10.json b/benchmarks/results/darrenburns-2022-mbp/bd34e0a1-virtualenv-py3.10.json new file mode 100644 index 0000000000..dbab786307 --- /dev/null +++ b/benchmarks/results/darrenburns-2022-mbp/bd34e0a1-virtualenv-py3.10.json @@ -0,0 +1 @@ +{"commit_hash": "bd34e0a1ef8f59700f19277ec30cf0cb5ff01a08", "env_name": "virtualenv-py3.10", "date": 1630249006000, "params": {"arch": "arm64", "cpu": "Apple M1 Pro", "machine": "darrenburns-2022-mbp", "num_cpu": "10", "os": "Darwin 21.2.0", "ram": "17179869184", "python": "3.10"}, "python": "3.10", "requirements": {}, "env_vars": {}, "result_columns": ["result", "params", "version", "started_at", "duration", "stats_ci_99_a", "stats_ci_99_b", "stats_q_25", "stats_q_75", "stats_number", "stats_repeat", "samples", "profile"], "results": {"benchmarks.ColorSuite.time_downgrade_to_eight_bit": [[1.699839021486255e-07], [], "019b972f782c6291df9a6a4dea9bb3c6268a69b177e71383d6e19a608e84920d", 1646928448058, 0.46411, [1.6928e-07], [1.7066e-07], [1.6976e-07], [1.7022e-07], [64543], [10]], "benchmarks.ColorSuite.time_downgrade_to_standard": [[1.7065917911440012e-07], [], "f5e8556491c977450fff6ebfd9fff4fc8f12d74829aa5b8570bd27ea7a1c9d28", 1646928448289, 0.46101, [1.6959e-07], [1.7176e-07], [1.7032e-07], [1.7143e-07], [63906], [10]], "benchmarks.ColorSuite.time_downgrade_to_windows": [[1.7027047136842674e-07], [], "373eb97dd7ce2823e080972249235f528e8b3a47210911981cf432ecf0eef5fb", 1646928448519, 0.45347, [1.6933e-07], [1.7085e-07], [1.7008e-07], [1.7056e-07], [62197], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_eight_bit": [[1.705627804106428e-07], [], "716ff06a471a5d90af3730f6d4470eba3577432d781e0210dff1fd156b8c549c", 1646928448744, 0.44593, [1.6984e-07], [1.7211e-07], [1.7033e-07], [1.7091e-07], [60616], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_standard": [[1.704742747131115e-07], [], "3a752a7884e99e095c31b2a28cfefdf916cb2033c06afae1ea146a72f3ba650c", 1646928448965, 0.46111, [1.6981e-07], [1.736e-07], [1.7015e-07], [1.7185e-07], [64022], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_windows": [[1.7001839810550803e-07], [], "1732bbd18ada49eb7b054fc18b40d6acfb533023463366f37203dab6fbb0cc20", 1646928449194, 0.46202, [1.6917e-07], [1.7086e-07], [1.6973e-07], [1.7031e-07], [64463], [10]], "benchmarks.PrettySuite.time_pretty": [[0.001030816650018096], [], "9bb0e6d8a29aad21b3d1b550a160fa5f1e9030c69d16bad500c0dcc77bff6d01", 1646928449424, 0.44965, [0.0010278], [0.001033], [0.0010292], [0.0010322], [10], [10]], "benchmarks.PrettySuite.time_pretty_indent_guides": [[0.0014227369993022876], [], "8d71bf19dfe999b0fba95d009986bfd6911c53c7a0c455466725f553005c3bc7", 1646928449648, 0.46324, [0.0014192], [0.0014278], [0.0014211], [0.0014265], [8], [10]], "benchmarks.PrettySuite.time_pretty_justify_center": [[0.0013010312486585462], [], "54cbf71bacab14ccbe1d063847c0b89198ed1bbe06edc89c14d2e3c7b1986c41", 1646928449875, 0.44209, [0.0012946], [0.0013369], [0.0012984], [0.0013199], [8], [10]], "benchmarks.StyleSuite.time_parse_ansi": [[1.1713555658106811e-07], [], "a003aaa8017585efeb1cd9c43351282df4df6249bf28a4c447b1304d984aa753", 1646928450099, 0.45425, [1.1411e-07], [1.1791e-07], [1.1594e-07], [1.175e-07], [95901], [10]], "benchmarks.StyleSuite.time_parse_hex": [[1.1427845266258002e-07], [], "cf5a3f0def435d3da5bc3a6e7549c44c0a02e9cce6c00ecde8dd7f527556f8ca", 1646928450322, 0.462, [1.1387e-07], [1.1492e-07], [1.1404e-07], [1.1434e-07], [96212], [10]], "benchmarks.StyleSuite.time_parse_mixed_complex_style": [[1.1614896881760536e-07], [], "01c9e12ae829b1984e55a5aeef1a9ae6f1461577adaf5ae59f06358c8b52802f", 1646928450553, 0.44326, [1.1572e-07], [1.1644e-07], [1.16e-07], [1.1632e-07], [96114], [10]], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_heavy_wrapping": [null, [], "1ed4d74ea424990cfb40c96f07635f9bcf7b8bacc7ade5204aaf96363e1622ee", 1646928444497, 0.065574], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_medium_wrapping": [null, [], "0880e162a4907ee025cef8ac3380502554fde27fd0c90a4c15cebc9c27f3e333", 1646928444563, 0.064713], "benchmarks.SyntaxWrappingSuite.time_text_wide_terminal_no_wrapping": [null, [], "feb11e94ae6a75de2dee899fb93db098b55cde232710660d7d66f9e2b288d9c0", 1646928444627, 0.064512], "benchmarks.TableSuite.time_table_heavy_wrapping": [[0.0021352125972043724], [], "ca515a9739c1e0f8eb922420f9f9caf27321fb13c8bd0bc49b207a0588b370de", 1646928450775, 0.44949, [0.0021156], [0.0021471], [0.0021243], [0.0021448], [5], [10]], "benchmarks.TableSuite.time_table_no_wrapping": [[0.0012830364375986392], [], "8842a5f141d8208ba2bab66e4973e978cb5d0615f326af5d70385ff8fa44b3b9", 1646928451003, 0.44869, [0.0012772], [0.0012901], [0.0012793], [0.0012865], [8], [10]], "benchmarks.TextSuite.time_align_center": [[0.0003747924108340937], [], "1ceeeef2de43fcb3d0dfec409972d8f0eb791e9615fa9f9c959e0423725b089b", 1646928451226, 0.44902, [0.00037021], [0.00037966], [0.00037076], [0.00037859], [28], [10]], "benchmarks.TextSuite.time_align_center_unicode_heavy": [[0.0003422741935918889], [], "a83ff79614dd2ae17e8b68f45981fcaa0d9833c59a7a14f171b896cf970f54ce", 1646928451448, 0.45319, [0.00034156], [0.00035121], [0.000342], [0.0003429], [31], [10]], "benchmarks.TextSuite.time_divide": [[2.532128905682089e-05], [], "dcc120b921cb2ec77632f8fe2f6f4150d479cb49ef2608f8e86b569a937756e9", 1646928451673, 0.45978, [2.5261e-05], [2.5411e-05], [2.5301e-05], [2.535e-05], [429], [10]], "benchmarks.TextSuite.time_divide_unicode_heavy": [[0.0001846931525012794], [], "ea53e662c0553324f90ac3336dcee77f733bb33638888e1f84bf71945a2f3f8e", 1646928451903, 0.45977, [0.00018348], [0.00018552], [0.00018419], [0.00018484], [59], [10]], "benchmarks.TextSuite.time_fit": [[4.347222154426229e-05], [], "ec77b412db357b1e1c1e7bc620b941dddfc36dc76d2a66a0417feae4f21fe1d3", 1646928452133, 0.44653, [4.3403e-05], [4.369e-05], [4.3446e-05], [4.3533e-05], [246], [10]], "benchmarks.TextSuite.time_fit_unicode_heavy": [[0.00032489785488935244], [], "d1574b4af2ef8b80b95b4dbeeb13e5de67b66783f76f9968834776239dd0dc66", 1646928452361, 0.43679, [0.00032404], [0.00032617], [0.00032458], [0.0003256], [31], [10]], "benchmarks.TextSuite.time_indent_guides": [[0.00036011494852698826], [], "18da036dcfc15ec5e3c11e72be7c8f0c22fba695a5f19c95836be36952376cf2", 1646928452579, 0.44723, [0.00035618], [0.00036365], [0.00035723], [0.00036237], [29], [10]], "benchmarks.TextSuite.time_render": [[4.676347421060345e-06], [], "907d30581cfdc7bb2c4d302b7e3cb474aaefd8b84821365fe105af7d82be3b09", 1646928452802, 0.44919, [4.6442e-06], [4.6921e-06], [4.6663e-06], [4.6841e-06], [2307], [10]], "benchmarks.TextSuite.time_render_unicode_heavy": [[8.474758152972705e-05], [], "b3f1c09dfd06f412a20dacfe378c3b446727c7d4f9a975336eab3daa8543e1cb", 1646928453031, 0.45763, [8.4345e-05], [8.5664e-05], [8.4437e-05], [8.541e-05], [129], [10]], "benchmarks.TextSuite.time_split": [[3.527678568566267e-05], [], "9c165854130cb95fea5491ffcd8b580a5bd373149da2ef8aace0e9480f649854", 1646928453262, 0.44942, [3.5132e-05], [3.5366e-05], [3.5193e-05], [3.5317e-05], [308], [10]], "benchmarks.TextSuite.time_split_unicode_heavy": [[0.000274004381361393], [], "d55b02f6d06f478d70635bac3409f3a9899137d9cee87a70a293b8ccf5a6afa4", 1646928453492, 0.44553, [0.00027321], [0.00027504], [0.00027377], [0.00027419], [38], [10]], "benchmarks.TextSuite.time_wrapping": [[0.0010965041496092454], [], "8c821eba13d043f228fd902d8f678c397741855db05d02abe9b82f3d65cdf03d", 1646928453714, 0.45428, [0.0010928], [0.0011023], [0.001094], [0.001101], [10], [10]], "benchmarks.TextSuite.time_wrapping_unicode_heavy": [[0.0013701978750759736], [], "ec6e2ef08b6cdee182fef4e26c0043f8c365984f9a31be07dbd792e1aed862d8", 1646928453944, 0.45584, [0.0013647], [0.0013789], [0.0013687], [0.0013732], [8], [10]]}, "durations": {"": 1.992645263671875}, "version": 2} diff --git a/benchmarks/results/darrenburns-2022-mbp/c24ab497-virtualenv-py3.10.json b/benchmarks/results/darrenburns-2022-mbp/c24ab497-virtualenv-py3.10.json new file mode 100644 index 0000000000..a5a457a19d --- /dev/null +++ b/benchmarks/results/darrenburns-2022-mbp/c24ab497-virtualenv-py3.10.json @@ -0,0 +1 @@ +{"commit_hash": "c24ab497ead3a30758ac1208ce76b925057138ac", "env_name": "virtualenv-py3.10", "date": 1591896878000, "params": {"arch": "arm64", "cpu": "Apple M1 Pro", "machine": "darrenburns-2022-mbp", "num_cpu": "10", "os": "Darwin 21.2.0", "ram": "17179869184", "python": "3.10"}, "python": "3.10", "requirements": {}, "env_vars": {}, "result_columns": ["result", "params", "version", "started_at", "duration", "stats_ci_99_a", "stats_ci_99_b", "stats_q_25", "stats_q_75", "stats_number", "stats_repeat", "samples", "profile"], "results": {"benchmarks.ColorSuite.time_downgrade_to_eight_bit": [null, [], "019b972f782c6291df9a6a4dea9bb3c6268a69b177e71383d6e19a608e84920d", 1646928511659, 0.058873], "benchmarks.ColorSuite.time_downgrade_to_standard": [null, [], "f5e8556491c977450fff6ebfd9fff4fc8f12d74829aa5b8570bd27ea7a1c9d28", 1646928511718, 0.059166], "benchmarks.ColorSuite.time_downgrade_to_windows": [null, [], "373eb97dd7ce2823e080972249235f528e8b3a47210911981cf432ecf0eef5fb", 1646928511777, 0.05774], "benchmarks.ColorSuiteCached.time_downgrade_to_eight_bit": [null, [], "716ff06a471a5d90af3730f6d4470eba3577432d781e0210dff1fd156b8c549c", 1646928511835, 0.057941], "benchmarks.ColorSuiteCached.time_downgrade_to_standard": [null, [], "3a752a7884e99e095c31b2a28cfefdf916cb2033c06afae1ea146a72f3ba650c", 1646928511893, 0.058], "benchmarks.ColorSuiteCached.time_downgrade_to_windows": [null, [], "1732bbd18ada49eb7b054fc18b40d6acfb533023463366f37203dab6fbb0cc20", 1646928511951, 0.057943], "benchmarks.PrettySuite.time_pretty": [null, [], "9bb0e6d8a29aad21b3d1b550a160fa5f1e9030c69d16bad500c0dcc77bff6d01", 1646928512009, 0.057429], "benchmarks.PrettySuite.time_pretty_indent_guides": [null, [], "8d71bf19dfe999b0fba95d009986bfd6911c53c7a0c455466725f553005c3bc7", 1646928512067, 0.057275], "benchmarks.PrettySuite.time_pretty_justify_center": [null, [], "54cbf71bacab14ccbe1d063847c0b89198ed1bbe06edc89c14d2e3c7b1986c41", 1646928512124, 0.059217], "benchmarks.StyleSuite.time_parse_ansi": [null, [], "a003aaa8017585efeb1cd9c43351282df4df6249bf28a4c447b1304d984aa753", 1646928512183, 0.05876], "benchmarks.StyleSuite.time_parse_hex": [null, [], "cf5a3f0def435d3da5bc3a6e7549c44c0a02e9cce6c00ecde8dd7f527556f8ca", 1646928512242, 0.060284], "benchmarks.StyleSuite.time_parse_mixed_complex_style": [null, [], "01c9e12ae829b1984e55a5aeef1a9ae6f1461577adaf5ae59f06358c8b52802f", 1646928512302, 0.057922], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_heavy_wrapping": [null, [], "1ed4d74ea424990cfb40c96f07635f9bcf7b8bacc7ade5204aaf96363e1622ee", 1646928512360, 0.057638], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_medium_wrapping": [null, [], "0880e162a4907ee025cef8ac3380502554fde27fd0c90a4c15cebc9c27f3e333", 1646928512418, 0.057971], "benchmarks.SyntaxWrappingSuite.time_text_wide_terminal_no_wrapping": [null, [], "feb11e94ae6a75de2dee899fb93db098b55cde232710660d7d66f9e2b288d9c0", 1646928512476, 0.057943], "benchmarks.TableSuite.time_table_heavy_wrapping": [null, [], "ca515a9739c1e0f8eb922420f9f9caf27321fb13c8bd0bc49b207a0588b370de", 1646928512534, 0.05887], "benchmarks.TableSuite.time_table_no_wrapping": [null, [], "8842a5f141d8208ba2bab66e4973e978cb5d0615f326af5d70385ff8fa44b3b9", 1646928512593, 0.060205], "benchmarks.TextSuite.time_align_center": [null, [], "1ceeeef2de43fcb3d0dfec409972d8f0eb791e9615fa9f9c959e0423725b089b", 1646928512653, 0.060177], "benchmarks.TextSuite.time_align_center_unicode_heavy": [null, [], "a83ff79614dd2ae17e8b68f45981fcaa0d9833c59a7a14f171b896cf970f54ce", 1646928512714, 0.059204], "benchmarks.TextSuite.time_divide": [null, [], "dcc120b921cb2ec77632f8fe2f6f4150d479cb49ef2608f8e86b569a937756e9", 1646928512773, 0.059], "benchmarks.TextSuite.time_divide_unicode_heavy": [null, [], "ea53e662c0553324f90ac3336dcee77f733bb33638888e1f84bf71945a2f3f8e", 1646928512832, 0.058709], "benchmarks.TextSuite.time_fit": [null, [], "ec77b412db357b1e1c1e7bc620b941dddfc36dc76d2a66a0417feae4f21fe1d3", 1646928512891, 0.059158], "benchmarks.TextSuite.time_fit_unicode_heavy": [null, [], "d1574b4af2ef8b80b95b4dbeeb13e5de67b66783f76f9968834776239dd0dc66", 1646928512950, 0.058901], "benchmarks.TextSuite.time_indent_guides": [null, [], "18da036dcfc15ec5e3c11e72be7c8f0c22fba695a5f19c95836be36952376cf2", 1646928513009, 0.058609], "benchmarks.TextSuite.time_render": [null, [], "907d30581cfdc7bb2c4d302b7e3cb474aaefd8b84821365fe105af7d82be3b09", 1646928513068, 0.058868], "benchmarks.TextSuite.time_render_unicode_heavy": [null, [], "b3f1c09dfd06f412a20dacfe378c3b446727c7d4f9a975336eab3daa8543e1cb", 1646928513127, 0.058921], "benchmarks.TextSuite.time_split": [null, [], "9c165854130cb95fea5491ffcd8b580a5bd373149da2ef8aace0e9480f649854", 1646928513186, 0.058957], "benchmarks.TextSuite.time_split_unicode_heavy": [null, [], "d55b02f6d06f478d70635bac3409f3a9899137d9cee87a70a293b8ccf5a6afa4", 1646928513245, 0.058532], "benchmarks.TextSuite.time_wrapping": [null, [], "8c821eba13d043f228fd902d8f678c397741855db05d02abe9b82f3d65cdf03d", 1646928513303, 0.058786], "benchmarks.TextSuite.time_wrapping_unicode_heavy": [null, [], "ec6e2ef08b6cdee182fef4e26c0043f8c365984f9a31be07dbd792e1aed862d8", 1646928513362, 0.058708]}, "durations": {"": 1.952800989151001}, "version": 2} diff --git a/benchmarks/results/darrenburns-2022-mbp/c3d0e358-virtualenv-py3.10.json b/benchmarks/results/darrenburns-2022-mbp/c3d0e358-virtualenv-py3.10.json new file mode 100644 index 0000000000..aea7a94f5d --- /dev/null +++ b/benchmarks/results/darrenburns-2022-mbp/c3d0e358-virtualenv-py3.10.json @@ -0,0 +1 @@ +{"commit_hash": "c3d0e3584202d66703d2bcf2aaf3e7740bef6e2d", "env_name": "virtualenv-py3.10", "date": 1615044722000, "params": {"arch": "arm64", "cpu": "Apple M1 Pro", "machine": "darrenburns-2022-mbp", "num_cpu": "10", "os": "Darwin 21.2.0", "ram": "17179869184", "python": "3.10"}, "python": "3.10", "requirements": {}, "env_vars": {}, "result_columns": ["result", "params", "version", "started_at", "duration", "stats_ci_99_a", "stats_ci_99_b", "stats_q_25", "stats_q_75", "stats_number", "stats_repeat", "samples", "profile"], "results": {"benchmarks.ColorSuite.time_downgrade_to_eight_bit": [[1.706721948289093e-07], [], "019b972f782c6291df9a6a4dea9bb3c6268a69b177e71383d6e19a608e84920d", 1646929104157, 0.4578, [1.6967e-07], [1.7193e-07], [1.7016e-07], [1.7117e-07], [64125], [10]], "benchmarks.ColorSuite.time_downgrade_to_standard": [[1.7067263036055206e-07], [], "f5e8556491c977450fff6ebfd9fff4fc8f12d74829aa5b8570bd27ea7a1c9d28", 1646929104385, 0.43914, [1.701e-07], [1.7114e-07], [1.705e-07], [1.7087e-07], [60337], [10]], "benchmarks.ColorSuite.time_downgrade_to_windows": [[1.7029728942220878e-07], [], "373eb97dd7ce2823e080972249235f528e8b3a47210911981cf432ecf0eef5fb", 1646929104604, 0.45742, [1.6832e-07], [1.7136e-07], [1.6943e-07], [1.7096e-07], [64010], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_eight_bit": [[1.7058191830740293e-07], [], "716ff06a471a5d90af3730f6d4470eba3577432d781e0210dff1fd156b8c549c", 1646929104833, 0.45027, [1.7007e-07], [1.7242e-07], [1.7031e-07], [1.716e-07], [64784], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_standard": [[1.6997921753092606e-07], [], "3a752a7884e99e095c31b2a28cfefdf916cb2033c06afae1ea146a72f3ba650c", 1646929105058, 0.43076, [1.6894e-07], [1.7276e-07], [1.6948e-07], [1.7053e-07], [58848], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_windows": [[1.7002529336257544e-07], [], "1732bbd18ada49eb7b054fc18b40d6acfb533023463366f37203dab6fbb0cc20", 1646929105273, 0.45924, [1.6863e-07], [1.7079e-07], [1.6944e-07], [1.7044e-07], [64523], [10]], "benchmarks.PrettySuite.time_pretty": [[0.0009867746372368524], [], "9bb0e6d8a29aad21b3d1b550a160fa5f1e9030c69d16bad500c0dcc77bff6d01", 1646929105502, 0.44858, [0.00098351], [0.0009905], [0.00098456], [0.0009894], [11], [10]], "benchmarks.PrettySuite.time_pretty_indent_guides": [[0.0013813307486998383], [], "8d71bf19dfe999b0fba95d009986bfd6911c53c7a0c455466725f553005c3bc7", 1646929105731, 0.4425, [0.0013773], [0.0013982], [0.0013799], [0.0013838], [8], [10]], "benchmarks.PrettySuite.time_pretty_justify_center": [[0.0013766301235591527], [], "54cbf71bacab14ccbe1d063847c0b89198ed1bbe06edc89c14d2e3c7b1986c41", 1646929105952, 0.43972, [0.0013681], [0.0013831], [0.0013721], [0.0013805], [8], [10]], "benchmarks.StyleSuite.time_parse_ansi": [[1.1451074278215668e-07], [], "a003aaa8017585efeb1cd9c43351282df4df6249bf28a4c447b1304d984aa753", 1646929106171, 0.45274, [1.142e-07], [1.1476e-07], [1.1435e-07], [1.1459e-07], [94714], [10]], "benchmarks.StyleSuite.time_parse_hex": [[1.144319970689746e-07], [], "cf5a3f0def435d3da5bc3a6e7549c44c0a02e9cce6c00ecde8dd7f527556f8ca", 1646929106398, 0.4575, [1.1395e-07], [1.1581e-07], [1.1416e-07], [1.1507e-07], [95540], [10]], "benchmarks.StyleSuite.time_parse_mixed_complex_style": [[1.1434822253539605e-07], [], "01c9e12ae829b1984e55a5aeef1a9ae6f1461577adaf5ae59f06358c8b52802f", 1646929106626, 0.44599, [1.1352e-07], [1.1473e-07], [1.1385e-07], [1.1467e-07], [92774], [10]], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_heavy_wrapping": [null, [], "1ed4d74ea424990cfb40c96f07635f9bcf7b8bacc7ade5204aaf96363e1622ee", 1646929100649, 0.062294], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_medium_wrapping": [null, [], "0880e162a4907ee025cef8ac3380502554fde27fd0c90a4c15cebc9c27f3e333", 1646929100711, 0.062668], "benchmarks.SyntaxWrappingSuite.time_text_wide_terminal_no_wrapping": [null, [], "feb11e94ae6a75de2dee899fb93db098b55cde232710660d7d66f9e2b288d9c0", 1646929100774, 0.062616], "benchmarks.TableSuite.time_table_heavy_wrapping": [[0.0020758249971549957], [], "ca515a9739c1e0f8eb922420f9f9caf27321fb13c8bd0bc49b207a0588b370de", 1646929106849, 0.43742, [0.0020646], [0.0020825], [0.0020688], [0.0020801], [5], [10]], "benchmarks.TableSuite.time_table_no_wrapping": [[0.001257328125575441], [], "8842a5f141d8208ba2bab66e4973e978cb5d0615f326af5d70385ff8fa44b3b9", 1646929107071, 0.43877, [0.0012507], [0.0012633], [0.0012556], [0.0012597], [8], [10]], "benchmarks.TextSuite.time_align_center": [[0.0006604114687434048], [], "1ceeeef2de43fcb3d0dfec409972d8f0eb791e9615fa9f9c959e0423725b089b", 1646929107290, 0.44145, [0.00065931], [0.00066414], [0.00065988], [0.00066294], [16], [10]], "benchmarks.TextSuite.time_align_center_unicode_heavy": [[0.0005531458155019209], [], "a83ff79614dd2ae17e8b68f45981fcaa0d9833c59a7a14f171b896cf970f54ce", 1646929107514, 0.44704, [0.0005459], [0.00055725], [0.00054798], [0.00055356], [19], [10]], "benchmarks.TextSuite.time_divide": [[2.536036300994194e-05], [], "dcc120b921cb2ec77632f8fe2f6f4150d479cb49ef2608f8e86b569a937756e9", 1646929107736, 0.45422, [2.5291e-05], [2.5645e-05], [2.5326e-05], [2.5417e-05], [427], [10]], "benchmarks.TextSuite.time_divide_unicode_heavy": [[0.00018511529297343102], [], "ea53e662c0553324f90ac3336dcee77f733bb33638888e1f84bf71945a2f3f8e", 1646929107964, 0.44979, [0.00018419], [0.00018566], [0.00018479], [0.00018534], [58], [10]], "benchmarks.TextSuite.time_fit": [[4.342335775093274e-05], [], "ec77b412db357b1e1c1e7bc620b941dddfc36dc76d2a66a0417feae4f21fe1d3", 1646929108189, 0.44062, [4.3393e-05], [4.3498e-05], [4.3412e-05], [4.3444e-05], [246], [10]], "benchmarks.TextSuite.time_fit_unicode_heavy": [[0.0003250845907270118], [], "d1574b4af2ef8b80b95b4dbeeb13e5de67b66783f76f9968834776239dd0dc66", 1646929108413, 0.45113, [0.0003243], [0.00032594], [0.00032449], [0.00032538], [33], [10]], "benchmarks.TextSuite.time_indent_guides": [[0.00035472413834088064], [], "18da036dcfc15ec5e3c11e72be7c8f0c22fba695a5f19c95836be36952376cf2", 1646929108638, 0.43849, [0.00035346], [0.00035631], [0.00035435], [0.00035543], [29], [10]], "benchmarks.TextSuite.time_render": [[4.69378584045557e-06], [], "907d30581cfdc7bb2c4d302b7e3cb474aaefd8b84821365fe105af7d82be3b09", 1646929108856, 0.44704, [4.6866e-06], [4.7115e-06], [4.6916e-06], [4.7047e-06], [2330], [10]], "benchmarks.TextSuite.time_render_unicode_heavy": [[8.506103517902375e-05], [], "b3f1c09dfd06f412a20dacfe378c3b446727c7d4f9a975336eab3daa8543e1cb", 1646929109084, 0.45227, [8.4416e-05], [8.5233e-05], [8.4788e-05], [8.5182e-05], [128], [10]], "benchmarks.TextSuite.time_split": [[3.518062299170191e-05], [], "9c165854130cb95fea5491ffcd8b580a5bd373149da2ef8aace0e9480f649854", 1646929109311, 0.44387, [3.5155e-05], [3.5274e-05], [3.5167e-05], [3.5212e-05], [309], [10]], "benchmarks.TextSuite.time_split_unicode_heavy": [[0.00027354166675836616], [], "d55b02f6d06f478d70635bac3409f3a9899137d9cee87a70a293b8ccf5a6afa4", 1646929109537, 0.44793, [0.00027265], [0.00027461], [0.00027282], [0.00027439], [39], [10]], "benchmarks.TextSuite.time_wrapping": [[0.0010926770497462711], [], "8c821eba13d043f228fd902d8f678c397741855db05d02abe9b82f3d65cdf03d", 1646929109761, 0.44975, [0.0010917], [0.0010962], [0.0010918], [0.001094], [10], [10]], "benchmarks.TextSuite.time_wrapping_unicode_heavy": [[0.0014860089286230505], [], "ec6e2ef08b6cdee182fef4e26c0043f8c365984f9a31be07dbd792e1aed862d8", 1646929109989, 0.43598, [0.0014841], [0.001493], [0.0014855], [0.0014868], [7], [10]]}, "durations": {"": 2.0572969913482666}, "version": 2} diff --git a/benchmarks/results/darrenburns-2022-mbp/c3ee3b05-virtualenv-py3.10.json b/benchmarks/results/darrenburns-2022-mbp/c3ee3b05-virtualenv-py3.10.json new file mode 100644 index 0000000000..68aca2e426 --- /dev/null +++ b/benchmarks/results/darrenburns-2022-mbp/c3ee3b05-virtualenv-py3.10.json @@ -0,0 +1 @@ +{"commit_hash": "c3ee3b05d6d06be435f199126490bc33fcceb502", "env_name": "virtualenv-py3.10", "date": 1599494837000, "params": {"arch": "arm64", "cpu": "Apple M1 Pro", "machine": "darrenburns-2022-mbp", "num_cpu": "10", "os": "Darwin 21.2.0", "ram": "17179869184", "python": "3.10"}, "python": "3.10", "requirements": {}, "env_vars": {}, "result_columns": ["result", "params", "version", "started_at", "duration", "stats_ci_99_a", "stats_ci_99_b", "stats_q_25", "stats_q_75", "stats_number", "stats_repeat", "samples", "profile"], "results": {"benchmarks.ColorSuite.time_downgrade_to_eight_bit": [[1.7359650694168215e-07], [], "019b972f782c6291df9a6a4dea9bb3c6268a69b177e71383d6e19a608e84920d", 1646928869645, 0.42879, [1.7304e-07], [1.7438e-07], [1.7332e-07], [1.7389e-07], [58488], [10]], "benchmarks.ColorSuite.time_downgrade_to_standard": [[1.7321814904444916e-07], [], "f5e8556491c977450fff6ebfd9fff4fc8f12d74829aa5b8570bd27ea7a1c9d28", 1646928869859, 0.44494, [1.7037e-07], [1.738e-07], [1.7288e-07], [1.7355e-07], [63672], [10]], "benchmarks.ColorSuite.time_downgrade_to_windows": [[1.7122861978936038e-07], [], "373eb97dd7ce2823e080972249235f528e8b3a47210911981cf432ecf0eef5fb", 1646928870085, 0.42443, [1.692e-07], [1.7393e-07], [1.7003e-07], [1.725e-07], [59039], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_eight_bit": [[1.730784538795744e-07], [], "716ff06a471a5d90af3730f6d4470eba3577432d781e0210dff1fd156b8c549c", 1646928870295, 0.42424, [1.6995e-07], [1.7532e-07], [1.7038e-07], [1.7388e-07], [58837], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_standard": [[1.7222288226416987e-07], [], "3a752a7884e99e095c31b2a28cfefdf916cb2033c06afae1ea146a72f3ba650c", 1646928870505, 0.44042, [1.6955e-07], [1.7508e-07], [1.7015e-07], [1.7413e-07], [63390], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_windows": [[1.732525867726762e-07], [], "1732bbd18ada49eb7b054fc18b40d6acfb533023463366f37203dab6fbb0cc20", 1646928870727, 0.42593, [1.715e-07], [1.7359e-07], [1.7314e-07], [1.7349e-07], [58186], [10]], "benchmarks.PrettySuite.time_pretty": [[0.0010950937503366731], [], "9bb0e6d8a29aad21b3d1b550a160fa5f1e9030c69d16bad500c0dcc77bff6d01", 1646928870939, 0.43273, [0.0010927], [0.0011018], [0.0010941], [0.0010958], [10], [10]], "benchmarks.PrettySuite.time_pretty_indent_guides": [null, [], "8d71bf19dfe999b0fba95d009986bfd6911c53c7a0c455466725f553005c3bc7", 1646928865417, 0.058607], "benchmarks.PrettySuite.time_pretty_justify_center": [[0.0014801220718904265], [], "54cbf71bacab14ccbe1d063847c0b89198ed1bbe06edc89c14d2e3c7b1986c41", 1646928871155, 0.4295, [0.0014596], [0.0015119], [0.0014632], [0.0014943], [7], [10]], "benchmarks.StyleSuite.time_parse_ansi": [[1.150097373401724e-07], [], "a003aaa8017585efeb1cd9c43351282df4df6249bf28a4c447b1304d984aa753", 1646928871372, 0.43168, [1.1363e-07], [1.164e-07], [1.1393e-07], [1.1616e-07], [87652], [10]], "benchmarks.StyleSuite.time_parse_hex": [[1.1623627455916411e-07], [], "cf5a3f0def435d3da5bc3a6e7549c44c0a02e9cce6c00ecde8dd7f527556f8ca", 1646928871592, 0.45323, [1.1605e-07], [1.1669e-07], [1.1622e-07], [1.1634e-07], [96318], [10]], "benchmarks.StyleSuite.time_parse_mixed_complex_style": [[1.1681741001228055e-07], [], "01c9e12ae829b1984e55a5aeef1a9ae6f1461577adaf5ae59f06358c8b52802f", 1646928871818, 0.44773, [1.1421e-07], [1.1779e-07], [1.1633e-07], [1.1735e-07], [94619], [10]], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_heavy_wrapping": [null, [], "1ed4d74ea424990cfb40c96f07635f9bcf7b8bacc7ade5204aaf96363e1622ee", 1646928866355, 0.058379], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_medium_wrapping": [null, [], "0880e162a4907ee025cef8ac3380502554fde27fd0c90a4c15cebc9c27f3e333", 1646928866413, 0.058399], "benchmarks.SyntaxWrappingSuite.time_text_wide_terminal_no_wrapping": [null, [], "feb11e94ae6a75de2dee899fb93db098b55cde232710660d7d66f9e2b288d9c0", 1646928866471, 0.058258], "benchmarks.TableSuite.time_table_heavy_wrapping": [[0.002998671876412118], [], "ca515a9739c1e0f8eb922420f9f9caf27321fb13c8bd0bc49b207a0588b370de", 1646928872040, 0.45122, [0.0029648], [0.0030303], [0.0029776], [0.0030186], [4], [10]], "benchmarks.TableSuite.time_table_no_wrapping": [[0.001991791585169267], [], "8842a5f141d8208ba2bab66e4973e978cb5d0615f326af5d70385ff8fa44b3b9", 1646928872270, 0.43846, [0.0019668], [0.0020335], [0.0019694], [0.0020166], [6], [10]], "benchmarks.TextSuite.time_align_center": [[0.0006747890929545974], [], "1ceeeef2de43fcb3d0dfec409972d8f0eb791e9615fa9f9c959e0423725b089b", 1646928872490, 0.43672, [0.00067335], [0.00067698], [0.00067447], [0.00067524], [16], [10]], "benchmarks.TextSuite.time_align_center_unicode_heavy": [[0.0005638497639569994], [], "a83ff79614dd2ae17e8b68f45981fcaa0d9833c59a7a14f171b896cf970f54ce", 1646928872710, 0.44086, [0.00055526], [0.00056567], [0.00056305], [0.00056422], [19], [10]], "benchmarks.TextSuite.time_divide": [[2.7937122073338986e-05], [], "dcc120b921cb2ec77632f8fe2f6f4150d479cb49ef2608f8e86b569a937756e9", 1646928872929, 0.44164, [2.7806e-05], [2.8029e-05], [2.788e-05], [2.7962e-05], [385], [10]], "benchmarks.TextSuite.time_divide_unicode_heavy": [[0.00018892068392392902], [], "ea53e662c0553324f90ac3336dcee77f733bb33638888e1f84bf71945a2f3f8e", 1646928873149, 0.44191, [0.00018595], [0.00019177], [0.0001867], [0.00019095], [57], [10]], "benchmarks.TextSuite.time_fit": [[4.255028314613569e-05], [], "ec77b412db357b1e1c1e7bc620b941dddfc36dc76d2a66a0417feae4f21fe1d3", 1646928873366, 0.42847, [4.2108e-05], [4.2968e-05], [4.2218e-05], [4.2891e-05], [249], [10]], "benchmarks.TextSuite.time_fit_unicode_heavy": [[0.000330760741734036], [], "d1574b4af2ef8b80b95b4dbeeb13e5de67b66783f76f9968834776239dd0dc66", 1646928873582, 0.42684, [0.0003297], [0.0003338], [0.00033013], [0.00033126], [31], [10]], "benchmarks.TextSuite.time_indent_guides": [null, [], "18da036dcfc15ec5e3c11e72be7c8f0c22fba695a5f19c95836be36952376cf2", 1646928868285, 0.058934], "benchmarks.TextSuite.time_render": [[4.742500867413157e-06], [], "907d30581cfdc7bb2c4d302b7e3cb474aaefd8b84821365fe105af7d82be3b09", 1646928873793, 0.43919, [4.6899e-06], [4.795e-06], [4.6998e-06], [4.7872e-06], [2303], [10]], "benchmarks.TextSuite.time_render_unicode_heavy": [[8.594543644918188e-05], [], "b3f1c09dfd06f412a20dacfe378c3b446727c7d4f9a975336eab3daa8543e1cb", 1646928874015, 0.43372, [8.4961e-05], [8.7627e-05], [8.5185e-05], [8.7142e-05], [126], [10]], "benchmarks.TextSuite.time_split": [[3.414321132192028e-05], [], "9c165854130cb95fea5491ffcd8b580a5bd373149da2ef8aace0e9480f649854", 1646928874235, 0.43689, [3.3703e-05], [3.4457e-05], [3.3733e-05], [3.4407e-05], [310], [10]], "benchmarks.TextSuite.time_split_unicode_heavy": [[0.00028423841649782844], [], "d55b02f6d06f478d70635bac3409f3a9899137d9cee87a70a293b8ccf5a6afa4", 1646928874450, 0.42524, [0.00028296], [0.00028481], [0.00028413], [0.00028433], [36], [10]], "benchmarks.TextSuite.time_wrapping": [[0.0011712430002969792], [], "8c821eba13d043f228fd902d8f678c397741855db05d02abe9b82f3d65cdf03d", 1646928874660, 0.42689, [0.0011672], [0.0011881], [0.0011683], [0.0011754], [9], [10]], "benchmarks.TextSuite.time_wrapping_unicode_heavy": [[0.0015502083593414034], [], "ec6e2ef08b6cdee182fef4e26c0043f8c365984f9a31be07dbd792e1aed862d8", 1646928874876, 0.43958, [0.0015291], [0.0015619], [0.0015317], [0.0015579], [7], [10]]}, "durations": {"": 1.986644983291626}, "version": 2} diff --git a/benchmarks/results/darrenburns-2022-mbp/c57e1f50-virtualenv-py3.10.json b/benchmarks/results/darrenburns-2022-mbp/c57e1f50-virtualenv-py3.10.json new file mode 100644 index 0000000000..c7f9815742 --- /dev/null +++ b/benchmarks/results/darrenburns-2022-mbp/c57e1f50-virtualenv-py3.10.json @@ -0,0 +1 @@ +{"commit_hash": "c57e1f508af1f042d2777e876f816ea157d7a61b", "env_name": "virtualenv-py3.10", "date": 1639307388000, "params": {"arch": "arm64", "cpu": "Apple M1 Pro", "machine": "darrenburns-2022-mbp", "num_cpu": "10", "os": "Darwin 21.2.0", "ram": "17179869184", "python": "3.10"}, "python": "3.10", "requirements": {}, "env_vars": {}, "result_columns": ["result", "params", "version", "started_at", "duration", "stats_ci_99_a", "stats_ci_99_b", "stats_q_25", "stats_q_75", "stats_number", "stats_repeat", "samples", "profile"], "results": {"benchmarks.ColorSuite.time_downgrade_to_eight_bit": [[1.714491110860278e-07], [], "019b972f782c6291df9a6a4dea9bb3c6268a69b177e71383d6e19a608e84920d", 1646928275224, 0.46519, [1.6975e-07], [1.7782e-07], [1.7058e-07], [1.7461e-07], [63727], [10]], "benchmarks.ColorSuite.time_downgrade_to_standard": [[1.7027461841066378e-07], [], "f5e8556491c977450fff6ebfd9fff4fc8f12d74829aa5b8570bd27ea7a1c9d28", 1646928275455, 0.45707, [1.6965e-07], [1.7078e-07], [1.7007e-07], [1.7057e-07], [62443], [10]], "benchmarks.ColorSuite.time_downgrade_to_windows": [[1.7047429717748822e-07], [], "373eb97dd7ce2823e080972249235f528e8b3a47210911981cf432ecf0eef5fb", 1646928275680, 0.46068, [1.7004e-07], [1.7291e-07], [1.7032e-07], [1.7098e-07], [64837], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_eight_bit": [[1.705617274106604e-07], [], "716ff06a471a5d90af3730f6d4470eba3577432d781e0210dff1fd156b8c549c", 1646928275913, 0.45993, [1.6866e-07], [1.7297e-07], [1.7016e-07], [1.7149e-07], [63189], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_standard": [[1.7014491459324859e-07], [], "3a752a7884e99e095c31b2a28cfefdf916cb2033c06afae1ea146a72f3ba650c", 1646928276142, 0.46474, [1.6942e-07], [1.7261e-07], [1.7001e-07], [1.7036e-07], [64538], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_windows": [[1.705598281303084e-07], [], "1732bbd18ada49eb7b054fc18b40d6acfb533023463366f37203dab6fbb0cc20", 1646928276374, 0.46213, [1.6889e-07], [1.7162e-07], [1.7008e-07], [1.7119e-07], [64092], [10]], "benchmarks.PrettySuite.time_pretty": [[0.0011053917012759486], [], "9bb0e6d8a29aad21b3d1b550a160fa5f1e9030c69d16bad500c0dcc77bff6d01", 1646928276603, 0.45395, [0.0011023], [0.0011085], [0.0011035], [0.0011061], [10], [10]], "benchmarks.PrettySuite.time_pretty_indent_guides": [[0.0015186042146524414], [], "8d71bf19dfe999b0fba95d009986bfd6911c53c7a0c455466725f553005c3bc7", 1646928276827, 0.44997, [0.001513], [0.0015302], [0.0015157], [0.0015235], [7], [10]], "benchmarks.PrettySuite.time_pretty_justify_center": [[0.0013958828130853362], [], "54cbf71bacab14ccbe1d063847c0b89198ed1bbe06edc89c14d2e3c7b1986c41", 1646928277056, 0.45084, [0.0013943], [0.0014059], [0.0013949], [0.001399], [8], [10]], "benchmarks.StyleSuite.time_parse_ansi": [[1.1401847489424796e-07], [], "a003aaa8017585efeb1cd9c43351282df4df6249bf28a4c447b1304d984aa753", 1646928277281, 0.4627, [1.1363e-07], [1.1512e-07], [1.1394e-07], [1.1464e-07], [96374], [10]], "benchmarks.StyleSuite.time_parse_hex": [[1.1481137513064852e-07], [], "cf5a3f0def435d3da5bc3a6e7549c44c0a02e9cce6c00ecde8dd7f527556f8ca", 1646928277512, 0.46027, [1.1415e-07], [1.1598e-07], [1.1452e-07], [1.1504e-07], [95059], [10]], "benchmarks.StyleSuite.time_parse_mixed_complex_style": [[1.140413100898655e-07], [], "01c9e12ae829b1984e55a5aeef1a9ae6f1461577adaf5ae59f06358c8b52802f", 1646928277742, 0.45958, [1.136e-07], [1.16e-07], [1.1388e-07], [1.1426e-07], [95957], [10]], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_heavy_wrapping": [null, [], "1ed4d74ea424990cfb40c96f07635f9bcf7b8bacc7ade5204aaf96363e1622ee", 1646928271654, 0.065342], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_medium_wrapping": [null, [], "0880e162a4907ee025cef8ac3380502554fde27fd0c90a4c15cebc9c27f3e333", 1646928271719, 0.066024], "benchmarks.SyntaxWrappingSuite.time_text_wide_terminal_no_wrapping": [null, [], "feb11e94ae6a75de2dee899fb93db098b55cde232710660d7d66f9e2b288d9c0", 1646928271785, 0.064959], "benchmarks.TableSuite.time_table_heavy_wrapping": [[0.0023448374995496124], [], "ca515a9739c1e0f8eb922420f9f9caf27321fb13c8bd0bc49b207a0588b370de", 1646928277973, 0.45709, [0.0023331], [0.0023602], [0.0023406], [0.0023541], [5], [10]], "benchmarks.TableSuite.time_table_no_wrapping": [[0.0013974921876069857], [], "8842a5f141d8208ba2bab66e4973e978cb5d0615f326af5d70385ff8fa44b3b9", 1646928278206, 0.44946, [0.0013936], [0.0014034], [0.0013958], [0.0014017], [8], [10]], "benchmarks.TextSuite.time_align_center": [[0.0003741364825741741], [], "1ceeeef2de43fcb3d0dfec409972d8f0eb791e9615fa9f9c959e0423725b089b", 1646928278432, 0.46066, [0.000369], [0.00038045], [0.00036943], [0.00037896], [29], [10]], "benchmarks.TextSuite.time_align_center_unicode_heavy": [[0.00034241532229052315], [], "a83ff79614dd2ae17e8b68f45981fcaa0d9833c59a7a14f171b896cf970f54ce", 1646928278663, 0.45381, [0.0003407], [0.00035204], [0.00034202], [0.00034336], [31], [10]], "benchmarks.TextSuite.time_divide": [[2.5390467207891914e-05], [], "dcc120b921cb2ec77632f8fe2f6f4150d479cb49ef2608f8e86b569a937756e9", 1646928278888, 0.45856, [2.5255e-05], [2.568e-05], [2.5282e-05], [2.5539e-05], [427], [10]], "benchmarks.TextSuite.time_divide_unicode_heavy": [[0.00018445797455970639], [], "ea53e662c0553324f90ac3336dcee77f733bb33638888e1f84bf71945a2f3f8e", 1646928279117, 0.46, [0.00018362], [0.00018496], [0.00018435], [0.0001846], [59], [10]], "benchmarks.TextSuite.time_fit": [[4.347264431880757e-05], [], "ec77b412db357b1e1c1e7bc620b941dddfc36dc76d2a66a0417feae4f21fe1d3", 1646928279348, 0.44885, [4.3402e-05], [4.3656e-05], [4.3436e-05], [4.3501e-05], [246], [10]], "benchmarks.TextSuite.time_fit_unicode_heavy": [[0.00032379906418012275], [], "d1574b4af2ef8b80b95b4dbeeb13e5de67b66783f76f9968834776239dd0dc66", 1646928279576, 0.4351, [0.00032263], [0.00032447], [0.00032352], [0.00032402], [31], [10]], "benchmarks.TextSuite.time_indent_guides": [[0.00035621048300527036], [], "18da036dcfc15ec5e3c11e72be7c8f0c22fba695a5f19c95836be36952376cf2", 1646928279792, 0.44442, [0.00035502], [0.00035665], [0.00035504], [0.0003566], [29], [10]], "benchmarks.TextSuite.time_render": [[4.671231239570824e-06], [], "907d30581cfdc7bb2c4d302b7e3cb474aaefd8b84821365fe105af7d82be3b09", 1646928280013, 0.45329, [4.6533e-06], [4.6965e-06], [4.6678e-06], [4.6748e-06], [2346], [10]], "benchmarks.TextSuite.time_render_unicode_heavy": [[8.538590623174969e-05], [], "b3f1c09dfd06f412a20dacfe378c3b446727c7d4f9a975336eab3daa8543e1cb", 1646928280243, 0.45959, [8.4735e-05], [8.6171e-05], [8.5306e-05], [8.5535e-05], [128], [10]], "benchmarks.TextSuite.time_split": [[3.5272602937671236e-05], [], "9c165854130cb95fea5491ffcd8b580a5bd373149da2ef8aace0e9480f649854", 1646928280476, 0.44679, [3.5083e-05], [3.5344e-05], [3.5106e-05], [3.531e-05], [306], [10]], "benchmarks.TextSuite.time_split_unicode_heavy": [[0.0002739221446589861], [], "d55b02f6d06f478d70635bac3409f3a9899137d9cee87a70a293b8ccf5a6afa4", 1646928280703, 0.44555, [0.00027302], [0.00027744], [0.00027323], [0.00027422], [38], [10]], "benchmarks.TextSuite.time_wrapping": [[0.0013621380621771095], [], "8c821eba13d043f228fd902d8f678c397741855db05d02abe9b82f3d65cdf03d", 1646928280925, 0.45765, [0.0013549], [0.001371], [0.0013578], [0.0013672], [8], [10]], "benchmarks.TextSuite.time_wrapping_unicode_heavy": [[0.0014483660738083667], [], "ec6e2ef08b6cdee182fef4e26c0043f8c365984f9a31be07dbd792e1aed862d8", 1646928281159, 0.44349, [0.0014459], [0.0014557], [0.0014471], [0.0014504], [7], [10]]}, "durations": {"": 1.9935321807861328}, "version": 2} diff --git a/benchmarks/results/darrenburns-2022-mbp/c9afafdd-virtualenv-py3.10.json b/benchmarks/results/darrenburns-2022-mbp/c9afafdd-virtualenv-py3.10.json new file mode 100644 index 0000000000..52701b62c6 --- /dev/null +++ b/benchmarks/results/darrenburns-2022-mbp/c9afafdd-virtualenv-py3.10.json @@ -0,0 +1 @@ +{"commit_hash": "c9afafdd680831a43956906d56c78d9933aaf232", "env_name": "virtualenv-py3.10", "date": 1625495729000, "params": {"arch": "arm64", "cpu": "Apple M1 Pro", "machine": "darrenburns-2022-mbp", "num_cpu": "10", "os": "Darwin 21.2.0", "ram": "17179869184", "python": "3.10"}, "python": "3.10", "requirements": {}, "env_vars": {}, "result_columns": ["result", "params", "version", "started_at", "duration", "stats_ci_99_a", "stats_ci_99_b", "stats_q_25", "stats_q_75", "stats_number", "stats_repeat", "samples", "profile"], "results": {"benchmarks.ColorSuite.time_downgrade_to_eight_bit": [[1.700951248298525e-07], [], "019b972f782c6291df9a6a4dea9bb3c6268a69b177e71383d6e19a608e84920d", 1646928390301, 0.46203, [1.692e-07], [1.7076e-07], [1.6981e-07], [1.7039e-07], [64673], [10]], "benchmarks.ColorSuite.time_downgrade_to_standard": [[1.7103683205663688e-07], [], "f5e8556491c977450fff6ebfd9fff4fc8f12d74829aa5b8570bd27ea7a1c9d28", 1646928390531, 0.462, [1.683e-07], [1.7483e-07], [1.6997e-07], [1.7239e-07], [64414], [10]], "benchmarks.ColorSuite.time_downgrade_to_windows": [[1.7375540579457413e-07], [], "373eb97dd7ce2823e080972249235f528e8b3a47210911981cf432ecf0eef5fb", 1646928390762, 0.43928, [1.6874e-07], [1.7934e-07], [1.7107e-07], [1.758e-07], [59196], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_eight_bit": [[1.7372322871830168e-07], [], "716ff06a471a5d90af3730f6d4470eba3577432d781e0210dff1fd156b8c549c", 1646928390981, 0.43919, [1.7049e-07], [1.7453e-07], [1.7212e-07], [1.7393e-07], [59336], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_standard": [[1.7035417031611407e-07], [], "3a752a7884e99e095c31b2a28cfefdf916cb2033c06afae1ea146a72f3ba650c", 1646928391200, 0.4613, [1.687e-07], [1.7084e-07], [1.6993e-07], [1.7056e-07], [64469], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_windows": [[1.701952531167399e-07], [], "1732bbd18ada49eb7b054fc18b40d6acfb533023463366f37203dab6fbb0cc20", 1646928391431, 0.46118, [1.6973e-07], [1.7061e-07], [1.7008e-07], [1.7036e-07], [64314], [10]], "benchmarks.PrettySuite.time_pretty": [[0.0010273750522173941], [], "9bb0e6d8a29aad21b3d1b550a160fa5f1e9030c69d16bad500c0dcc77bff6d01", 1646928391661, 0.44843, [0.0010248], [0.001031], [0.0010255], [0.0010299], [10], [10]], "benchmarks.PrettySuite.time_pretty_indent_guides": [[0.0014186172502377303], [], "8d71bf19dfe999b0fba95d009986bfd6911c53c7a0c455466725f553005c3bc7", 1646928391883, 0.4628, [0.001411], [0.0014373], [0.001416], [0.0014213], [8], [10]], "benchmarks.PrettySuite.time_pretty_justify_center": [[0.001297231812714017], [], "54cbf71bacab14ccbe1d063847c0b89198ed1bbe06edc89c14d2e3c7b1986c41", 1646928392109, 0.45365, [0.0012922], [0.001326], [0.0012951], [0.0013006], [8], [10]], "benchmarks.StyleSuite.time_parse_ansi": [[1.1546282518142483e-07], [], "a003aaa8017585efeb1cd9c43351282df4df6249bf28a4c447b1304d984aa753", 1646928392333, 0.46398, [1.14e-07], [1.1648e-07], [1.1425e-07], [1.1642e-07], [95818], [10]], "benchmarks.StyleSuite.time_parse_hex": [[1.1437953690125767e-07], [], "cf5a3f0def435d3da5bc3a6e7549c44c0a02e9cce6c00ecde8dd7f527556f8ca", 1646928392568, 0.46205, [1.1409e-07], [1.147e-07], [1.1429e-07], [1.1449e-07], [95992], [10]], "benchmarks.StyleSuite.time_parse_mixed_complex_style": [[1.1490000416168787e-07], [], "01c9e12ae829b1984e55a5aeef1a9ae6f1461577adaf5ae59f06358c8b52802f", 1646928392800, 0.46388, [1.143e-07], [1.1556e-07], [1.1441e-07], [1.155e-07], [96149], [10]], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_heavy_wrapping": [null, [], "1ed4d74ea424990cfb40c96f07635f9bcf7b8bacc7ade5204aaf96363e1622ee", 1646928386753, 0.06613], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_medium_wrapping": [null, [], "0880e162a4907ee025cef8ac3380502554fde27fd0c90a4c15cebc9c27f3e333", 1646928386819, 0.064369], "benchmarks.SyntaxWrappingSuite.time_text_wide_terminal_no_wrapping": [null, [], "feb11e94ae6a75de2dee899fb93db098b55cde232710660d7d66f9e2b288d9c0", 1646928386884, 0.064504], "benchmarks.TableSuite.time_table_heavy_wrapping": [[0.002137574899825268], [], "ca515a9739c1e0f8eb922420f9f9caf27321fb13c8bd0bc49b207a0588b370de", 1646928393033, 0.45026, [0.0021276], [0.0021517], [0.0021333], [0.0021422], [5], [10]], "benchmarks.TableSuite.time_table_no_wrapping": [[0.0012787266241502948], [], "8842a5f141d8208ba2bab66e4973e978cb5d0615f326af5d70385ff8fa44b3b9", 1646928393262, 0.44791, [0.0012705], [0.0012855], [0.0012753], [0.0012815], [8], [10]], "benchmarks.TextSuite.time_align_center": [[0.0003780699283067536], [], "1ceeeef2de43fcb3d0dfec409972d8f0eb791e9615fa9f9c959e0423725b089b", 1646928393484, 0.4525, [0.00037484], [0.00038091], [0.00037521], [0.00038024], [28], [10]], "benchmarks.TextSuite.time_align_center_unicode_heavy": [[0.00034083669344263693], [], "a83ff79614dd2ae17e8b68f45981fcaa0d9833c59a7a14f171b896cf970f54ce", 1646928393709, 0.45134, [0.0003398], [0.00034938], [0.0003404], [0.00034116], [31], [10]], "benchmarks.TextSuite.time_divide": [[2.531682168668687e-05], [], "dcc120b921cb2ec77632f8fe2f6f4150d479cb49ef2608f8e86b569a937756e9", 1646928393933, 0.4475, [2.5219e-05], [2.5365e-05], [2.5284e-05], [2.5325e-05], [429], [10]], "benchmarks.TextSuite.time_divide_unicode_heavy": [[0.00018503125014329524], [], "ea53e662c0553324f90ac3336dcee77f733bb33638888e1f84bf71945a2f3f8e", 1646928394161, 0.45479, [0.00018447], [0.00018654], [0.00018474], [0.00018603], [58], [10]], "benchmarks.TextSuite.time_fit": [[4.3872542661800224e-05], [], "ec77b412db357b1e1c1e7bc620b941dddfc36dc76d2a66a0417feae4f21fe1d3", 1646928394389, 0.44692, [4.3791e-05], [4.4066e-05], [4.3839e-05], [4.3886e-05], [246], [10]], "benchmarks.TextSuite.time_fit_unicode_heavy": [[0.0003276344031027909], [], "d1574b4af2ef8b80b95b4dbeeb13e5de67b66783f76f9968834776239dd0dc66", 1646928394616, 0.43749, [0.00032441], [0.00033087], [0.00032534], [0.00033033], [31], [10]], "benchmarks.TextSuite.time_indent_guides": [[0.00035691442878617503], [], "18da036dcfc15ec5e3c11e72be7c8f0c22fba695a5f19c95836be36952376cf2", 1646928394835, 0.44344, [0.00035542], [0.00035958], [0.0003557], [0.00035843], [28], [10]], "benchmarks.TextSuite.time_render": [[4.687330839564741e-06], [], "907d30581cfdc7bb2c4d302b7e3cb474aaefd8b84821365fe105af7d82be3b09", 1646928395059, 0.45145, [4.6747e-06], [4.6983e-06], [4.6786e-06], [4.6903e-06], [2338], [10]], "benchmarks.TextSuite.time_render_unicode_heavy": [[8.5333331981019e-05], [], "b3f1c09dfd06f412a20dacfe378c3b446727c7d4f9a975336eab3daa8543e1cb", 1646928395289, 0.45674, [8.4427e-05], [8.5609e-05], [8.5265e-05], [8.545e-05], [128], [10]], "benchmarks.TextSuite.time_split": [[3.517887054552237e-05], [], "9c165854130cb95fea5491ffcd8b580a5bd373149da2ef8aace0e9480f649854", 1646928395519, 0.4495, [3.5094e-05], [3.5259e-05], [3.5129e-05], [3.5212e-05], [309], [10]], "benchmarks.TextSuite.time_split_unicode_heavy": [[0.0002791748813347352], [], "d55b02f6d06f478d70635bac3409f3a9899137d9cee87a70a293b8ccf5a6afa4", 1646928395748, 0.44997, [0.00027761], [0.00028055], [0.0002783], [0.00028033], [38], [10]], "benchmarks.TextSuite.time_wrapping": [[0.0011034083494450898], [], "8c821eba13d043f228fd902d8f678c397741855db05d02abe9b82f3d65cdf03d", 1646928395973, 0.44412, [0.0010975], [0.0011086], [0.0010995], [0.0011054], [10], [10]], "benchmarks.TextSuite.time_wrapping_unicode_heavy": [[0.0013684375007869676], [], "ec6e2ef08b6cdee182fef4e26c0043f8c365984f9a31be07dbd792e1aed862d8", 1646928396194, 0.45484, [0.0013634], [0.0013746], [0.0013648], [0.0013725], [8], [10]]}, "durations": {"": 1.994858980178833}, "version": 2} diff --git a/benchmarks/results/darrenburns-2022-mbp/cefafdc1-virtualenv-py3.10.json b/benchmarks/results/darrenburns-2022-mbp/cefafdc1-virtualenv-py3.10.json new file mode 100644 index 0000000000..ea6a85917c --- /dev/null +++ b/benchmarks/results/darrenburns-2022-mbp/cefafdc1-virtualenv-py3.10.json @@ -0,0 +1 @@ +{"commit_hash": "cefafdc12e0220d139c704522979a0dc9b3f889b", "env_name": "virtualenv-py3.10", "date": 1595773790000, "params": {"arch": "arm64", "cpu": "Apple M1 Pro", "machine": "darrenburns-2022-mbp", "num_cpu": "10", "os": "Darwin 21.2.0", "ram": "17179869184", "python": "3.10"}, "python": "3.10", "requirements": {}, "env_vars": {}, "result_columns": ["result", "params", "version", "started_at", "duration", "stats_ci_99_a", "stats_ci_99_b", "stats_q_25", "stats_q_75", "stats_number", "stats_repeat", "samples", "profile"], "results": {"benchmarks.ColorSuite.time_downgrade_to_eight_bit": [[1.704546528382287e-07], [], "019b972f782c6291df9a6a4dea9bb3c6268a69b177e71383d6e19a608e84920d", 1646928765765, 0.45389, [1.6863e-07], [1.7948e-07], [1.6997e-07], [1.7364e-07], [64326], [10]], "benchmarks.ColorSuite.time_downgrade_to_standard": [[1.7278454081920666e-07], [], "f5e8556491c977450fff6ebfd9fff4fc8f12d74829aa5b8570bd27ea7a1c9d28", 1646928765990, 0.43019, [1.6968e-07], [1.7344e-07], [1.7138e-07], [1.7316e-07], [58735], [10]], "benchmarks.ColorSuite.time_downgrade_to_windows": [[1.7354584728929763e-07], [], "373eb97dd7ce2823e080972249235f528e8b3a47210911981cf432ecf0eef5fb", 1646928766205, 0.43256, [1.7096e-07], [1.75e-07], [1.7327e-07], [1.7398e-07], [59055], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_eight_bit": [[1.7354764783853303e-07], [], "716ff06a471a5d90af3730f6d4470eba3577432d781e0210dff1fd156b8c549c", 1646928766420, 0.42931, [1.7297e-07], [1.7402e-07], [1.7342e-07], [1.7381e-07], [58649], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_standard": [[1.7511662148215553e-07], [], "3a752a7884e99e095c31b2a28cfefdf916cb2033c06afae1ea146a72f3ba650c", 1646928766633, 0.43929, [1.7234e-07], [1.7811e-07], [1.7353e-07], [1.7605e-07], [62064], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_windows": [[1.738140176266751e-07], [], "1732bbd18ada49eb7b054fc18b40d6acfb533023463366f37203dab6fbb0cc20", 1646928766855, 0.44373, [1.7239e-07], [1.7487e-07], [1.7334e-07], [1.7415e-07], [61194], [10]], "benchmarks.PrettySuite.time_pretty": [[0.0022470708005130294], [], "9bb0e6d8a29aad21b3d1b550a160fa5f1e9030c69d16bad500c0dcc77bff6d01", 1646928767076, 0.44218, [0.0021923], [0.002369], [0.0022364], [0.0022503], [5], [10]], "benchmarks.PrettySuite.time_pretty_indent_guides": [null, [], "8d71bf19dfe999b0fba95d009986bfd6911c53c7a0c455466725f553005c3bc7", 1646928761692, 0.059072], "benchmarks.PrettySuite.time_pretty_justify_center": [null, [], "54cbf71bacab14ccbe1d063847c0b89198ed1bbe06edc89c14d2e3c7b1986c41", 1646928761752, 0.05875], "benchmarks.StyleSuite.time_parse_ansi": [[1.1584348784741335e-07], [], "a003aaa8017585efeb1cd9c43351282df4df6249bf28a4c447b1304d984aa753", 1646928767295, 0.42598, [1.1424e-07], [1.1626e-07], [1.1515e-07], [1.1588e-07], [87613], [10]], "benchmarks.StyleSuite.time_parse_hex": [[1.1584836758195661e-07], [], "cf5a3f0def435d3da5bc3a6e7549c44c0a02e9cce6c00ecde8dd7f527556f8ca", 1646928767507, 0.43357, [1.1391e-07], [1.1645e-07], [1.1478e-07], [1.162e-07], [95814], [10]], "benchmarks.StyleSuite.time_parse_mixed_complex_style": [[1.1609665945508573e-07], [], "01c9e12ae829b1984e55a5aeef1a9ae6f1461577adaf5ae59f06358c8b52802f", 1646928767725, 0.42709, [1.1548e-07], [1.1703e-07], [1.1575e-07], [1.1634e-07], [87886], [10]], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_heavy_wrapping": [null, [], "1ed4d74ea424990cfb40c96f07635f9bcf7b8bacc7ade5204aaf96363e1622ee", 1646928762454, 0.060686], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_medium_wrapping": [null, [], "0880e162a4907ee025cef8ac3380502554fde27fd0c90a4c15cebc9c27f3e333", 1646928762515, 0.059674], "benchmarks.SyntaxWrappingSuite.time_text_wide_terminal_no_wrapping": [null, [], "feb11e94ae6a75de2dee899fb93db098b55cde232710660d7d66f9e2b288d9c0", 1646928762575, 0.059784], "benchmarks.TableSuite.time_table_heavy_wrapping": [[0.002139574999455362], [], "ca515a9739c1e0f8eb922420f9f9caf27321fb13c8bd0bc49b207a0588b370de", 1646928767939, 0.44351, [0.0021099], [0.0021543], [0.0021336], [0.0021481], [5], [10]], "benchmarks.TableSuite.time_table_no_wrapping": [[0.0015003720722493847], [], "8842a5f141d8208ba2bab66e4973e978cb5d0615f326af5d70385ff8fa44b3b9", 1646928768162, 0.43513, [0.0014939], [0.0015075], [0.0014978], [0.0015047], [7], [10]], "benchmarks.TextSuite.time_align_center": [[0.0006745013660596063], [], "1ceeeef2de43fcb3d0dfec409972d8f0eb791e9615fa9f9c959e0423725b089b", 1646928768381, 0.43049, [0.00067283], [0.00067888], [0.00067418], [0.00067516], [15], [10]], "benchmarks.TextSuite.time_align_center_unicode_heavy": [[0.0005579756947958635], [], "a83ff79614dd2ae17e8b68f45981fcaa0d9833c59a7a14f171b896cf970f54ce", 1646928768593, 0.42798, [0.00054923], [0.00056491], [0.0005558], [0.00055862], [18], [10]], "benchmarks.TextSuite.time_divide": [[2.8091112257214872e-05], [], "dcc120b921cb2ec77632f8fe2f6f4150d479cb49ef2608f8e86b569a937756e9", 1646928768803, 0.43339, [2.778e-05], [2.833e-05], [2.786e-05], [2.8305e-05], [383], [10]], "benchmarks.TextSuite.time_divide_unicode_heavy": [[0.0001871991844382137], [], "ea53e662c0553324f90ac3336dcee77f733bb33638888e1f84bf71945a2f3f8e", 1646928769022, 0.44169, [0.00018646], [0.00018784], [0.00018714], [0.00018736], [57], [10]], "benchmarks.TextSuite.time_fit": [[4.206184386837079e-05], [], "ec77b412db357b1e1c1e7bc620b941dddfc36dc76d2a66a0417feae4f21fe1d3", 1646928769242, 0.44227, [4.1933e-05], [4.2324e-05], [4.2018e-05], [4.2199e-05], [253], [10]], "benchmarks.TextSuite.time_fit_unicode_heavy": [[0.00033646909709674335], [], "d1574b4af2ef8b80b95b4dbeeb13e5de67b66783f76f9968834776239dd0dc66", 1646928769461, 0.43658, [0.00033509], [0.00033761], [0.00033552], [0.00033735], [31], [10]], "benchmarks.TextSuite.time_indent_guides": [null, [], "18da036dcfc15ec5e3c11e72be7c8f0c22fba695a5f19c95836be36952376cf2", 1646928764389, 0.06003], "benchmarks.TextSuite.time_render": [[4.717766528633372e-06], [], "907d30581cfdc7bb2c4d302b7e3cb474aaefd8b84821365fe105af7d82be3b09", 1646928769678, 0.44127, [4.6823e-06], [4.7261e-06], [4.6856e-06], [4.7187e-06], [2330], [10]], "benchmarks.TextSuite.time_render_unicode_heavy": [[8.631900777800183e-05], [], "b3f1c09dfd06f412a20dacfe378c3b446727c7d4f9a975336eab3daa8543e1cb", 1646928769903, 0.43641, [8.5338e-05], [8.7457e-05], [8.5719e-05], [8.7006e-05], [128], [10]], "benchmarks.TextSuite.time_split": [[3.408707212097047e-05], [], "9c165854130cb95fea5491ffcd8b580a5bd373149da2ef8aace0e9480f649854", 1646928770118, 0.4406, [3.3545e-05], [3.4724e-05], [3.3566e-05], [3.4635e-05], [312], [10]], "benchmarks.TextSuite.time_split_unicode_heavy": [[0.00028407601387919605], [], "d55b02f6d06f478d70635bac3409f3a9899137d9cee87a70a293b8ccf5a6afa4", 1646928770340, 0.43471, [0.0002795], [0.00028527], [0.0002829], [0.00028475], [37], [10]], "benchmarks.TextSuite.time_wrapping": [[0.0011582684997443317], [], "8c821eba13d043f228fd902d8f678c397741855db05d02abe9b82f3d65cdf03d", 1646928770558, 0.43952, [0.0011575], [0.0011616], [0.0011578], [0.0011598], [9], [10]], "benchmarks.TextSuite.time_wrapping_unicode_heavy": [[0.001546357140926245], [], "ec6e2ef08b6cdee182fef4e26c0043f8c365984f9a31be07dbd792e1aed862d8", 1646928770775, 0.4414, [0.0015254], [0.0015481], [0.0015438], [0.001547], [7], [10]]}, "durations": {"": 2.086954116821289}, "version": 2} diff --git a/benchmarks/results/darrenburns-2022-mbp/cf606f0a-virtualenv-py3.10.json b/benchmarks/results/darrenburns-2022-mbp/cf606f0a-virtualenv-py3.10.json new file mode 100644 index 0000000000..9153416c3b --- /dev/null +++ b/benchmarks/results/darrenburns-2022-mbp/cf606f0a-virtualenv-py3.10.json @@ -0,0 +1 @@ +{"commit_hash": "cf606f0a3cab3dbe8f9fdaa2ccc4882c594ce2af", "env_name": "virtualenv-py3.10", "date": 1633525640000, "params": {"arch": "arm64", "cpu": "Apple M1 Pro", "machine": "darrenburns-2022-mbp", "num_cpu": "10", "os": "Darwin 21.2.0", "ram": "17179869184", "python": "3.10"}, "python": "3.10", "requirements": {}, "env_vars": {}, "result_columns": ["result", "params", "version", "started_at", "duration", "stats_ci_99_a", "stats_ci_99_b", "stats_q_25", "stats_q_75", "stats_number", "stats_repeat", "samples", "profile"], "results": {"benchmarks.ColorSuite.time_downgrade_to_eight_bit": [[1.7008481431105879e-07], [], "019b972f782c6291df9a6a4dea9bb3c6268a69b177e71383d6e19a608e84920d", 1646928188222, 0.46544, [1.6954e-07], [1.7061e-07], [1.6969e-07], [1.7028e-07], [64594], [10]], "benchmarks.ColorSuite.time_downgrade_to_standard": [[1.6977103967130265e-07], [], "f5e8556491c977450fff6ebfd9fff4fc8f12d74829aa5b8570bd27ea7a1c9d28", 1646928188453, 0.46493, [1.6885e-07], [1.7035e-07], [1.6916e-07], [1.6995e-07], [64640], [10]], "benchmarks.ColorSuite.time_downgrade_to_windows": [[1.7019219427270743e-07], [], "373eb97dd7ce2823e080972249235f528e8b3a47210911981cf432ecf0eef5fb", 1646928188685, 0.44697, [1.6873e-07], [1.7048e-07], [1.6992e-07], [1.7025e-07], [60777], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_eight_bit": [[1.6952995534974653e-07], [], "716ff06a471a5d90af3730f6d4470eba3577432d781e0210dff1fd156b8c549c", 1646928188908, 0.45652, [1.6879e-07], [1.7055e-07], [1.6931e-07], [1.7014e-07], [62610], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_standard": [[1.7031425859421503e-07], [], "3a752a7884e99e095c31b2a28cfefdf916cb2033c06afae1ea146a72f3ba650c", 1646928189136, 0.43789, [1.6929e-07], [1.7098e-07], [1.6983e-07], [1.7054e-07], [59023], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_windows": [[1.6987605637107828e-07], [], "1732bbd18ada49eb7b054fc18b40d6acfb533023463366f37203dab6fbb0cc20", 1646928189355, 0.46462, [1.6944e-07], [1.7074e-07], [1.6956e-07], [1.7009e-07], [64388], [10]], "benchmarks.PrettySuite.time_pretty": [[0.0010299416491761802], [], "9bb0e6d8a29aad21b3d1b550a160fa5f1e9030c69d16bad500c0dcc77bff6d01", 1646928189587, 0.45289, [0.0010285], [0.0010327], [0.0010294], [0.0010307], [10], [10]], "benchmarks.PrettySuite.time_pretty_indent_guides": [[0.0014262708118621958], [], "8d71bf19dfe999b0fba95d009986bfd6911c53c7a0c455466725f553005c3bc7", 1646928189812, 0.46211, [0.0014191], [0.0014354], [0.0014247], [0.0014304], [8], [10]], "benchmarks.PrettySuite.time_pretty_justify_center": [[0.001303890689086984], [], "54cbf71bacab14ccbe1d063847c0b89198ed1bbe06edc89c14d2e3c7b1986c41", 1646928190042, 0.44367, [0.0012991], [0.0013081], [0.0013012], [0.0013058], [8], [10]], "benchmarks.StyleSuite.time_parse_ansi": [[1.1436060985643663e-07], [], "a003aaa8017585efeb1cd9c43351282df4df6249bf28a4c447b1304d984aa753", 1646928190267, 0.45499, [1.1394e-07], [1.1448e-07], [1.1412e-07], [1.1444e-07], [93493], [10]], "benchmarks.StyleSuite.time_parse_hex": [[1.1419639107421115e-07], [], "cf5a3f0def435d3da5bc3a6e7549c44c0a02e9cce6c00ecde8dd7f527556f8ca", 1646928190495, 0.45868, [1.1401e-07], [1.1455e-07], [1.1413e-07], [1.1433e-07], [96430], [10]], "benchmarks.StyleSuite.time_parse_mixed_complex_style": [[1.1430237181679641e-07], [], "01c9e12ae829b1984e55a5aeef1a9ae6f1461577adaf5ae59f06358c8b52802f", 1646928190728, 0.43607, [1.1373e-07], [1.1653e-07], [1.1406e-07], [1.1632e-07], [87905], [10]], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_heavy_wrapping": [null, [], "1ed4d74ea424990cfb40c96f07635f9bcf7b8bacc7ade5204aaf96363e1622ee", 1646928184640, 0.06603], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_medium_wrapping": [null, [], "0880e162a4907ee025cef8ac3380502554fde27fd0c90a4c15cebc9c27f3e333", 1646928184706, 0.065403], "benchmarks.SyntaxWrappingSuite.time_text_wide_terminal_no_wrapping": [null, [], "feb11e94ae6a75de2dee899fb93db098b55cde232710660d7d66f9e2b288d9c0", 1646928184771, 0.065643], "benchmarks.TableSuite.time_table_heavy_wrapping": [[0.002137375099118799], [], "ca515a9739c1e0f8eb922420f9f9caf27321fb13c8bd0bc49b207a0588b370de", 1646928190946, 0.45268, [0.0021232], [0.0021537], [0.0021326], [0.0021444], [5], [10]], "benchmarks.TableSuite.time_table_no_wrapping": [[0.0012819921867048834], [], "8842a5f141d8208ba2bab66e4973e978cb5d0615f326af5d70385ff8fa44b3b9", 1646928191175, 0.45076, [0.0012766], [0.0012911], [0.0012804], [0.0012873], [8], [10]], "benchmarks.TextSuite.time_align_center": [[0.0003731116074569789], [], "1ceeeef2de43fcb3d0dfec409972d8f0eb791e9615fa9f9c959e0423725b089b", 1646928191399, 0.4503, [0.00036905], [0.00037584], [0.00037004], [0.00037552], [28], [10]], "benchmarks.TextSuite.time_align_center_unicode_heavy": [[0.0003418051126045025], [], "a83ff79614dd2ae17e8b68f45981fcaa0d9833c59a7a14f171b896cf970f54ce", 1646928191624, 0.45421, [0.00033996], [0.0003531], [0.00034031], [0.0003438], [31], [10]], "benchmarks.TextSuite.time_divide": [[2.5420383814757277e-05], [], "dcc120b921cb2ec77632f8fe2f6f4150d479cb49ef2608f8e86b569a937756e9", 1646928191851, 0.45966, [2.5403e-05], [2.5511e-05], [2.5412e-05], [2.5462e-05], [426], [10]], "benchmarks.TextSuite.time_divide_unicode_heavy": [[0.0001843121525302719], [], "ea53e662c0553324f90ac3336dcee77f733bb33638888e1f84bf71945a2f3f8e", 1646928192080, 0.45971, [0.0001837], [0.0001845], [0.00018417], [0.00018439], [59], [10]], "benchmarks.TextSuite.time_fit": [[4.359663006749261e-05], [], "ec77b412db357b1e1c1e7bc620b941dddfc36dc76d2a66a0417feae4f21fe1d3", 1646928192310, 0.44846, [4.3466e-05], [4.3834e-05], [4.3497e-05], [4.3732e-05], [246], [10]], "benchmarks.TextSuite.time_fit_unicode_heavy": [[0.0003243705758712057], [], "d1574b4af2ef8b80b95b4dbeeb13e5de67b66783f76f9968834776239dd0dc66", 1646928192539, 0.45606, [0.00032357], [0.00032569], [0.00032394], [0.00032473], [33], [10]], "benchmarks.TextSuite.time_indent_guides": [[0.0003578462763408456], [], "18da036dcfc15ec5e3c11e72be7c8f0c22fba695a5f19c95836be36952376cf2", 1646928192766, 0.44675, [0.00035635], [0.00035953], [0.00035684], [0.00035852], [29], [10]], "benchmarks.TextSuite.time_render": [[4.663015471995789e-06], [], "907d30581cfdc7bb2c4d302b7e3cb474aaefd8b84821365fe105af7d82be3b09", 1646928192988, 0.45183, [4.657e-06], [4.6789e-06], [4.6602e-06], [4.6676e-06], [2328], [10]], "benchmarks.TextSuite.time_render_unicode_heavy": [[8.517106255112594e-05], [], "b3f1c09dfd06f412a20dacfe378c3b446727c7d4f9a975336eab3daa8543e1cb", 1646928193218, 0.45805, [8.4403e-05], [8.5247e-05], [8.5058e-05], [8.5219e-05], [128], [10]], "benchmarks.TextSuite.time_split": [[3.5236133115106055e-05], [], "9c165854130cb95fea5491ffcd8b580a5bd373149da2ef8aace0e9480f649854", 1646928193448, 0.45048, [3.5006e-05], [3.541e-05], [3.505e-05], [3.5343e-05], [308], [10]], "benchmarks.TextSuite.time_split_unicode_heavy": [[0.00027417105248835137], [], "d55b02f6d06f478d70635bac3409f3a9899137d9cee87a70a293b8ccf5a6afa4", 1646928193678, 0.44627, [0.00027297], [0.00027504], [0.00027352], [0.00027446], [38], [10]], "benchmarks.TextSuite.time_wrapping": [[0.001099810349114705], [], "8c821eba13d043f228fd902d8f678c397741855db05d02abe9b82f3d65cdf03d", 1646928193900, 0.44558, [0.0010964], [0.0011023], [0.001098], [0.0011009], [10], [10]], "benchmarks.TextSuite.time_wrapping_unicode_heavy": [[0.0013641328132507624], [], "ec6e2ef08b6cdee182fef4e26c0043f8c365984f9a31be07dbd792e1aed862d8", 1646928194122, 0.45588, [0.0013606], [0.0013688], [0.0013625], [0.0013656], [8], [10]]}, "durations": {"": 1.987940788269043}, "version": 2} diff --git a/benchmarks/results/darrenburns-2022-mbp/d1ea01d0-virtualenv-py3.10.json b/benchmarks/results/darrenburns-2022-mbp/d1ea01d0-virtualenv-py3.10.json new file mode 100644 index 0000000000..ee142a6597 --- /dev/null +++ b/benchmarks/results/darrenburns-2022-mbp/d1ea01d0-virtualenv-py3.10.json @@ -0,0 +1 @@ +{"commit_hash": "d1ea01d0a35ef1509ab98251227d6bf995b245a4", "env_name": "virtualenv-py3.10", "date": 1593352189000, "params": {"arch": "arm64", "cpu": "Apple M1 Pro", "machine": "darrenburns-2022-mbp", "num_cpu": "10", "os": "Darwin 21.2.0", "ram": "17179869184", "python": "3.10"}, "python": "3.10", "requirements": {}, "env_vars": {}, "result_columns": ["result", "params", "version", "started_at", "duration", "stats_ci_99_a", "stats_ci_99_b", "stats_q_25", "stats_q_75", "stats_number", "stats_repeat", "samples", "profile"], "results": {"benchmarks.ColorSuite.time_downgrade_to_eight_bit": [[1.7275511303374947e-07], [], "019b972f782c6291df9a6a4dea9bb3c6268a69b177e71383d6e19a608e84920d", 1646928593878, 0.42685, [1.7156e-07], [1.7375e-07], [1.7224e-07], [1.7341e-07], [58817], [10]], "benchmarks.ColorSuite.time_downgrade_to_standard": [[1.7343822759676602e-07], [], "f5e8556491c977450fff6ebfd9fff4fc8f12d74829aa5b8570bd27ea7a1c9d28", 1646928594091, 0.43221, [1.7264e-07], [1.7385e-07], [1.7288e-07], [1.7372e-07], [64430], [10]], "benchmarks.ColorSuite.time_downgrade_to_windows": [[1.7113201561862943e-07], [], "373eb97dd7ce2823e080972249235f528e8b3a47210911981cf432ecf0eef5fb", 1646928594307, 0.42831, [1.6899e-07], [1.7382e-07], [1.706e-07], [1.7237e-07], [64534], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_eight_bit": [[1.7378755242519641e-07], [], "716ff06a471a5d90af3730f6d4470eba3577432d781e0210dff1fd156b8c549c", 1646928594522, 0.45416, [1.7285e-07], [1.7485e-07], [1.7343e-07], [1.7402e-07], [64350], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_standard": [[1.7333784869853573e-07], [], "3a752a7884e99e095c31b2a28cfefdf916cb2033c06afae1ea146a72f3ba650c", 1646928594748, 0.45035, [1.722e-07], [1.7422e-07], [1.7318e-07], [1.7352e-07], [64372], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_windows": [[1.740670683276435e-07], [], "1732bbd18ada49eb7b054fc18b40d6acfb533023463366f37203dab6fbb0cc20", 1646928594973, 0.4309, [1.7081e-07], [1.7449e-07], [1.7253e-07], [1.7434e-07], [64166], [10]], "benchmarks.PrettySuite.time_pretty": [[0.002210033303708769], [], "9bb0e6d8a29aad21b3d1b550a160fa5f1e9030c69d16bad500c0dcc77bff6d01", 1646928595189, 0.43765, [0.0022042], [0.0022327], [0.0022077], [0.0022118], [5], [10]], "benchmarks.PrettySuite.time_pretty_indent_guides": [null, [], "8d71bf19dfe999b0fba95d009986bfd6911c53c7a0c455466725f553005c3bc7", 1646928590154, 0.058498], "benchmarks.PrettySuite.time_pretty_justify_center": [null, [], "54cbf71bacab14ccbe1d063847c0b89198ed1bbe06edc89c14d2e3c7b1986c41", 1646928590213, 0.057913], "benchmarks.StyleSuite.time_parse_ansi": [[1.1428107393122285e-07], [], "a003aaa8017585efeb1cd9c43351282df4df6249bf28a4c447b1304d984aa753", 1646928595404, 0.44495, [1.1373e-07], [1.1449e-07], [1.1404e-07], [1.1433e-07], [95530], [10]], "benchmarks.StyleSuite.time_parse_hex": [[1.1542248528245094e-07], [], "cf5a3f0def435d3da5bc3a6e7549c44c0a02e9cce6c00ecde8dd7f527556f8ca", 1646928595627, 0.43917, [1.1413e-07], [1.1676e-07], [1.1431e-07], [1.1633e-07], [95943], [10]], "benchmarks.StyleSuite.time_parse_mixed_complex_style": [[1.1608432618778828e-07], [], "01c9e12ae829b1984e55a5aeef1a9ae6f1461577adaf5ae59f06358c8b52802f", 1646928595851, 0.44075, [1.1578e-07], [1.1647e-07], [1.1595e-07], [1.1632e-07], [95777], [10]], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_heavy_wrapping": [null, [], "1ed4d74ea424990cfb40c96f07635f9bcf7b8bacc7ade5204aaf96363e1622ee", 1646928590923, 0.057854], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_medium_wrapping": [null, [], "0880e162a4907ee025cef8ac3380502554fde27fd0c90a4c15cebc9c27f3e333", 1646928590981, 0.057866], "benchmarks.SyntaxWrappingSuite.time_text_wide_terminal_no_wrapping": [null, [], "feb11e94ae6a75de2dee899fb93db098b55cde232710660d7d66f9e2b288d9c0", 1646928591038, 0.057476], "benchmarks.TableSuite.time_table_heavy_wrapping": [[0.0020284958998672666], [], "ca515a9739c1e0f8eb922420f9f9caf27321fb13c8bd0bc49b207a0588b370de", 1646928596078, 0.42371, [0.0020248], [0.0020344], [0.002027], [0.0020318], [5], [10]], "benchmarks.TableSuite.time_table_no_wrapping": [[0.0014361726415310322], [], "8842a5f141d8208ba2bab66e4973e978cb5d0615f326af5d70385ff8fa44b3b9", 1646928596293, 0.42172, [0.0014307], [0.0014433], [0.0014329], [0.0014408], [7], [10]], "benchmarks.TextSuite.time_align_center": [null, [], "1ceeeef2de43fcb3d0dfec409972d8f0eb791e9615fa9f9c959e0423725b089b", 1646928591514, 0.058258], "benchmarks.TextSuite.time_align_center_unicode_heavy": [null, [], "a83ff79614dd2ae17e8b68f45981fcaa0d9833c59a7a14f171b896cf970f54ce", 1646928591572, 0.058273], "benchmarks.TextSuite.time_divide": [[2.8322780685372865e-05], [], "dcc120b921cb2ec77632f8fe2f6f4150d479cb49ef2608f8e86b569a937756e9", 1646928596506, 0.44533, [2.8226e-05], [2.8376e-05], [2.8307e-05], [2.833e-05], [383], [10]], "benchmarks.TextSuite.time_divide_unicode_heavy": [[0.00018953253477280797], [], "ea53e662c0553324f90ac3336dcee77f733bb33638888e1f84bf71945a2f3f8e", 1646928596729, 0.44308, [0.00018654], [0.00019173], [0.00018753], [0.00019155], [57], [10]], "benchmarks.TextSuite.time_fit": [[4.235208203317598e-05], [], "ec77b412db357b1e1c1e7bc620b941dddfc36dc76d2a66a0417feae4f21fe1d3", 1646928596948, 0.44025, [4.2095e-05], [4.3059e-05], [4.2247e-05], [4.2794e-05], [250], [10]], "benchmarks.TextSuite.time_fit_unicode_heavy": [[0.0003361021452057626], [], "d1574b4af2ef8b80b95b4dbeeb13e5de67b66783f76f9968834776239dd0dc66", 1646928597168, 0.43071, [0.00033251], [0.00033843], [0.00033487], [0.00033783], [31], [10]], "benchmarks.TextSuite.time_indent_guides": [null, [], "18da036dcfc15ec5e3c11e72be7c8f0c22fba695a5f19c95836be36952376cf2", 1646928592516, 0.058444], "benchmarks.TextSuite.time_render": [[4.687418159703545e-06], [], "907d30581cfdc7bb2c4d302b7e3cb474aaefd8b84821365fe105af7d82be3b09", 1646928597382, 0.4324, [4.6471e-06], [4.6982e-06], [4.6604e-06], [4.6959e-06], [2291], [10]], "benchmarks.TextSuite.time_render_unicode_heavy": [[8.583528904182458e-05], [], "b3f1c09dfd06f412a20dacfe378c3b446727c7d4f9a975336eab3daa8543e1cb", 1646928597601, 0.44525, [8.5363e-05], [8.6883e-05], [8.5395e-05], [8.6789e-05], [128], [10]], "benchmarks.TextSuite.time_split": [[3.391068551741961e-05], [], "9c165854130cb95fea5491ffcd8b580a5bd373149da2ef8aace0e9480f649854", 1646928597826, 0.43549, [3.3659e-05], [3.4238e-05], [3.3828e-05], [3.4162e-05], [310], [10]], "benchmarks.TextSuite.time_split_unicode_heavy": [[0.00028314977031629026], [], "d55b02f6d06f478d70635bac3409f3a9899137d9cee87a70a293b8ccf5a6afa4", 1646928598042, 0.43206, [0.00027929], [0.00028619], [0.00027984], [0.00028522], [37], [10]], "benchmarks.TextSuite.time_wrapping": [[0.00116348844474285], [], "8c821eba13d043f228fd902d8f678c397741855db05d02abe9b82f3d65cdf03d", 1646928598257, 0.4364, [0.001144], [0.0011747], [0.0011457], [0.0011729], [9], [10]], "benchmarks.TextSuite.time_wrapping_unicode_heavy": [[0.0015192588554262848], [], "ec6e2ef08b6cdee182fef4e26c0043f8c365984f9a31be07dbd792e1aed862d8", 1646928598475, 0.434, [0.0015163], [0.0015243], [0.0015173], [0.0015207], [7], [10]]}, "durations": {"": 1.9580459594726562}, "version": 2} diff --git a/benchmarks/results/darrenburns-2022-mbp/d6e6a762-virtualenv-py3.10.json b/benchmarks/results/darrenburns-2022-mbp/d6e6a762-virtualenv-py3.10.json new file mode 100644 index 0000000000..10e6dc1245 --- /dev/null +++ b/benchmarks/results/darrenburns-2022-mbp/d6e6a762-virtualenv-py3.10.json @@ -0,0 +1 @@ +{"commit_hash": "d6e6a7627e41b8177d5824848a33fe78a52defbf", "env_name": "virtualenv-py3.10", "date": 1638115361000, "params": {"arch": "arm64", "cpu": "Apple M1 Pro", "machine": "darrenburns-2022-mbp", "num_cpu": "10", "os": "Darwin 21.2.0", "ram": "17179869184", "python": "3.10"}, "python": "3.10", "requirements": {}, "env_vars": {}, "result_columns": ["result", "params", "version", "started_at", "duration", "stats_ci_99_a", "stats_ci_99_b", "stats_q_25", "stats_q_75", "stats_number", "stats_repeat", "samples", "profile"], "results": {"benchmarks.ColorSuite.time_downgrade_to_eight_bit": [[1.7044148018081613e-07], [], "019b972f782c6291df9a6a4dea9bb3c6268a69b177e71383d6e19a608e84920d", 1646929382285, 0.45442, [1.6941e-07], [1.7235e-07], [1.7e-07], [1.7091e-07], [64534], [10]], "benchmarks.ColorSuite.time_downgrade_to_standard": [[1.7100720142793016e-07], [], "f5e8556491c977450fff6ebfd9fff4fc8f12d74829aa5b8570bd27ea7a1c9d28", 1646929382517, 0.46749, [1.6983e-07], [1.7229e-07], [1.7064e-07], [1.7127e-07], [64153], [10]], "benchmarks.ColorSuite.time_downgrade_to_windows": [[1.7058500679039374e-07], [], "373eb97dd7ce2823e080972249235f528e8b3a47210911981cf432ecf0eef5fb", 1646929382752, 0.45793, [1.6951e-07], [1.7103e-07], [1.7018e-07], [1.7089e-07], [64648], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_eight_bit": [[1.70275577801008e-07], [], "716ff06a471a5d90af3730f6d4470eba3577432d781e0210dff1fd156b8c549c", 1646929382985, 0.46411, [1.6964e-07], [1.7086e-07], [1.6981e-07], [1.7062e-07], [64089], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_standard": [[1.700077842064008e-07], [], "3a752a7884e99e095c31b2a28cfefdf916cb2033c06afae1ea146a72f3ba650c", 1646929383217, 0.46804, [1.6932e-07], [1.7854e-07], [1.6988e-07], [1.7042e-07], [64618], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_windows": [[1.6995302828139584e-07], [], "1732bbd18ada49eb7b054fc18b40d6acfb533023463366f37203dab6fbb0cc20", 1646929383451, 0.45754, [1.691e-07], [1.7185e-07], [1.6985e-07], [1.7062e-07], [64528], [10]], "benchmarks.PrettySuite.time_pretty": [[0.0011057438008720056], [], "9bb0e6d8a29aad21b3d1b550a160fa5f1e9030c69d16bad500c0dcc77bff6d01", 1646929383685, 0.4556, [0.0011021], [0.0011127], [0.0011046], [0.0011064], [10], [10]], "benchmarks.PrettySuite.time_pretty_indent_guides": [[0.001518651784863323], [], "8d71bf19dfe999b0fba95d009986bfd6911c53c7a0c455466725f553005c3bc7", 1646929383910, 0.45139, [0.0015132], [0.0015288], [0.0015168], [0.0015217], [7], [10]], "benchmarks.PrettySuite.time_pretty_justify_center": [[0.0013965208745503332], [], "54cbf71bacab14ccbe1d063847c0b89198ed1bbe06edc89c14d2e3c7b1986c41", 1646929384138, 0.45272, [0.0013928], [0.0014081], [0.0013936], [0.0013997], [8], [10]], "benchmarks.StyleSuite.time_parse_ansi": [[1.14279963534634e-07], [], "a003aaa8017585efeb1cd9c43351282df4df6249bf28a4c447b1304d984aa753", 1646929384364, 0.46515, [1.1383e-07], [1.1513e-07], [1.1425e-07], [1.1466e-07], [96041], [10]], "benchmarks.StyleSuite.time_parse_hex": [[1.1550767465349522e-07], [], "cf5a3f0def435d3da5bc3a6e7549c44c0a02e9cce6c00ecde8dd7f527556f8ca", 1646929384596, 0.46102, [1.1392e-07], [1.1693e-07], [1.1405e-07], [1.1682e-07], [94076], [10]], "benchmarks.StyleSuite.time_parse_mixed_complex_style": [[1.1419077714234279e-07], [], "01c9e12ae829b1984e55a5aeef1a9ae6f1461577adaf5ae59f06358c8b52802f", 1646929384825, 0.46473, [1.1388e-07], [1.1544e-07], [1.1406e-07], [1.1429e-07], [96272], [10]], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_heavy_wrapping": [null, [], "1ed4d74ea424990cfb40c96f07635f9bcf7b8bacc7ade5204aaf96363e1622ee", 1646929378667, 0.06719], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_medium_wrapping": [null, [], "0880e162a4907ee025cef8ac3380502554fde27fd0c90a4c15cebc9c27f3e333", 1646929378734, 0.065859], "benchmarks.SyntaxWrappingSuite.time_text_wide_terminal_no_wrapping": [null, [], "feb11e94ae6a75de2dee899fb93db098b55cde232710660d7d66f9e2b288d9c0", 1646929378800, 0.065964], "benchmarks.TableSuite.time_table_heavy_wrapping": [[0.0023521165974671023], [], "ca515a9739c1e0f8eb922420f9f9caf27321fb13c8bd0bc49b207a0588b370de", 1646929385057, 0.46008, [0.0023354], [0.0023596], [0.0023481], [0.002354], [5], [10]], "benchmarks.TableSuite.time_table_no_wrapping": [[0.001415294249454746], [], "8842a5f141d8208ba2bab66e4973e978cb5d0615f326af5d70385ff8fa44b3b9", 1646929385291, 0.4546, [0.0014002], [0.0015066], [0.0014028], [0.0014178], [8], [10]], "benchmarks.TextSuite.time_align_center": [[0.00037431696390350614], [], "1ceeeef2de43fcb3d0dfec409972d8f0eb791e9615fa9f9c959e0423725b089b", 1646929385519, 0.46925, [0.00037036], [0.00037745], [0.00037118], [0.00037714], [28], [10]], "benchmarks.TextSuite.time_align_center_unicode_heavy": [[0.00034069825825656973], [], "a83ff79614dd2ae17e8b68f45981fcaa0d9833c59a7a14f171b896cf970f54ce", 1646929385742, 0.45394, [0.00033797], [0.00035258], [0.0003388], [0.00034201], [31], [10]], "benchmarks.TextSuite.time_divide": [[2.535485209975864e-05], [], "dcc120b921cb2ec77632f8fe2f6f4150d479cb49ef2608f8e86b569a937756e9", 1646929385969, 0.45971, [2.5221e-05], [2.5434e-05], [2.5315e-05], [2.5404e-05], [426], [10]], "benchmarks.TextSuite.time_divide_unicode_heavy": [[0.00018451293977579615], [], "ea53e662c0553324f90ac3336dcee77f733bb33638888e1f84bf71945a2f3f8e", 1646929386198, 0.45778, [0.00018335], [0.00018545], [0.00018437], [0.00018511], [58], [10]], "benchmarks.TextSuite.time_fit": [[4.351439636637934e-05], [], "ec77b412db357b1e1c1e7bc620b941dddfc36dc76d2a66a0417feae4f21fe1d3", 1646929386425, 0.44973, [4.3437e-05], [4.3568e-05], [4.3482e-05], [4.3547e-05], [246], [10]], "benchmarks.TextSuite.time_fit_unicode_heavy": [[0.00032582512137719965], [], "d1574b4af2ef8b80b95b4dbeeb13e5de67b66783f76f9968834776239dd0dc66", 1646929386653, 0.4586, [0.00032488], [0.00032697], [0.00032528], [0.00032649], [33], [10]], "benchmarks.TextSuite.time_indent_guides": [[0.0003563821890816927], [], "18da036dcfc15ec5e3c11e72be7c8f0c22fba695a5f19c95836be36952376cf2", 1646929386881, 0.4471, [0.00035563], [0.00036099], [0.00035596], [0.0003567], [29], [10]], "benchmarks.TextSuite.time_render": [[4.675005164754989e-06], [], "907d30581cfdc7bb2c4d302b7e3cb474aaefd8b84821365fe105af7d82be3b09", 1646929387104, 0.45307, [4.6596e-06], [4.6868e-06], [4.6692e-06], [4.6829e-06], [2321], [10]], "benchmarks.TextSuite.time_render_unicode_heavy": [[8.51159763163117e-05], [], "b3f1c09dfd06f412a20dacfe378c3b446727c7d4f9a975336eab3daa8543e1cb", 1646929387334, 0.45551, [8.4379e-05], [8.5608e-05], [8.4655e-05], [8.5219e-05], [127], [10]], "benchmarks.TextSuite.time_split": [[3.5167884774424445e-05], [], "9c165854130cb95fea5491ffcd8b580a5bd373149da2ef8aace0e9480f649854", 1646929387563, 0.45005, [3.5061e-05], [3.5247e-05], [3.5088e-05], [3.5228e-05], [308], [10]], "benchmarks.TextSuite.time_split_unicode_heavy": [[0.00027289102600218775], [], "d55b02f6d06f478d70635bac3409f3a9899137d9cee87a70a293b8ccf5a6afa4", 1646929387792, 0.45467, [0.00027132], [0.00027378], [0.00027258], [0.00027315], [39], [10]], "benchmarks.TextSuite.time_wrapping": [[0.0013594817501143552], [], "8c821eba13d043f228fd902d8f678c397741855db05d02abe9b82f3d65cdf03d", 1646929388018, 0.45641, [0.0013561], [0.0013673], [0.0013586], [0.0013646], [8], [10]], "benchmarks.TextSuite.time_wrapping_unicode_heavy": [[0.0014479047864110076], [], "ec6e2ef08b6cdee182fef4e26c0043f8c365984f9a31be07dbd792e1aed862d8", 1646929388249, 0.44442, [0.0014435], [0.0014508], [0.0014444], [0.0014503], [7], [10]]}, "durations": {"": 1.9784090518951416}, "version": 2} diff --git a/benchmarks/results/darrenburns-2022-mbp/d9d59c6e-virtualenv-py3.10.json b/benchmarks/results/darrenburns-2022-mbp/d9d59c6e-virtualenv-py3.10.json new file mode 100644 index 0000000000..9a50d0517c --- /dev/null +++ b/benchmarks/results/darrenburns-2022-mbp/d9d59c6e-virtualenv-py3.10.json @@ -0,0 +1 @@ +{"commit_hash": "d9d59c6eda6d21f4515e9a8fe9496fa5e68f9500", "env_name": "virtualenv-py3.10", "date": 1601731540000, "params": {"arch": "arm64", "cpu": "Apple M1 Pro", "machine": "darrenburns-2022-mbp", "num_cpu": "10", "os": "Darwin 21.2.0", "ram": "17179869184", "python": "3.10"}, "python": "3.10", "requirements": {}, "env_vars": {}, "result_columns": ["result", "params", "version", "started_at", "duration", "stats_ci_99_a", "stats_ci_99_b", "stats_q_25", "stats_q_75", "stats_number", "stats_repeat", "samples", "profile"], "results": {"benchmarks.ColorSuite.time_downgrade_to_eight_bit": [[1.7007272862010314e-07], [], "019b972f782c6291df9a6a4dea9bb3c6268a69b177e71383d6e19a608e84920d", 1646928948881, 0.44769, [1.691e-07], [1.7067e-07], [1.6979e-07], [1.7041e-07], [64713], [10]], "benchmarks.ColorSuite.time_downgrade_to_standard": [[1.7230254365760394e-07], [], "f5e8556491c977450fff6ebfd9fff4fc8f12d74829aa5b8570bd27ea7a1c9d28", 1646928949104, 0.44046, [1.6906e-07], [1.7397e-07], [1.6958e-07], [1.7329e-07], [64394], [10]], "benchmarks.ColorSuite.time_downgrade_to_windows": [[1.700615323578596e-07], [], "373eb97dd7ce2823e080972249235f528e8b3a47210911981cf432ecf0eef5fb", 1646928949330, 0.44909, [1.6912e-07], [1.7315e-07], [1.6998e-07], [1.7077e-07], [64454], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_eight_bit": [[1.7185753185443347e-07], [], "716ff06a471a5d90af3730f6d4470eba3577432d781e0210dff1fd156b8c549c", 1646928949554, 0.43388, [1.6937e-07], [1.74e-07], [1.7027e-07], [1.7356e-07], [58729], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_standard": [[1.6980957393884359e-07], [], "3a752a7884e99e095c31b2a28cfefdf916cb2033c06afae1ea146a72f3ba650c", 1646928949774, 0.4481, [1.6901e-07], [1.7029e-07], [1.6955e-07], [1.7004e-07], [64550], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_windows": [[1.7070400929737442e-07], [], "1732bbd18ada49eb7b054fc18b40d6acfb533023463366f37203dab6fbb0cc20", 1646928949998, 0.45027, [1.6981e-07], [1.7197e-07], [1.7021e-07], [1.7133e-07], [64502], [10]], "benchmarks.PrettySuite.time_pretty": [[0.0009214204540264539], [], "9bb0e6d8a29aad21b3d1b550a160fa5f1e9030c69d16bad500c0dcc77bff6d01", 1646928950224, 0.43133, [0.00091927], [0.00092614], [0.00092008], [0.00092345], [11], [10]], "benchmarks.PrettySuite.time_pretty_indent_guides": [null, [], "8d71bf19dfe999b0fba95d009986bfd6911c53c7a0c455466725f553005c3bc7", 1646928944661, 0.057795], "benchmarks.PrettySuite.time_pretty_justify_center": [[0.0013074791258986806], [], "54cbf71bacab14ccbe1d063847c0b89198ed1bbe06edc89c14d2e3c7b1986c41", 1646928950440, 0.42931, [0.0013042], [0.0013097], [0.0013051], [0.0013093], [8], [10]], "benchmarks.StyleSuite.time_parse_ansi": [[1.1475910215925814e-07], [], "a003aaa8017585efeb1cd9c43351282df4df6249bf28a4c447b1304d984aa753", 1646928950658, 0.44674, [1.1367e-07], [1.1608e-07], [1.1398e-07], [1.1526e-07], [95416], [10]], "benchmarks.StyleSuite.time_parse_hex": [[1.1526058413923107e-07], [], "cf5a3f0def435d3da5bc3a6e7549c44c0a02e9cce6c00ecde8dd7f527556f8ca", 1646928950882, 0.45265, [1.1417e-07], [1.1624e-07], [1.1435e-07], [1.1575e-07], [94977], [10]], "benchmarks.StyleSuite.time_parse_mixed_complex_style": [[1.1425953489652303e-07], [], "01c9e12ae829b1984e55a5aeef1a9ae6f1461577adaf5ae59f06358c8b52802f", 1646928951111, 0.44765, [1.1396e-07], [1.1495e-07], [1.1408e-07], [1.1436e-07], [96382], [10]], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_heavy_wrapping": [null, [], "1ed4d74ea424990cfb40c96f07635f9bcf7b8bacc7ade5204aaf96363e1622ee", 1646928945601, 0.05744], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_medium_wrapping": [null, [], "0880e162a4907ee025cef8ac3380502554fde27fd0c90a4c15cebc9c27f3e333", 1646928945658, 0.057925], "benchmarks.SyntaxWrappingSuite.time_text_wide_terminal_no_wrapping": [null, [], "feb11e94ae6a75de2dee899fb93db098b55cde232710660d7d66f9e2b288d9c0", 1646928945716, 0.057371], "benchmarks.TableSuite.time_table_heavy_wrapping": [[0.0027217134993406944], [], "ca515a9739c1e0f8eb922420f9f9caf27321fb13c8bd0bc49b207a0588b370de", 1646928951335, 0.42588, [0.0027174], [0.0027449], [0.0027199], [0.0027228], [4], [10]], "benchmarks.TableSuite.time_table_no_wrapping": [[0.0018379097503687567], [], "8842a5f141d8208ba2bab66e4973e978cb5d0615f326af5d70385ff8fa44b3b9", 1646928951549, 0.44105, [0.0018355], [0.0018497], [0.0018371], [0.0018465], [6], [10]], "benchmarks.TextSuite.time_align_center": [[0.0006745612190570682], [], "1ceeeef2de43fcb3d0dfec409972d8f0eb791e9615fa9f9c959e0423725b089b", 1646928951767, 0.4356, [0.00066229], [0.00067891], [0.00066486], [0.0006778], [16], [10]], "benchmarks.TextSuite.time_align_center_unicode_heavy": [[0.0005468925527039621], [], "a83ff79614dd2ae17e8b68f45981fcaa0d9833c59a7a14f171b896cf970f54ce", 1646928951990, 0.43292, [0.00054298], [0.00055628], [0.0005446], [0.00055198], [19], [10]], "benchmarks.TextSuite.time_divide": [[2.7947836365042762e-05], [], "dcc120b921cb2ec77632f8fe2f6f4150d479cb49ef2608f8e86b569a937756e9", 1646928952204, 0.44141, [2.7888e-05], [2.8018e-05], [2.7904e-05], [2.7985e-05], [385], [10]], "benchmarks.TextSuite.time_divide_unicode_heavy": [[0.00018688398292930476], [], "ea53e662c0553324f90ac3336dcee77f733bb33638888e1f84bf71945a2f3f8e", 1646928952424, 0.44236, [0.00018663], [0.00018762], [0.00018668], [0.00018727], [58], [10]], "benchmarks.TextSuite.time_fit": [[4.223215535646712e-05], [], "ec77b412db357b1e1c1e7bc620b941dddfc36dc76d2a66a0417feae4f21fe1d3", 1646928952645, 0.43804, [4.2053e-05], [4.2538e-05], [4.2177e-05], [4.225e-05], [251], [10]], "benchmarks.TextSuite.time_fit_unicode_heavy": [[0.00032950469364051617], [], "d1574b4af2ef8b80b95b4dbeeb13e5de67b66783f76f9968834776239dd0dc66", 1646928952863, 0.427, [0.00032902], [0.00033125], [0.0003292], [0.00032978], [31], [10]], "benchmarks.TextSuite.time_indent_guides": [null, [], "18da036dcfc15ec5e3c11e72be7c8f0c22fba695a5f19c95836be36952376cf2", 1646928947520, 0.058016], "benchmarks.TextSuite.time_render": [[4.690418560544151e-06], [], "907d30581cfdc7bb2c4d302b7e3cb474aaefd8b84821365fe105af7d82be3b09", 1646928953076, 0.4365, [4.6716e-06], [4.7213e-06], [4.6755e-06], [4.7052e-06], [2327], [10]], "benchmarks.TextSuite.time_render_unicode_heavy": [[8.534996516735459e-05], [], "b3f1c09dfd06f412a20dacfe378c3b446727c7d4f9a975336eab3daa8543e1cb", 1646928953298, 0.4446, [8.4571e-05], [8.5513e-05], [8.5258e-05], [8.5447e-05], [129], [10]], "benchmarks.TextSuite.time_split": [[3.383466821851937e-05], [], "9c165854130cb95fea5491ffcd8b580a5bd373149da2ef8aace0e9480f649854", 1646928953522, 0.43553, [3.3784e-05], [3.3888e-05], [3.3819e-05], [3.3857e-05], [312], [10]], "benchmarks.TextSuite.time_split_unicode_heavy": [[0.0002794617160091277], [], "d55b02f6d06f478d70635bac3409f3a9899137d9cee87a70a293b8ccf5a6afa4", 1646928953739, 0.42829, [0.00027875], [0.00028134], [0.00027922], [0.00027985], [37], [10]], "benchmarks.TextSuite.time_wrapping": [[0.0011428379447251144], [], "8c821eba13d043f228fd902d8f678c397741855db05d02abe9b82f3d65cdf03d", 1646928953952, 0.43093, [0.0011403], [0.0011446], [0.0011426], [0.0011432], [9], [10]], "benchmarks.TextSuite.time_wrapping_unicode_heavy": [[0.0015310773576077607], [], "ec6e2ef08b6cdee182fef4e26c0043f8c365984f9a31be07dbd792e1aed862d8", 1646928954165, 0.43585, [0.0015279], [0.0015349], [0.0015302], [0.0015327], [7], [10]]}, "durations": {"": 2.036357879638672}, "version": 2} diff --git a/benchmarks/results/darrenburns-2022-mbp/e0a1fd30-virtualenv-py3.10.json b/benchmarks/results/darrenburns-2022-mbp/e0a1fd30-virtualenv-py3.10.json new file mode 100644 index 0000000000..e9ceb16440 --- /dev/null +++ b/benchmarks/results/darrenburns-2022-mbp/e0a1fd30-virtualenv-py3.10.json @@ -0,0 +1 @@ +{"commit_hash": "e0a1fd3052a54144f54a20eb97bfc3f397658675", "env_name": "virtualenv-py3.10", "date": 1594310534000, "params": {"arch": "arm64", "cpu": "Apple M1 Pro", "machine": "darrenburns-2022-mbp", "num_cpu": "10", "os": "Darwin 21.2.0", "ram": "17179869184", "python": "3.10"}, "python": "3.10", "requirements": {}, "env_vars": {}, "result_columns": ["result", "params", "version", "started_at", "duration", "stats_ci_99_a", "stats_ci_99_b", "stats_q_25", "stats_q_75", "stats_number", "stats_repeat", "samples", "profile"], "results": {"benchmarks.ColorSuite.time_downgrade_to_eight_bit": [[1.7310468765644094e-07], [], "019b972f782c6291df9a6a4dea9bb3c6268a69b177e71383d6e19a608e84920d", 1646928664281, 0.42707, [1.7202e-07], [1.7348e-07], [1.7287e-07], [1.7327e-07], [59157], [10]], "benchmarks.ColorSuite.time_downgrade_to_standard": [[1.7140150026302792e-07], [], "f5e8556491c977450fff6ebfd9fff4fc8f12d74829aa5b8570bd27ea7a1c9d28", 1646928664493, 0.44259, [1.6964e-07], [1.7335e-07], [1.6999e-07], [1.7295e-07], [64447], [10]], "benchmarks.ColorSuite.time_downgrade_to_windows": [[1.7120258556264482e-07], [], "373eb97dd7ce2823e080972249235f528e8b3a47210911981cf432ecf0eef5fb", 1646928664717, 0.44445, [1.6984e-07], [1.7711e-07], [1.7032e-07], [1.7301e-07], [64274], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_eight_bit": [[1.739078501037466e-07], [], "716ff06a471a5d90af3730f6d4470eba3577432d781e0210dff1fd156b8c549c", 1646928664940, 0.42331, [1.7275e-07], [1.75e-07], [1.7376e-07], [1.7434e-07], [58318], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_standard": [[1.7400155762376018e-07], [], "3a752a7884e99e095c31b2a28cfefdf916cb2033c06afae1ea146a72f3ba650c", 1646928665151, 0.44134, [1.7121e-07], [1.7447e-07], [1.7324e-07], [1.742e-07], [64208], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_windows": [[1.7380606893906802e-07], [], "1732bbd18ada49eb7b054fc18b40d6acfb533023463366f37203dab6fbb0cc20", 1646928665377, 0.43557, [1.6943e-07], [1.771e-07], [1.724e-07], [1.7451e-07], [64755], [10]], "benchmarks.PrettySuite.time_pretty": [[0.0022525667038280515], [], "9bb0e6d8a29aad21b3d1b550a160fa5f1e9030c69d16bad500c0dcc77bff6d01", 1646928665593, 0.44188, [0.0022446], [0.0022692], [0.0022481], [0.0022578], [5], [10]], "benchmarks.PrettySuite.time_pretty_indent_guides": [null, [], "8d71bf19dfe999b0fba95d009986bfd6911c53c7a0c455466725f553005c3bc7", 1646928660547, 0.058901], "benchmarks.PrettySuite.time_pretty_justify_center": [null, [], "54cbf71bacab14ccbe1d063847c0b89198ed1bbe06edc89c14d2e3c7b1986c41", 1646928660606, 0.058328], "benchmarks.StyleSuite.time_parse_ansi": [[1.1611185828598203e-07], [], "a003aaa8017585efeb1cd9c43351282df4df6249bf28a4c447b1304d984aa753", 1646928665811, 0.42395, [1.1578e-07], [1.1775e-07], [1.1595e-07], [1.1639e-07], [87441], [10]], "benchmarks.StyleSuite.time_parse_hex": [[1.170790392565746e-07], [], "cf5a3f0def435d3da5bc3a6e7549c44c0a02e9cce6c00ecde8dd7f527556f8ca", 1646928666022, 0.42512, [1.1625e-07], [1.1786e-07], [1.1668e-07], [1.1741e-07], [87450], [10]], "benchmarks.StyleSuite.time_parse_mixed_complex_style": [[1.1539420545928226e-07], [], "01c9e12ae829b1984e55a5aeef1a9ae6f1461577adaf5ae59f06358c8b52802f", 1646928666234, 0.43805, [1.138e-07], [1.1688e-07], [1.143e-07], [1.1666e-07], [95936], [10]], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_heavy_wrapping": [null, [], "1ed4d74ea424990cfb40c96f07635f9bcf7b8bacc7ade5204aaf96363e1622ee", 1646928661313, 0.058048], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_medium_wrapping": [null, [], "0880e162a4907ee025cef8ac3380502554fde27fd0c90a4c15cebc9c27f3e333", 1646928661371, 0.05784], "benchmarks.SyntaxWrappingSuite.time_text_wide_terminal_no_wrapping": [null, [], "feb11e94ae6a75de2dee899fb93db098b55cde232710660d7d66f9e2b288d9c0", 1646928661429, 0.057652], "benchmarks.TableSuite.time_table_heavy_wrapping": [[0.0021038542006863283], [], "ca515a9739c1e0f8eb922420f9f9caf27321fb13c8bd0bc49b207a0588b370de", 1646928666450, 0.43374, [0.0020827], [0.0021521], [0.0020909], [0.0021359], [5], [10]], "benchmarks.TableSuite.time_table_no_wrapping": [[0.0014810833568584972], [], "8842a5f141d8208ba2bab66e4973e978cb5d0615f326af5d70385ff8fa44b3b9", 1646928666668, 0.42867, [0.0014557], [0.0015049], [0.0014606], [0.0014982], [7], [10]], "benchmarks.TextSuite.time_align_center": [null, [], "1ceeeef2de43fcb3d0dfec409972d8f0eb791e9615fa9f9c959e0423725b089b", 1646928661915, 0.058367], "benchmarks.TextSuite.time_align_center_unicode_heavy": [null, [], "a83ff79614dd2ae17e8b68f45981fcaa0d9833c59a7a14f171b896cf970f54ce", 1646928661974, 0.058171], "benchmarks.TextSuite.time_divide": [[2.8066775329144937e-05], [], "dcc120b921cb2ec77632f8fe2f6f4150d479cb49ef2608f8e86b569a937756e9", 1646928666884, 0.44528, [2.7753e-05], [2.8493e-05], [2.7785e-05], [2.838e-05], [385], [10]], "benchmarks.TextSuite.time_divide_unicode_heavy": [[0.00019063486813632934], [], "ea53e662c0553324f90ac3336dcee77f733bb33638888e1f84bf71945a2f3f8e", 1646928667108, 0.44545, [0.00018949], [0.00019101], [0.00019018], [0.00019082], [57], [10]], "benchmarks.TextSuite.time_fit": [[4.291398792965226e-05], [], "ec77b412db357b1e1c1e7bc620b941dddfc36dc76d2a66a0417feae4f21fe1d3", 1646928667331, 0.44101, [4.2623e-05], [4.3151e-05], [4.2759e-05], [4.3032e-05], [249], [10]], "benchmarks.TextSuite.time_fit_unicode_heavy": [[0.0003357896616028982], [], "d1574b4af2ef8b80b95b4dbeeb13e5de67b66783f76f9968834776239dd0dc66", 1646928667550, 0.43211, [0.00033434], [0.00033657], [0.00033526], [0.00033627], [31], [10]], "benchmarks.TextSuite.time_indent_guides": [null, [], "18da036dcfc15ec5e3c11e72be7c8f0c22fba695a5f19c95836be36952376cf2", 1646928662916, 0.058343], "benchmarks.TextSuite.time_render": [[4.695363762934517e-06], [], "907d30581cfdc7bb2c4d302b7e3cb474aaefd8b84821365fe105af7d82be3b09", 1646928667765, 0.44042, [4.6861e-06], [4.7038e-06], [4.6888e-06], [4.6987e-06], [2334], [10]], "benchmarks.TextSuite.time_render_unicode_heavy": [[8.681542965405242e-05], [], "b3f1c09dfd06f412a20dacfe378c3b446727c7d4f9a975336eab3daa8543e1cb", 1646928667990, 0.44792, [8.5205e-05], [8.7409e-05], [8.6381e-05], [8.6843e-05], [128], [10]], "benchmarks.TextSuite.time_split": [[3.372648716088193e-05], [], "9c165854130cb95fea5491ffcd8b580a5bd373149da2ef8aace0e9480f649854", 1646928668216, 0.43541, [3.3659e-05], [3.3812e-05], [3.3705e-05], [3.3766e-05], [311], [10]], "benchmarks.TextSuite.time_split_unicode_heavy": [[0.00028238456729308675], [], "d55b02f6d06f478d70635bac3409f3a9899137d9cee87a70a293b8ccf5a6afa4", 1646928668433, 0.43206, [0.00028014], [0.00028621], [0.00028076], [0.00028362], [37], [10]], "benchmarks.TextSuite.time_wrapping": [[0.0011480787199818427], [], "8c821eba13d043f228fd902d8f678c397741855db05d02abe9b82f3d65cdf03d", 1646928668649, 0.43319, [0.0011355], [0.0011605], [0.001136], [0.0011575], [9], [10]], "benchmarks.TextSuite.time_wrapping_unicode_heavy": [[0.0015361339277920447], [], "ec6e2ef08b6cdee182fef4e26c0043f8c365984f9a31be07dbd792e1aed862d8", 1646928668864, 0.43689, [0.001519], [0.0015511], [0.0015207], [0.0015504], [7], [10]]}, "durations": {"": 1.9530549049377441}, "version": 2} diff --git a/benchmarks/results/darrenburns-2022-mbp/e338ab14-virtualenv-py3.10.json b/benchmarks/results/darrenburns-2022-mbp/e338ab14-virtualenv-py3.10.json new file mode 100644 index 0000000000..a492154f8a --- /dev/null +++ b/benchmarks/results/darrenburns-2022-mbp/e338ab14-virtualenv-py3.10.json @@ -0,0 +1 @@ +{"commit_hash": "e338ab145797e57a5db73f37b3883a30592f0643", "env_name": "virtualenv-py3.10", "date": 1596045245000, "params": {"arch": "arm64", "cpu": "Apple M1 Pro", "machine": "darrenburns-2022-mbp", "num_cpu": "10", "os": "Darwin 21.2.0", "ram": "17179869184", "python": "3.10"}, "python": "3.10", "requirements": {}, "env_vars": {}, "result_columns": ["result", "params", "version", "started_at", "duration", "stats_ci_99_a", "stats_ci_99_b", "stats_q_25", "stats_q_75", "stats_number", "stats_repeat", "samples", "profile"], "results": {"benchmarks.ColorSuite.time_downgrade_to_eight_bit": [[1.7237765726891362e-07], [], "019b972f782c6291df9a6a4dea9bb3c6268a69b177e71383d6e19a608e84920d", 1646928791445, 0.44188, [1.6968e-07], [1.7551e-07], [1.7051e-07], [1.7508e-07], [64397], [10]], "benchmarks.ColorSuite.time_downgrade_to_standard": [[1.7026478922479047e-07], [], "f5e8556491c977450fff6ebfd9fff4fc8f12d74829aa5b8570bd27ea7a1c9d28", 1646928791662, 0.45003, [1.6824e-07], [1.725e-07], [1.685e-07], [1.7062e-07], [64455], [10]], "benchmarks.ColorSuite.time_downgrade_to_windows": [[1.718668772833788e-07], [], "373eb97dd7ce2823e080972249235f528e8b3a47210911981cf432ecf0eef5fb", 1646928791887, 0.44284, [1.6938e-07], [1.7492e-07], [1.7058e-07], [1.728e-07], [64741], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_eight_bit": [[1.741799941720092e-07], [], "716ff06a471a5d90af3730f6d4470eba3577432d781e0210dff1fd156b8c549c", 1646928792113, 0.42647, [1.7288e-07], [1.7543e-07], [1.735e-07], [1.7487e-07], [58313], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_standard": [[1.7065924860881734e-07], [], "3a752a7884e99e095c31b2a28cfefdf916cb2033c06afae1ea146a72f3ba650c", 1646928792325, 0.45101, [1.6917e-07], [1.7312e-07], [1.6989e-07], [1.7253e-07], [64145], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_windows": [[1.7367138249440384e-07], [], "1732bbd18ada49eb7b054fc18b40d6acfb533023463366f37203dab6fbb0cc20", 1646928792551, 0.42737, [1.7333e-07], [1.7426e-07], [1.7359e-07], [1.7383e-07], [58416], [10]], "benchmarks.PrettySuite.time_pretty": [[0.002228712401119992], [], "9bb0e6d8a29aad21b3d1b550a160fa5f1e9030c69d16bad500c0dcc77bff6d01", 1646928792763, 0.44, [0.0022051], [0.0022493], [0.0022103], [0.0022462], [5], [10]], "benchmarks.PrettySuite.time_pretty_indent_guides": [null, [], "8d71bf19dfe999b0fba95d009986bfd6911c53c7a0c455466725f553005c3bc7", 1646928787372, 0.05935], "benchmarks.PrettySuite.time_pretty_justify_center": [null, [], "54cbf71bacab14ccbe1d063847c0b89198ed1bbe06edc89c14d2e3c7b1986c41", 1646928787431, 0.058882], "benchmarks.StyleSuite.time_parse_ansi": [[1.1642484415812025e-07], [], "a003aaa8017585efeb1cd9c43351282df4df6249bf28a4c447b1304d984aa753", 1646928792979, 0.44304, [1.1595e-07], [1.1701e-07], [1.1626e-07], [1.1688e-07], [96473], [10]], "benchmarks.StyleSuite.time_parse_hex": [[1.1618160435974029e-07], [], "cf5a3f0def435d3da5bc3a6e7549c44c0a02e9cce6c00ecde8dd7f527556f8ca", 1646928793196, 0.42542, [1.1589e-07], [1.1639e-07], [1.1607e-07], [1.1631e-07], [87575], [10]], "benchmarks.StyleSuite.time_parse_mixed_complex_style": [[1.1601246714630609e-07], [], "01c9e12ae829b1984e55a5aeef1a9ae6f1461577adaf5ae59f06358c8b52802f", 1646928793408, 0.43079, [1.1548e-07], [1.1651e-07], [1.1576e-07], [1.1625e-07], [96052], [10]], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_heavy_wrapping": [null, [], "1ed4d74ea424990cfb40c96f07635f9bcf7b8bacc7ade5204aaf96363e1622ee", 1646928788146, 0.064197], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_medium_wrapping": [null, [], "0880e162a4907ee025cef8ac3380502554fde27fd0c90a4c15cebc9c27f3e333", 1646928788210, 0.061157], "benchmarks.SyntaxWrappingSuite.time_text_wide_terminal_no_wrapping": [null, [], "feb11e94ae6a75de2dee899fb93db098b55cde232710660d7d66f9e2b288d9c0", 1646928788271, 0.060177], "benchmarks.TableSuite.time_table_heavy_wrapping": [[0.002149124999414198], [], "ca515a9739c1e0f8eb922420f9f9caf27321fb13c8bd0bc49b207a0588b370de", 1646928793624, 0.44144, [0.0021426], [0.0021548], [0.0021465], [0.0021511], [5], [10]], "benchmarks.TableSuite.time_table_no_wrapping": [[0.0014850386443348335], [], "8842a5f141d8208ba2bab66e4973e978cb5d0615f326af5d70385ff8fa44b3b9", 1646928793847, 0.43148, [0.0014663], [0.0015021], [0.0014691], [0.0015009], [7], [10]], "benchmarks.TextSuite.time_align_center": [[0.0006758190311302315], [], "1ceeeef2de43fcb3d0dfec409972d8f0eb791e9615fa9f9c959e0423725b089b", 1646928794067, 0.43666, [0.00067329], [0.00067763], [0.00067488], [0.00067693], [16], [10]], "benchmarks.TextSuite.time_align_center_unicode_heavy": [[0.0005571765259925374], [], "a83ff79614dd2ae17e8b68f45981fcaa0d9833c59a7a14f171b896cf970f54ce", 1646928794287, 0.4416, [0.0005541], [0.00056586], [0.00055588], [0.00056347], [19], [10]], "benchmarks.TextSuite.time_divide": [[2.8368723374646302e-05], [], "dcc120b921cb2ec77632f8fe2f6f4150d479cb49ef2608f8e86b569a937756e9", 1646928794506, 0.44804, [2.8251e-05], [2.8635e-05], [2.8266e-05], [2.8468e-05], [385], [10]], "benchmarks.TextSuite.time_divide_unicode_heavy": [[0.00018895545684339093], [], "ea53e662c0553324f90ac3336dcee77f733bb33638888e1f84bf71945a2f3f8e", 1646928794731, 0.43705, [0.00018618], [0.00019059], [0.00018704], [0.00019034], [58], [10]], "benchmarks.TextSuite.time_fit": [[4.2167335354075975e-05], [], "ec77b412db357b1e1c1e7bc620b941dddfc36dc76d2a66a0417feae4f21fe1d3", 1646928794953, 0.43757, [4.196e-05], [4.2288e-05], [4.2114e-05], [4.2238e-05], [249], [10]], "benchmarks.TextSuite.time_fit_unicode_heavy": [[0.0003304905802642386], [], "d1574b4af2ef8b80b95b4dbeeb13e5de67b66783f76f9968834776239dd0dc66", 1646928795171, 0.42855, [0.00032949], [0.00033101], [0.00033005], [0.00033082], [31], [10]], "benchmarks.TextSuite.time_indent_guides": [null, [], "18da036dcfc15ec5e3c11e72be7c8f0c22fba695a5f19c95836be36952376cf2", 1646928790076, 0.059104], "benchmarks.TextSuite.time_render": [[4.6839064024984716e-06], [], "907d30581cfdc7bb2c4d302b7e3cb474aaefd8b84821365fe105af7d82be3b09", 1646928795384, 0.43598, [4.6644e-06], [4.7044e-06], [4.6657e-06], [4.6875e-06], [2313], [10]], "benchmarks.TextSuite.time_render_unicode_heavy": [[8.61083985910227e-05], [], "b3f1c09dfd06f412a20dacfe378c3b446727c7d4f9a975336eab3daa8543e1cb", 1646928795606, 0.44712, [8.496e-05], [8.687e-05], [8.5796e-05], [8.6759e-05], [128], [10]], "benchmarks.TextSuite.time_split": [[3.3972478264562766e-05], [], "9c165854130cb95fea5491ffcd8b580a5bd373149da2ef8aace0e9480f649854", 1646928795832, 0.42753, [3.363e-05], [3.4464e-05], [3.3653e-05], [3.4306e-05], [299], [10]], "benchmarks.TextSuite.time_split_unicode_heavy": [[0.0002844459459821165], [], "d55b02f6d06f478d70635bac3409f3a9899137d9cee87a70a293b8ccf5a6afa4", 1646928796043, 0.43604, [0.00028389], [0.00028542], [0.00028433], [0.0002849], [37], [10]], "benchmarks.TextSuite.time_wrapping": [[0.0011586804984189156], [], "8c821eba13d043f228fd902d8f678c397741855db05d02abe9b82f3d65cdf03d", 1646928796260, 0.43906, [0.0011456], [0.0011665], [0.0011465], [0.001166], [9], [10]], "benchmarks.TextSuite.time_wrapping_unicode_heavy": [[0.001550122002039903], [], "ec6e2ef08b6cdee182fef4e26c0043f8c365984f9a31be07dbd792e1aed862d8", 1646928796480, 0.44303, [0.0015462], [0.001553], [0.0015496], [0.001552], [7], [10]]}, "durations": {"": 1.9766087532043457}, "version": 2} diff --git a/benchmarks/results/darrenburns-2022-mbp/e34eadb3-virtualenv-py3.10.json b/benchmarks/results/darrenburns-2022-mbp/e34eadb3-virtualenv-py3.10.json new file mode 100644 index 0000000000..882eccb15c --- /dev/null +++ b/benchmarks/results/darrenburns-2022-mbp/e34eadb3-virtualenv-py3.10.json @@ -0,0 +1 @@ +{"commit_hash": "e34eadb3a9354c2469fa2112400ce2690f2663ba", "env_name": "virtualenv-py3.10", "date": 1617443480000, "params": {"arch": "arm64", "cpu": "Apple M1 Pro", "machine": "darrenburns-2022-mbp", "num_cpu": "10", "os": "Darwin 21.2.0", "ram": "17179869184", "python": "3.10"}, "python": "3.10", "requirements": {}, "env_vars": {}, "result_columns": ["result", "params", "version", "started_at", "duration", "stats_ci_99_a", "stats_ci_99_b", "stats_q_25", "stats_q_75", "stats_number", "stats_repeat", "samples", "profile"], "results": {"benchmarks.ColorSuite.time_downgrade_to_eight_bit": [[1.696712790099806e-07], [], "019b972f782c6291df9a6a4dea9bb3c6268a69b177e71383d6e19a608e84920d", 1646928144840, 0.45463, [1.6843e-07], [1.7049e-07], [1.6953e-07], [1.6998e-07], [64103], [10]], "benchmarks.ColorSuite.time_downgrade_to_standard": [[1.7027267398097965e-07], [], "f5e8556491c977450fff6ebfd9fff4fc8f12d74829aa5b8570bd27ea7a1c9d28", 1646928145066, 0.45781, [1.6987e-07], [1.7109e-07], [1.6993e-07], [1.706e-07], [64678], [10]], "benchmarks.ColorSuite.time_downgrade_to_windows": [[1.7049283188862985e-07], [], "373eb97dd7ce2823e080972249235f528e8b3a47210911981cf432ecf0eef5fb", 1646928145295, 0.44791, [1.6919e-07], [1.708e-07], [1.6948e-07], [1.7059e-07], [64452], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_eight_bit": [[1.705121943921845e-07], [], "716ff06a471a5d90af3730f6d4470eba3577432d781e0210dff1fd156b8c549c", 1646928145524, 0.45681, [1.6982e-07], [1.7131e-07], [1.7027e-07], [1.7101e-07], [64496], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_standard": [[1.702775916823948e-07], [], "3a752a7884e99e095c31b2a28cfefdf916cb2033c06afae1ea146a72f3ba650c", 1646928145754, 0.45544, [1.6886e-07], [1.7083e-07], [1.7001e-07], [1.7047e-07], [64186], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_windows": [[1.6998984571588156e-07], [], "1732bbd18ada49eb7b054fc18b40d6acfb533023463366f37203dab6fbb0cc20", 1646928145981, 0.45874, [1.6864e-07], [1.7059e-07], [1.6966e-07], [1.7014e-07], [64553], [10]], "benchmarks.PrettySuite.time_pretty": [[0.001011210400611162], [], "9bb0e6d8a29aad21b3d1b550a160fa5f1e9030c69d16bad500c0dcc77bff6d01", 1646928146210, 0.43803, [0.001009], [0.0010129], [0.0010103], [0.0010116], [10], [10]], "benchmarks.PrettySuite.time_pretty_indent_guides": [[0.0014061588135518832], [], "8d71bf19dfe999b0fba95d009986bfd6911c53c7a0c455466725f553005c3bc7", 1646928146428, 0.44757, [0.0014009], [0.0014131], [0.0014045], [0.0014091], [8], [10]], "benchmarks.PrettySuite.time_pretty_justify_center": [[0.0014056692507438129], [], "54cbf71bacab14ccbe1d063847c0b89198ed1bbe06edc89c14d2e3c7b1986c41", 1646928146651, 0.44633, [0.0014033], [0.0014173], [0.0014049], [0.0014074], [8], [10]], "benchmarks.StyleSuite.time_parse_ansi": [[1.1435738375325794e-07], [], "a003aaa8017585efeb1cd9c43351282df4df6249bf28a4c447b1304d984aa753", 1646928146873, 0.4552, [1.1406e-07], [1.1462e-07], [1.142e-07], [1.1449e-07], [96076], [10]], "benchmarks.StyleSuite.time_parse_hex": [[1.1418502917649992e-07], [], "cf5a3f0def435d3da5bc3a6e7549c44c0a02e9cce6c00ecde8dd7f527556f8ca", 1646928147101, 0.4558, [1.1393e-07], [1.1441e-07], [1.1408e-07], [1.1423e-07], [95693], [10]], "benchmarks.StyleSuite.time_parse_mixed_complex_style": [[1.1394088208804275e-07], [], "01c9e12ae829b1984e55a5aeef1a9ae6f1461577adaf5ae59f06358c8b52802f", 1646928147330, 0.45397, [1.1368e-07], [1.1425e-07], [1.1384e-07], [1.1411e-07], [95986], [10]], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_heavy_wrapping": [null, [], "1ed4d74ea424990cfb40c96f07635f9bcf7b8bacc7ade5204aaf96363e1622ee", 1646928141354, 0.062237], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_medium_wrapping": [null, [], "0880e162a4907ee025cef8ac3380502554fde27fd0c90a4c15cebc9c27f3e333", 1646928141416, 0.061926], "benchmarks.SyntaxWrappingSuite.time_text_wide_terminal_no_wrapping": [null, [], "feb11e94ae6a75de2dee899fb93db098b55cde232710660d7d66f9e2b288d9c0", 1646928141478, 0.061969], "benchmarks.TableSuite.time_table_heavy_wrapping": [[0.002072625001892448], [], "ca515a9739c1e0f8eb922420f9f9caf27321fb13c8bd0bc49b207a0588b370de", 1646928147558, 0.43503, [0.0020589], [0.0020926], [0.0020642], [0.0020782], [5], [10]], "benchmarks.TableSuite.time_table_no_wrapping": [[0.0012561796866066288], [], "8842a5f141d8208ba2bab66e4973e978cb5d0615f326af5d70385ff8fa44b3b9", 1646928147779, 0.43518, [0.0012465], [0.0012609], [0.0012487], [0.0012601], [8], [10]], "benchmarks.TextSuite.time_align_center": [[0.0006597473739020643], [], "1ceeeef2de43fcb3d0dfec409972d8f0eb791e9615fa9f9c959e0423725b089b", 1646928147995, 0.43776, [0.00065713], [0.00066447], [0.00065827], [0.00066178], [16], [10]], "benchmarks.TextSuite.time_align_center_unicode_heavy": [[0.0005476217101156515], [], "a83ff79614dd2ae17e8b68f45981fcaa0d9833c59a7a14f171b896cf970f54ce", 1646928148216, 0.43322, [0.00054434], [0.00055494], [0.0005472], [0.00054804], [19], [10]], "benchmarks.TextSuite.time_divide": [[2.5546180958848535e-05], [], "dcc120b921cb2ec77632f8fe2f6f4150d479cb49ef2608f8e86b569a937756e9", 1646928148434, 0.44931, [2.5203e-05], [2.5867e-05], [2.5285e-05], [2.5816e-05], [420], [10]], "benchmarks.TextSuite.time_divide_unicode_heavy": [[0.00018499138793137308], [], "ea53e662c0553324f90ac3336dcee77f733bb33638888e1f84bf71945a2f3f8e", 1646928148656, 0.44848, [0.00018347], [0.00018566], [0.00018476], [0.00018512], [58], [10]], "benchmarks.TextSuite.time_fit": [[4.3639797973921715e-05], [], "ec77b412db357b1e1c1e7bc620b941dddfc36dc76d2a66a0417feae4f21fe1d3", 1646928148881, 0.44002, [4.3581e-05], [4.3722e-05], [4.3606e-05], [4.3684e-05], [245], [10]], "benchmarks.TextSuite.time_fit_unicode_heavy": [[0.0003260978635146537], [], "d1574b4af2ef8b80b95b4dbeeb13e5de67b66783f76f9968834776239dd0dc66", 1646928149104, 0.45085, [0.00032518], [0.00032767], [0.00032528], [0.00032741], [33], [10]], "benchmarks.TextSuite.time_indent_guides": [[0.000359940362174931], [], "18da036dcfc15ec5e3c11e72be7c8f0c22fba695a5f19c95836be36952376cf2", 1646928149329, 0.44151, [0.00035865], [0.00036075], [0.00035891], [0.00036044], [29], [10]], "benchmarks.TextSuite.time_render": [[4.6775250730475595e-06], [], "907d30581cfdc7bb2c4d302b7e3cb474aaefd8b84821365fe105af7d82be3b09", 1646928149549, 0.44493, [4.6489e-06], [4.7241e-06], [4.65e-06], [4.7058e-06], [2333], [10]], "benchmarks.TextSuite.time_render_unicode_heavy": [[8.522135544808407e-05], [], "b3f1c09dfd06f412a20dacfe378c3b446727c7d4f9a975336eab3daa8543e1cb", 1646928149775, 0.45028, [8.4664e-05], [8.5461e-05], [8.501e-05], [8.5415e-05], [128], [10]], "benchmarks.TextSuite.time_split": [[3.5257034106542926e-05], [], "9c165854130cb95fea5491ffcd8b580a5bd373149da2ef8aace0e9480f649854", 1646928150002, 0.44363, [3.518e-05], [3.5338e-05], [3.5206e-05], [3.5272e-05], [308], [10]], "benchmarks.TextSuite.time_split_unicode_heavy": [[0.0002739347630842148], [], "d55b02f6d06f478d70635bac3409f3a9899137d9cee87a70a293b8ccf5a6afa4", 1646928150228, 0.43988, [0.00027353], [0.0002753], [0.0002737], [0.00027438], [38], [10]], "benchmarks.TextSuite.time_wrapping": [[0.0010990895490976982], [], "8c821eba13d043f228fd902d8f678c397741855db05d02abe9b82f3d65cdf03d", 1646928150448, 0.44813, [0.001093], [0.0011074], [0.0010948], [0.0011054], [10], [10]], "benchmarks.TextSuite.time_wrapping_unicode_heavy": [[0.0014903362836256357], [], "ec6e2ef08b6cdee182fef4e26c0043f8c365984f9a31be07dbd792e1aed862d8", 1646928150676, 0.4363, [0.0014875], [0.0014996], [0.0014885], [0.0014932], [7], [10]]}, "durations": {"": 1.9847049713134766}, "version": 2} diff --git a/benchmarks/results/darrenburns-2022-mbp/e5246436-virtualenv-py3.10.json b/benchmarks/results/darrenburns-2022-mbp/e5246436-virtualenv-py3.10.json new file mode 100644 index 0000000000..8cb2804955 --- /dev/null +++ b/benchmarks/results/darrenburns-2022-mbp/e5246436-virtualenv-py3.10.json @@ -0,0 +1 @@ +{"commit_hash": "e5246436cd75de32f3436cc88d6e4fdebe13bd8d", "env_name": "virtualenv-py3.10", "date": 1624045427000, "params": {"arch": "arm64", "cpu": "Apple M1 Pro", "machine": "darrenburns-2022-mbp", "num_cpu": "10", "os": "Darwin 21.2.0", "ram": "17179869184", "python": "3.10"}, "python": "3.10", "requirements": {}, "env_vars": {}, "result_columns": ["result", "params", "version", "started_at", "duration", "stats_ci_99_a", "stats_ci_99_b", "stats_q_25", "stats_q_75", "stats_number", "stats_repeat", "samples", "profile"], "results": {"benchmarks.ColorSuite.time_downgrade_to_eight_bit": [[1.7121876383992076e-07], [], "019b972f782c6291df9a6a4dea9bb3c6268a69b177e71383d6e19a608e84920d", 1646928375942, 0.45699, [1.6972e-07], [1.7385e-07], [1.7045e-07], [1.7316e-07], [64549], [10]], "benchmarks.ColorSuite.time_downgrade_to_standard": [[1.7140758442246742e-07], [], "f5e8556491c977450fff6ebfd9fff4fc8f12d74829aa5b8570bd27ea7a1c9d28", 1646928376173, 0.45585, [1.6994e-07], [1.7409e-07], [1.7087e-07], [1.7208e-07], [63604], [10]], "benchmarks.ColorSuite.time_downgrade_to_windows": [[1.7555230280790102e-07], [], "373eb97dd7ce2823e080972249235f528e8b3a47210911981cf432ecf0eef5fb", 1646928376400, 0.45414, [1.7091e-07], [1.7958e-07], [1.7178e-07], [1.7913e-07], [64050], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_eight_bit": [[1.7444178637067224e-07], [], "716ff06a471a5d90af3730f6d4470eba3577432d781e0210dff1fd156b8c549c", 1646928376625, 0.44307, [1.6957e-07], [1.7989e-07], [1.7037e-07], [1.7971e-07], [57684], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_standard": [[1.7027203980746368e-07], [], "3a752a7884e99e095c31b2a28cfefdf916cb2033c06afae1ea146a72f3ba650c", 1646928376846, 0.43123, [1.692e-07], [1.7118e-07], [1.7021e-07], [1.7061e-07], [59142], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_windows": [[1.7416664249620003e-07], [], "1732bbd18ada49eb7b054fc18b40d6acfb533023463366f37203dab6fbb0cc20", 1646928377060, 0.44769, [1.7065e-07], [1.7953e-07], [1.7095e-07], [1.7918e-07], [61578], [10]], "benchmarks.PrettySuite.time_pretty": [[0.0010265853998134844], [], "9bb0e6d8a29aad21b3d1b550a160fa5f1e9030c69d16bad500c0dcc77bff6d01", 1646928377284, 0.44568, [0.0010241], [0.0010299], [0.0010264], [0.0010274], [10], [10]], "benchmarks.PrettySuite.time_pretty_indent_guides": [[0.0014202526235749247], [], "8d71bf19dfe999b0fba95d009986bfd6911c53c7a0c455466725f553005c3bc7", 1646928377506, 0.45577, [0.0014176], [0.001425], [0.0014186], [0.0014223], [8], [10]], "benchmarks.PrettySuite.time_pretty_justify_center": [[0.0012978619397472357], [], "54cbf71bacab14ccbe1d063847c0b89198ed1bbe06edc89c14d2e3c7b1986c41", 1646928377732, 0.44848, [0.0012918], [0.0013056], [0.0012969], [0.0012993], [8], [10]], "benchmarks.StyleSuite.time_parse_ansi": [[1.1537922092642804e-07], [], "a003aaa8017585efeb1cd9c43351282df4df6249bf28a4c447b1304d984aa753", 1646928377956, 0.45884, [1.1374e-07], [1.1682e-07], [1.141e-07], [1.1658e-07], [95596], [10]], "benchmarks.StyleSuite.time_parse_hex": [[1.1562117250055742e-07], [], "cf5a3f0def435d3da5bc3a6e7549c44c0a02e9cce6c00ecde8dd7f527556f8ca", 1646928378185, 0.45754, [1.1431e-07], [1.1604e-07], [1.1445e-07], [1.1595e-07], [94939], [10]], "benchmarks.StyleSuite.time_parse_mixed_complex_style": [[1.1666161339593778e-07], [], "01c9e12ae829b1984e55a5aeef1a9ae6f1461577adaf5ae59f06358c8b52802f", 1646928378414, 0.44748, [1.1392e-07], [1.1803e-07], [1.1428e-07], [1.177e-07], [96409], [10]], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_heavy_wrapping": [null, [], "1ed4d74ea424990cfb40c96f07635f9bcf7b8bacc7ade5204aaf96363e1622ee", 1646928372422, 0.063342], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_medium_wrapping": [null, [], "0880e162a4907ee025cef8ac3380502554fde27fd0c90a4c15cebc9c27f3e333", 1646928372485, 0.063096], "benchmarks.SyntaxWrappingSuite.time_text_wide_terminal_no_wrapping": [null, [], "feb11e94ae6a75de2dee899fb93db098b55cde232710660d7d66f9e2b288d9c0", 1646928372549, 0.062772], "benchmarks.TableSuite.time_table_heavy_wrapping": [[0.0021321667009033263], [], "ca515a9739c1e0f8eb922420f9f9caf27321fb13c8bd0bc49b207a0588b370de", 1646928378638, 0.44575, [0.0021211], [0.0021441], [0.0021242], [0.0021377], [5], [10]], "benchmarks.TableSuite.time_table_no_wrapping": [[0.0012759244382323232], [], "8842a5f141d8208ba2bab66e4973e978cb5d0615f326af5d70385ff8fa44b3b9", 1646928378864, 0.44247, [0.0012695], [0.001283], [0.0012729], [0.0012805], [8], [10]], "benchmarks.TextSuite.time_align_center": [[0.00037540624959677056], [], "1ceeeef2de43fcb3d0dfec409972d8f0eb791e9615fa9f9c959e0423725b089b", 1646928379084, 0.4371, [0.00037151], [0.00038821], [0.00037181], [0.00038666], [28], [10]], "benchmarks.TextSuite.time_align_center_unicode_heavy": [[0.00034207595144248297], [], "a83ff79614dd2ae17e8b68f45981fcaa0d9833c59a7a14f171b896cf970f54ce", 1646928379304, 0.44882, [0.00034136], [0.00035348], [0.00034155], [0.0003426], [31], [10]], "benchmarks.TextSuite.time_divide": [[2.536586947665313e-05], [], "dcc120b921cb2ec77632f8fe2f6f4150d479cb49ef2608f8e86b569a937756e9", 1646928379528, 0.45538, [2.5203e-05], [2.5458e-05], [2.5243e-05], [2.5434e-05], [429], [10]], "benchmarks.TextSuite.time_divide_unicode_heavy": [[0.0001846677410428348], [], "ea53e662c0553324f90ac3336dcee77f733bb33638888e1f84bf71945a2f3f8e", 1646928379755, 0.44978, [0.00018411], [0.00018508], [0.00018436], [0.00018488], [58], [10]], "benchmarks.TextSuite.time_fit": [[4.364762043019719e-05], [], "ec77b412db357b1e1c1e7bc620b941dddfc36dc76d2a66a0417feae4f21fe1d3", 1646928379980, 0.44107, [4.3402e-05], [4.3756e-05], [4.3483e-05], [4.3667e-05], [245], [10]], "benchmarks.TextSuite.time_fit_unicode_heavy": [[0.00032506787101738155], [], "d1574b4af2ef8b80b95b4dbeeb13e5de67b66783f76f9968834776239dd0dc66", 1646928380204, 0.43222, [0.00032414], [0.00032574], [0.00032463], [0.00032542], [31], [10]], "benchmarks.TextSuite.time_indent_guides": [[0.0003573304651393395], [], "18da036dcfc15ec5e3c11e72be7c8f0c22fba695a5f19c95836be36952376cf2", 1646928380419, 0.4409, [0.00035635], [0.00035834], [0.00035689], [0.00035791], [29], [10]], "benchmarks.TextSuite.time_render": [[4.691495508280876e-06], [], "907d30581cfdc7bb2c4d302b7e3cb474aaefd8b84821365fe105af7d82be3b09", 1646928380638, 0.44744, [4.6776e-06], [4.7016e-06], [4.6895e-06], [4.6965e-06], [2336], [10]], "benchmarks.TextSuite.time_render_unicode_heavy": [[8.530924219485314e-05], [], "b3f1c09dfd06f412a20dacfe378c3b446727c7d4f9a975336eab3daa8543e1cb", 1646928380866, 0.45274, [8.4673e-05], [8.5853e-05], [8.5133e-05], [8.567e-05], [128], [10]], "benchmarks.TextSuite.time_split": [[3.5445277587444117e-05], [], "9c165854130cb95fea5491ffcd8b580a5bd373149da2ef8aace0e9480f649854", 1646928381094, 0.44686, [3.5215e-05], [3.5504e-05], [3.5315e-05], [3.5482e-05], [308], [10]], "benchmarks.TextSuite.time_split_unicode_heavy": [[0.00027470559220283146], [], "d55b02f6d06f478d70635bac3409f3a9899137d9cee87a70a293b8ccf5a6afa4", 1646928381321, 0.44608, [0.00027409], [0.00027789], [0.00027428], [0.00027512], [38], [10]], "benchmarks.TextSuite.time_wrapping": [[0.0010961708016111516], [], "8c821eba13d043f228fd902d8f678c397741855db05d02abe9b82f3d65cdf03d", 1646928381543, 0.45057, [0.0010949], [0.0011069], [0.0010956], [0.0010981], [10], [10]], "benchmarks.TextSuite.time_wrapping_unicode_heavy": [[0.001370231688269996], [], "ec6e2ef08b6cdee182fef4e26c0043f8c365984f9a31be07dbd792e1aed862d8", 1646928381771, 0.44155, [0.0013624], [0.0013824], [0.0013637], [0.0013763], [8], [10]]}, "durations": {"": 1.9848251342773438}, "version": 2} diff --git a/benchmarks/results/darrenburns-2022-mbp/e7849495-virtualenv-py3.10.json b/benchmarks/results/darrenburns-2022-mbp/e7849495-virtualenv-py3.10.json new file mode 100644 index 0000000000..a569bcb376 --- /dev/null +++ b/benchmarks/results/darrenburns-2022-mbp/e7849495-virtualenv-py3.10.json @@ -0,0 +1 @@ +{"commit_hash": "e7849495bba31d9320e17c23f24d50f6e3447486", "env_name": "virtualenv-py3.10", "date": 1595520125000, "params": {"arch": "arm64", "cpu": "Apple M1 Pro", "machine": "darrenburns-2022-mbp", "num_cpu": "10", "os": "Darwin 21.2.0", "ram": "17179869184", "python": "3.10"}, "python": "3.10", "requirements": {}, "env_vars": {}, "result_columns": ["result", "params", "version", "started_at", "duration", "stats_ci_99_a", "stats_ci_99_b", "stats_q_25", "stats_q_75", "stats_number", "stats_repeat", "samples", "profile"], "results": {"benchmarks.ColorSuite.time_downgrade_to_eight_bit": [[1.7148217870415353e-07], [], "019b972f782c6291df9a6a4dea9bb3c6268a69b177e71383d6e19a608e84920d", 1646928752792, 0.444, [1.6818e-07], [1.7513e-07], [1.7023e-07], [1.7386e-07], [64557], [10]], "benchmarks.ColorSuite.time_downgrade_to_standard": [[1.717760784730424e-07], [], "f5e8556491c977450fff6ebfd9fff4fc8f12d74829aa5b8570bd27ea7a1c9d28", 1646928753009, 0.44202, [1.6824e-07], [1.7425e-07], [1.6944e-07], [1.7385e-07], [64440], [10]], "benchmarks.ColorSuite.time_downgrade_to_windows": [[1.7394742863716818e-07], [], "373eb97dd7ce2823e080972249235f528e8b3a47210911981cf432ecf0eef5fb", 1646928753226, 0.42645, [1.7242e-07], [1.7453e-07], [1.7311e-07], [1.7422e-07], [58682], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_eight_bit": [[1.738570892575407e-07], [], "716ff06a471a5d90af3730f6d4470eba3577432d781e0210dff1fd156b8c549c", 1646928753437, 0.42594, [1.7302e-07], [1.7498e-07], [1.7372e-07], [1.7442e-07], [58498], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_standard": [[1.7395242587634876e-07], [], "3a752a7884e99e095c31b2a28cfefdf916cb2033c06afae1ea146a72f3ba650c", 1646928753649, 0.42775, [1.7351e-07], [1.7469e-07], [1.7381e-07], [1.7399e-07], [58456], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_windows": [[1.7219868784628356e-07], [], "1732bbd18ada49eb7b054fc18b40d6acfb533023463366f37203dab6fbb0cc20", 1646928753860, 0.43147, [1.7117e-07], [1.7401e-07], [1.7132e-07], [1.7295e-07], [58602], [10]], "benchmarks.PrettySuite.time_pretty": [[0.002241970898467116], [], "9bb0e6d8a29aad21b3d1b550a160fa5f1e9030c69d16bad500c0dcc77bff6d01", 1646928754071, 0.44207, [0.0022266], [0.0022534], [0.0022288], [0.0022469], [5], [10]], "benchmarks.PrettySuite.time_pretty_indent_guides": [null, [], "8d71bf19dfe999b0fba95d009986bfd6911c53c7a0c455466725f553005c3bc7", 1646928748754, 0.058708], "benchmarks.PrettySuite.time_pretty_justify_center": [null, [], "54cbf71bacab14ccbe1d063847c0b89198ed1bbe06edc89c14d2e3c7b1986c41", 1646928748813, 0.058418], "benchmarks.StyleSuite.time_parse_ansi": [[1.1589902303258713e-07], [], "a003aaa8017585efeb1cd9c43351282df4df6249bf28a4c447b1304d984aa753", 1646928754290, 0.42601, [1.1557e-07], [1.1612e-07], [1.158e-07], [1.1592e-07], [87921], [10]], "benchmarks.StyleSuite.time_parse_hex": [[1.1435150056040357e-07], [], "cf5a3f0def435d3da5bc3a6e7549c44c0a02e9cce6c00ecde8dd7f527556f8ca", 1646928754503, 0.44939, [1.1368e-07], [1.1473e-07], [1.1404e-07], [1.1441e-07], [96199], [10]], "benchmarks.StyleSuite.time_parse_mixed_complex_style": [[1.151733038312782e-07], [], "01c9e12ae829b1984e55a5aeef1a9ae6f1461577adaf5ae59f06358c8b52802f", 1646928754728, 0.44075, [1.1392e-07], [1.1708e-07], [1.1418e-07], [1.163e-07], [96703], [10]], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_heavy_wrapping": [null, [], "1ed4d74ea424990cfb40c96f07635f9bcf7b8bacc7ade5204aaf96363e1622ee", 1646928749526, 0.058835], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_medium_wrapping": [null, [], "0880e162a4907ee025cef8ac3380502554fde27fd0c90a4c15cebc9c27f3e333", 1646928749585, 0.058365], "benchmarks.SyntaxWrappingSuite.time_text_wide_terminal_no_wrapping": [null, [], "feb11e94ae6a75de2dee899fb93db098b55cde232710660d7d66f9e2b288d9c0", 1646928749643, 0.058179], "benchmarks.TableSuite.time_table_heavy_wrapping": [[0.002147645902005024], [], "ca515a9739c1e0f8eb922420f9f9caf27321fb13c8bd0bc49b207a0588b370de", 1646928754953, 0.44036, [0.0021381], [0.0021603], [0.0021456], [0.0021526], [5], [10]], "benchmarks.TableSuite.time_table_no_wrapping": [[0.001480997001635842], [], "8842a5f141d8208ba2bab66e4973e978cb5d0615f326af5d70385ff8fa44b3b9", 1646928755177, 0.4327, [0.0014611], [0.0014968], [0.0014654], [0.0014952], [7], [10]], "benchmarks.TextSuite.time_align_center": [[0.00067317184402782], [], "1ceeeef2de43fcb3d0dfec409972d8f0eb791e9615fa9f9c959e0423725b089b", 1646928755396, 0.43643, [0.00067152], [0.00067656], [0.00067246], [0.00067436], [16], [10]], "benchmarks.TextSuite.time_align_center_unicode_heavy": [[0.0005569835522788038], [], "a83ff79614dd2ae17e8b68f45981fcaa0d9833c59a7a14f171b896cf970f54ce", 1646928755618, 0.4352, [0.00054821], [0.00055829], [0.00055497], [0.00055743], [19], [10]], "benchmarks.TextSuite.time_divide": [[2.814016095545455e-05], [], "dcc120b921cb2ec77632f8fe2f6f4150d479cb49ef2608f8e86b569a937756e9", 1646928755840, 0.44388, [2.7886e-05], [2.8309e-05], [2.7949e-05], [2.8281e-05], [382], [10]], "benchmarks.TextSuite.time_divide_unicode_heavy": [[0.00019082979256296003], [], "ea53e662c0553324f90ac3336dcee77f733bb33638888e1f84bf71945a2f3f8e", 1646928756060, 0.42581, [0.00018821], [0.00019268], [0.00018988], [0.00019128], [53], [10]], "benchmarks.TextSuite.time_fit": [[4.294921291513316e-05], [], "ec77b412db357b1e1c1e7bc620b941dddfc36dc76d2a66a0417feae4f21fe1d3", 1646928756273, 0.43253, [4.2466e-05], [4.3271e-05], [4.2744e-05], [4.2999e-05], [249], [10]], "benchmarks.TextSuite.time_fit_unicode_heavy": [[0.0003302567258229359], [], "d1574b4af2ef8b80b95b4dbeeb13e5de67b66783f76f9968834776239dd0dc66", 1646928756493, 0.43148, [0.00032924], [0.00033487], [0.00032959], [0.0003326], [31], [10]], "benchmarks.TextSuite.time_indent_guides": [null, [], "18da036dcfc15ec5e3c11e72be7c8f0c22fba695a5f19c95836be36952376cf2", 1646928751425, 0.059965], "benchmarks.TextSuite.time_render": [[4.696148469404577e-06], [], "907d30581cfdc7bb2c4d302b7e3cb474aaefd8b84821365fe105af7d82be3b09", 1646928756710, 0.44171, [4.6716e-06], [4.7853e-06], [4.6868e-06], [4.7318e-06], [2327], [10]], "benchmarks.TextSuite.time_render_unicode_heavy": [[8.574868889257869e-05], [], "b3f1c09dfd06f412a20dacfe378c3b446727c7d4f9a975336eab3daa8543e1cb", 1646928756935, 0.44548, [8.4753e-05], [8.8755e-05], [8.5435e-05], [8.6309e-05], [127], [10]], "benchmarks.TextSuite.time_split": [[3.4033222558314095e-05], [], "9c165854130cb95fea5491ffcd8b580a5bd373149da2ef8aace0e9480f649854", 1646928757160, 0.43487, [3.3872e-05], [3.4551e-05], [3.3902e-05], [3.4423e-05], [301], [10]], "benchmarks.TextSuite.time_split_unicode_heavy": [[0.0002822291756495582], [], "d55b02f6d06f478d70635bac3409f3a9899137d9cee87a70a293b8ccf5a6afa4", 1646928757375, 0.43743, [0.00027952], [0.00028869], [0.00027998], [0.00028449], [37], [10]], "benchmarks.TextSuite.time_wrapping": [[0.0011652338337929298], [], "8c821eba13d043f228fd902d8f678c397741855db05d02abe9b82f3d65cdf03d", 1646928757595, 0.43324, [0.0011616], [0.0011693], [0.001163], [0.001167], [9], [10]], "benchmarks.TextSuite.time_wrapping_unicode_heavy": [[0.0015330178555034634], [], "ec6e2ef08b6cdee182fef4e26c0043f8c365984f9a31be07dbd792e1aed862d8", 1646928757816, 0.44158, [0.0015247], [0.001553], [0.0015261], [0.0015458], [7], [10]]}, "durations": {"": 1.9744257926940918}, "version": 2} diff --git a/benchmarks/results/darrenburns-2022-mbp/e9e72000-virtualenv-py3.10.json b/benchmarks/results/darrenburns-2022-mbp/e9e72000-virtualenv-py3.10.json new file mode 100644 index 0000000000..ec804be10b --- /dev/null +++ b/benchmarks/results/darrenburns-2022-mbp/e9e72000-virtualenv-py3.10.json @@ -0,0 +1 @@ +{"commit_hash": "e9e72000c50f56654c89e119ff882e322e51ecf3", "env_name": "virtualenv-py3.10", "date": 1594757621000, "params": {"arch": "arm64", "cpu": "Apple M1 Pro", "machine": "darrenburns-2022-mbp", "num_cpu": "10", "os": "Darwin 21.2.0", "ram": "17179869184", "python": "3.10"}, "python": "3.10", "requirements": {}, "env_vars": {}, "result_columns": ["result", "params", "version", "started_at", "duration", "stats_ci_99_a", "stats_ci_99_b", "stats_q_25", "stats_q_75", "stats_number", "stats_repeat", "samples", "profile"], "results": {"benchmarks.ColorSuite.time_downgrade_to_eight_bit": [[1.7304169585631847e-07], [], "019b972f782c6291df9a6a4dea9bb3c6268a69b177e71383d6e19a608e84920d", 1646928714152, 0.42423, [1.7196e-07], [1.7392e-07], [1.7257e-07], [1.7341e-07], [58699], [10]], "benchmarks.ColorSuite.time_downgrade_to_standard": [[1.7125368267902652e-07], [], "f5e8556491c977450fff6ebfd9fff4fc8f12d74829aa5b8570bd27ea7a1c9d28", 1646928714363, 0.43145, [1.6882e-07], [1.735e-07], [1.6998e-07], [1.7302e-07], [58721], [10]], "benchmarks.ColorSuite.time_downgrade_to_windows": [[1.7101817868163705e-07], [], "373eb97dd7ce2823e080972249235f528e8b3a47210911981cf432ecf0eef5fb", 1646928714581, 0.43901, [1.6945e-07], [1.7245e-07], [1.705e-07], [1.7123e-07], [64829], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_eight_bit": [[1.732246945458925e-07], [], "716ff06a471a5d90af3730f6d4470eba3577432d781e0210dff1fd156b8c549c", 1646928714805, 0.42978, [1.7229e-07], [1.7422e-07], [1.7291e-07], [1.7373e-07], [57992], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_standard": [[1.717644183078106e-07], [], "3a752a7884e99e095c31b2a28cfefdf916cb2033c06afae1ea146a72f3ba650c", 1646928715023, 0.44824, [1.698e-07], [1.7285e-07], [1.7041e-07], [1.7259e-07], [64432], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_windows": [[1.721922586441147e-07], [], "1732bbd18ada49eb7b054fc18b40d6acfb533023463366f37203dab6fbb0cc20", 1646928715249, 0.42244, [1.6925e-07], [1.7376e-07], [1.7043e-07], [1.7344e-07], [59100], [10]], "benchmarks.PrettySuite.time_pretty": [[0.0021911416988587007], [], "9bb0e6d8a29aad21b3d1b550a160fa5f1e9030c69d16bad500c0dcc77bff6d01", 1646928715461, 0.43276, [0.0021847], [0.0022], [0.002187], [0.0021966], [5], [10]], "benchmarks.PrettySuite.time_pretty_indent_guides": [null, [], "8d71bf19dfe999b0fba95d009986bfd6911c53c7a0c455466725f553005c3bc7", 1646928710109, 0.058049], "benchmarks.PrettySuite.time_pretty_justify_center": [null, [], "54cbf71bacab14ccbe1d063847c0b89198ed1bbe06edc89c14d2e3c7b1986c41", 1646928710168, 0.057828], "benchmarks.StyleSuite.time_parse_ansi": [[1.1611352647949346e-07], [], "a003aaa8017585efeb1cd9c43351282df4df6249bf28a4c447b1304d984aa753", 1646928715675, 0.44343, [1.1562e-07], [1.1813e-07], [1.1588e-07], [1.1706e-07], [93956], [10]], "benchmarks.StyleSuite.time_parse_hex": [[1.1625654809648257e-07], [], "cf5a3f0def435d3da5bc3a6e7549c44c0a02e9cce6c00ecde8dd7f527556f8ca", 1646928715895, 0.4449, [1.1588e-07], [1.1765e-07], [1.1622e-07], [1.1633e-07], [94647], [10]], "benchmarks.StyleSuite.time_parse_mixed_complex_style": [[1.1621984081693307e-07], [], "01c9e12ae829b1984e55a5aeef1a9ae6f1461577adaf5ae59f06358c8b52802f", 1646928716118, 0.4218, [1.1599e-07], [1.1699e-07], [1.1606e-07], [1.1641e-07], [87693], [10]], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_heavy_wrapping": [null, [], "1ed4d74ea424990cfb40c96f07635f9bcf7b8bacc7ade5204aaf96363e1622ee", 1646928710884, 0.057714], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_medium_wrapping": [null, [], "0880e162a4907ee025cef8ac3380502554fde27fd0c90a4c15cebc9c27f3e333", 1646928710941, 0.057198], "benchmarks.SyntaxWrappingSuite.time_text_wide_terminal_no_wrapping": [null, [], "feb11e94ae6a75de2dee899fb93db098b55cde232710660d7d66f9e2b288d9c0", 1646928710999, 0.057344], "benchmarks.TableSuite.time_table_heavy_wrapping": [[0.0021389750036178157], [], "ca515a9739c1e0f8eb922420f9f9caf27321fb13c8bd0bc49b207a0588b370de", 1646928716328, 0.43712, [0.0021263], [0.002152], [0.0021338], [0.0021426], [5], [10]], "benchmarks.TableSuite.time_table_no_wrapping": [[0.001480624998553789], [], "8842a5f141d8208ba2bab66e4973e978cb5d0615f326af5d70385ff8fa44b3b9", 1646928716549, 0.42858, [0.0014654], [0.0015014], [0.0014703], [0.0014919], [7], [10]], "benchmarks.TextSuite.time_align_center": [[0.0006738208331322918], [], "1ceeeef2de43fcb3d0dfec409972d8f0eb791e9615fa9f9c959e0423725b089b", 1646928716766, 0.4257, [0.00067146], [0.00067512], [0.00067242], [0.00067498], [15], [10]], "benchmarks.TextSuite.time_align_center_unicode_heavy": [[0.0005575383938297531], [], "a83ff79614dd2ae17e8b68f45981fcaa0d9833c59a7a14f171b896cf970f54ce", 1646928716976, 0.43998, [0.0005558], [0.00056747], [0.00055683], [0.00055774], [19], [10]], "benchmarks.TextSuite.time_divide": [[2.8062498696319954e-05], [], "dcc120b921cb2ec77632f8fe2f6f4150d479cb49ef2608f8e86b569a937756e9", 1646928717195, 0.43825, [2.7727e-05], [2.8481e-05], [2.7746e-05], [2.8329e-05], [380], [10]], "benchmarks.TextSuite.time_divide_unicode_heavy": [[0.00018722989459587423], [], "ea53e662c0553324f90ac3336dcee77f733bb33638888e1f84bf71945a2f3f8e", 1646928717415, 0.43764, [0.00018621], [0.00018781], [0.000187], [0.00018742], [57], [10]], "benchmarks.TextSuite.time_fit": [[4.257493278079781e-05], [], "ec77b412db357b1e1c1e7bc620b941dddfc36dc76d2a66a0417feae4f21fe1d3", 1646928717633, 0.44288, [4.193e-05], [4.3198e-05], [4.204e-05], [4.3016e-05], [253], [10]], "benchmarks.TextSuite.time_fit_unicode_heavy": [[0.00033001745149733555], [], "d1574b4af2ef8b80b95b4dbeeb13e5de67b66783f76f9968834776239dd0dc66", 1646928717855, 0.42619, [0.00032897], [0.00033136], [0.00032948], [0.00033029], [31], [10]], "benchmarks.TextSuite.time_indent_guides": [null, [], "18da036dcfc15ec5e3c11e72be7c8f0c22fba695a5f19c95836be36952376cf2", 1646928712796, 0.057893], "benchmarks.TextSuite.time_render": [[4.699889219279239e-06], [], "907d30581cfdc7bb2c4d302b7e3cb474aaefd8b84821365fe105af7d82be3b09", 1646928718067, 0.43703, [4.6654e-06], [4.7379e-06], [4.6769e-06], [4.7221e-06], [2329], [10]], "benchmarks.TextSuite.time_render_unicode_heavy": [[8.690103879479435e-05], [], "b3f1c09dfd06f412a20dacfe378c3b446727c7d4f9a975336eab3daa8543e1cb", 1646928718289, 0.42866, [8.6244e-05], [8.7206e-05], [8.6697e-05], [8.7149e-05], [116], [10]], "benchmarks.TextSuite.time_split": [[3.437333175381168e-05], [], "9c165854130cb95fea5491ffcd8b580a5bd373149da2ef8aace0e9480f649854", 1646928718509, 0.44056, [3.4274e-05], [3.4489e-05], [3.4332e-05], [3.4457e-05], [312], [10]], "benchmarks.TextSuite.time_split_unicode_heavy": [[0.00028171171623005256], [], "d55b02f6d06f478d70635bac3409f3a9899137d9cee87a70a293b8ccf5a6afa4", 1646928718728, 0.43094, [0.00027874], [0.00028472], [0.00027907], [0.00028437], [37], [10]], "benchmarks.TextSuite.time_wrapping": [[0.0011581967232309075], [], "8c821eba13d043f228fd902d8f678c397741855db05d02abe9b82f3d65cdf03d", 1646928718944, 0.43562, [0.0011551], [0.0011627], [0.0011563], [0.0011595], [9], [10]], "benchmarks.TextSuite.time_wrapping_unicode_heavy": [[0.0015381249998297009], [], "ec6e2ef08b6cdee182fef4e26c0043f8c365984f9a31be07dbd792e1aed862d8", 1646928719160, 0.43655, [0.0015173], [0.0015526], [0.0015184], [0.0015516], [7], [10]]}, "durations": {"": 1.946124792098999}, "version": 2} diff --git a/benchmarks/results/darrenburns-2022-mbp/ea049ffc-virtualenv-py3.10.json b/benchmarks/results/darrenburns-2022-mbp/ea049ffc-virtualenv-py3.10.json new file mode 100644 index 0000000000..95acb4fce7 --- /dev/null +++ b/benchmarks/results/darrenburns-2022-mbp/ea049ffc-virtualenv-py3.10.json @@ -0,0 +1 @@ +{"commit_hash": "ea049ffc148998ad3190faaf66992c9704e7d36a", "env_name": "virtualenv-py3.10", "date": 1609342393000, "params": {"arch": "arm64", "cpu": "Apple M1 Pro", "machine": "darrenburns-2022-mbp", "num_cpu": "10", "os": "Darwin 21.2.0", "ram": "17179869184", "python": "3.10"}, "python": "3.10", "requirements": {}, "env_vars": {}, "result_columns": ["result", "params", "version", "started_at", "duration", "stats_ci_99_a", "stats_ci_99_b", "stats_q_25", "stats_q_75", "stats_number", "stats_repeat", "samples", "profile"], "results": {"benchmarks.ColorSuite.time_downgrade_to_eight_bit": [[1.7059619594426984e-07], [], "019b972f782c6291df9a6a4dea9bb3c6268a69b177e71383d6e19a608e84920d", 1646929189851, 0.45742, [1.6965e-07], [1.7127e-07], [1.7041e-07], [1.7097e-07], [64379], [10]], "benchmarks.ColorSuite.time_downgrade_to_standard": [[1.7037798300825593e-07], [], "f5e8556491c977450fff6ebfd9fff4fc8f12d74829aa5b8570bd27ea7a1c9d28", 1646929190079, 0.43113, [1.688e-07], [1.7134e-07], [1.6943e-07], [1.7059e-07], [59250], [10]], "benchmarks.ColorSuite.time_downgrade_to_windows": [[1.708548590689205e-07], [], "373eb97dd7ce2823e080972249235f528e8b3a47210911981cf432ecf0eef5fb", 1646929190293, 0.43051, [1.6998e-07], [1.7131e-07], [1.7059e-07], [1.7108e-07], [58836], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_eight_bit": [[1.7071138782911116e-07], [], "716ff06a471a5d90af3730f6d4470eba3577432d781e0210dff1fd156b8c549c", 1646929190506, 0.45583, [1.6986e-07], [1.7116e-07], [1.7035e-07], [1.7092e-07], [64235], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_standard": [[1.7050682667895332e-07], [], "3a752a7884e99e095c31b2a28cfefdf916cb2033c06afae1ea146a72f3ba650c", 1646929190734, 0.45732, [1.6947e-07], [1.7732e-07], [1.6992e-07], [1.7091e-07], [64163], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_windows": [[1.7009128098477326e-07], [], "1732bbd18ada49eb7b054fc18b40d6acfb533023463366f37203dab6fbb0cc20", 1646929190961, 0.43117, [1.6962e-07], [1.7049e-07], [1.6989e-07], [1.7027e-07], [59295], [10]], "benchmarks.PrettySuite.time_pretty": [[0.001028991698694881], [], "9bb0e6d8a29aad21b3d1b550a160fa5f1e9030c69d16bad500c0dcc77bff6d01", 1646929191175, 0.44413, [0.0010263], [0.0010344], [0.0010272], [0.0010305], [10], [10]], "benchmarks.PrettySuite.time_pretty_indent_guides": [[0.0014355952132193905], [], "8d71bf19dfe999b0fba95d009986bfd6911c53c7a0c455466725f553005c3bc7", 1646929191396, 0.43674, [0.0014324], [0.0014414], [0.001434], [0.0014389], [7], [10]], "benchmarks.PrettySuite.time_pretty_justify_center": [[0.0014122656248218846], [], "54cbf71bacab14ccbe1d063847c0b89198ed1bbe06edc89c14d2e3c7b1986c41", 1646929191613, 0.4448, [0.0014101], [0.0014149], [0.0014113], [0.0014134], [8], [10]], "benchmarks.StyleSuite.time_parse_ansi": [[1.1422091261864285e-07], [], "a003aaa8017585efeb1cd9c43351282df4df6249bf28a4c447b1304d984aa753", 1646929191838, 0.45627, [1.1399e-07], [1.146e-07], [1.1416e-07], [1.1437e-07], [95884], [10]], "benchmarks.StyleSuite.time_parse_hex": [[1.1400060083075363e-07], [], "cf5a3f0def435d3da5bc3a6e7549c44c0a02e9cce6c00ecde8dd7f527556f8ca", 1646929192066, 0.45621, [1.1367e-07], [1.1424e-07], [1.1381e-07], [1.1403e-07], [95706], [10]], "benchmarks.StyleSuite.time_parse_mixed_complex_style": [[1.1452134145600497e-07], [], "01c9e12ae829b1984e55a5aeef1a9ae6f1461577adaf5ae59f06358c8b52802f", 1646929192295, 0.45558, [1.1416e-07], [1.1504e-07], [1.1431e-07], [1.1468e-07], [95448], [10]], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_heavy_wrapping": [null, [], "1ed4d74ea424990cfb40c96f07635f9bcf7b8bacc7ade5204aaf96363e1622ee", 1646929186329, 0.062459], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_medium_wrapping": [null, [], "0880e162a4907ee025cef8ac3380502554fde27fd0c90a4c15cebc9c27f3e333", 1646929186391, 0.062113], "benchmarks.SyntaxWrappingSuite.time_text_wide_terminal_no_wrapping": [null, [], "feb11e94ae6a75de2dee899fb93db098b55cde232710660d7d66f9e2b288d9c0", 1646929186453, 0.06242], "benchmarks.TableSuite.time_table_heavy_wrapping": [[0.0032206458745349664], [], "ca515a9739c1e0f8eb922420f9f9caf27321fb13c8bd0bc49b207a0588b370de", 1646929192524, 0.46723, [0.003216], [0.0032354], [0.0032187], [0.0032301], [4], [10]], "benchmarks.TableSuite.time_table_no_wrapping": [[0.0021276916988426818], [], "8842a5f141d8208ba2bab66e4973e978cb5d0615f326af5d70385ff8fa44b3b9", 1646929192758, 0.44464, [0.0021175], [0.0021386], [0.0021259], [0.0021292], [5], [10]], "benchmarks.TextSuite.time_align_center": [[0.0006589817812709953], [], "1ceeeef2de43fcb3d0dfec409972d8f0eb791e9615fa9f9c959e0423725b089b", 1646929192984, 0.4381, [0.00065813], [0.0006609], [0.00065854], [0.00065946], [16], [10]], "benchmarks.TextSuite.time_align_center_unicode_heavy": [[0.0005480756578770908], [], "a83ff79614dd2ae17e8b68f45981fcaa0d9833c59a7a14f171b896cf970f54ce", 1646929193206, 0.44425, [0.00054296], [0.00055451], [0.00054674], [0.00055224], [19], [10]], "benchmarks.TextSuite.time_divide": [[2.8107492053482504e-05], [], "dcc120b921cb2ec77632f8fe2f6f4150d479cb49ef2608f8e86b569a937756e9", 1646929193426, 0.44575, [2.7782e-05], [2.8388e-05], [2.7822e-05], [2.8382e-05], [376], [10]], "benchmarks.TextSuite.time_divide_unicode_heavy": [[0.00018721856988696873], [], "ea53e662c0553324f90ac3336dcee77f733bb33638888e1f84bf71945a2f3f8e", 1646929193647, 0.44671, [0.00018603], [0.00018742], [0.00018675], [0.00018735], [57], [10]], "benchmarks.TextSuite.time_fit": [[4.2081507958520006e-05], [], "ec77b412db357b1e1c1e7bc620b941dddfc36dc76d2a66a0417feae4f21fe1d3", 1646929193869, 0.44626, [4.1961e-05], [4.2181e-05], [4.2054e-05], [4.2108e-05], [251], [10]], "benchmarks.TextSuite.time_fit_unicode_heavy": [[0.0003292923220508401], [], "d1574b4af2ef8b80b95b4dbeeb13e5de67b66783f76f9968834776239dd0dc66", 1646929194092, 0.4345, [0.00032839], [0.00033001], [0.00032915], [0.0003295], [31], [10]], "benchmarks.TextSuite.time_indent_guides": [[0.0003938862114759664], [], "18da036dcfc15ec5e3c11e72be7c8f0c22fba695a5f19c95836be36952376cf2", 1646929194307, 0.43585, [0.00039303], [0.00039502], [0.00039349], [0.00039444], [26], [10]], "benchmarks.TextSuite.time_render": [[4.67366803080411e-06], [], "907d30581cfdc7bb2c4d302b7e3cb474aaefd8b84821365fe105af7d82be3b09", 1646929194524, 0.44448, [4.6629e-06], [4.6981e-06], [4.6695e-06], [4.6824e-06], [2324], [10]], "benchmarks.TextSuite.time_render_unicode_heavy": [[8.52147363837603e-05], [], "b3f1c09dfd06f412a20dacfe378c3b446727c7d4f9a975336eab3daa8543e1cb", 1646929194750, 0.44851, [8.4509e-05], [8.5671e-05], [8.4673e-05], [8.5466e-05], [127], [10]], "benchmarks.TextSuite.time_split": [[3.3982782978399795e-05], [], "9c165854130cb95fea5491ffcd8b580a5bd373149da2ef8aace0e9480f649854", 1646929194976, 0.44814, [3.3718e-05], [3.4366e-05], [3.3793e-05], [3.4176e-05], [311], [10]], "benchmarks.TextSuite.time_split_unicode_heavy": [[0.00028071735121901274], [], "d55b02f6d06f478d70635bac3409f3a9899137d9cee87a70a293b8ccf5a6afa4", 1646929195201, 0.43931, [0.00027824], [0.0002819], [0.00027954], [0.00028166], [37], [10]], "benchmarks.TextSuite.time_wrapping": [[0.0011520439438754693], [], "8c821eba13d043f228fd902d8f678c397741855db05d02abe9b82f3d65cdf03d", 1646929195420, 0.44244, [0.0011413], [0.0011579], [0.0011428], [0.0011558], [9], [10]], "benchmarks.TextSuite.time_wrapping_unicode_heavy": [[0.0015352291416742706], [], "ec6e2ef08b6cdee182fef4e26c0043f8c365984f9a31be07dbd792e1aed862d8", 1646929195640, 0.44684, [0.0015279], [0.0015493], [0.0015285], [0.001543], [7], [10]]}, "durations": {"": 1.9785568714141846}, "version": 2} diff --git a/benchmarks/results/darrenburns-2022-mbp/ea2ed337-virtualenv-py3.10.json b/benchmarks/results/darrenburns-2022-mbp/ea2ed337-virtualenv-py3.10.json new file mode 100644 index 0000000000..6bc0b29086 --- /dev/null +++ b/benchmarks/results/darrenburns-2022-mbp/ea2ed337-virtualenv-py3.10.json @@ -0,0 +1 @@ +{"commit_hash": "ea2ed337f20cc629a1754cf9bd5add1cce963aa6", "env_name": "virtualenv-py3.10", "date": 1614508821000, "params": {"arch": "arm64", "cpu": "Apple M1 Pro", "machine": "darrenburns-2022-mbp", "num_cpu": "10", "os": "Darwin 21.2.0", "ram": "17179869184", "python": "3.10"}, "python": "3.10", "requirements": {}, "env_vars": {}, "result_columns": ["result", "params", "version", "started_at", "duration", "stats_ci_99_a", "stats_ci_99_b", "stats_q_25", "stats_q_75", "stats_number", "stats_repeat", "samples", "profile"], "results": {"benchmarks.ColorSuite.time_downgrade_to_eight_bit": [[1.699270445001639e-07], [], "019b972f782c6291df9a6a4dea9bb3c6268a69b177e71383d6e19a608e84920d", 1646929075471, 0.45734, [1.6926e-07], [1.7112e-07], [1.6963e-07], [1.7036e-07], [64416], [10]], "benchmarks.ColorSuite.time_downgrade_to_standard": [[1.699839773562212e-07], [], "f5e8556491c977450fff6ebfd9fff4fc8f12d74829aa5b8570bd27ea7a1c9d28", 1646929075698, 0.43261, [1.6948e-07], [1.7058e-07], [1.698e-07], [1.703e-07], [59354], [10]], "benchmarks.ColorSuite.time_downgrade_to_windows": [[1.7042278704198481e-07], [], "373eb97dd7ce2823e080972249235f528e8b3a47210911981cf432ecf0eef5fb", 1646929075913, 0.443, [1.6889e-07], [1.8068e-07], [1.6978e-07], [1.7055e-07], [58643], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_eight_bit": [[1.705763073721423e-07], [], "716ff06a471a5d90af3730f6d4470eba3577432d781e0210dff1fd156b8c549c", 1646929076138, 0.45874, [1.7019e-07], [1.7101e-07], [1.7042e-07], [1.7085e-07], [64568], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_standard": [[1.702604839791603e-07], [], "3a752a7884e99e095c31b2a28cfefdf916cb2033c06afae1ea146a72f3ba650c", 1646929076368, 0.45921, [1.7003e-07], [1.7078e-07], [1.7014e-07], [1.7058e-07], [64480], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_windows": [[1.7072115838546423e-07], [], "1732bbd18ada49eb7b054fc18b40d6acfb533023463366f37203dab6fbb0cc20", 1646929076598, 0.46008, [1.6907e-07], [1.7113e-07], [1.6997e-07], [1.7103e-07], [64594], [10]], "benchmarks.PrettySuite.time_pretty": [[0.000998844680990177], [], "9bb0e6d8a29aad21b3d1b550a160fa5f1e9030c69d16bad500c0dcc77bff6d01", 1646929076828, 0.44798, [0.00099627], [0.0010007], [0.00099794], [0.0010004], [11], [10]], "benchmarks.PrettySuite.time_pretty_indent_guides": [[0.0014016875647939742], [], "8d71bf19dfe999b0fba95d009986bfd6911c53c7a0c455466725f553005c3bc7", 1646929077049, 0.4507, [0.0013957], [0.0014115], [0.0013986], [0.0014056], [8], [10]], "benchmarks.PrettySuite.time_pretty_justify_center": [[0.0014096432496444322], [], "54cbf71bacab14ccbe1d063847c0b89198ed1bbe06edc89c14d2e3c7b1986c41", 1646929077275, 0.46141, [0.0013854], [0.0015002], [0.0013882], [0.0014767], [8], [10]], "benchmarks.StyleSuite.time_parse_ansi": [[1.1421153209424056e-07], [], "a003aaa8017585efeb1cd9c43351282df4df6249bf28a4c447b1304d984aa753", 1646929077515, 0.45656, [1.1403e-07], [1.1434e-07], [1.1418e-07], [1.1429e-07], [95482], [10]], "benchmarks.StyleSuite.time_parse_hex": [[1.1433014258269549e-07], [], "cf5a3f0def435d3da5bc3a6e7549c44c0a02e9cce6c00ecde8dd7f527556f8ca", 1646929077745, 0.45743, [1.1383e-07], [1.1521e-07], [1.141e-07], [1.1513e-07], [95901], [10]], "benchmarks.StyleSuite.time_parse_mixed_complex_style": [[1.1435027755203576e-07], [], "01c9e12ae829b1984e55a5aeef1a9ae6f1461577adaf5ae59f06358c8b52802f", 1646929077975, 0.45838, [1.1408e-07], [1.1583e-07], [1.1425e-07], [1.1451e-07], [96188], [10]], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_heavy_wrapping": [null, [], "1ed4d74ea424990cfb40c96f07635f9bcf7b8bacc7ade5204aaf96363e1622ee", 1646929071941, 0.06308], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_medium_wrapping": [null, [], "0880e162a4907ee025cef8ac3380502554fde27fd0c90a4c15cebc9c27f3e333", 1646929072005, 0.062548], "benchmarks.SyntaxWrappingSuite.time_text_wide_terminal_no_wrapping": [null, [], "feb11e94ae6a75de2dee899fb93db098b55cde232710660d7d66f9e2b288d9c0", 1646929072067, 0.062575], "benchmarks.TableSuite.time_table_heavy_wrapping": [[0.002230391599005088], [], "ca515a9739c1e0f8eb922420f9f9caf27321fb13c8bd0bc49b207a0588b370de", 1646929078204, 0.44757, [0.0022172], [0.0022376], [0.0022198], [0.0022335], [5], [10]], "benchmarks.TableSuite.time_table_no_wrapping": [[0.0013334635004866868], [], "8842a5f141d8208ba2bab66e4973e978cb5d0615f326af5d70385ff8fa44b3b9", 1646929078424, 0.44529, [0.0013239], [0.0013418], [0.0013251], [0.0013393], [8], [10]], "benchmarks.TextSuite.time_align_center": [[0.0006635794061367051], [], "1ceeeef2de43fcb3d0dfec409972d8f0eb791e9615fa9f9c959e0423725b089b", 1646929078652, 0.44234, [0.0006602], [0.0006677], [0.00066226], [0.00066413], [16], [10]], "benchmarks.TextSuite.time_align_center_unicode_heavy": [[0.0005476820002322232], [], "a83ff79614dd2ae17e8b68f45981fcaa0d9833c59a7a14f171b896cf970f54ce", 1646929078875, 0.4454, [0.00054475], [0.00055686], [0.00054718], [0.000549], [19], [10]], "benchmarks.TextSuite.time_divide": [[2.5383448699057223e-05], [], "dcc120b921cb2ec77632f8fe2f6f4150d479cb49ef2608f8e86b569a937756e9", 1646929079097, 0.4544, [2.5288e-05], [2.5499e-05], [2.5327e-05], [2.5436e-05], [429], [10]], "benchmarks.TextSuite.time_divide_unicode_heavy": [[0.00018485990535580264], [], "ea53e662c0553324f90ac3336dcee77f733bb33638888e1f84bf71945a2f3f8e", 1646929079324, 0.45031, [0.00018401], [0.0001883], [0.00018456], [0.00018533], [58], [10]], "benchmarks.TextSuite.time_fit": [[4.356627158749726e-05], [], "ec77b412db357b1e1c1e7bc620b941dddfc36dc76d2a66a0417feae4f21fe1d3", 1646929079550, 0.44868, [4.3497e-05], [4.3774e-05], [4.3551e-05], [4.3639e-05], [243], [10]], "benchmarks.TextSuite.time_fit_unicode_heavy": [[0.00032465213646928805], [], "d1574b4af2ef8b80b95b4dbeeb13e5de67b66783f76f9968834776239dd0dc66", 1646929079773, 0.45029, [0.0003232], [0.00032532], [0.000324], [0.00032501], [33], [10]], "benchmarks.TextSuite.time_indent_guides": [[0.0003899706848810807], [], "18da036dcfc15ec5e3c11e72be7c8f0c22fba695a5f19c95836be36952376cf2", 1646929079997, 0.45063, [0.00038814], [0.00039324], [0.0003887], [0.00039139], [27], [10]], "benchmarks.TextSuite.time_render": [[4.688892462637974e-06], [], "907d30581cfdc7bb2c4d302b7e3cb474aaefd8b84821365fe105af7d82be3b09", 1646929080225, 0.44956, [4.6587e-06], [4.7619e-06], [4.6832e-06], [4.6925e-06], [2334], [10]], "benchmarks.TextSuite.time_render_unicode_heavy": [[8.54899062687764e-05], [], "b3f1c09dfd06f412a20dacfe378c3b446727c7d4f9a975336eab3daa8543e1cb", 1646929080454, 0.45461, [8.5025e-05], [8.625e-05], [8.5269e-05], [8.5618e-05], [128], [10]], "benchmarks.TextSuite.time_split": [[3.5189732112815946e-05], [], "9c165854130cb95fea5491ffcd8b580a5bd373149da2ef8aace0e9480f649854", 1646929080683, 0.44465, [3.5029e-05], [3.5386e-05], [3.5073e-05], [3.5325e-05], [308], [10]], "benchmarks.TextSuite.time_split_unicode_heavy": [[0.0002749506709637659], [], "d55b02f6d06f478d70635bac3409f3a9899137d9cee87a70a293b8ccf5a6afa4", 1646929080911, 0.44276, [0.00027375], [0.00027818], [0.00027477], [0.00027516], [38], [10]], "benchmarks.TextSuite.time_wrapping": [[0.0011060354008805007], [], "8c821eba13d043f228fd902d8f678c397741855db05d02abe9b82f3d65cdf03d", 1646929081133, 0.44245, [0.001102], [0.0011275], [0.0011046], [0.0011078], [10], [10]], "benchmarks.TextSuite.time_wrapping_unicode_heavy": [[0.001495095215172374], [], "ec6e2ef08b6cdee182fef4e26c0043f8c365984f9a31be07dbd792e1aed862d8", 1646929081354, 0.44021, [0.0014861], [0.0015397], [0.0014886], [0.0015306], [7], [10]]}, "durations": {"": 2.011971950531006}, "version": 2} diff --git a/benchmarks/results/darrenburns-2022-mbp/ecf3d7f1-virtualenv-py3.10.json b/benchmarks/results/darrenburns-2022-mbp/ecf3d7f1-virtualenv-py3.10.json new file mode 100644 index 0000000000..d595b1fcbf --- /dev/null +++ b/benchmarks/results/darrenburns-2022-mbp/ecf3d7f1-virtualenv-py3.10.json @@ -0,0 +1 @@ +{"commit_hash": "ecf3d7f1ca2b2a5ea9c36ce2b23ae576e0421b6c", "env_name": "virtualenv-py3.10", "date": 1610210649000, "params": {"arch": "arm64", "cpu": "Apple M1 Pro", "machine": "darrenburns-2022-mbp", "num_cpu": "10", "os": "Darwin 21.2.0", "ram": "17179869184", "python": "3.10"}, "python": "3.10", "requirements": {}, "env_vars": {}, "result_columns": ["result", "params", "version", "started_at", "duration", "stats_ci_99_a", "stats_ci_99_b", "stats_q_25", "stats_q_75", "stats_number", "stats_repeat", "samples", "profile"], "results": {"benchmarks.ColorSuite.time_downgrade_to_eight_bit": [[1.7077999653168063e-07], [], "019b972f782c6291df9a6a4dea9bb3c6268a69b177e71383d6e19a608e84920d", 1646929232564, 0.458, [1.7012e-07], [1.7158e-07], [1.7068e-07], [1.7101e-07], [64374], [10]], "benchmarks.ColorSuite.time_downgrade_to_standard": [[1.6982937646676327e-07], [], "f5e8556491c977450fff6ebfd9fff4fc8f12d74829aa5b8570bd27ea7a1c9d28", 1646929232792, 0.45662, [1.6942e-07], [1.7084e-07], [1.6969e-07], [1.7026e-07], [64528], [10]], "benchmarks.ColorSuite.time_downgrade_to_windows": [[1.7052654030470147e-07], [], "373eb97dd7ce2823e080972249235f528e8b3a47210911981cf432ecf0eef5fb", 1646929233021, 0.44838, [1.6924e-07], [1.7441e-07], [1.7033e-07], [1.7123e-07], [64769], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_eight_bit": [[1.7015041488254633e-07], [], "716ff06a471a5d90af3730f6d4470eba3577432d781e0210dff1fd156b8c549c", 1646929233250, 0.43117, [1.6926e-07], [1.7139e-07], [1.7011e-07], [1.7062e-07], [59060], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_standard": [[1.697587509480688e-07], [], "3a752a7884e99e095c31b2a28cfefdf916cb2033c06afae1ea146a72f3ba650c", 1646929233463, 0.4559, [1.6815e-07], [1.7107e-07], [1.6936e-07], [1.7015e-07], [64506], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_windows": [[1.6991487564124173e-07], [], "1732bbd18ada49eb7b054fc18b40d6acfb533023463366f37203dab6fbb0cc20", 1646929233690, 0.45553, [1.6835e-07], [1.7012e-07], [1.6961e-07], [1.7007e-07], [64388], [10]], "benchmarks.PrettySuite.time_pretty": [[0.001027235398942139], [], "9bb0e6d8a29aad21b3d1b550a160fa5f1e9030c69d16bad500c0dcc77bff6d01", 1646929233918, 0.44392, [0.0010237], [0.0010528], [0.0010245], [0.0010322], [10], [10]], "benchmarks.PrettySuite.time_pretty_indent_guides": [[0.0014370237851315843], [], "8d71bf19dfe999b0fba95d009986bfd6911c53c7a0c455466725f553005c3bc7", 1646929234140, 0.43944, [0.0014294], [0.001443], [0.0014335], [0.0014399], [7], [10]], "benchmarks.PrettySuite.time_pretty_justify_center": [[0.001413072935974924], [], "54cbf71bacab14ccbe1d063847c0b89198ed1bbe06edc89c14d2e3c7b1986c41", 1646929234361, 0.44625, [0.0014102], [0.0014161], [0.0014126], [0.0014138], [8], [10]], "benchmarks.StyleSuite.time_parse_ansi": [[1.1426199489369653e-07], [], "a003aaa8017585efeb1cd9c43351282df4df6249bf28a4c447b1304d984aa753", 1646929234584, 0.45567, [1.1395e-07], [1.1463e-07], [1.1411e-07], [1.1435e-07], [96082], [10]], "benchmarks.StyleSuite.time_parse_hex": [[1.1404432550273319e-07], [], "cf5a3f0def435d3da5bc3a6e7549c44c0a02e9cce6c00ecde8dd7f527556f8ca", 1646929234812, 0.45332, [1.1366e-07], [1.1486e-07], [1.1374e-07], [1.1425e-07], [95430], [10]], "benchmarks.StyleSuite.time_parse_mixed_complex_style": [[1.1468818071279227e-07], [], "01c9e12ae829b1984e55a5aeef1a9ae6f1461577adaf5ae59f06358c8b52802f", 1646929235039, 0.45144, [1.1433e-07], [1.1506e-07], [1.1449e-07], [1.1491e-07], [94481], [10]], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_heavy_wrapping": [null, [], "1ed4d74ea424990cfb40c96f07635f9bcf7b8bacc7ade5204aaf96363e1622ee", 1646929229043, 0.061706], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_medium_wrapping": [null, [], "0880e162a4907ee025cef8ac3380502554fde27fd0c90a4c15cebc9c27f3e333", 1646929229105, 0.061324], "benchmarks.SyntaxWrappingSuite.time_text_wide_terminal_no_wrapping": [null, [], "feb11e94ae6a75de2dee899fb93db098b55cde232710660d7d66f9e2b288d9c0", 1646929229166, 0.06131], "benchmarks.TableSuite.time_table_heavy_wrapping": [[0.00323098437365843], [], "ca515a9739c1e0f8eb922420f9f9caf27321fb13c8bd0bc49b207a0588b370de", 1646929235266, 0.47115, [0.0032173], [0.0032577], [0.0032226], [0.0032412], [4], [10]], "benchmarks.TableSuite.time_table_no_wrapping": [[0.0021215916989604008], [], "8842a5f141d8208ba2bab66e4973e978cb5d0615f326af5d70385ff8fa44b3b9", 1646929235501, 0.44386, [0.0021095], [0.002137], [0.0021168], [0.002129], [5], [10]], "benchmarks.TextSuite.time_align_center": [[0.0006635260624534567], [], "1ceeeef2de43fcb3d0dfec409972d8f0eb791e9615fa9f9c959e0423725b089b", 1646929235728, 0.43906, [0.00066063], [0.0006681], [0.00066311], [0.00066378], [16], [10]], "benchmarks.TextSuite.time_align_center_unicode_heavy": [[0.0005477850783407982], [], "a83ff79614dd2ae17e8b68f45981fcaa0d9833c59a7a14f171b896cf970f54ce", 1646929235950, 0.44418, [0.00054434], [0.00055449], [0.00054663], [0.00055233], [19], [10]], "benchmarks.TextSuite.time_divide": [[2.801200657574411e-05], [], "dcc120b921cb2ec77632f8fe2f6f4150d479cb49ef2608f8e86b569a937756e9", 1646929236172, 0.44711, [2.7945e-05], [2.8138e-05], [2.7973e-05], [2.8079e-05], [380], [10]], "benchmarks.TextSuite.time_divide_unicode_heavy": [[0.00018690168457269145], [], "ea53e662c0553324f90ac3336dcee77f733bb33638888e1f84bf71945a2f3f8e", 1646929236395, 0.44602, [0.00018657], [0.00018746], [0.00018683], [0.00018709], [57], [10]], "benchmarks.TextSuite.time_fit": [[4.236125003080815e-05], [], "ec77b412db357b1e1c1e7bc620b941dddfc36dc76d2a66a0417feae4f21fe1d3", 1646929236619, 0.44515, [4.1896e-05], [4.2414e-05], [4.2156e-05], [4.2394e-05], [250], [10]], "benchmarks.TextSuite.time_fit_unicode_heavy": [[0.0003301585966255516], [], "d1574b4af2ef8b80b95b4dbeeb13e5de67b66783f76f9968834776239dd0dc66", 1646929236841, 0.4353, [0.0003288], [0.00033281], [0.00033], [0.00033109], [31], [10]], "benchmarks.TextSuite.time_indent_guides": [[0.00039432613490274747], [], "18da036dcfc15ec5e3c11e72be7c8f0c22fba695a5f19c95836be36952376cf2", 1646929237057, 0.43632, [0.00039179], [0.00039679], [0.00039239], [0.00039479], [26], [10]], "benchmarks.TextSuite.time_render": [[4.6828673070957585e-06], [], "907d30581cfdc7bb2c4d302b7e3cb474aaefd8b84821365fe105af7d82be3b09", 1646929237274, 0.44713, [4.661e-06], [4.7966e-06], [4.6677e-06], [4.7109e-06], [2325], [10]], "benchmarks.TextSuite.time_render_unicode_heavy": [[8.527165350749884e-05], [], "b3f1c09dfd06f412a20dacfe378c3b446727c7d4f9a975336eab3daa8543e1cb", 1646929237500, 0.44899, [8.4478e-05], [8.581e-05], [8.4744e-05], [8.5611e-05], [127], [10]], "benchmarks.TextSuite.time_split": [[3.387963712861341e-05], [], "9c165854130cb95fea5491ffcd8b580a5bd373149da2ef8aace0e9480f649854", 1646929237727, 0.4434, [3.3643e-05], [3.4116e-05], [3.3667e-05], [3.4045e-05], [310], [10]], "benchmarks.TextSuite.time_split_unicode_heavy": [[0.00027967287845771154], [], "d55b02f6d06f478d70635bac3409f3a9899137d9cee87a70a293b8ccf5a6afa4", 1646929237947, 0.43841, [0.00027815], [0.00028148], [0.00027903], [0.00028058], [37], [10]], "benchmarks.TextSuite.time_wrapping": [[0.0011510138897897883], [], "8c821eba13d043f228fd902d8f678c397741855db05d02abe9b82f3d65cdf03d", 1646929238165, 0.44243, [0.0011488], [0.0011523], [0.0011499], [0.0011518], [9], [10]], "benchmarks.TextSuite.time_wrapping_unicode_heavy": [[0.0015299910696090332], [], "ec6e2ef08b6cdee182fef4e26c0043f8c365984f9a31be07dbd792e1aed862d8", 1646929238384, 0.44516, [0.001525], [0.0015332], [0.0015289], [0.0015324], [7], [10]]}, "durations": {"": 1.9623157978057861}, "version": 2} diff --git a/benchmarks/results/darrenburns-2022-mbp/ef80460f-virtualenv-py3.10.json b/benchmarks/results/darrenburns-2022-mbp/ef80460f-virtualenv-py3.10.json new file mode 100644 index 0000000000..9c858e5154 --- /dev/null +++ b/benchmarks/results/darrenburns-2022-mbp/ef80460f-virtualenv-py3.10.json @@ -0,0 +1 @@ +{"commit_hash": "ef80460f7fe69ae3342acdd04bf1d7c6154905cb", "env_name": "virtualenv-py3.10", "date": 1592140940000, "params": {"arch": "arm64", "cpu": "Apple M1 Pro", "machine": "darrenburns-2022-mbp", "num_cpu": "10", "os": "Darwin 21.2.0", "ram": "17179869184", "python": "3.10"}, "python": "3.10", "requirements": {}, "env_vars": {}, "result_columns": ["result", "params", "version", "started_at", "duration", "stats_ci_99_a", "stats_ci_99_b", "stats_q_25", "stats_q_75", "stats_number", "stats_repeat", "samples", "profile"], "results": {"benchmarks.ColorSuite.time_downgrade_to_eight_bit": [null, [], "019b972f782c6291df9a6a4dea9bb3c6268a69b177e71383d6e19a608e84920d", 1646928515406, 0.059341], "benchmarks.ColorSuite.time_downgrade_to_standard": [null, [], "f5e8556491c977450fff6ebfd9fff4fc8f12d74829aa5b8570bd27ea7a1c9d28", 1646928515466, 0.059205], "benchmarks.ColorSuite.time_downgrade_to_windows": [null, [], "373eb97dd7ce2823e080972249235f528e8b3a47210911981cf432ecf0eef5fb", 1646928515525, 0.057818], "benchmarks.ColorSuiteCached.time_downgrade_to_eight_bit": [null, [], "716ff06a471a5d90af3730f6d4470eba3577432d781e0210dff1fd156b8c549c", 1646928515583, 0.058271], "benchmarks.ColorSuiteCached.time_downgrade_to_standard": [null, [], "3a752a7884e99e095c31b2a28cfefdf916cb2033c06afae1ea146a72f3ba650c", 1646928515641, 0.0582], "benchmarks.ColorSuiteCached.time_downgrade_to_windows": [null, [], "1732bbd18ada49eb7b054fc18b40d6acfb533023463366f37203dab6fbb0cc20", 1646928515699, 0.058722], "benchmarks.PrettySuite.time_pretty": [null, [], "9bb0e6d8a29aad21b3d1b550a160fa5f1e9030c69d16bad500c0dcc77bff6d01", 1646928515758, 0.057699], "benchmarks.PrettySuite.time_pretty_indent_guides": [null, [], "8d71bf19dfe999b0fba95d009986bfd6911c53c7a0c455466725f553005c3bc7", 1646928515816, 0.05776], "benchmarks.PrettySuite.time_pretty_justify_center": [null, [], "54cbf71bacab14ccbe1d063847c0b89198ed1bbe06edc89c14d2e3c7b1986c41", 1646928515874, 0.058446], "benchmarks.StyleSuite.time_parse_ansi": [null, [], "a003aaa8017585efeb1cd9c43351282df4df6249bf28a4c447b1304d984aa753", 1646928515932, 0.060185], "benchmarks.StyleSuite.time_parse_hex": [null, [], "cf5a3f0def435d3da5bc3a6e7549c44c0a02e9cce6c00ecde8dd7f527556f8ca", 1646928515993, 0.059158], "benchmarks.StyleSuite.time_parse_mixed_complex_style": [null, [], "01c9e12ae829b1984e55a5aeef1a9ae6f1461577adaf5ae59f06358c8b52802f", 1646928516052, 0.060717], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_heavy_wrapping": [null, [], "1ed4d74ea424990cfb40c96f07635f9bcf7b8bacc7ade5204aaf96363e1622ee", 1646928516113, 0.060003], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_medium_wrapping": [null, [], "0880e162a4907ee025cef8ac3380502554fde27fd0c90a4c15cebc9c27f3e333", 1646928516173, 0.058038], "benchmarks.SyntaxWrappingSuite.time_text_wide_terminal_no_wrapping": [null, [], "feb11e94ae6a75de2dee899fb93db098b55cde232710660d7d66f9e2b288d9c0", 1646928516231, 0.058081], "benchmarks.TableSuite.time_table_heavy_wrapping": [null, [], "ca515a9739c1e0f8eb922420f9f9caf27321fb13c8bd0bc49b207a0588b370de", 1646928516289, 0.058367], "benchmarks.TableSuite.time_table_no_wrapping": [null, [], "8842a5f141d8208ba2bab66e4973e978cb5d0615f326af5d70385ff8fa44b3b9", 1646928516347, 0.058493], "benchmarks.TextSuite.time_align_center": [null, [], "1ceeeef2de43fcb3d0dfec409972d8f0eb791e9615fa9f9c959e0423725b089b", 1646928516406, 0.058488], "benchmarks.TextSuite.time_align_center_unicode_heavy": [null, [], "a83ff79614dd2ae17e8b68f45981fcaa0d9833c59a7a14f171b896cf970f54ce", 1646928516464, 0.058101], "benchmarks.TextSuite.time_divide": [null, [], "dcc120b921cb2ec77632f8fe2f6f4150d479cb49ef2608f8e86b569a937756e9", 1646928516523, 0.057833], "benchmarks.TextSuite.time_divide_unicode_heavy": [null, [], "ea53e662c0553324f90ac3336dcee77f733bb33638888e1f84bf71945a2f3f8e", 1646928516581, 0.057799], "benchmarks.TextSuite.time_fit": [null, [], "ec77b412db357b1e1c1e7bc620b941dddfc36dc76d2a66a0417feae4f21fe1d3", 1646928516638, 0.058149], "benchmarks.TextSuite.time_fit_unicode_heavy": [null, [], "d1574b4af2ef8b80b95b4dbeeb13e5de67b66783f76f9968834776239dd0dc66", 1646928516697, 0.057886], "benchmarks.TextSuite.time_indent_guides": [null, [], "18da036dcfc15ec5e3c11e72be7c8f0c22fba695a5f19c95836be36952376cf2", 1646928516755, 0.05764], "benchmarks.TextSuite.time_render": [null, [], "907d30581cfdc7bb2c4d302b7e3cb474aaefd8b84821365fe105af7d82be3b09", 1646928516812, 0.057862], "benchmarks.TextSuite.time_render_unicode_heavy": [null, [], "b3f1c09dfd06f412a20dacfe378c3b446727c7d4f9a975336eab3daa8543e1cb", 1646928516870, 0.058314], "benchmarks.TextSuite.time_split": [null, [], "9c165854130cb95fea5491ffcd8b580a5bd373149da2ef8aace0e9480f649854", 1646928516929, 0.058227], "benchmarks.TextSuite.time_split_unicode_heavy": [null, [], "d55b02f6d06f478d70635bac3409f3a9899137d9cee87a70a293b8ccf5a6afa4", 1646928516987, 0.057643], "benchmarks.TextSuite.time_wrapping": [null, [], "8c821eba13d043f228fd902d8f678c397741855db05d02abe9b82f3d65cdf03d", 1646928517045, 0.057652], "benchmarks.TextSuite.time_wrapping_unicode_heavy": [null, [], "ec6e2ef08b6cdee182fef4e26c0043f8c365984f9a31be07dbd792e1aed862d8", 1646928517102, 0.058088]}, "durations": {"": 1.9598910808563232}, "version": 2} diff --git a/benchmarks/results/darrenburns-2022-mbp/f2af8c9d-virtualenv-py3.10.json b/benchmarks/results/darrenburns-2022-mbp/f2af8c9d-virtualenv-py3.10.json new file mode 100644 index 0000000000..b347b64ee5 --- /dev/null +++ b/benchmarks/results/darrenburns-2022-mbp/f2af8c9d-virtualenv-py3.10.json @@ -0,0 +1 @@ +{"commit_hash": "f2af8c9d54e9ebc14b32fe68ddaefd01b7e5a801", "env_name": "virtualenv-py3.10", "date": 1593189870000, "params": {"arch": "arm64", "cpu": "Apple M1 Pro", "machine": "darrenburns-2022-mbp", "num_cpu": "10", "os": "Darwin 21.2.0", "ram": "17179869184", "python": "3.10"}, "python": "3.10", "requirements": {}, "env_vars": {}, "result_columns": ["result", "params", "version", "started_at", "duration", "stats_ci_99_a", "stats_ci_99_b", "stats_q_25", "stats_q_75", "stats_number", "stats_repeat", "samples", "profile"], "results": {"benchmarks.ColorSuite.time_downgrade_to_eight_bit": [[1.7090032611931194e-07], [], "019b972f782c6291df9a6a4dea9bb3c6268a69b177e71383d6e19a608e84920d", 1646928581804, 0.45125, [1.6925e-07], [1.737e-07], [1.7003e-07], [1.7229e-07], [64370], [10]], "benchmarks.ColorSuite.time_downgrade_to_standard": [[1.7179477414374248e-07], [], "f5e8556491c977450fff6ebfd9fff4fc8f12d74829aa5b8570bd27ea7a1c9d28", 1646928582031, 0.42397, [1.692e-07], [1.7388e-07], [1.7029e-07], [1.7347e-07], [59074], [10]], "benchmarks.ColorSuite.time_downgrade_to_windows": [[1.7208939259779103e-07], [], "373eb97dd7ce2823e080972249235f528e8b3a47210911981cf432ecf0eef5fb", 1646928582243, 0.44191, [1.7011e-07], [1.7798e-07], [1.7066e-07], [1.7366e-07], [64474], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_eight_bit": [[1.7239909444505348e-07], [], "716ff06a471a5d90af3730f6d4470eba3577432d781e0210dff1fd156b8c549c", 1646928582459, 0.45005, [1.7032e-07], [1.7427e-07], [1.7127e-07], [1.7388e-07], [64149], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_standard": [[1.70657668752433e-07], [], "3a752a7884e99e095c31b2a28cfefdf916cb2033c06afae1ea146a72f3ba650c", 1646928582684, 0.43995, [1.695e-07], [1.7556e-07], [1.7003e-07], [1.7379e-07], [64588], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_windows": [[1.734254661392709e-07], [], "1732bbd18ada49eb7b054fc18b40d6acfb533023463366f37203dab6fbb0cc20", 1646928582908, 0.42643, [1.723e-07], [1.7588e-07], [1.7309e-07], [1.7398e-07], [58470], [10]], "benchmarks.PrettySuite.time_pretty": [[0.002222458299365826], [], "9bb0e6d8a29aad21b3d1b550a160fa5f1e9030c69d16bad500c0dcc77bff6d01", 1646928583119, 0.43708, [0.0021951], [0.0022573], [0.0021987], [0.0022453], [5], [10]], "benchmarks.PrettySuite.time_pretty_indent_guides": [null, [], "8d71bf19dfe999b0fba95d009986bfd6911c53c7a0c455466725f553005c3bc7", 1646928578060, 0.058079], "benchmarks.PrettySuite.time_pretty_justify_center": [null, [], "54cbf71bacab14ccbe1d063847c0b89198ed1bbe06edc89c14d2e3c7b1986c41", 1646928578118, 0.057923], "benchmarks.StyleSuite.time_parse_ansi": [[1.1513858785141599e-07], [], "a003aaa8017585efeb1cd9c43351282df4df6249bf28a4c447b1304d984aa753", 1646928583333, 0.43617, [1.1404e-07], [1.1633e-07], [1.1435e-07], [1.1599e-07], [95564], [10]], "benchmarks.StyleSuite.time_parse_hex": [[1.1389109408082052e-07], [], "cf5a3f0def435d3da5bc3a6e7549c44c0a02e9cce6c00ecde8dd7f527556f8ca", 1646928583555, 0.44783, [1.1341e-07], [1.1419e-07], [1.137e-07], [1.1401e-07], [96441], [10]], "benchmarks.StyleSuite.time_parse_mixed_complex_style": [[1.1519537423832971e-07], [], "01c9e12ae829b1984e55a5aeef1a9ae6f1461577adaf5ae59f06358c8b52802f", 1646928583779, 0.45007, [1.1382e-07], [1.1617e-07], [1.1453e-07], [1.16e-07], [96177], [10]], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_heavy_wrapping": [null, [], "1ed4d74ea424990cfb40c96f07635f9bcf7b8bacc7ade5204aaf96363e1622ee", 1646928578838, 0.057826], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_medium_wrapping": [null, [], "0880e162a4907ee025cef8ac3380502554fde27fd0c90a4c15cebc9c27f3e333", 1646928578896, 0.057477], "benchmarks.SyntaxWrappingSuite.time_text_wide_terminal_no_wrapping": [null, [], "feb11e94ae6a75de2dee899fb93db098b55cde232710660d7d66f9e2b288d9c0", 1646928578954, 0.057369], "benchmarks.TableSuite.time_table_heavy_wrapping": [[0.0020461542007979006], [], "ca515a9739c1e0f8eb922420f9f9caf27321fb13c8bd0bc49b207a0588b370de", 1646928584006, 0.42367, [0.0020262], [0.0020663], [0.0020273], [0.0020609], [5], [10]], "benchmarks.TableSuite.time_table_no_wrapping": [[0.0014474494299585266], [], "8842a5f141d8208ba2bab66e4973e978cb5d0615f326af5d70385ff8fa44b3b9", 1646928584221, 0.42346, [0.0014278], [0.0014642], [0.0014312], [0.0014614], [7], [10]], "benchmarks.TextSuite.time_align_center": [null, [], "1ceeeef2de43fcb3d0dfec409972d8f0eb791e9615fa9f9c959e0423725b089b", 1646928579431, 0.058086], "benchmarks.TextSuite.time_align_center_unicode_heavy": [null, [], "a83ff79614dd2ae17e8b68f45981fcaa0d9833c59a7a14f171b896cf970f54ce", 1646928579489, 0.058209], "benchmarks.TextSuite.time_divide": [[2.8270778226057495e-05], [], "dcc120b921cb2ec77632f8fe2f6f4150d479cb49ef2608f8e86b569a937756e9", 1646928584434, 0.44278, [2.8239e-05], [2.8318e-05], [2.8254e-05], [2.8294e-05], [381], [10]], "benchmarks.TextSuite.time_divide_unicode_heavy": [[0.00019030226317945083], [], "ea53e662c0553324f90ac3336dcee77f733bb33638888e1f84bf71945a2f3f8e", 1646928584655, 0.44236, [0.00018943], [0.00019048], [0.00019006], [0.0001904], [57], [10]], "benchmarks.TextSuite.time_fit": [[4.197533399565145e-05], [], "ec77b412db357b1e1c1e7bc620b941dddfc36dc76d2a66a0417feae4f21fe1d3", 1646928584876, 0.43825, [4.1857e-05], [4.2052e-05], [4.1951e-05], [4.202e-05], [250], [10]], "benchmarks.TextSuite.time_fit_unicode_heavy": [[0.0003304659242558321], [], "d1574b4af2ef8b80b95b4dbeeb13e5de67b66783f76f9968834776239dd0dc66", 1646928585094, 0.44625, [0.00032819], [0.00033206], [0.00032901], [0.0003318], [33], [10]], "benchmarks.TextSuite.time_indent_guides": [null, [], "18da036dcfc15ec5e3c11e72be7c8f0c22fba695a5f19c95836be36952376cf2", 1646928580435, 0.058736], "benchmarks.TextSuite.time_render": [[4.689809716245229e-06], [], "907d30581cfdc7bb2c4d302b7e3cb474aaefd8b84821365fe105af7d82be3b09", 1646928585317, 0.44093, [4.6839e-06], [4.7022e-06], [4.6889e-06], [4.6939e-06], [2336], [10]], "benchmarks.TextSuite.time_render_unicode_heavy": [[8.54896653744238e-05], [], "b3f1c09dfd06f412a20dacfe378c3b446727c7d4f9a975336eab3daa8543e1cb", 1646928585542, 0.44084, [8.4727e-05], [8.5865e-05], [8.5157e-05], [8.5817e-05], [127], [10]], "benchmarks.TextSuite.time_split": [[3.415601445179301e-05], [], "9c165854130cb95fea5491ffcd8b580a5bd373149da2ef8aace0e9480f649854", 1646928585763, 0.43741, [3.377e-05], [3.4525e-05], [3.3842e-05], [3.4403e-05], [311], [10]], "benchmarks.TextSuite.time_split_unicode_heavy": [[0.0002846767971720043], [], "d55b02f6d06f478d70635bac3409f3a9899137d9cee87a70a293b8ccf5a6afa4", 1646928585980, 0.4332, [0.00027899], [0.00029414], [0.00028309], [0.00028554], [37], [10]], "benchmarks.TextSuite.time_wrapping": [[0.0011558448911980828], [], "8c821eba13d043f228fd902d8f678c397741855db05d02abe9b82f3d65cdf03d", 1646928586195, 0.43605, [0.001148], [0.0011654], [0.0011495], [0.0011592], [9], [10]], "benchmarks.TextSuite.time_wrapping_unicode_heavy": [[0.0015459464297496845], [], "ec6e2ef08b6cdee182fef4e26c0043f8c365984f9a31be07dbd792e1aed862d8", 1646928586412, 0.4395, [0.0015209], [0.001555], [0.0015443], [0.0015473], [7], [10]]}, "durations": {"": 1.9649710655212402}, "version": 2} diff --git a/benchmarks/results/darrenburns-2022-mbp/f84d5dee-virtualenv-py3.10.json b/benchmarks/results/darrenburns-2022-mbp/f84d5dee-virtualenv-py3.10.json new file mode 100644 index 0000000000..9a764ff25f --- /dev/null +++ b/benchmarks/results/darrenburns-2022-mbp/f84d5dee-virtualenv-py3.10.json @@ -0,0 +1 @@ +{"commit_hash": "f84d5dee6ad9bc57a8c67ded51c1ecd03677e65f", "env_name": "virtualenv-py3.10", "date": 1594567562000, "params": {"arch": "arm64", "cpu": "Apple M1 Pro", "machine": "darrenburns-2022-mbp", "num_cpu": "10", "os": "Darwin 21.2.0", "ram": "17179869184", "python": "3.10"}, "python": "3.10", "requirements": {}, "env_vars": {}, "result_columns": ["result", "params", "version", "started_at", "duration", "stats_ci_99_a", "stats_ci_99_b", "stats_q_25", "stats_q_75", "stats_number", "stats_repeat", "samples", "profile"], "results": {"benchmarks.ColorSuite.time_downgrade_to_eight_bit": [[1.7308245811986438e-07], [], "019b972f782c6291df9a6a4dea9bb3c6268a69b177e71383d6e19a608e84920d", 1646928688709, 0.42495, [1.7163e-07], [1.7365e-07], [1.7253e-07], [1.736e-07], [58836], [10]], "benchmarks.ColorSuite.time_downgrade_to_standard": [[1.7283182735333509e-07], [], "f5e8556491c977450fff6ebfd9fff4fc8f12d74829aa5b8570bd27ea7a1c9d28", 1646928688920, 0.42508, [1.7195e-07], [1.7396e-07], [1.7243e-07], [1.736e-07], [58984], [10]], "benchmarks.ColorSuite.time_downgrade_to_windows": [[1.736048608512918e-07], [], "373eb97dd7ce2823e080972249235f528e8b3a47210911981cf432ecf0eef5fb", 1646928689131, 0.4312, [1.7268e-07], [1.745e-07], [1.7343e-07], [1.7372e-07], [64495], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_eight_bit": [[1.7323692227504577e-07], [], "716ff06a471a5d90af3730f6d4470eba3577432d781e0210dff1fd156b8c549c", 1646928689346, 0.42883, [1.7185e-07], [1.7397e-07], [1.7286e-07], [1.7349e-07], [59222], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_standard": [[1.7355385467604052e-07], [], "3a752a7884e99e095c31b2a28cfefdf916cb2033c06afae1ea146a72f3ba650c", 1646928689560, 0.42434, [1.7258e-07], [1.7408e-07], [1.7319e-07], [1.7371e-07], [58463], [10]], "benchmarks.ColorSuiteCached.time_downgrade_to_windows": [[1.715436641188842e-07], [], "1732bbd18ada49eb7b054fc18b40d6acfb533023463366f37203dab6fbb0cc20", 1646928689771, 0.43156, [1.6853e-07], [1.7437e-07], [1.6926e-07], [1.7389e-07], [58160], [10]], "benchmarks.PrettySuite.time_pretty": [[0.002244716600398533], [], "9bb0e6d8a29aad21b3d1b550a160fa5f1e9030c69d16bad500c0dcc77bff6d01", 1646928689989, 0.44204, [0.0022307], [0.0022562], [0.002235], [0.0022495], [5], [10]], "benchmarks.PrettySuite.time_pretty_indent_guides": [null, [], "8d71bf19dfe999b0fba95d009986bfd6911c53c7a0c455466725f553005c3bc7", 1646928684657, 0.058707], "benchmarks.PrettySuite.time_pretty_justify_center": [null, [], "54cbf71bacab14ccbe1d063847c0b89198ed1bbe06edc89c14d2e3c7b1986c41", 1646928684715, 0.058484], "benchmarks.StyleSuite.time_parse_ansi": [[1.1733243976283779e-07], [], "a003aaa8017585efeb1cd9c43351282df4df6249bf28a4c447b1304d984aa753", 1646928690208, 0.42793, [1.1623e-07], [1.1849e-07], [1.1628e-07], [1.1839e-07], [87661], [10]], "benchmarks.StyleSuite.time_parse_hex": [[1.156367285738817e-07], [], "cf5a3f0def435d3da5bc3a6e7549c44c0a02e9cce6c00ecde8dd7f527556f8ca", 1646928690423, 0.42339, [1.1408e-07], [1.1679e-07], [1.1448e-07], [1.158e-07], [87703], [10]], "benchmarks.StyleSuite.time_parse_mixed_complex_style": [[1.140869263406167e-07], [], "01c9e12ae829b1984e55a5aeef1a9ae6f1461577adaf5ae59f06358c8b52802f", 1646928690636, 0.44843, [1.1369e-07], [1.1458e-07], [1.1383e-07], [1.1421e-07], [96087], [10]], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_heavy_wrapping": [null, [], "1ed4d74ea424990cfb40c96f07635f9bcf7b8bacc7ade5204aaf96363e1622ee", 1646928685422, 0.05832], "benchmarks.SyntaxWrappingSuite.time_text_thin_terminal_medium_wrapping": [null, [], "0880e162a4907ee025cef8ac3380502554fde27fd0c90a4c15cebc9c27f3e333", 1646928685480, 0.057904], "benchmarks.SyntaxWrappingSuite.time_text_wide_terminal_no_wrapping": [null, [], "feb11e94ae6a75de2dee899fb93db098b55cde232710660d7d66f9e2b288d9c0", 1646928685538, 0.058164], "benchmarks.TableSuite.time_table_heavy_wrapping": [[0.002110837498912588], [], "ca515a9739c1e0f8eb922420f9f9caf27321fb13c8bd0bc49b207a0588b370de", 1646928690861, 0.43483, [0.0020988], [0.0021232], [0.0021039], [0.0021191], [5], [10]], "benchmarks.TableSuite.time_table_no_wrapping": [[0.0015061160707513668], [], "8842a5f141d8208ba2bab66e4973e978cb5d0615f326af5d70385ff8fa44b3b9", 1646928691080, 0.4351, [0.0014983], [0.0015589], [0.0015026], [0.001546], [7], [10]], "benchmarks.TextSuite.time_align_center": [[0.0006713476559525589], [], "1ceeeef2de43fcb3d0dfec409972d8f0eb791e9615fa9f9c959e0423725b089b", 1646928691301, 0.43813, [0.00066814], [0.00067522], [0.00067029], [0.00067237], [16], [10]], "benchmarks.TextSuite.time_align_center_unicode_heavy": [[0.0005598946946621356], [], "a83ff79614dd2ae17e8b68f45981fcaa0d9833c59a7a14f171b896cf970f54ce", 1646928691524, 0.427, [0.00055817], [0.00056303], [0.0005592], [0.00056025], [18], [10]], "benchmarks.TextSuite.time_divide": [[2.8021105220420404e-05], [], "dcc120b921cb2ec77632f8fe2f6f4150d479cb49ef2608f8e86b569a937756e9", 1646928691735, 0.44378, [2.7666e-05], [2.8357e-05], [2.7709e-05], [2.8332e-05], [385], [10]], "benchmarks.TextSuite.time_divide_unicode_heavy": [[0.00018865752632304895], [], "ea53e662c0553324f90ac3336dcee77f733bb33638888e1f84bf71945a2f3f8e", 1646928691958, 0.44155, [0.00018633], [0.0001911], [0.00018676], [0.00019085], [57], [10]], "benchmarks.TextSuite.time_fit": [[4.2210779327669215e-05], [], "ec77b412db357b1e1c1e7bc620b941dddfc36dc76d2a66a0417feae4f21fe1d3", 1646928692180, 0.43567, [4.2056e-05], [4.247e-05], [4.211e-05], [4.2259e-05], [247], [10]], "benchmarks.TextSuite.time_fit_unicode_heavy": [[0.0003338414028422126], [], "d1574b4af2ef8b80b95b4dbeeb13e5de67b66783f76f9968834776239dd0dc66", 1646928692397, 0.43078, [0.00032913], [0.00033781], [0.00033063], [0.00033694], [31], [10]], "benchmarks.TextSuite.time_indent_guides": [null, [], "18da036dcfc15ec5e3c11e72be7c8f0c22fba695a5f19c95836be36952376cf2", 1646928687337, 0.058208], "benchmarks.TextSuite.time_render": [[4.675831319804382e-06], [], "907d30581cfdc7bb2c4d302b7e3cb474aaefd8b84821365fe105af7d82be3b09", 1646928692609, 0.44535, [4.6576e-06], [4.6958e-06], [4.671e-06], [4.6811e-06], [2321], [10]], "benchmarks.TextSuite.time_render_unicode_heavy": [[8.689120084019456e-05], [], "b3f1c09dfd06f412a20dacfe378c3b446727c7d4f9a975336eab3daa8543e1cb", 1646928692832, 0.42073, [8.621e-05], [8.7267e-05], [8.6719e-05], [8.6998e-05], [117], [10]], "benchmarks.TextSuite.time_split": [[3.4412112531710386e-05], [], "9c165854130cb95fea5491ffcd8b580a5bd373149da2ef8aace0e9480f649854", 1646928693042, 0.44146, [3.4288e-05], [3.4483e-05], [3.4334e-05], [3.4456e-05], [311], [10]], "benchmarks.TextSuite.time_split_unicode_heavy": [[0.00028140595964646926], [], "d55b02f6d06f478d70635bac3409f3a9899137d9cee87a70a293b8ccf5a6afa4", 1646928693261, 0.4316, [0.00027816], [0.00028493], [0.00027863], [0.00028367], [37], [10]], "benchmarks.TextSuite.time_wrapping": [[0.0011629745551747167], [], "8c821eba13d043f228fd902d8f678c397741855db05d02abe9b82f3d65cdf03d", 1646928693475, 0.43828, [0.0011575], [0.0011677], [0.0011586], [0.001166], [9], [10]], "benchmarks.TextSuite.time_wrapping_unicode_heavy": [[0.0015502648581917], [], "ec6e2ef08b6cdee182fef4e26c0043f8c365984f9a31be07dbd792e1aed862d8", 1646928693693, 0.44103, [0.0015466], [0.0015531], [0.0015491], [0.0015513], [7], [10]]}, "durations": {"": 1.960265874862671}, "version": 2} diff --git a/benchmarks/results/darrenburns-2022-mbp/machine.json b/benchmarks/results/darrenburns-2022-mbp/machine.json new file mode 100644 index 0000000000..f507dfb9db --- /dev/null +++ b/benchmarks/results/darrenburns-2022-mbp/machine.json @@ -0,0 +1,9 @@ +{ + "arch": "arm64", + "cpu": "Apple M1 Pro", + "machine": "darrenburns-2022-mbp", + "num_cpu": "10", + "os": "Darwin 21.2.0", + "ram": "17179869184", + "version": 1 +} diff --git a/benchmarks/snippets.py b/benchmarks/snippets.py new file mode 100644 index 0000000000..ef72dbcff9 --- /dev/null +++ b/benchmarks/snippets.py @@ -0,0 +1,173 @@ +PYTHON_SNIPPET = ''' +def layout_resolve(total: int, edges: Sequence[EdgeProtocol]) -> List[int]: + """Divide total space to satisfy size, fraction, and min_size, constraints. + + The returned list of integers should add up to total in most cases, unless it is + impossible to satisfy all the constraints. For instance, if there are two edges + with a minimum size of 20 each and `total` is 30 then the returned list will be + greater than total. In practice, this would mean that a Layout object would + clip the rows that would overflow the screen height. + + Args: + total (int): Total number of characters. + edges (Sequence[Edge]): Edges within total space. + + Returns: + list[int]: Number of characters for each edge. + """ + # Size of edge or None for yet to be determined + sizes = [(edge.size or None) for edge in edges] + + if None not in sizes: + # No flexible edges + return cast("list[int]", sizes) + + # Get flexible edges and index to map these back on to sizes list + flexible_edges = [ + (index, edge) + for index, (size, edge) in enumerate(zip(sizes, edges)) + if size is None + ] + # Remaining space in total + remaining = total - sum([size or 0 for size in sizes]) + if remaining <= 0: + # No room for flexible edges + return [ + ((edge.min_size or 1) if size is None else size) + for size, edge in zip(sizes, edges) + ] + + # Get the total fraction value for all flexible edges + total_flexible = sum([(edge.fraction or 1) for _, edge in flexible_edges]) + while flexible_edges: + # Calculate number of characters in a ratio portion + portion = Fraction(remaining, total_flexible) + + # If any edges will be less than their minimum, replace size with the minimum + for flexible_index, (index, edge) in enumerate(flexible_edges): + if portion * edge.fraction < edge.min_size: + # This flexible edge will be smaller than its minimum size + # We need to fix the size and redistribute the outstanding space + sizes[index] = edge.min_size + remaining -= edge.min_size + total_flexible -= edge.fraction or 1 + del flexible_edges[flexible_index] + # New fixed size will invalidate calculations, so we need to repeat the process + break + else: + # Distribute flexible space and compensate for rounding error + # Since edge sizes can only be integers we need to add the remainder + # to the following line + remainder = Fraction(0) + for index, edge in flexible_edges: + sizes[index], remainder = divmod(portion * edge.fraction + remainder, 1) + break + + # Sizes now contains integers only + return cast("list[int]", sizes) +''' + +PYTHON_DICT = { + "glossary": { + "title": "example glossary", + "GlossDiv": { + "title": "S", + "GlossList": { + "GlossEntry": { + "ID": "SGML", + "SortAs": "SGML", + "GlossTerm": "Standard Generalized Markup Language", + "Acronym": "SGML", + "Abbrev": "ISO 8879:1986", + "GlossDef": { + "para": "A meta-markup language, used to create markup languages such as DocBook.", + "GlossSeeAlso": ["GML", "XML"], + }, + "GlossSee": "markup", + } + }, + }, + } +} + +LOREM_IPSUM = """ +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Laoreet id donec ultrices tincidunt arcu. Eu facilisis sed odio morbi quis commodo odio aenean sed. Amet cursus sit amet dictum. Gravida rutrum quisque non tellus. Semper auctor neque vitae tempus quam pellentesque nec nam. Mauris sit amet massa vitae tortor condimentum lacinia quis. Adipiscing elit ut aliquam purus sit amet luctus venenatis lectus. Consectetur adipiscing elit ut aliquam purus sit amet. Sit amet mauris commodo quis imperdiet massa tincidunt nunc pulvinar. Dui faucibus in ornare quam viverra. Et netus et malesuada fames ac turpis. A lacus vestibulum sed arcu non odio euismod. In massa tempor nec feugiat nisl pretium fusce. + +Tellus in hac habitasse platea dictumst vestibulum. Feugiat nibh sed pulvinar proin. In cursus turpis massa tincidunt dui ut. Fermentum posuere urna nec tincidunt praesent semper feugiat. Interdum consectetur libero id faucibus. Habitant morbi tristique senectus et netus et malesuada fames ac. Facilisis leo vel fringilla est ullamcorper eget nulla facilisi. Aliquam faucibus purus in massa tempor. Tellus pellentesque eu tincidunt tortor aliquam nulla. Sem et tortor consequat id porta nibh. Massa id neque aliquam vestibulum morbi blandit cursus risus. Ut placerat orci nulla pellentesque dignissim enim. Nibh tellus molestie nunc non blandit massa enim nec dui. Ipsum a arcu cursus vitae congue mauris rhoncus aenean vel. Egestas congue quisque egestas diam in. + +Pulvinar mattis nunc sed blandit libero volutpat sed. Accumsan in nisl nisi scelerisque eu. Eget aliquet nibh praesent tristique. Ipsum suspendisse ultrices gravida dictum fusce ut. Non sodales neque sodales ut etiam sit amet. Velit egestas dui id ornare. Massa ultricies mi quis hendrerit dolor magna. Id volutpat lacus laoreet non curabitur gravida arcu. Nulla facilisi cras fermentum odio eu feugiat pretium. Sed vulputate odio ut enim blandit volutpat. Amet massa vitae tortor condimentum lacinia. Tellus integer feugiat scelerisque varius. Quam nulla porttitor massa id. Facilisi cras fermentum odio eu feugiat pretium nibh ipsum. Eget nunc scelerisque viverra mauris in aliquam sem fringilla. Amet nulla facilisi morbi tempus iaculis urna id volutpat lacus. Facilisi etiam dignissim diam quis enim lobortis. + +Nullam vehicula ipsum a arcu cursus vitae congue mauris rhoncus. Ullamcorper a lacus vestibulum sed arcu non. Suscipit adipiscing bibendum est ultricies integer quis auctor elit. Integer feugiat scelerisque varius morbi enim. Posuere urna nec tincidunt praesent semper feugiat nibh sed pulvinar. Lobortis feugiat vivamus at augue eget. Rhoncus dolor purus non enim praesent. Mi in nulla posuere sollicitudin aliquam ultrices sagittis orci. Mollis aliquam ut porttitor leo. Id cursus metus aliquam eleifend mi in nulla. Integer eget aliquet nibh praesent tristique magna sit amet. Egestas maecenas pharetra convallis posuere morbi. + +Blandit massa enim nec dui. Suscipit tellus mauris a diam maecenas. Sed id semper risus in. Purus faucibus ornare suspendisse sed nisi lacus. At in tellus integer feugiat. Egestas diam in arcu cursus euismod quis viverra nibh cras. Enim tortor at auctor urna nunc id. Tristique nulla aliquet enim tortor at auctor urna nunc id. Purus gravida quis blandit turpis cursus in hac habitasse platea. Ac turpis egestas integer eget. Tortor at auctor urna nunc. Neque aliquam vestibulum morbi blandit cursus. Massa tempor nec feugiat nisl pretium fusce id velit. Interdum consectetur libero id faucibus nisl tincidunt. Adipiscing diam donec adipiscing tristique risus nec feugiat in. Egestas integer eget aliquet nibh praesent tristique magna sit. +""" + +UNICODE_HEAVY_TEXT = """ +Richは、 _リッチ_ なテキストや美しい書式設定をターミナルで行うためのPythonライブラリです。 + +[Rich API](https://rich.readthedocs.io/en/latest/)を使用すると、ターミナルの出力に色やスタイルを簡単に追加することができます。 Richはきれいなテーブル、プログレスバー、マークダウン、シンタックスハイライトされたソースコード、トレースバックなどをすぐに生成・表示することもできます。 + +![機能](https://github.com/willmcgugan/rich/raw/master/imgs/features.png) + +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.3以降が必要です。 + +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()) +``` + +![Hello World](https://github.com/willmcgugan/rich/raw/master/imgs/print.png) + +## Rich REPL + +RichはPythonのREPLでインストールすることができ、データ構造がきれいに表示され、ハイライトされます。 + +```python +>>> from rich import pretty +>>> pretty.install() +``` + +![REPL](https://github.com/willmcgugan/rich/raw/master/imgs/repl.png) + +## Rich Inspect + +RichにはPythonオブジェクトやクラス、インスタンス、組み込み関数などに関するレポートを作成することができる、[inspect関数](https://rich.readthedocs.io/en/latest/reference/init.html?highlight=inspect#rich.inspect)があります。 + +の使い方 + +リッチなターミナルコンテンツをより制御していくには、[Console](https://rich.readthedocs.io/en/latest/reference/console.html#rich.console.Console) オブジェクトをインポートして構築していきます。 + +Console オブジェクトには `print` メソッドがあり、これは組み込み関数の `print` と意図的に似たインターフェイスを持っています。 +以下に使用例を示します: + +あなたが予想した通り、これは `"Hello World!"` をターミナルに表示します。組み込み関数の `print` とは異なり、Rich はターミナルの幅に合わせてテキストをワードラップすることに注意してください。 + +出力結果に色やスタイルを追加する方法はいくつかあります。キーワード引数に `style` を追加することで、出力結果全体のスタイルを設定することができます。以下に例を示します: +""" diff --git a/docs/images/svg_export.svg b/docs/images/svg_export.svg new file mode 100644 index 0000000000..152187ba1a --- /dev/null +++ b/docs/images/svg_export.svg @@ -0,0 +1,545 @@ + + + Rich + + + + + + +                                                         Rich features                                                          +                                                                                                                               +    Colors    ✓ 4-bit color                   +              ✓ 8-bit color                   +              ✓ Truecolor (16.7 million)      +              ✓ Dumb terminals                +              ✓ Automatic color conversion    +                                                                                                                               +    Styles    All ansi styles: bolddimitalicunderlinestrikethroughreverse, and even blink.                           +                                                                                                                               +     Text     Word wrap text. Justify leftcenterright or full.                                                             +                                                                                                                               +              Lorem ipsum dolor sit amet, Lorem ipsum dolor sit amet,      Lorem ipsum dolor sit Lorem ipsum dolor sit  amet,  +              consectetur adipiscing        consectetur adipiscing             amet, consectetur consectetur adipiscing elit.  +              elit. Quisque in metus sed  elit. Quisque in metus sed    adipiscing elit. Quisque Quisque in metus sed  sapien  +              sapien ultricies pretium a  sapien ultricies pretium a         in metus sed sapien ultricies   pretium   a   at  +              at justo. Maecenas luctus    at justo. Maecenas luctus      ultricies pretium a at justo. Maecenas luctus velit  +              velit et auctor maximus.     velit et auctor maximus.       justo. Maecenas luctus et auctor maximus.            +                                                                        velit et auctor maximus.                               +                                                                                                                               +    Asian     🇨🇳  该库支持中文,日文和韩文文本!                                                                               +   language   🇯🇵  ライブラリは中国語、日本語、韓国語のテキストをサポートしています                                             +   support    🇰🇷  이 라이브러리는 중국어, 일본어 및 한국어 텍스트를 지원합니다                                                 +                                                                                                                               +    Markup    Rich supports a simple bbcode-like markup for colorstyle, and emoji! 👍 🍎 🐜 🐻 🥖 🚌                         +                                                                                                                               +    Tables     Date           Title                                 Production Budget       Box Office                         +              ─────────────────────────────────────────────────────────────────────────────────────────                        +               Dec 20, 2019   Star Wars: The Rise of Skywalker           $275,000,000     $375,126,118                         +               May 25, 2018   Solo: A Star Wars Story                    $275,000,000     $393,151,347                         +               Dec 15, 2017   Star Wars Ep. VIII: The Last Jedi          $262,000,000   $1,332,539,889                         +               May 19, 1999   Star Wars Ep. IThe phantom Menace        $115,000,000   $1,027,044,677                         +                                                                                                                               +    Syntax       1 def iter_last(values: Iterable[T]) -> Iterable[Tup  {                                                       + highlighting    2 │   """Iterate and generate a tuple with a flag fo  │   'foo'[                                            +      &          3 │   iter_values = iter(values)                      │   │   3.1427,                                         +    pretty       4 │   try:                                            │   │   (                                               +   printing      5 │   │   previous_value = next(iter_values)          │   │   │   'Paul Atreides',                            +                 6 │   except StopIteration:                           │   │   │   'Vladimir Harkonnen',                       +                 7 │   │   return                                      │   │   │   'Thufir Hawat'                              +                 8 │   for value in iter_values:                       │   │   )                                               +                 9 │   │   yield False, previous_value                 │   ],                                                  +                10 │   │   previous_value = value                      │   'atomic'(FalseTrueNone)                       +                11 │   yield True, previous_value                      }                                                       +                                                                                                                               +   Markdown   # Markdown                                               ╔════════════════════════════════════════════════════╗  +                                                                       ║                      Markdown                      ║  +              Supports much of the *markdown* __syntax__!              ╚════════════════════════════════════════════════════╝  +                                                                                                                               +              - Headers                                                Supports much of the markdown syntax!                   +              - Basic formatting: **bold**, *italic*, `code`                                                                   +              - Block quotes                                            • Headers                                              +              - Lists, and more...                                      • Basic formatting: bolditaliccode                 +                                                                        • Block quotes                                         +                                                                        • Lists, and more...                                   +                                                                                                                               +    +more!    Progress bars, columns, styled logging handler, tracebacks, etc...                                               +                                                                                                                               + + + diff --git a/docs/requirements.txt b/docs/requirements.txt index 273656e9f2..6688094b2e 100644 --- a/docs/requirements.txt +++ b/docs/requirements.txt @@ -1,4 +1,4 @@ alabaster==0.7.12 -Sphinx==4.2.0 +Sphinx==4.5.0 sphinx-rtd-theme==1.0.0 -sphinx-copybutton==0.4.0 +sphinx-copybutton==0.5.0 diff --git a/docs/source/conf.py b/docs/source/conf.py index 774871e3e0..472d695e38 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -19,7 +19,6 @@ import pkg_resources - import sphinx_rtd_theme html_theme = "sphinx_rtd_theme" @@ -43,6 +42,7 @@ "sphinx.ext.autodoc", "sphinx.ext.viewcode", "sphinx.ext.napoleon", + "sphinx.ext.intersphinx", "sphinx.ext.autosectionlabel", "sphinx_copybutton", ] @@ -69,3 +69,9 @@ html_static_path = ["_static"] intersphinx_mapping = {"python": ("http://docs.python.org/3", None)} + +autodoc_typehints = "description" + +html_css_files = [ + "https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/fira_code.min.css" +] diff --git a/docs/source/console.rst b/docs/source/console.rst index c5de7b5e38..d3df2828ba 100644 --- a/docs/source/console.rst +++ b/docs/source/console.rst @@ -1,7 +1,7 @@ Console API =========== -For complete control over terminal formatting, Rich offers a :class:`~rich.console.Console` class. Most applications will require a single Console instance, so you may want to create one at the module level or as an attribute of your top-level object. For example, you could add a file called "console.py" to your project:: +For complete control over terminal formatting, Rich offers a :class:`~rich.console.Console` class. Most applications will require a single Console instance, so you may want to create one at the module level or as an attribute of your top-level object. For example, you could add a file called "console.py" to your project:: from rich.console import Console console = Console() @@ -52,7 +52,7 @@ To write rich content to the terminal use the :meth:`~rich.console.Console.print console.print(locals()) console.print("FOO", style="white on blue") -You can also use :meth:`~rich.console.Console.print` to render objects that support the :ref:`protocol`, which includes Rich's built in objects such as :class:`~rich.text.Text`, :class:`~rich.table.Table`, and :class:`~rich.syntax.Syntax` -- or other custom objects. +You can also use :meth:`~rich.console.Console.print` to render objects that support the :ref:`protocol`, which includes Rich's built-in objects such as :class:`~rich.text.Text`, :class:`~rich.table.Table`, and :class:`~rich.syntax.Syntax` -- or other custom objects. Logging @@ -140,7 +140,7 @@ Run the following command to see the available choices for ``spinner``:: Justify / Alignment ------------------- -Both print and log support a ``justify`` argument which if set must be one of "default", "left", "right", "center", or "full". If "left", any text printed (or logged) will be left aligned, if "right" text will be aligned to the right of the terminal, if "center" the text will be centered, and if "full" the text will be lined up with both the left and right edges of the terminal (like printed text in a book). +Both print and log support a ``justify`` argument which if set must be one of "default", "left", "right", "center", or "full". If "left", any text printed (or logged) will be left aligned, if "right" text will be aligned to the right of the terminal, if "center" the text will be centered, and if "full" the text will be lined up with both the left and right edges of the terminal (like printed text in a book). The default for ``justify`` is ``"default"`` which will generally look the same as ``"left"`` but with a subtle difference. Left justify will pad the right of the text with spaces, while a default justify will not. You will only notice the difference if you set a background color with the ``style`` argument. The following example demonstrates the difference:: @@ -161,7 +161,7 @@ This produces the following output:
Rich
     Rich                
-            Rich         
+            Rich        
                     Rich
     
@@ -170,7 +170,7 @@ Overflow Overflow is what happens when text you print is larger than the available space. Overflow may occur if you print long 'words' such as URLs for instance, or if you have text inside a panel or table cell with restricted space. -You can specify how Rich should handle overflow with the ``overflow`` argument to :meth:`~rich.console.Console.print` which should be one of the following strings: "fold", "crop", "ellipsis", or "ignore". The default is "fold" which will put any excess characters on the following line, creating as many new lines as required to fit the text. +You can specify how Rich should handle overflow with the ``overflow`` argument to :meth:`~rich.console.Console.print` which should be one of the following strings: "fold", "crop", "ellipsis", or "ignore". The default is "fold" which will put any excess characters on the following line, creating as many new lines as required to fit the text. The "crop" method truncates the text at the end of the line, discarding any characters that would overflow. @@ -223,7 +223,7 @@ The Console has a ``style`` attribute which you can use to apply a style to ever Soft Wrapping ------------- -Rich word wraps text you print by inserting line breaks. You can disable this behavior by setting ``soft_wrap=True`` when calling :meth:`~rich.console.Console.print`. With *soft wrapping* enabled any text that doesn't fit will run on to the following line(s), just like the builtin ``print``. +Rich word wraps text you print by inserting line breaks. You can disable this behavior by setting ``soft_wrap=True`` when calling :meth:`~rich.console.Console.print`. With *soft wrapping* enabled any text that doesn't fit will run on to the following line(s), just like the built-in ``print``. Cropping @@ -238,30 +238,57 @@ The :meth:`~rich.console.Console.print` method has a boolean ``crop`` argument. Input ----- -The console class has an :meth:`~rich.console.Console.input` which works in the same way as Python's builtin ``input()`` method, but can use anything that Rich can print as a prompt. For example, here's a colorful prompt with an emoji:: +The console class has an :meth:`~rich.console.Console.input` method which works in the same way as Python's built-in :func:`input` function, but can use anything that Rich can print as a prompt. For example, here's a colorful prompt with an emoji:: from rich.console import Console console = Console() console.input("What is [i]your[/i] [bold red]name[/]? :smiley: ") +If Python's builtin :mod:`readline` module is previously loaded, elaborate line editing and history features will be available. + Exporting --------- -The Console class can export anything written to it as either text or html. To enable exporting, first set ``record=True`` on the constructor. This tells Rich to save a copy of any data you ``print()`` or ``log()``. Here's an example:: +The Console class can export anything written to it as either text, svg, or html. To enable exporting, first set ``record=True`` on the constructor. This tells Rich to save a copy of any data you ``print()`` or ``log()``. Here's an example:: from rich.console import Console console = Console(record=True) -After you have written content, you can call :meth:`~rich.console.Console.export_text` or :meth:`~rich.console.Console.export_html` to get the console output as a string. You can also call :meth:`~rich.console.Console.save_text` or :meth:`~rich.console.Console.save_html` to write the contents directly to disk. +After you have written content, you can call :meth:`~rich.console.Console.export_text`, :meth:`~rich.console.Console.export_svg` or :meth:`~rich.console.Console.export_html` to get the console output as a string. You can also call :meth:`~rich.console.Console.save_text`, :meth:`~rich.console.Console.save_svg`, or :meth:`~rich.console.Console.save_html` to write the contents directly to disk. For examples of the html output generated by Rich Console, see :ref:`appendix-colors`. +Exporting SVGs +^^^^^^^^^^^^^^ + +When using :meth:`~rich.console.Console.export_svg` or :meth:`~rich.console.Console.save_svg`, the width of the SVG will match the width of your terminal window (in terms of characters), while the height will scale automatically to accommodate the console output. + +You can open the SVG in a web browser. You can also insert it in to a webpage with an ```` tag or by copying the markup in to your HTML. + +The image below shows an example of an SVG exported by Rich. + +.. image:: ../images/svg_export.svg + +You can customize the theme used during SVG export by importing the desired theme from the :mod:`rich.terminal_theme` module and passing it to :meth:`~rich.console.Console.export_svg` or :meth:`~rich.console.Console.save_svg` via the ``theme`` parameter:: + + + from rich.console import Console + from rich.terminal_theme import MONOKAI + + console = Console(record=True) + console.save_svg("example.svg", theme=MONOKAI) + +Alternatively, you can create a theme of your own by constructing a :class:`rich.terminal_theme.TerminalTheme` instance yourself and passing that in. + +.. note:: + The SVGs reference the Fira Code font. If you embed a Rich SVG in your page, you may also want to add a link to the `Fira Code CSS `_ + Error console ------------- The Console object will write to ``sys.stdout`` by default (so that you see output in the terminal). If you construct the Console with ``stderr=True`` Rich will write to ``sys.stderr``. You may want to use this to create an *error console* so you can split error messages from regular output. Here's an example:: - from rich.console import Console + from rich.console import Console error_console = Console(stderr=True) You might also want to set the ``style`` parameter on the Console to make error messages visually distinct. Here's how you might do that:: @@ -271,7 +298,7 @@ You might also want to set the ``style`` parameter on the Console to make error File output ----------- -You can also tell the Console object to write to a file by setting the ``file`` argument on the constructor -- which should be a file-like object opened for writing text. You could use this to write to a file without the output ever appearing on the terminal. Here's an example:: +You can tell the Console object to write to a file by setting the ``file`` argument on the constructor -- which should be a file-like object opened for writing text. You could use this to write to a file without the output ever appearing on the terminal. Here's an example:: import sys from rich.console import Console @@ -280,8 +307,8 @@ You can also tell the Console object to write to a file by setting the ``file`` with open("report.txt", "wt") as report_file: console = Console(file=report_file) console.rule(f"Report Generated {datetime.now().ctime()}") - -Note that when writing to a file you may want to explicitly the ``width`` argument if you don't want to wrap the output to the current console width. + +Note that when writing to a file you may want to explicitly set the ``width`` argument if you don't want to wrap the output to the current console width. Capturing output ---------------- @@ -319,7 +346,7 @@ You can page output from a Console by calling :meth:`~rich.console.Console.pager Since the default pager on most platforms don't support color, Rich will strip color from the output. If you know that your pager supports color, you can set ``styles=True`` when calling the :meth:`~rich.console.Console.pager` method. .. note:: - Rich will use the ``PAGER`` environment variable to get the pager command. On Linux and macOS you can set this to ``less -r`` to enable paging with ANSI styles. + Rich will look at ``MANPAGER`` then the ``PAGER`` environment variables (``MANPAGER`` takes priority) to get the pager command. On Linux and macOS you can set one of these to ``less -r`` to enable paging with ANSI styles. Alternate screen ---------------- @@ -338,10 +365,10 @@ Here's an example of an alternate screen:: with console.screen(): console.print(locals()) sleep(5) - + The above code will display a pretty printed dictionary on the alternate screen before returning to the command prompt after 5 seconds. -You can also provide a renderable to :meth:`~rich.console.Console.screen` which will be displayed in the alternate screen when you call :meth:`~rich.ScreenContext.update`. +You can also provide a renderable to :meth:`~rich.console.Console.screen` which will be displayed in the alternate screen when you call :meth:`~rich.ScreenContext.update`. Here's an example:: @@ -379,12 +406,12 @@ If Rich detects that it is not writing to a terminal it will strip control codes Letting Rich auto-detect terminals is useful as it will write plain text when you pipe output to a file or other application. Interactive mode -~~~~~~~~~~~~~~~~ +---------------- Rich will remove animations such as progress bars and status indicators when not writing to a terminal as you probably don't want to write these out to a text file (for example). You can override this behavior by setting the ``force_interactive`` argument on the constructor. Set it to True to enable animations or False to disable them. .. note:: - Some CI systems support ANSI color and style but not anything that moves the cursor or selectively refreshes parts of the terminal. For these you might want to set ``force_terminal`` to ``True`` and ``force_interactve`` to ``False``. + Some CI systems support ANSI color and style but not anything that moves the cursor or selectively refreshes parts of the terminal. For these you might want to set ``force_terminal`` to ``True`` and ``force_interactive`` to ``False``. Environment variables --------------------- diff --git a/docs/source/highlighting.rst b/docs/source/highlighting.rst index 260cfbeacd..34274d9774 100644 --- a/docs/source/highlighting.rst +++ b/docs/source/highlighting.rst @@ -1,3 +1,5 @@ +.. _highlighting: + Highlighting ============ @@ -12,8 +14,8 @@ If the default highlighting doesn't fit your needs, you can define a custom high Here's an example which highlights text that looks like an email address:: - from rich.console import Console - from rich.highlighter import RegexHighlighter + from rich.console import Console + from rich.highlighter import RegexHighlighter from rich.theme import Theme class EmailHighlighter(RegexHighlighter): diff --git a/docs/source/introduction.rst b/docs/source/introduction.rst index 464ebdd65a..f8067bf0c3 100644 --- a/docs/source/introduction.rst +++ b/docs/source/introduction.rst @@ -1,7 +1,7 @@ Introduction ============ -Rich is a Python library for writing *rich* text (with color and style) to the terminal, and for displaying advanced content such as tables, markdown, and syntax highlighted code. +Rich is a Python library for writing *rich* text (with color and style) to the terminal, and for displaying advanced content such as tables, markdown, and syntax highlighted code. Use Rich to make your command line applications visually appealing and present data in a more readable way. Rich can also be a useful debugging aid by pretty printing and syntax highlighting data structures. @@ -10,9 +10,9 @@ Requirements Rich works with OSX, Linux and Windows. -On Windows both the (ancient) cmd.exe terminal is supported and the new `Windows Terminal `_. The later has much improved support for color and style. +On Windows both the (ancient) cmd.exe terminal is supported and the new `Windows Terminal `_. The latter has much improved support for color and style. -Rich requires Python 3.6.1 and above. Note that Python 3.6.0 is *not* supported due to lack of support for methods on NamedTuples. +Rich requires Python 3.6.3 and above. Note that Python 3.6.0 is *not* supported due to lack of support for methods on NamedTuples. .. note:: PyCharm users will need to enable "emulate terminal" in output console option in run/debug configuration to see styled output. @@ -20,7 +20,7 @@ Rich requires Python 3.6.1 and above. Note that Python 3.6.0 is *not* supported Installation ------------ -You can install Rich from PyPi with `pip` or your favorite package manager:: +You can install Rich from PyPI with `pip` or your favorite package manager:: pip install rich @@ -38,7 +38,7 @@ The quickest way to get up and running with Rich is to import the alternative `` from rich import print -You can then print strings or objects to the terminal in the usual way. Rich will do some basic syntax highlighting and format data structures to make them easier to read. +You can then print strings or objects to the terminal in the usual way. Rich will do some basic syntax :ref:`highlighting` and format data structures to make them easier to read. Strings may contain :ref:`console_markup` which can be used to insert color and styles in to the output. @@ -50,7 +50,7 @@ This writes the following output to the terminal (including all the colors and s .. raw:: html -
Hello World!                                                 
+    
Hello World!
     {
         '__annotations__': {},
         '__builtins__': <module 'builtins' (built-in)>,
@@ -63,7 +63,7 @@ This writes the following output to the terminal (including all the colors and s
     } 
-If you would rather not shadow Python's builtin print, you can import ``rich.print`` as ``rprint`` (for example):: +If you would rather not shadow Python's built-in print, you can import ``rich.print`` as ``rprint`` (for example):: from rich import print as rprint @@ -75,7 +75,7 @@ Rich in the REPL Rich may be installed in the REPL so that Python data structures are automatically pretty printed with syntax highlighting. Here's how:: >>> from rich import pretty - >>> pretty.install() + >>> pretty.install() >>> ["Rich and pretty", True] You can also use this feature to try out Rich *renderables*. Here's an example:: @@ -91,8 +91,8 @@ IPython Extension Rich also includes an IPython extension that will do this same pretty install + pretty tracebacks. Here's how to load it:: In [1]: %load_ext rich - -You can also have it load by default by adding `"rich"` to the ``c.InteractiveShellApp.extension`` variable in + +You can also have it load by default by adding `"rich"` to the ``c.InteractiveShellApp.extension`` variable in `IPython Configuration `_. Rich Inspect @@ -103,4 +103,4 @@ Rich has an :meth:`~rich.inspect` function which can generate a report on any Py >>> from rich import inspect >>> from rich.color import Color >>> color = Color.parse("red") - >>> inspect(color, methods=True) \ No newline at end of file + >>> inspect(color, methods=True) diff --git a/docs/source/layout.rst b/docs/source/layout.rst index f230931716..480956311f 100644 --- a/docs/source/layout.rst +++ b/docs/source/layout.rst @@ -99,7 +99,7 @@ This will set the upper portion to be exactly 10 rows, no matter the size of the Ratio ----- -In addition to a fixed size, you can also make a flexible layout setting the ``ratio`` argument on the constructor or by assigning to the attribute. The ratio defines how much of the screen the layout should occupy in relation to other layouts. For example, lets reset the size and set the ratio of the upper layout to 2:: +In addition to a fixed size, you can also make a flexible layout setting the ``ratio`` argument on the constructor or by assigning to the attribute. The ratio defines how much of the screen the layout should occupy in relation to other layouts. For example, let's reset the size and set the ratio of the upper layout to 2:: layout["upper"].size = None layout["upper"].ratio = 2 @@ -124,7 +124,7 @@ The top layout is now invisible, and the "lower" layout will expand to fill the layout["upper"].visible = True print(layout) -You could use this to toggle parts of your interface based on your applications configuration. +You could use this to toggle parts of your interface based on your application's configuration. Tree ---- diff --git a/docs/source/live.rst b/docs/source/live.rst index f2c5cc76fc..51dd115d18 100644 --- a/docs/source/live.rst +++ b/docs/source/live.rst @@ -5,7 +5,7 @@ Live Display Progress bars and status indicators use a *live* display to animate parts of the terminal. You can build custom live displays with the :class:`~rich.live.Live` class. -For a demonstration of a live display, run the following command: +For a demonstration of a live display, run the following command:: python -m rich.live diff --git a/docs/source/logging.rst b/docs/source/logging.rst index b9077188ff..67a999922b 100644 --- a/docs/source/logging.rst +++ b/docs/source/logging.rst @@ -16,15 +16,19 @@ Here's an example of how to set up a rich logger:: log = logging.getLogger("rich") log.info("Hello, World!") -Rich logs won't render :ref:`console_markup` in logging by default as most libraries won't be aware of the need to escape literal square brackets, but you can enable it by setting ``markup=True`` on the handler. Alternatively you can enable it per log message by supplying the ``extra`` argument as follows:: +Rich logs won't render :ref:`console_markup` in logging by default as most libraries won't be aware of the need to escape literal square brackets, but you can enable it by setting ``markup=True`` on the handler. Alternatively you can enable it per log message by supplying the ``extra`` argument as follows:: log.error("[bold red blink]Server is shutting down![/]", extra={"markup": True}) +Similarly, the highlighter may be overridden per log message:: + + log.error("123 will not be highlighted", extra={"highlighter": None}) + Handle exceptions ------------------- -The :class:`~rich.logging.RichHandler` class may be configured to use Rich's :class:`~rich.traceback.Traceback` class to format exceptions, which provides more context than a builtin exception. To get beautiful exceptions in your logs set ``rich_tracebacks=True`` on the handler constructor:: +The :class:`~rich.logging.RichHandler` class may be configured to use Rich's :class:`~rich.traceback.Traceback` class to format exceptions, which provides more context than a built-in exception. To get beautiful exceptions in your logs set ``rich_tracebacks=True`` on the handler constructor:: import logging @@ -45,3 +49,23 @@ The :class:`~rich.logging.RichHandler` class may be configured to use Rich's :cl There are a number of other options you can use to configure logging output, see the :class:`~rich.logging.RichHandler` reference for details. + +Suppressing Frames +------------------ + +If you are working with a framework (click, django etc), you may only be interested in seeing the code from your own application within the traceback. You can exclude framework code by setting the `suppress` argument on `Traceback`, `install`, and `Console.print_exception`, which should be a list of modules or str paths. + +Here's how you would exclude `click `_ from Rich exceptions:: + + import click + import logging + from rich.logging import RichHandler + + logging.basicConfig( + level="NOTSET", + format="%(message)s", + datefmt="[%X]", + handlers=[RichHandler(rich_tracebacks=True, tracebacks_suppress=[click])] + ) + +Suppressed frames will show the line and file only, without any code. \ No newline at end of file diff --git a/docs/source/markup.rst b/docs/source/markup.rst index 1ab925b089..7644bf8625 100644 --- a/docs/source/markup.rst +++ b/docs/source/markup.rst @@ -27,7 +27,7 @@ There is a shorthand for closing a style. If you omit the style name from the cl print("[bold red]Bold and red[/] not bold or red") -These markup tags may be use in combination with each other and don't need to be strictly nested. The following examples demonstrates overlapping of markup tags:: +These markup tags may be use in combination with each other and don't need to be strictly nested. The following example demonstrates overlapping of markup tags:: print("[bold]Bold[italic] bold and italic [/bold]italic[/italic]") @@ -86,7 +86,7 @@ If you add an *emoji code* to markup it will be replaced with the equivalent uni >>> print(":warning:") ⚠️ -Some emojis have two variants, the "emoji" variant displays in full color, and the "text" variant displays in monochrome (whatever your default colors are set to). You can specify the variant you want by adding either `"-emoji"` or `"-text"` to the emoji code. Here's an example: +Some emojis have two variants, the "emoji" variant displays in full color, and the "text" variant displays in monochrome (whatever your default colors are set to). You can specify the variant you want by adding either `"-emoji"` or `"-text"` to the emoji code. Here's an example: >>> from rich import print >>> print(":red_heart-emoji:") diff --git a/docs/source/pretty.rst b/docs/source/pretty.rst index 2c1c017ddd..7a050b9433 100644 --- a/docs/source/pretty.rst +++ b/docs/source/pretty.rst @@ -65,7 +65,7 @@ There are a large number of options to tweak the pretty formatting, See the :cla Rich Repr Protocol ------------------ -Rich is able to syntax highlight any output, but the formatting is restricted to builtin containers, dataclasses, and other objects Rich knows about, such as objects generated by the `attrs `_ library. To add Rich formatting capabilities to custom objects, you can implement the *rich repr protocol*. +Rich is able to syntax highlight any output, but the formatting is restricted to built-in containers, dataclasses, and other objects Rich knows about, such as objects generated by the `attrs `_ library. To add Rich formatting capabilities to custom objects, you can implement the *rich repr protocol*. Run the following command to see an example of what the Rich repr protocol can generate:: @@ -221,7 +221,7 @@ To automatically build a rich repr, use the :meth:`~rich.repr.auto` class decora from rich import print print(BIRDS) -Note that the decorator will also create a `__repr__`, so you you will get an auto-generated repr even if you don't print with Rich. +Note that the decorator will also create a `__repr__`, so you will get an auto-generated repr even if you don't print with Rich. If you want to auto-generate the angular type of repr, then set ``angular=True`` on the decorator:: diff --git a/docs/source/progress.rst b/docs/source/progress.rst index 5c70e329b6..afe459386b 100644 --- a/docs/source/progress.rst +++ b/docs/source/progress.rst @@ -34,9 +34,9 @@ If you require multiple tasks in the display, or wish to configure the columns i The Progress class is designed to be used as a *context manager* which will start and stop the progress display automatically. Here's a simple example:: - + import time - + from rich.progress import Progress with Progress() as progress: @@ -59,12 +59,12 @@ Updating tasks When you call :meth:`~rich.progress.Progress.add_task` you get back a `Task ID`. Use this ID to call :meth:`~rich.progress.Progress.update` whenever you have completed some work, or any information has changed. Typically you will need to update ``completed`` every time you have completed a step. You can do this by updated ``completed`` directly or by setting ``advance`` which will add to the current ``completed`` value. -The :meth:`~rich.progress.Progress.update` method collects keyword arguments which are also associated with the task. Use this to supply any additional information you would like to render in the progress display. The additional arguments are stored in ``task.fields`` and may be referenced in :ref:`Column classes`. +The :meth:`~rich.progress.Progress.update` method collects keyword arguments which are also associated with the task. Use this to supply any additional information you would like to render in the progress display. The additional arguments are stored in ``task.fields`` and may be referenced in :ref:`Column classes`. Hiding tasks ~~~~~~~~~~~~ -You can show or hide tasks by updating the tasks ``visible`` value. Tasks are visible by default, but you can also add a invisible task by calling :meth:`~rich.progress.Progress.add_task` with ``visible=False``. +You can show or hide tasks by updating the tasks ``visible`` value. Tasks are visible by default, but you can also add an invisible task by calling :meth:`~rich.progress.Progress.add_task` with ``visible=False``. Transient progress @@ -81,7 +81,7 @@ Transient progress displays are useful if you want more minimal output in the te Indeterminate progress ~~~~~~~~~~~~~~~~~~~~~~ -When you add a task it is automatically *started*, which means it will show a progress bar at 0% and the time remaining will be calculated from the current time. This may not work well if there is a long delay before you can start updating progress; you may need to wait for a response from a server or count files in a directory (for example). In these cases you can call :meth:`~rich.progress.Progress.add_task` with ``start=False`` which will display a pulsing animation that lets the user know something is working. This is know as an *indeterminate* progress bar. When you have the number of steps you can call :meth:`~rich.progress.Progress.start_task` which will display the progress bar at 0%, then :meth:`~rich.progress.Progress.update` as normal. +When you add a task it is automatically *started*, which means it will show a progress bar at 0% and the time remaining will be calculated from the current time. This may not work well if there is a long delay before you can start updating progress; you may need to wait for a response from a server or count files in a directory (for example). In these cases you can call :meth:`~rich.progress.Progress.add_task` with ``start=False`` or ``total=None`` which will display a pulsing animation that lets the user know something is working. This is know as an *indeterminate* progress bar. When you have the number of steps you can call :meth:`~rich.progress.Progress.start_task` which will display the progress bar at 0%, then :meth:`~rich.progress.Progress.update` as normal. Auto refresh ~~~~~~~~~~~~ @@ -100,25 +100,34 @@ The progress bar(s) will use only as much of the width of the terminal as requir Columns ~~~~~~~ -You may customize the columns in the progress display with the positional arguments to the :class:`~rich.progress.Progress` constructor. The columns are specified as either a format string or a :class:`~rich.progress.ProgressColumn` object. +You may customize the columns in the progress display with the positional arguments to the :class:`~rich.progress.Progress` constructor. The columns are specified as either a *format string* or a :class:`~rich.progress.ProgressColumn` object. -Format strings will be rendered with a single value `"task"` which will be a :class:`~rich.progress.Task` instance. For example ``"{task.description}"`` would display the task description in the column, and ``"{task.completed} of {task.total}"`` would display how many of the total steps have been completed. +Format strings will be rendered with a single value `"task"` which will be a :class:`~rich.progress.Task` instance. For example ``"{task.description}"`` would display the task description in the column, and ``"{task.completed} of {task.total}"`` would display how many of the total steps have been completed. Additional fields passed via keyword arguments to `~rich.progress.Progress.update` are store in ``task.fields``. You can add them to a format string with the following syntax: ``"extra info: {task.fields[extra]}"``. -The defaults are roughly equivalent to the following:: +The default columns are equivalent to the following: progress = Progress( - "[progress.description]{task.description}", + TextColumn("[progress.description]{task.description}"), BarColumn(), - "[progress.percentage]{task.percentage:>3.0f}%", + TaskProgressColumn(), TimeRemainingColumn(), ) +To create a Progress with your own columns in addition to the defaults, use :meth:`~rich.progress.Progress.get_default_columns`:: + + progress = Progress( + SpinnerColumn(), + *Progress.get_default_columns(), + TimeElapsedColumn(), + ) + The following column objects are available: - :class:`~rich.progress.BarColumn` Displays the bar. - :class:`~rich.progress.TextColumn` Displays text. - :class:`~rich.progress.TimeElapsedColumn` Displays the time elapsed. - :class:`~rich.progress.TimeRemainingColumn` Displays the estimated time remaining. +- :class:`~rich.progress.MofNCompleteColumn` Displays completion progress as ``"{task.completed}/{task.total}"`` (works best if completed and total are ints). - :class:`~rich.progress.FileSizeColumn` Displays progress as file size (assumes the steps are bytes). - :class:`~rich.progress.TotalFileSizeColumn` Displays total file size (assumes the steps are bytes). - :class:`~rich.progress.DownloadColumn` Displays download progress (assumes the steps are bytes). @@ -128,6 +137,7 @@ The following column objects are available: To implement your own columns, extend the :class:`~rich.progress.ProgressColumn` class and use it as you would the other columns. + Table Columns ~~~~~~~~~~~~~ @@ -169,12 +179,12 @@ If you have another Console object you want to use, pass it in to the :class:`~r with Progress(console=my_console) as progress: my_console.print("[bold blue]Starting work!") do_work(progress) - + Redirecting stdout / stderr ~~~~~~~~~~~~~~~~~~~~~~~~~~~ -To avoid breaking the progress display visuals, Rich will redirect ``stdout`` and ``stderr`` so that you can use the builtin ``print`` statement. This feature is enabled by default, but you can disable by setting ``redirect_stdout`` or ``redirect_stderr`` to ``False`` +To avoid breaking the progress display visuals, Rich will redirect ``stdout`` and ``stderr`` so that you can use the built-in ``print`` statement. This feature is enabled by default, but you can disable by setting ``redirect_stdout`` or ``redirect_stderr`` to ``False`` Customizing @@ -187,15 +197,51 @@ If the :class:`~rich.progress.Progress` class doesn't offer exactly what you nee class MyProgress(Progress): def get_renderables(self): - yield Panel(self.make_tasks_table(self.tasks)) + yield Panel(self.make_tasks_table(self.tasks)) + +Reading from a file +~~~~~~~~~~~~~~~~~~~ + +Rich provides an easy way to generate a progress bar while reading a file. If you call :func:`~rich.progress.open` it will return a context manager which displays a progress bar while you read. This is particularly useful when you can't easily modify the code that does the reading. + +The following example demonstrates how we might show progress when reading a JSON file:: + + import json + import rich.progress + + with rich.progress.open("data.json", "rb") as file: + data = json.load(file) + print(data) + +If you already have a file object, you can call :func:`~rich.progress.wrap_file` which returns a context manager that wraps your file so that it displays a progress bar. If you use this function you will need to set the number of bytes or characters you expect to read. + +Here's an example that reads a url from the internet:: + + from time import sleep + from urllib.request import urlopen + + from rich.progress import wrap_file + + response = urlopen("https://www.textualize.io") + size = int(response.headers["Content-Length"]) + + with wrap_file(response, size) as file: + for line in file: + print(line.decode("utf-8"), end="") + sleep(0.1) + + +If you expect to be reading from multiple files, you can use :meth:`~rich.progress.Progress.open` or :meth:`~rich.progress.Progress.wrap_file` to add a file progress to an existing Progress instance. + +See `cp_progress.py ` for a minimal clone of the ``cp`` command which shows a progress bar as the file is copied. + Multiple Progress ----------------- -You can't have different columns per task with a single Progress instance. However, you can have as many Progress instance as you like in a :ref:`live`. See `live_progress.py `_ for an example of using multiple Progress instances. +You can't have different columns per task with a single Progress instance. However, you can have as many Progress instances as you like in a :ref:`live`. See `live_progress.py `_ and `dynamic_progress.py `_ for examples of using multiple Progress instances. Example ------- See `downloader.py `_ for a realistic application of a progress display. This script can download multiple concurrent files with a progress bar, transfer speed and file size. - diff --git a/docs/source/prompt.rst b/docs/source/prompt.rst index fa256a0f64..088aa8e743 100644 --- a/docs/source/prompt.rst +++ b/docs/source/prompt.rst @@ -1,7 +1,7 @@ Prompt ====== -Rich has a number of :class:`~rich.prompt.Prompt` classes which ask a user for input and loop until a valid response is received. Here's a simple example:: +Rich has a number of :class:`~rich.prompt.Prompt` classes which ask a user for input and loop until a valid response is received (they all use the :ref:`Console API` internally). Here's a simple example:: >>> from rich.prompt import Prompt >>> name = Prompt.ask("Enter your name") diff --git a/docs/source/protocol.rst b/docs/source/protocol.rst index 796bed6467..cd8c03a4ab 100644 --- a/docs/source/protocol.rst +++ b/docs/source/protocol.rst @@ -4,7 +4,7 @@ Console Protocol ================ -Rich supports a simple protocol to add rich formatting capabilities to custom objects, so you can :meth:`~rich.console.Console.print` your object with color, styles and formatting. +Rich supports a simple protocol to add rich formatting capabilities to custom objects, so you can :meth:`~rich.console.Console.print` your object with color, styles and formatting. Use this for presentation or to display additional debugging information that might be hard to parse from a typical ``__repr__`` string. diff --git a/docs/source/style.rst b/docs/source/style.rst index b01621502b..18d4bf16ba 100644 --- a/docs/source/style.rst +++ b/docs/source/style.rst @@ -20,7 +20,7 @@ You may also use the color's number (an integer between 0 and 255) with the synt console.print("Hello", style="color(5)") -Alteratively you can use a CSS-like syntax to specify a color with a "#" followed by three pairs of hex characters, or in RGB form with three decimal integers. The following two lines both print "Hello" in the same color (purple):: +Alternatively you can use a CSS-like syntax to specify a color with a "#" followed by three pairs of hex characters, or in RGB form with three decimal integers. The following two lines both print "Hello" in the same color (purple):: console.print("Hello", style="#af00ff") console.print("Hello", style="rgb(175,0,255)") @@ -106,7 +106,7 @@ You can parse a style definition explicitly with the :meth:`~rich.style.Style.pa Style Themes ------------ -If you re-use styles it can be a maintenance headache if you ever want to modify an attribute or color -- you would have to change every line where the style is used. Rich provides a :class:`~rich.theme.Theme` class which you can use to define custom styles that you can refer to by name. That way you only need update your styles in one place. +If you re-use styles it can be a maintenance headache if you ever want to modify an attribute or color -- you would have to change every line where the style is used. Rich provides a :class:`~rich.theme.Theme` class which you can use to define custom styles that you can refer to by name. That way you only need to update your styles in one place. Style themes can make your code more semantic, for instance a style called ``"warning"`` better expresses intent that ``"italic magenta underline"``. @@ -115,7 +115,7 @@ To use a style theme, construct a :class:`~rich.theme.Theme` instance and pass i from rich.console import Console from rich.theme import Theme custom_theme = Theme({ - "info" : "dim cyan", + "info": "dim cyan", "warning": "magenta", "danger": "bold red" }) @@ -132,7 +132,7 @@ To use a style theme, construct a :class:`~rich.theme.Theme` instance and pass i Customizing Defaults ~~~~~~~~~~~~~~~~~~~~ -The Theme class will inherit the default styles builtin to Rich. If your custom theme contains the name of an existing style, it will replace it. This allows you to customize the defaults as easily as you can create your own styles. For instance, here's how you can change how Rich highlights numbers:: +The Theme class will inherit the default styles built-in to Rich. If your custom theme contains the name of an existing style, it will replace it. This allows you to customize the defaults as easily as you can create your own styles. For instance, here's how you can change how Rich highlights numbers:: from rich.console import Console from rich.theme import Theme @@ -141,9 +141,10 @@ The Theme class will inherit the default styles builtin to Rich. If your custom You can disable inheriting the default theme by setting ``inherit=False`` on the :class:`rich.theme.Theme` constructor. -To see the default theme, run the following command:: +To see the default theme, run the following commands:: python -m rich.theme + python -m rich.default_styles Loading Themes diff --git a/docs/source/syntax.rst b/docs/source/syntax.rst index 823d345c8b..4e55bf9967 100644 --- a/docs/source/syntax.rst +++ b/docs/source/syntax.rst @@ -10,7 +10,7 @@ To syntax highlight code, construct a :class:`~rich.syntax.Syntax` object and pr console = Console() with open("syntax.py", "rt") as code_file: - syntax = Syntax(code_file.read(), "python") + syntax = Syntax(code_file.read(), "python") console.print(syntax) You may also use the :meth:`~rich.syntax.Syntax.from_path` alternative constructor which will load the code from disk and auto-detect the file type. The example above could be re-written as follows:: diff --git a/docs/source/tables.rst b/docs/source/tables.rst index 9048334ca9..22236358f4 100644 --- a/docs/source/tables.rst +++ b/docs/source/tables.rst @@ -40,7 +40,44 @@ This produces the following output:
-Rich is quite smart about rendering the table. It will adjust the column widths to fit the contents and will wrap text if it doesn't fit. You can also add anything that Rich knows how to render as a title or row cell (even another table)! +Rich will calculate the optimal column sizes to fit your content, and will wrap text to fit if the terminal is not wide enough to fit the contents. + +.. note:: + You are not limited to adding text in the ``add_row`` method. You can add anything that Rich knows how to render (including another table). + +Table Options +~~~~~~~~~~~~~ + +There are a number of keyword arguments on the Table constructor you can use to define how a table should look. + +- ``title`` Sets the title of the table (text show above the table). +- ``caption`` Sets the table caption (text show below the table). +- ``width`` Sets the desired width of the table (disables automatic width calculation). +- ``min_width`` Sets a minimum width for the table. +- ``box`` Sets one of the :ref:`appendix_box` styles for the table grid, or ``None`` for no grid. +- ``safe_box`` Set to ``True`` to force the table to generate ASCII characters rather than unicode. +- ``padding`` A integer, or tuple of 1, 2, or 4 values to set the padding on cells. +- ``collapse_padding`` If True the padding of neighboring cells will be merged. +- ``pad_edge`` Set to False to remove padding around the edge of the table. +- ``expand`` Set to True to expand the table to the full available size. +- ``show_header`` Set to True to show a header, False to disable it. +- ``show_footer`` Set to True to show a footer, False to disable it. +- ``show_edge`` Set to False to disable the edge line around the table. +- ``show_lines`` Set to True to show lines between rows as well as header / footer. +- ``leading`` Additional space between rows. +- ``style`` A Style to apply to the entire table, e.g. "on blue" +- ``row_styles`` Set to a list of styles to style alternating rows. e.g. ``["dim", ""]`` to create *zebra stripes* +- ``header_style`` Set the default style for the header. +- ``footer_style`` Set the default style for the footer. +- ``border_style`` Set a style for border characters. +- ``title_style`` Set a style for the title. +- ``caption_style`` Set a style for the caption. +- ``title_justify`` Set the title justify method ("left", "right", "center", or "full") +- ``caption_justify`` Set the caption justify method ("left", "right", "center", or "full") +- ``highlight`` Set to True to enable automatic highlighting of cell contents. + +Border Styles +~~~~~~~~~~~~~ You can set the border style by importing one of the preset :class:`~rich.box.Box` objects and setting the ``box`` argument in the table constructor. Here's an example that modifies the look of the Star Wars table:: @@ -49,9 +86,17 @@ You can set the border style by importing one of the preset :class:`~rich.box.Bo See :ref:`appendix_box` for other box styles. +You can also set ``box=None`` to remove borders entirely. + The :class:`~rich.table.Table` class offers a number of configuration options to set the look and feel of the table, including how borders are rendered and the style and alignment of the columns. +Lines +~~~~~ + +By default, Tables will show a line under the header only. If you want to show lines between all rows add ``show_lines=True`` to the constructor. + + Empty Tables ~~~~~~~~~~~~ @@ -70,7 +115,7 @@ You may also add columns by specifying them in the positional arguments of the : table = Table("Released", "Title", "Box Office", title="Star Wars Movies") -This allows you to specify the text of the column only. If you want to set other attributes, such as width and style, you can add an :class:`~rich.table.Column` class. Here's an example:: +This allows you to specify the text of the column only. If you want to set other attributes, such as width and style, you can add a :class:`~rich.table.Column` class. Here's an example:: from rich.table import Column table = Table( @@ -80,10 +125,29 @@ This allows you to specify the text of the column only. If you want to set other title="Star Wars Movies" ) -Lines -~~~~~ +Column Options +~~~~~~~~~~~~~~ -By default, Tables will show a line under the header only. If you want to show lines between all rows add ``show_lines=True`` to the constructor. +There are a number of options you can set on a column to modify how it will look. + +- ``header_style`` Sets the style of the header, e.g. "bold magenta". +- ``footer_style`` Sets the style of the footer. +- ``style`` Sets a style that applies to the column. You could use this to highlight a column by setting the background with "on green" for example. +- ``justify`` Sets the text justify to one of "left", "center", "right", or "full". +- ``vertical`` Sets the vertical alignment of the cells in a column, to one of "top", "middle", or "bottom". +- ``width`` Explicitly set the width of a row to a given number of characters (disables automatic calculation). +- ``min_width`` When set to an integer will prevent the column from shrinking below this amount. +- ``max_width`` When set to an integer will prevent the column from growing beyond this amount. +- ``ratio`` Defines a ratio to set the column width. For instance, if there are 3 columns with a total of 6 ratio, and ``ratio=2`` then the column will be a third of the available size. +- ``no_wrap`` Set to True to prevent this column from wrapping. + +Vertical Alignment +~~~~~~~~~~~~~~~~~~ + +You can define the vertical alignment of a column by setting the ``vertical`` parameter of the column. You can also do this per-cell by wrapping your text or renderable with a :class:`~rich.align.Align` class:: + + + table.add_row(Align("Title", vertical="middle")) Grids ~~~~~ diff --git a/docs/source/text.rst b/docs/source/text.rst index b5f2eaf8f1..fd6851fb4f 100644 --- a/docs/source/text.rst +++ b/docs/source/text.rst @@ -5,7 +5,7 @@ Rich Text Rich has a :class:`~rich.text.Text` class you can use to mark up strings with color and style attributes. You can use a Text instance anywhere a string is accepted, which gives you a lot of control over presentation. -You can consider this class to be like a string with marked up regions of text. Unlike a builtin ``str``, a Text instance is mutable, and most methods operate in-place rather than returning a new instance. +You can consider this class to be like a string with marked up regions of text. Unlike a built-in ``str``, a Text instance is mutable, and most methods operate in-place rather than returning a new instance. One way to add a style to Text is the :meth:`~rich.text.Text.stylize` method which applies a style to a start and end offset. Here is an example:: @@ -26,6 +26,11 @@ Alternatively, you can construct styled text by calling :meth:`~rich.text.Text.a text.append(" World!") console.print(text) +If you would like to use text that is already formatted with ANSI codes, call :meth:`~rich.text.Text.from_ansi` to convert it to a ``Text`` object:: + + text = Text.from_ansi("\033[1mHello, World!\033[0m") + console.print(text.spans) + Since building Text instances from parts is a common requirement, Rich offers :meth:`~rich.text.Text.assemble` which will combine strings or pairs of string and Style, and return a Text instance. The follow example is equivalent to the code above:: text = Text.assemble(("Hello", "bold magenta"), " World!") diff --git a/docs/source/traceback.rst b/docs/source/traceback.rst index 00cb69138d..6c2893222d 100644 --- a/docs/source/traceback.rst +++ b/docs/source/traceback.rst @@ -18,7 +18,7 @@ The :meth:`~rich.console.Console.print_exception` method will print a traceback try: do_something() - except Exception: + except Exception: console.print_exception(show_locals=True) The ``show_locals=True`` parameter causes Rich to display the value of local variables for each frame of the traceback. @@ -26,7 +26,7 @@ The ``show_locals=True`` parameter causes Rich to display the value of local var See `exception.py `_ for a larger example. -Traceback handler +Traceback Handler ----------------- Rich can be installed as the default traceback handler so that all uncaught exceptions will be rendered with highlighting. Here's how:: @@ -36,13 +36,34 @@ Rich can be installed as the default traceback handler so that all uncaught exce There are a few options to configure the traceback handler, see :func:`~rich.traceback.install` for details. +Automatic Traceback Handler +^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +In some cases you may want to have the traceback handler installed automatically without having to worry about importing the code in your module. You can do that by modifying the `sitecustomize.py` in your virtual environment. Typically it would be located in your virtual environment path, underneath the `site-packages` folder, something like this:: + + ./.venv/lib/python3.9/site-packages/sitecustomize.py + +In most cases this file will not exist. If it doesn't exist, you can create it by:: + + $ touch .venv/lib/python3.9/site-packages/sitecustomize.py + +Add the following code to the file:: + + from rich.traceback import install + install(show_locals=True) + +At this point, the traceback will be installed for any code that is run within the virtual environment. + +.. note:: + If you plan on sharing your code, it is probably best to include the traceback install in your main entry point module. + Suppressing Frames ------------------ -If you are working with a framework (click, django etc), you may only be interested in seeing the code from your own application within the traceback. You can exclude framework code by setting the `suppress` argument on `Traceback`, `install`, and `Console.print_exception`, which should be a list of modules or str paths. +If you are working with a framework (click, django etc), you may only be interested in seeing the code from your own application within the traceback. You can exclude framework code by setting the `suppress` argument on `Traceback`, `install`, `Console.print_exception`, and `RichHandler`, which should be a list of modules or str paths. -Here's how you would exclude [click](https://click.palletsprojects.com/en/8.0.x/) from Rich exceptions:: +Here's how you would exclude `click `_ from Rich exceptions:: import click from rich.traceback import install @@ -55,7 +76,7 @@ Max Frames A recursion error can generate very large tracebacks that take a while to render and contain a lot of repetitive frames. Rich guards against this with a `max_frames` argument, which defaults to 100. If a traceback contains more than 100 frames then only the first 50, and last 50 will be shown. You can disable this feature by setting `max_frames` to 0. -Here's an example of printing an recursive error:: +Here's an example of printing a recursive error:: from rich.console import Console @@ -73,4 +94,5 @@ Here's an example of printing an recursive error:: try: foo(1) except Exception: - console.print_exception(max_frames=20) \ No newline at end of file + console.print_exception(max_frames=20) + diff --git a/examples/cp_progress.py b/examples/cp_progress.py new file mode 100644 index 0000000000..b5cc4c8181 --- /dev/null +++ b/examples/cp_progress.py @@ -0,0 +1,19 @@ +""" +A very minimal `cp` clone that displays a progress bar. +""" +import os +import shutil +import sys + +from rich.progress import Progress + +if __name__ == "__main__": + if len(sys.argv) == 3: + with Progress() as progress: + desc = os.path.basename(sys.argv[1]) + with progress.open(sys.argv[1], "rb", description=desc) as src: + with open(sys.argv[2], "wb") as dst: + shutil.copyfileobj(src, dst) + else: + print("Copy a file with a progress bar.") + print("Usage:\n\tpython cp_progress.py SRC DST") diff --git a/examples/downloader.py b/examples/downloader.py index 15697a49d5..919aa7348f 100644 --- a/examples/downloader.py +++ b/examples/downloader.py @@ -4,7 +4,7 @@ import os.path import sys -from concurrent.futures import as_completed, ThreadPoolExecutor +from concurrent.futures import ThreadPoolExecutor import signal from functools import partial from threading import Event @@ -73,7 +73,7 @@ def download(urls: Iterable[str], dest_dir: str): if __name__ == "__main__": - # Try with https://releases.ubuntu.com/20.04/ubuntu-20.04.2.0-desktop-amd64.iso + # Try with https://releases.ubuntu.com/20.04/ubuntu-20.04.3-desktop-amd64.iso if sys.argv[1:]: download(sys.argv[1:], "./") else: diff --git a/examples/dynamic_progress.py b/examples/dynamic_progress.py new file mode 100644 index 0000000000..c38da2ebf0 --- /dev/null +++ b/examples/dynamic_progress.py @@ -0,0 +1,118 @@ +""" + +Demonstrates how to create a dynamic group of progress bars, +showing multi-level progress for multiple tasks (installing apps in the example), +each of which consisting of multiple steps. + +""" + +import time + +from rich.console import Group +from rich.panel import Panel +from rich.live import Live +from rich.progress import ( + BarColumn, + Progress, + SpinnerColumn, + TextColumn, + TimeElapsedColumn, +) + + +def run_steps(name, step_times, app_steps_task_id): + """Run steps for a single app, and update corresponding progress bars.""" + + for idx, step_time in enumerate(step_times): + # add progress bar for this step (time elapsed + spinner) + action = step_actions[idx] + step_task_id = step_progress.add_task("", action=action, name=name) + + # run steps, update progress + for _ in range(step_time): + time.sleep(0.5) + step_progress.update(step_task_id, advance=1) + + # stop and hide progress bar for this step when done + step_progress.stop_task(step_task_id) + step_progress.update(step_task_id, visible=False) + + # also update progress bar for current app when step is done + app_steps_progress.update(app_steps_task_id, advance=1) + + +# progress bar for current app showing only elapsed time, +# which will stay visible when app is installed +current_app_progress = Progress( + TimeElapsedColumn(), + TextColumn("{task.description}"), +) + +# progress bars for single app steps (will be hidden when step is done) +step_progress = Progress( + TextColumn(" "), + TimeElapsedColumn(), + TextColumn("[bold purple]{task.fields[action]}"), + SpinnerColumn("simpleDots"), +) +# progress bar for current app (progress in steps) +app_steps_progress = Progress( + TextColumn( + "[bold blue]Progress for app {task.fields[name]}: {task.percentage:.0f}%" + ), + BarColumn(), + TextColumn("({task.completed} of {task.total} steps done)"), +) +# overall progress bar +overall_progress = Progress( + TimeElapsedColumn(), BarColumn(), TextColumn("{task.description}") +) +# group of progress bars; +# some are always visible, others will disappear when progress is complete +progress_group = Group( + Panel(Group(current_app_progress, step_progress, app_steps_progress)), + overall_progress, +) + +# tuple specifies how long each step takes for that app +step_actions = ("downloading", "configuring", "building", "installing") +apps = [ + ("one", (2, 1, 4, 2)), + ("two", (1, 3, 8, 4)), + ("three", (2, 1, 3, 2)), +] + +# create overall progress bar +overall_task_id = overall_progress.add_task("", total=len(apps)) + +# use own live instance as context manager with group of progress bars, +# which allows for running multiple different progress bars in parallel, +# and dynamically showing/hiding them +with Live(progress_group): + + for idx, (name, step_times) in enumerate(apps): + # update message on overall progress bar + top_descr = "[bold #AAAAAA](%d out of %d apps installed)" % (idx, len(apps)) + overall_progress.update(overall_task_id, description=top_descr) + + # add progress bar for steps of this app, and run the steps + current_task_id = current_app_progress.add_task("Installing app %s" % name) + app_steps_task_id = app_steps_progress.add_task( + "", total=len(step_times), name=name + ) + run_steps(name, step_times, app_steps_task_id) + + # stop and hide steps progress bar for this specific app + app_steps_progress.update(app_steps_task_id, visible=False) + current_app_progress.stop_task(current_task_id) + current_app_progress.update( + current_task_id, description="[bold green]App %s installed!" % name + ) + + # increase overall progress now this task is done + overall_progress.update(overall_task_id, advance=1) + + # final update for message on overall progress bar + overall_progress.update( + overall_task_id, description="[bold green]%s apps installed, done!" % len(apps) + ) diff --git a/examples/exception.py b/examples/exception.py index 548432d669..39dbdf4244 100644 --- a/examples/exception.py +++ b/examples/exception.py @@ -2,6 +2,7 @@ Basic example to show how to print an traceback of an exception """ from typing import List, Tuple + from rich.console import Console console = Console() @@ -34,7 +35,7 @@ def divide_all(divides: List[Tuple[float, float]]) -> None: (0, 1000000), (3.1427, 2), (888, 0), - (2 ** 32, 2 ** 16), + (2**32, 2**16), ] divide_all(DIVIDES) diff --git a/examples/export.py b/examples/export.py new file mode 100644 index 0000000000..dada493d80 --- /dev/null +++ b/examples/export.py @@ -0,0 +1,56 @@ +""" +Demonstrates export console output +""" + +from rich.console import Console +from rich.table import Table + +console = Console(record=True) + + +def print_table(): + table = Table(title="Star Wars Movies") + + table.add_column("Released", style="cyan", no_wrap=True) + table.add_column("Title", style="magenta") + table.add_column("Box Office", justify="right", style="green") + + table.add_row("Dec 20, 2019", "Star Wars: The Rise of Skywalker", "$952,110,690") + table.add_row("May 25, 2018", "Solo: A Star Wars Story", "$393,151,347") + table.add_row("Dec 15, 2017", "Star Wars Ep. V111: The Last Jedi", "$1,332,539,889") + table.add_row("Dec 16, 2016", "Rogue One: A Star Wars Story", "$1,332,439,889") + + console.print(table) + + +# Prints table +print_table() + +# Get console output as text +file1 = "table_export_plaintext.txt" +text = console.export_text() +with open(file1, "w") as file: + file.write(text) +print(f"Exported console output as plain text to {file1}") + +# Calling print_table again because console output buffer +# is flushed once export function is called +print_table() + +# Get console output as html +# use clear=False so output is not flushed after export +file2 = "table_export_html.html" +html = console.export_html(clear=False) +with open(file2, "w") as file: + file.write(html) +print(f"Exported console output as html to {file2}") + +# Export text output to table_export.txt +file3 = "table_export_plaintext2.txt" +console.save_text(file3, clear=False) +print(f"Exported console output as plain text to {file3}") + +# Export html output to table_export.html +file4 = "table_export_html2.html" +console.save_html(file4) +print(f"Exported console output as html to {file4}") diff --git a/examples/file_progress.py b/examples/file_progress.py new file mode 100644 index 0000000000..fd18d75370 --- /dev/null +++ b/examples/file_progress.py @@ -0,0 +1,16 @@ +from time import sleep +from urllib.request import urlopen + +from rich.progress import wrap_file + +# Read a URL with urlopen +response = urlopen("https://www.textualize.io") +# Get the size from the headers +size = int(response.headers["Content-Length"]) + +# Wrap the response so that it update progress + +with wrap_file(response, size) as file: + for line in file: + print(line.decode("utf-8"), end="") + sleep(0.1) diff --git a/examples/print_calendar.py b/examples/print_calendar.py new file mode 100644 index 0000000000..d9586aaa8a --- /dev/null +++ b/examples/print_calendar.py @@ -0,0 +1,70 @@ +""" +Builds calendar layout using Columns and Tables. +Usage: +python print_calendar.py [YEAR] +Example: +python print_calendar.py 2021 +""" +import argparse +import calendar +from datetime import datetime + +from rich.align import Align +from rich import box +from rich.columns import Columns +from rich.console import Console +from rich.table import Table +from rich.text import Text + + +def print_calendar(year): + """Print a calendar for a given year.""" + + today = datetime.today() + year = int(year) + cal = calendar.Calendar() + today_tuple = today.day, today.month, today.year + + tables = [] + + for month in range(1, 13): + table = Table( + title=f"{calendar.month_name[month]} {year}", + style="green", + box=box.SIMPLE_HEAVY, + padding=0, + ) + + for week_day in cal.iterweekdays(): + table.add_column( + "{:.3}".format(calendar.day_name[week_day]), justify="right" + ) + + month_days = cal.monthdayscalendar(year, month) + for weekdays in month_days: + days = [] + for index, day in enumerate(weekdays): + day_label = Text(str(day or ""), style="magenta") + if index in (5, 6): + day_label.stylize("blue") + if day and (day, month, year) == today_tuple: + day_label.stylize("white on dark_red") + days.append(day_label) + table.add_row(*days) + + tables.append(Align.center(table)) + + console = Console() + columns = Columns(tables, padding=1, expand=True) + console.rule(str(year)) + console.print() + console.print(columns) + console.rule(str(year)) + + +if __name__ == "__main__": + parser = argparse.ArgumentParser(description="Rich calendar") + parser.add_argument("year", metavar="year", type=int) + args = parser.parse_args() + + print_calendar(args.year) diff --git a/examples/save_table_svg.py b/examples/save_table_svg.py new file mode 100644 index 0000000000..e22aee22b0 --- /dev/null +++ b/examples/save_table_svg.py @@ -0,0 +1,26 @@ +""" +Demonstrates how to export a SVG +""" + +from rich.console import Console +from rich.table import Table + +table = Table(title="Star Wars Movies") + +table.add_column("Released", style="cyan", no_wrap=True) +table.add_column("Title", style="magenta") +table.add_column("Box Office", justify="right", style="green") + +table.add_row("Dec 20, 2019", "Star Wars: The Rise of Skywalker", "$952,110,690") +table.add_row("May 25, 2018", "Solo: A Star Wars Story", "$393,151,347") +table.add_row("Dec 15, 2017", "Star Wars Ep. V111: The Last Jedi", "$1,332,539,889") +table.add_row("Dec 16, 2016", "Rogue One: A Star Wars Story", "$1,332,439,889") + +console = Console(record=True) +console.print(table, justify="center") +console.save_svg("table.svg", title="save_table_svg.py") + +import os +import webbrowser + +webbrowser.open(f"file://{os.path.abspath('table.svg')}") diff --git a/examples/table_movie.py b/examples/table_movie.py index 515909d9c9..811eb51b70 100644 --- a/examples/table_movie.py +++ b/examples/table_movie.py @@ -6,7 +6,6 @@ from rich.align import Align from rich.console import Console from rich.live import Live -from rich.measure import Measurement from rich.table import Table from rich.text import Text diff --git a/imgs/downloader.gif b/imgs/downloader.gif index 2033d7b981..dad59f2588 100644 Binary files a/imgs/downloader.gif and b/imgs/downloader.gif differ diff --git a/imgs/logo.svg b/imgs/logo.svg index 34c2a11ead..4842c4a8ef 100644 --- a/imgs/logo.svg +++ b/imgs/logo.svg @@ -1,69 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/imgs/progress.gif b/imgs/progress.gif index e145478fa9..b4ccfa2f4b 100644 Binary files a/imgs/progress.gif and b/imgs/progress.gif differ diff --git a/imgs/spinners.gif b/imgs/spinners.gif index b98685c203..7d3445e104 100644 Binary files a/imgs/spinners.gif and b/imgs/spinners.gif differ diff --git a/imgs/status.gif b/imgs/status.gif index ccb7ceb8e7..c930fc76ef 100644 Binary files a/imgs/status.gif and b/imgs/status.gif differ diff --git a/imgs/traceback.png b/imgs/traceback.png index 55b2e79a0b..07a4a50076 100644 Binary files a/imgs/traceback.png and b/imgs/traceback.png differ diff --git a/mypy.ini b/mypy.ini deleted file mode 100644 index c61bcf0ace..0000000000 --- a/mypy.ini +++ /dev/null @@ -1,16 +0,0 @@ -[mypy] - -[mypy-pygments.*] -ignore_missing_imports = True - -[mypy-IPython.*] -ignore_missing_imports = True - -[mypy-commonmark.*] -ignore_missing_imports = True - -[mypy-colorama.*] -ignore_missing_imports = True - -[mypy-ipywidgets.*] -ignore_missing_imports = True diff --git a/poetry.lock b/poetry.lock index 7eeddd8a15..30edc19b15 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,14 +1,6 @@ -[[package]] -name = "appdirs" -version = "1.4.4" -description = "A small Python module for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." -category = "dev" -optional = false -python-versions = "*" - [[package]] name = "appnope" -version = "0.1.2" +version = "0.1.3" description = "Disable App Nap on macOS >= 10.9" category = "main" optional = true @@ -16,21 +8,52 @@ python-versions = "*" [[package]] name = "argon2-cffi" -version = "20.1.0" +version = "21.3.0" description = "The secure Argon2 password hashing algorithm." category = "main" optional = true -python-versions = "*" +python-versions = ">=3.6" [package.dependencies] -cffi = ">=1.0.0" -six = "*" +argon2-cffi-bindings = "*" +dataclasses = {version = "*", markers = "python_version < \"3.7\""} +typing-extensions = {version = "*", markers = "python_version < \"3.8\""} [package.extras] -dev = ["coverage[toml] (>=5.0.2)", "hypothesis", "pytest", "sphinx", "wheel", "pre-commit"] -docs = ["sphinx"] +dev = ["pre-commit", "cogapp", "tomli", "coverage[toml] (>=5.0.2)", "hypothesis", "pytest", "sphinx", "sphinx-notfound-page", "furo"] +docs = ["sphinx", "sphinx-notfound-page", "furo"] tests = ["coverage[toml] (>=5.0.2)", "hypothesis", "pytest"] +[[package]] +name = "argon2-cffi-bindings" +version = "21.2.0" +description = "Low-level CFFI bindings for Argon2" +category = "main" +optional = true +python-versions = ">=3.6" + +[package.dependencies] +cffi = ">=1.0.1" + +[package.extras] +dev = ["pytest", "cogapp", "pre-commit", "wheel"] +tests = ["pytest"] + +[[package]] +name = "asv" +version = "0.5.1" +description = "Airspeed Velocity: A simple Python history benchmarking tool" +category = "dev" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" + +[package.dependencies] +six = ">=1.4" + +[package.extras] +hg = ["python-hglib (>=1.5)"] +testing = ["virtualenv (>=1.7)", "filelock", "six", "pip", "setuptools", "wheel", "numpy", "scipy", "selenium", "pytest-xdist", "pytest-timeout", "feedparser", "python-hglib", "pytest (>=4.4.0)", "pytest-rerunfailures (>=8.0)", "pytest-faulthandler", "pytest (>=4.4.0,<5.0)", "pytest-rerunfailures (>=8.0,<9.0)", "pytest-faulthandler (<2.0)"] + [[package]] name = "async-generator" version = "1.10" @@ -49,17 +72,17 @@ python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" [[package]] name = "attrs" -version = "21.2.0" +version = "21.4.0" description = "Classes Without Boilerplate" category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" [package.extras] -dev = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "mypy", "pytest-mypy-plugins", "zope.interface", "furo", "sphinx", "sphinx-notfound-page", "pre-commit"] +dev = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "mypy", "pytest-mypy-plugins", "zope.interface", "furo", "sphinx", "sphinx-notfound-page", "pre-commit", "cloudpickle"] docs = ["furo", "sphinx", "zope.interface", "sphinx-notfound-page"] -tests = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "mypy", "pytest-mypy-plugins", "zope.interface"] -tests_no_zope = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "mypy", "pytest-mypy-plugins"] +tests = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "mypy", "pytest-mypy-plugins", "zope.interface", "cloudpickle"] +tests_no_zope = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "mypy", "pytest-mypy-plugins", "cloudpickle"] [[package]] name = "backcall" @@ -71,30 +94,31 @@ python-versions = "*" [[package]] name = "black" -version = "20.8b1" +version = "22.3.0" description = "The uncompromising code formatter." category = "dev" optional = false -python-versions = ">=3.6" +python-versions = ">=3.6.2" [package.dependencies] -appdirs = "*" -click = ">=7.1.2" +click = ">=8.0.0" dataclasses = {version = ">=0.6", markers = "python_version < \"3.7\""} mypy-extensions = ">=0.4.3" -pathspec = ">=0.6,<1" -regex = ">=2020.1.8" -toml = ">=0.10.1" -typed-ast = ">=1.4.0" -typing-extensions = ">=3.7.4" +pathspec = ">=0.9.0" +platformdirs = ">=2" +tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""} +typed-ast = {version = ">=1.4.2", markers = "python_version < \"3.8\" and implementation_name == \"cpython\""} +typing-extensions = {version = ">=3.10.0.0", markers = "python_version < \"3.10\""} [package.extras] colorama = ["colorama (>=0.4.3)"] -d = ["aiohttp (>=3.3.2)", "aiohttp-cors"] +d = ["aiohttp (>=3.7.4)"] +jupyter = ["ipython (>=7.8.0)", "tokenize-rt (>=3.2.0)"] +uvloop = ["uvloop (>=0.15.2)"] [[package]] name = "bleach" -version = "4.0.0" +version = "4.1.0" description = "An easy safelist-based HTML-sanitizing tool." category = "main" optional = true @@ -107,7 +131,7 @@ webencodings = "*" [[package]] name = "cffi" -version = "1.14.6" +version = "1.15.0" description = "Foreign Function Interface for Python calling C code." category = "main" optional = true @@ -116,9 +140,17 @@ python-versions = "*" [package.dependencies] pycparser = "*" +[[package]] +name = "cfgv" +version = "3.3.1" +description = "Validate configuration and produce human readable error messages." +category = "dev" +optional = false +python-versions = ">=3.6.1" + [[package]] name = "click" -version = "8.0.1" +version = "8.0.4" description = "Composable command line interface toolkit" category = "dev" optional = false @@ -149,14 +181,17 @@ test = ["flake8 (==3.7.8)", "hypothesis (==3.55.3)"] [[package]] name = "coverage" -version = "5.5" +version = "6.2" description = "Code coverage measurement for Python" category = "dev" optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <4" +python-versions = ">=3.6" + +[package.dependencies] +tomli = {version = "*", optional = true, markers = "extra == \"toml\""} [package.extras] -toml = ["toml"] +toml = ["tomli"] [[package]] name = "dataclasses" @@ -168,7 +203,7 @@ python-versions = ">=3.6, <3.7" [[package]] name = "decorator" -version = "5.0.9" +version = "5.1.1" description = "Decorators for Humans" category = "main" optional = true @@ -182,17 +217,48 @@ category = "main" optional = true python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +[[package]] +name = "distlib" +version = "0.3.4" +description = "Distribution utilities" +category = "dev" +optional = false +python-versions = "*" + [[package]] name = "entrypoints" -version = "0.3" +version = "0.4" description = "Discover and load entry points from installed packages." category = "main" optional = true -python-versions = ">=2.7" +python-versions = ">=3.6" + +[[package]] +name = "filelock" +version = "3.4.1" +description = "A platform independent file lock." +category = "dev" +optional = false +python-versions = ">=3.6" + +[package.extras] +docs = ["furo (>=2021.8.17b43)", "sphinx (>=4.1)", "sphinx-autodoc-typehints (>=1.12)"] +testing = ["covdefaults (>=1.2.0)", "coverage (>=4)", "pytest (>=4)", "pytest-cov", "pytest-timeout (>=1.4.2)"] + +[[package]] +name = "identify" +version = "2.4.4" +description = "File identification library for Python" +category = "dev" +optional = false +python-versions = ">=3.6.1" + +[package.extras] +license = ["ukkonen"] [[package]] name = "importlib-metadata" -version = "4.6.3" +version = "4.8.3" description = "Read metadata from Python packages" category = "main" optional = false @@ -205,7 +271,22 @@ zipp = ">=0.5" [package.extras] docs = ["sphinx", "jaraco.packaging (>=8.2)", "rst.linker (>=1.9)"] perf = ["ipython"] -testing = ["pytest (>=4.6)", "pytest-checkdocs (>=2.4)", "pytest-flake8", "pytest-cov", "pytest-enabler (>=1.0.1)", "packaging", "pep517", "pyfakefs", "flufl.flake8", "pytest-perf (>=0.9.2)", "pytest-black (>=0.3.7)", "pytest-mypy", "importlib-resources (>=1.3)"] +testing = ["pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-flake8", "pytest-cov", "pytest-enabler (>=1.0.1)", "packaging", "pep517", "pyfakefs", "flufl.flake8", "pytest-perf (>=0.9.2)", "pytest-black (>=0.3.7)", "pytest-mypy", "importlib-resources (>=1.3)"] + +[[package]] +name = "importlib-resources" +version = "5.2.3" +description = "Read resources from Python packages" +category = "dev" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +zipp = {version = ">=3.1.0", markers = "python_version < \"3.10\""} + +[package.extras] +docs = ["sphinx", "jaraco.packaging (>=8.2)", "rst.linker (>=1.9)"] +testing = ["pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-flake8", "pytest-cov", "pytest-enabler (>=1.0.1)", "pytest-black (>=0.3.7)", "pytest-mypy"] [[package]] name = "iniconfig" @@ -217,7 +298,7 @@ python-versions = "*" [[package]] name = "ipykernel" -version = "5.5.5" +version = "5.5.6" description = "IPython Kernel for Jupyter" category = "main" optional = true @@ -226,6 +307,7 @@ python-versions = ">=3.5" [package.dependencies] appnope = {version = "*", markers = "platform_system == \"Darwin\""} ipython = ">=5.0.0" +ipython-genutils = "*" jupyter-client = "*" tornado = ">=4.2" traitlets = ">=4.1.0" @@ -235,7 +317,7 @@ test = ["pytest (!=5.3.4)", "pytest-cov", "flaky", "nose", "jedi (<=0.17.2)"] [[package]] name = "ipython" -version = "7.16.1" +version = "7.16.3" description = "IPython: Productive Interactive Computing" category = "main" optional = true @@ -246,7 +328,7 @@ appnope = {version = "*", markers = "sys_platform == \"darwin\""} backcall = "*" colorama = {version = "*", markers = "sys_platform == \"win32\""} decorator = "*" -jedi = ">=0.10" +jedi = ">=0.10,<=0.17.2" pexpect = {version = "*", markers = "sys_platform != \"win32\""} pickleshare = "*" prompt-toolkit = ">=2.0.0,<3.0.0 || >3.0.0,<3.0.1 || >3.0.1,<3.1.0" @@ -274,7 +356,7 @@ python-versions = "*" [[package]] name = "ipywidgets" -version = "7.6.5" +version = "7.7.0" description = "IPython HTML widgets for Jupyter" category = "main" optional = true @@ -287,29 +369,29 @@ ipython-genutils = ">=0.2.0,<0.3.0" jupyterlab-widgets = {version = ">=1.0.0", markers = "python_version >= \"3.6\""} nbformat = ">=4.2.0" traitlets = ">=4.3.1" -widgetsnbextension = ">=3.5.0,<3.6.0" +widgetsnbextension = ">=3.6.0,<3.7.0" [package.extras] test = ["pytest (>=3.6.0)", "pytest-cov", "mock"] [[package]] name = "jedi" -version = "0.18.0" +version = "0.17.2" description = "An autocompletion tool for Python that can be used for text editors." category = "main" optional = true -python-versions = ">=3.6" +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" [package.dependencies] -parso = ">=0.8.0,<0.9.0" +parso = ">=0.7.0,<0.8.0" [package.extras] -qa = ["flake8 (==3.8.3)", "mypy (==0.782)"] -testing = ["Django (<3.1)", "colorama", "docopt", "pytest (<6.0.0)"] +qa = ["flake8 (==3.7.9)"] +testing = ["Django (<3.1)", "colorama", "docopt", "pytest (>=3.9.0,<5.0.0)"] [[package]] name = "jinja2" -version = "3.0.1" +version = "3.0.3" description = "A very fast and expressive template engine." category = "main" optional = true @@ -323,7 +405,7 @@ i18n = ["Babel (>=2.7)"] [[package]] name = "jsonschema" -version = "3.2.0" +version = "4.0.0" description = "An implementation of JSON Schema validation for Python" category = "main" optional = true @@ -332,22 +414,22 @@ python-versions = "*" [package.dependencies] attrs = ">=17.4.0" importlib-metadata = {version = "*", markers = "python_version < \"3.8\""} -pyrsistent = ">=0.14.0" -six = ">=1.11.0" +pyrsistent = ">=0.14.0,<0.17.0 || >0.17.0,<0.17.1 || >0.17.1,<0.17.2 || >0.17.2" [package.extras] -format = ["idna", "jsonpointer (>1.13)", "rfc3987", "strict-rfc3339", "webcolors"] -format_nongpl = ["idna", "jsonpointer (>1.13)", "webcolors", "rfc3986-validator (>0.1.0)", "rfc3339-validator"] +format = ["fqdn", "idna", "isoduration", "jsonpointer (>1.13)", "rfc3339-validator", "rfc3987", "uri-template", "webcolors (>=1.11)"] +format_nongpl = ["fqdn", "idna", "isoduration", "jsonpointer (>1.13)", "rfc3339-validator", "rfc3986-validator (>0.1.0)", "uri-template", "webcolors (>=1.11)"] [[package]] name = "jupyter-client" -version = "6.1.13" +version = "7.1.2" description = "Jupyter protocol implementation and client libraries" category = "main" optional = true -python-versions = ">=3.5" +python-versions = ">=3.6.1" [package.dependencies] +entrypoints = "*" jupyter-core = ">=4.6.0" nest-asyncio = ">=1.5" python-dateutil = ">=2.1" @@ -356,19 +438,19 @@ tornado = ">=4.1" traitlets = "*" [package.extras] -doc = ["sphinx (>=1.3.6)", "sphinx-rtd-theme", "sphinxcontrib-github-alt"] -test = ["async-generator", "ipykernel", "ipython", "mock", "pytest-asyncio", "pytest-timeout", "pytest", "mypy", "pre-commit", "jedi (<0.18)"] +doc = ["myst-parser", "sphinx (>=1.3.6)", "sphinx-rtd-theme", "sphinxcontrib-github-alt"] +test = ["codecov", "coverage", "ipykernel", "ipython", "mock", "mypy", "pre-commit", "pytest", "pytest-asyncio", "pytest-cov", "pytest-timeout", "jedi (<0.18)"] [[package]] name = "jupyter-core" -version = "4.7.1" +version = "4.9.2" description = "Jupyter core package. A base package on which Jupyter projects rely." category = "main" optional = true python-versions = ">=3.6" [package.dependencies] -pywin32 = {version = ">=1.0", markers = "sys_platform == \"win32\""} +pywin32 = {version = ">=1.0", markers = "sys_platform == \"win32\" and platform_python_implementation != \"PyPy\""} traitlets = "*" [[package]] @@ -384,7 +466,7 @@ pygments = ">=2.4.1,<3" [[package]] name = "jupyterlab-widgets" -version = "1.0.0" +version = "1.1.0" description = "A JupyterLab extension." category = "main" optional = true @@ -408,21 +490,22 @@ python-versions = "*" [[package]] name = "mypy" -version = "0.910" +version = "0.950" description = "Optional static typing for Python" category = "dev" optional = false -python-versions = ">=3.5" +python-versions = ">=3.6" [package.dependencies] -mypy-extensions = ">=0.4.3,<0.5.0" -toml = "*" -typed-ast = {version = ">=1.4.0,<1.5.0", markers = "python_version < \"3.8\""} -typing-extensions = ">=3.7.4" +mypy-extensions = ">=0.4.3" +tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""} +typed-ast = {version = ">=1.4.0,<2", markers = "python_version < \"3.8\""} +typing-extensions = ">=3.10" [package.extras] dmypy = ["psutil (>=4.0)"] -python2 = ["typed-ast (>=1.4.0,<1.5.0)"] +python2 = ["typed-ast (>=1.4.0,<2)"] +reports = ["lxml"] [[package]] name = "mypy-extensions" @@ -434,23 +517,23 @@ python-versions = "*" [[package]] name = "nbclient" -version = "0.5.1" +version = "0.5.9" description = "A client library for executing notebooks. Formerly nbconvert's ExecutePreprocessor." category = "main" optional = true -python-versions = ">=3.6" +python-versions = ">=3.6.1" [package.dependencies] -async-generator = "*" +async-generator = {version = "*", markers = "python_version < \"3.7\""} jupyter-client = ">=6.1.5" nbformat = ">=5.0" nest-asyncio = "*" traitlets = ">=4.2" [package.extras] -dev = ["codecov", "coverage", "ipython", "ipykernel", "ipywidgets", "pytest (>=4.1)", "pytest-cov (>=2.6.1)", "check-manifest", "flake8", "mypy", "tox", "bumpversion", "xmltodict", "pip (>=18.1)", "wheel (>=0.31.0)", "setuptools (>=38.6.0)", "twine (>=1.11.0)", "black"] +dev = ["codecov", "coverage", "ipython", "ipykernel", "ipywidgets", "pytest (>=4.1)", "pytest-cov (>=2.6.1)", "check-manifest", "flake8", "mypy", "tox", "xmltodict", "pip (>=18.1)", "wheel (>=0.31.0)", "setuptools (>=38.6.0)", "twine (>=1.11.0)", "black"] sphinx = ["Sphinx (>=1.7)", "sphinx-book-theme", "mock", "moto", "myst-parser"] -test = ["codecov", "coverage", "ipython", "ipykernel", "ipywidgets", "pytest (>=4.1)", "pytest-cov (>=2.6.1)", "check-manifest", "flake8", "mypy", "tox", "bumpversion", "xmltodict", "pip (>=18.1)", "wheel (>=0.31.0)", "setuptools (>=38.6.0)", "twine (>=1.11.0)", "black"] +test = ["codecov", "coverage", "ipython", "ipykernel", "ipywidgets", "pytest (>=4.1)", "pytest-cov (>=2.6.1)", "check-manifest", "flake8", "mypy", "tox", "xmltodict", "pip (>=18.1)", "wheel (>=0.31.0)", "setuptools (>=38.6.0)", "twine (>=1.11.0)", "black"] [[package]] name = "nbconvert" @@ -502,15 +585,23 @@ test = ["check-manifest", "fastjsonschema", "testpath", "pytest", "pytest-cov"] [[package]] name = "nest-asyncio" -version = "1.5.1" +version = "1.5.5" description = "Patch asyncio to allow nested event loops" category = "main" optional = true python-versions = ">=3.5" +[[package]] +name = "nodeenv" +version = "1.6.0" +description = "Node.js virtual environment builder" +category = "dev" +optional = false +python-versions = "*" + [[package]] name = "notebook" -version = "6.4.1" +version = "6.4.10" description = "A web-based notebook environment for interactive computing" category = "main" optional = true @@ -523,11 +614,12 @@ ipython-genutils = "*" jinja2 = "*" jupyter-client = ">=5.3.4" jupyter-core = ">=4.6.1" -nbconvert = "*" +nbconvert = ">=5" nbformat = "*" +nest-asyncio = ">=1.5" prometheus-client = "*" pyzmq = ">=17" -Send2Trash = ">=1.5.0" +Send2Trash = ">=1.8.0" terminado = ">=0.8.3" tornado = ">=6.1" traitlets = ">=4.2.1" @@ -539,18 +631,18 @@ test = ["pytest", "coverage", "requests", "nbval", "selenium", "pytest-cov", "re [[package]] name = "packaging" -version = "21.0" +version = "21.3" description = "Core utilities for Python packages" category = "main" optional = false python-versions = ">=3.6" [package.dependencies] -pyparsing = ">=2.0.2" +pyparsing = ">=2.0.2,<3.0.5 || >3.0.5" [[package]] name = "pandocfilters" -version = "1.4.3" +version = "1.5.0" description = "Utilities for writing pandoc filters in python" category = "main" optional = true @@ -558,15 +650,14 @@ python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" [[package]] name = "parso" -version = "0.8.2" +version = "0.7.1" description = "A Python Parser" category = "main" optional = true -python-versions = ">=3.6" +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" [package.extras] -qa = ["flake8 (==3.8.3)", "mypy (==0.782)"] -testing = ["docopt", "pytest (<6.0.0)"] +testing = ["docopt", "pytest (>=3.0.7)"] [[package]] name = "pathspec" @@ -595,38 +686,69 @@ category = "main" optional = true python-versions = "*" +[[package]] +name = "platformdirs" +version = "2.4.0" +description = "A small Python module for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." +category = "dev" +optional = false +python-versions = ">=3.6" + +[package.extras] +docs = ["Sphinx (>=4)", "furo (>=2021.7.5b38)", "proselint (>=0.10.2)", "sphinx-autodoc-typehints (>=1.12)"] +test = ["appdirs (==1.4.4)", "pytest (>=6)", "pytest-cov (>=2.7)", "pytest-mock (>=3.6)"] + [[package]] name = "pluggy" -version = "0.13.1" +version = "1.0.0" description = "plugin and hook calling mechanisms for python" category = "dev" optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +python-versions = ">=3.6" [package.dependencies] importlib-metadata = {version = ">=0.12", markers = "python_version < \"3.8\""} [package.extras] dev = ["pre-commit", "tox"] +testing = ["pytest", "pytest-benchmark"] + +[[package]] +name = "pre-commit" +version = "2.17.0" +description = "A framework for managing and maintaining multi-language pre-commit hooks." +category = "dev" +optional = false +python-versions = ">=3.6.1" + +[package.dependencies] +cfgv = ">=2.0.0" +identify = ">=1.0.0" +importlib-metadata = {version = "*", markers = "python_version < \"3.8\""} +importlib-resources = {version = "<5.3", markers = "python_version < \"3.7\""} +nodeenv = ">=0.11.1" +pyyaml = ">=5.1" +toml = "*" +virtualenv = ">=20.0.8" [[package]] name = "prometheus-client" -version = "0.11.0" +version = "0.14.1" description = "Python client for the Prometheus monitoring system." category = "main" optional = true -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +python-versions = ">=3.6" [package.extras] twisted = ["twisted"] [[package]] name = "prompt-toolkit" -version = "3.0.3" +version = "3.0.29" description = "Library for building powerful interactive command lines in Python" category = "main" optional = true -python-versions = ">=3.6" +python-versions = ">=3.6.2" [package.dependencies] wcwidth = "*" @@ -641,15 +763,15 @@ python-versions = "*" [[package]] name = "py" -version = "1.10.0" +version = "1.11.0" description = "library with cross-python path, ini-parsing, io, code, log facilities" category = "main" optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" [[package]] name = "pycparser" -version = "2.20" +version = "2.21" description = "C parser in Python" category = "main" optional = true @@ -657,19 +779,22 @@ python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" [[package]] name = "pygments" -version = "2.10.0" +version = "2.12.0" description = "Pygments is a syntax highlighting package written in Python." category = "main" optional = false -python-versions = ">=3.5" +python-versions = ">=3.6" [[package]] name = "pyparsing" -version = "2.4.7" +version = "3.0.7" description = "Python parsing module" category = "main" optional = false -python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" +python-versions = ">=3.6" + +[package.extras] +diagrams = ["jinja2", "railroad-diagrams"] [[package]] name = "pyrsistent" @@ -681,7 +806,7 @@ python-versions = ">=3.6" [[package]] name = "pytest" -version = "6.2.5" +version = "7.0.1" description = "pytest: simple powerful testing with Python" category = "dev" optional = false @@ -696,23 +821,22 @@ iniconfig = "*" packaging = "*" pluggy = ">=0.12,<2.0" py = ">=1.8.2" -toml = "*" +tomli = ">=1.0.0" [package.extras] -testing = ["argcomplete", "hypothesis (>=3.56)", "mock", "nose", "requests", "xmlschema"] +testing = ["argcomplete", "hypothesis (>=3.56)", "mock", "nose", "pygments (>=2.7.2)", "requests", "xmlschema"] [[package]] name = "pytest-cov" -version = "2.12.1" +version = "3.0.0" description = "Pytest plugin for measuring coverage." category = "dev" optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +python-versions = ">=3.6" [package.dependencies] -coverage = ">=5.2.1" +coverage = {version = ">=5.2.1", extras = ["toml"]} pytest = ">=4.6" -toml = "*" [package.extras] testing = ["fields", "hunter", "process-tests", "six", "pytest-xdist", "virtualenv"] @@ -730,7 +854,7 @@ six = ">=1.5" [[package]] name = "pywin32" -version = "301" +version = "304" description = "Python for Window Extensions" category = "main" optional = true @@ -738,15 +862,23 @@ python-versions = "*" [[package]] name = "pywinpty" -version = "1.1.3" +version = "2.0.3" description = "Pseudo terminal support for Windows from Python." category = "main" optional = true python-versions = ">=3.6" +[[package]] +name = "pyyaml" +version = "6.0" +description = "YAML parser and emitter for Python" +category = "dev" +optional = false +python-versions = ">=3.6" + [[package]] name = "pyzmq" -version = "22.2.1" +version = "22.3.0" description = "Python bindings for 0MQ" category = "main" optional = true @@ -756,23 +888,17 @@ python-versions = ">=3.6" cffi = {version = "*", markers = "implementation_name == \"pypy\""} py = {version = "*", markers = "implementation_name == \"pypy\""} -[[package]] -name = "regex" -version = "2021.8.3" -description = "Alternative regular expression module, to replace re." -category = "dev" -optional = false -python-versions = "*" - [[package]] name = "send2trash" -version = "1.7.1" +version = "1.8.0" description = "Send file to trash natively under Mac OS X, Windows and Linux." category = "main" optional = true python-versions = "*" [package.extras] +nativelib = ["pyobjc-framework-cocoa", "pywin32"] +objc = ["pyobjc-framework-cocoa"] win32 = ["pywin32"] [[package]] @@ -780,16 +906,16 @@ name = "six" version = "1.16.0" description = "Python 2 and 3 compatibility utilities" category = "main" -optional = true +optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" [[package]] name = "terminado" -version = "0.10.1" +version = "0.13.0" description = "Tornado websocket backend for the Xterm.js Javascript terminal emulator library." category = "main" optional = true -python-versions = ">=3.6" +python-versions = "*" [package.dependencies] ptyprocess = {version = "*", markers = "os_name != \"nt\""} @@ -801,14 +927,14 @@ test = ["pytest"] [[package]] name = "testpath" -version = "0.5.0" +version = "0.6.0" description = "Test utilities for code working with files and commands" category = "main" optional = true python-versions = ">= 3.5" [package.extras] -test = ["pytest", "pathlib2"] +test = ["pytest"] [[package]] name = "toml" @@ -818,6 +944,14 @@ category = "dev" optional = false python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" +[[package]] +name = "tomli" +version = "1.2.3" +description = "A lil' TOML parser" +category = "dev" +optional = false +python-versions = ">=3.6" + [[package]] name = "tornado" version = "6.1" @@ -844,15 +978,15 @@ test = ["pytest", "mock"] [[package]] name = "typed-ast" -version = "1.4.3" +version = "1.5.3" description = "a fork of Python 2 and 3 ast modules with type comment support" category = "dev" optional = false -python-versions = "*" +python-versions = ">=3.6" [[package]] name = "types-dataclasses" -version = "0.1.7" +version = "0.6.5" description = "Typing stubs for dataclasses" category = "dev" optional = false @@ -860,11 +994,31 @@ python-versions = "*" [[package]] name = "typing-extensions" -version = "3.10.0.2" -description = "Backported and Experimental Type Hints for Python 3.5+" +version = "4.1.1" +description = "Backported and Experimental Type Hints for Python 3.6+" category = "main" optional = false -python-versions = "*" +python-versions = ">=3.6" + +[[package]] +name = "virtualenv" +version = "20.14.1" +description = "Virtual Python Environment builder" +category = "dev" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" + +[package.dependencies] +distlib = ">=0.3.1,<1" +filelock = ">=3.2,<4" +importlib-metadata = {version = ">=0.12", markers = "python_version < \"3.8\""} +importlib-resources = {version = ">=1.0", markers = "python_version < \"3.7\""} +platformdirs = ">=2,<3" +six = ">=1.9.0,<2" + +[package.extras] +docs = ["proselint (>=0.10.2)", "sphinx (>=3)", "sphinx-argparse (>=0.2.5)", "sphinx-rtd-theme (>=0.4.3)", "towncrier (>=21.3)"] +testing = ["coverage (>=4)", "coverage-enable-subprocess (>=1)", "flaky (>=3)", "pytest (>=4)", "pytest-env (>=0.6.2)", "pytest-freezegun (>=0.4.1)", "pytest-mock (>=2)", "pytest-randomly (>=1)", "pytest-timeout (>=1)", "packaging (>=20.0)"] [[package]] name = "wcwidth" @@ -884,7 +1038,7 @@ python-versions = "*" [[package]] name = "widgetsnbextension" -version = "3.5.1" +version = "3.6.0" description = "IPython HTML widgets for Jupyter" category = "main" optional = true @@ -895,7 +1049,7 @@ notebook = ">=4.4.1" [[package]] name = "zipp" -version = "3.5.0" +version = "3.6.0" description = "Backport of pathlib-compatible object wrapper for zip files" category = "main" optional = false @@ -910,41 +1064,43 @@ jupyter = ["ipywidgets"] [metadata] lock-version = "1.1" -python-versions = "^3.6" -content-hash = "6e5c155de870088d57c40403f9302f8fc831bfa8669d633e4095fe6f26ba4a23" +python-versions = "^3.6.3" +content-hash = "db93dc88a30c445999c422ad140ff15c2d28d0017efe262ce0f750cb42b45baf" [metadata.files] -appdirs = [ - {file = "appdirs-1.4.4-py2.py3-none-any.whl", hash = "sha256:a841dacd6b99318a741b166adb07e19ee71a274450e68237b4650ca1055ab128"}, - {file = "appdirs-1.4.4.tar.gz", hash = "sha256:7d5d0167b2b1ba821647616af46a749d1c653740dd0d2415100fe26e27afdf41"}, -] appnope = [ - {file = "appnope-0.1.2-py2.py3-none-any.whl", hash = "sha256:93aa393e9d6c54c5cd570ccadd8edad61ea0c4b9ea7a01409020c9aa019eb442"}, - {file = "appnope-0.1.2.tar.gz", hash = "sha256:dd83cd4b5b460958838f6eb3000c660b1f9caf2a5b1de4264e941512f603258a"}, + {file = "appnope-0.1.3-py2.py3-none-any.whl", hash = "sha256:265a455292d0bd8a72453494fa24df5a11eb18373a60c7c0430889f22548605e"}, + {file = "appnope-0.1.3.tar.gz", hash = "sha256:02bd91c4de869fbb1e1c50aafc4098827a7a54ab2f39d9dcba6c9547ed920e24"}, ] argon2-cffi = [ - {file = "argon2-cffi-20.1.0.tar.gz", hash = "sha256:d8029b2d3e4b4cea770e9e5a0104dd8fa185c1724a0f01528ae4826a6d25f97d"}, - {file = "argon2_cffi-20.1.0-cp27-cp27m-macosx_10_6_intel.whl", hash = "sha256:6ea92c980586931a816d61e4faf6c192b4abce89aa767ff6581e6ddc985ed003"}, - {file = "argon2_cffi-20.1.0-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:05a8ac07c7026542377e38389638a8a1e9b78f1cd8439cd7493b39f08dd75fbf"}, - {file = "argon2_cffi-20.1.0-cp27-cp27m-win32.whl", hash = "sha256:0bf066bc049332489bb2d75f69216416329d9dc65deee127152caeb16e5ce7d5"}, - {file = "argon2_cffi-20.1.0-cp27-cp27m-win_amd64.whl", hash = "sha256:57358570592c46c420300ec94f2ff3b32cbccd10d38bdc12dc6979c4a8484fbc"}, - {file = "argon2_cffi-20.1.0-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:7d455c802727710e9dfa69b74ccaab04568386ca17b0ad36350b622cd34606fe"}, - {file = "argon2_cffi-20.1.0-cp35-abi3-manylinux1_x86_64.whl", hash = "sha256:b160416adc0f012fb1f12588a5e6954889510f82f698e23ed4f4fa57f12a0647"}, - {file = "argon2_cffi-20.1.0-cp35-cp35m-win32.whl", hash = "sha256:9bee3212ba4f560af397b6d7146848c32a800652301843df06b9e8f68f0f7361"}, - {file = "argon2_cffi-20.1.0-cp35-cp35m-win_amd64.whl", hash = "sha256:392c3c2ef91d12da510cfb6f9bae52512a4552573a9e27600bdb800e05905d2b"}, - {file = "argon2_cffi-20.1.0-cp36-cp36m-win32.whl", hash = "sha256:ba7209b608945b889457f949cc04c8e762bed4fe3fec88ae9a6b7765ae82e496"}, - {file = "argon2_cffi-20.1.0-cp36-cp36m-win_amd64.whl", hash = "sha256:da7f0445b71db6d3a72462e04f36544b0de871289b0bc8a7cc87c0f5ec7079fa"}, - {file = "argon2_cffi-20.1.0-cp37-abi3-macosx_10_6_intel.whl", hash = "sha256:cc0e028b209a5483b6846053d5fd7165f460a1f14774d79e632e75e7ae64b82b"}, - {file = "argon2_cffi-20.1.0-cp37-cp37m-win32.whl", hash = "sha256:18dee20e25e4be86680b178b35ccfc5d495ebd5792cd00781548d50880fee5c5"}, - {file = "argon2_cffi-20.1.0-cp37-cp37m-win_amd64.whl", hash = "sha256:6678bb047373f52bcff02db8afab0d2a77d83bde61cfecea7c5c62e2335cb203"}, - {file = "argon2_cffi-20.1.0-cp38-cp38-win32.whl", hash = "sha256:77e909cc756ef81d6abb60524d259d959bab384832f0c651ed7dcb6e5ccdbb78"}, - {file = "argon2_cffi-20.1.0-cp38-cp38-win_amd64.whl", hash = "sha256:9dfd5197852530294ecb5795c97a823839258dfd5eb9420233c7cfedec2058f2"}, - {file = "argon2_cffi-20.1.0-cp39-cp39-win32.whl", hash = "sha256:e2db6e85c057c16d0bd3b4d2b04f270a7467c147381e8fd73cbbe5bc719832be"}, - {file = "argon2_cffi-20.1.0-cp39-cp39-win_amd64.whl", hash = "sha256:8a84934bd818e14a17943de8099d41160da4a336bcc699bb4c394bbb9b94bd32"}, - {file = "argon2_cffi-20.1.0-pp36-pypy36_pp73-macosx_10_7_x86_64.whl", hash = "sha256:b94042e5dcaa5d08cf104a54bfae614be502c6f44c9c89ad1535b2ebdaacbd4c"}, - {file = "argon2_cffi-20.1.0-pp36-pypy36_pp73-win32.whl", hash = "sha256:8282b84ceb46b5b75c3a882b28856b8cd7e647ac71995e71b6705ec06fc232c3"}, - {file = "argon2_cffi-20.1.0-pp37-pypy37_pp73-macosx_10_7_x86_64.whl", hash = "sha256:3aa804c0e52f208973845e8b10c70d8957c9e5a666f702793256242e9167c4e0"}, - {file = "argon2_cffi-20.1.0-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:36320372133a003374ef4275fbfce78b7ab581440dfca9f9471be3dd9a522428"}, + {file = "argon2-cffi-21.3.0.tar.gz", hash = "sha256:d384164d944190a7dd7ef22c6aa3ff197da12962bd04b17f64d4e93d934dba5b"}, + {file = "argon2_cffi-21.3.0-py3-none-any.whl", hash = "sha256:8c976986f2c5c0e5000919e6de187906cfd81fb1c72bf9d88c01177e77da7f80"}, +] +argon2-cffi-bindings = [ + {file = "argon2-cffi-bindings-21.2.0.tar.gz", hash = "sha256:bb89ceffa6c791807d1305ceb77dbfacc5aa499891d2c55661c6459651fc39e3"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:ccb949252cb2ab3a08c02024acb77cfb179492d5701c7cbdbfd776124d4d2367"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9524464572e12979364b7d600abf96181d3541da11e23ddf565a32e70bd4dc0d"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b746dba803a79238e925d9046a63aa26bf86ab2a2fe74ce6b009a1c3f5c8f2ae"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:58ed19212051f49a523abb1dbe954337dc82d947fb6e5a0da60f7c8471a8476c"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:bd46088725ef7f58b5a1ef7ca06647ebaf0eb4baff7d1d0d177c6cc8744abd86"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-musllinux_1_1_i686.whl", hash = "sha256:8cd69c07dd875537a824deec19f978e0f2078fdda07fd5c42ac29668dda5f40f"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:f1152ac548bd5b8bcecfb0b0371f082037e47128653df2e8ba6e914d384f3c3e"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-win32.whl", hash = "sha256:603ca0aba86b1349b147cab91ae970c63118a0f30444d4bc80355937c950c082"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-win_amd64.whl", hash = "sha256:b2ef1c30440dbbcba7a5dc3e319408b59676e2e039e2ae11a8775ecf482b192f"}, + {file = "argon2_cffi_bindings-21.2.0-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:e415e3f62c8d124ee16018e491a009937f8cf7ebf5eb430ffc5de21b900dad93"}, + {file = "argon2_cffi_bindings-21.2.0-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:3e385d1c39c520c08b53d63300c3ecc28622f076f4c2b0e6d7e796e9f6502194"}, + {file = "argon2_cffi_bindings-21.2.0-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2c3e3cc67fdb7d82c4718f19b4e7a87123caf8a93fde7e23cf66ac0337d3cb3f"}, + {file = "argon2_cffi_bindings-21.2.0-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6a22ad9800121b71099d0fb0a65323810a15f2e292f2ba450810a7316e128ee5"}, + {file = "argon2_cffi_bindings-21.2.0-pp37-pypy37_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f9f8b450ed0547e3d473fdc8612083fd08dd2120d6ac8f73828df9b7d45bb351"}, + {file = "argon2_cffi_bindings-21.2.0-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:93f9bf70084f97245ba10ee36575f0c3f1e7d7724d67d8e5b08e61787c320ed7"}, + {file = "argon2_cffi_bindings-21.2.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:3b9ef65804859d335dc6b31582cad2c5166f0c3e7975f324d9ffaa34ee7e6583"}, + {file = "argon2_cffi_bindings-21.2.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d4966ef5848d820776f5f562a7d45fdd70c2f330c961d0d745b784034bd9f48d"}, + {file = "argon2_cffi_bindings-21.2.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:20ef543a89dee4db46a1a6e206cd015360e5a75822f76df533845c3cbaf72670"}, + {file = "argon2_cffi_bindings-21.2.0-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ed2937d286e2ad0cc79a7087d3c272832865f779430e0cc2b4f3718d3159b0cb"}, + {file = "argon2_cffi_bindings-21.2.0-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:5e00316dabdaea0b2dd82d141cc66889ced0cdcbfa599e8b471cf22c620c329a"}, +] +asv = [ + {file = "asv-0.5.1.tar.gz", hash = "sha256:805fc3cc46c0bcf3e7baeaa16a12e4b92f1276c25490db4cb80fc541afa52bfc"}, ] async-generator = [ {file = "async_generator-1.10-py3-none-any.whl", hash = "sha256:01c7bf666359b4967d2cda0000cc2e4af16a0ae098cbffcb8472fb9e8ad6585b"}, @@ -955,70 +1111,101 @@ atomicwrites = [ {file = "atomicwrites-1.4.0.tar.gz", hash = "sha256:ae70396ad1a434f9c7046fd2dd196fc04b12f9e91ffb859164193be8b6168a7a"}, ] attrs = [ - {file = "attrs-21.2.0-py2.py3-none-any.whl", hash = "sha256:149e90d6d8ac20db7a955ad60cf0e6881a3f20d37096140088356da6c716b0b1"}, - {file = "attrs-21.2.0.tar.gz", hash = "sha256:ef6aaac3ca6cd92904cdd0d83f629a15f18053ec84e6432106f7a4d04ae4f5fb"}, + {file = "attrs-21.4.0-py2.py3-none-any.whl", hash = "sha256:2d27e3784d7a565d36ab851fe94887c5eccd6a463168875832a1be79c82828b4"}, + {file = "attrs-21.4.0.tar.gz", hash = "sha256:626ba8234211db98e869df76230a137c4c40a12d72445c45d5f5b716f076e2fd"}, ] backcall = [ {file = "backcall-0.2.0-py2.py3-none-any.whl", hash = "sha256:fbbce6a29f263178a1f7915c1940bde0ec2b2a967566fe1c65c1dfb7422bd255"}, {file = "backcall-0.2.0.tar.gz", hash = "sha256:5cbdbf27be5e7cfadb448baf0aa95508f91f2bbc6c6437cd9cd06e2a4c215e1e"}, ] black = [ - {file = "black-20.8b1.tar.gz", hash = "sha256:1c02557aa099101b9d21496f8a914e9ed2222ef70336404eeeac8edba836fbea"}, + {file = "black-22.3.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:2497f9c2386572e28921fa8bec7be3e51de6801f7459dffd6e62492531c47e09"}, + {file = "black-22.3.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:5795a0375eb87bfe902e80e0c8cfaedf8af4d49694d69161e5bd3206c18618bb"}, + {file = "black-22.3.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e3556168e2e5c49629f7b0f377070240bd5511e45e25a4497bb0073d9dda776a"}, + {file = "black-22.3.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:67c8301ec94e3bcc8906740fe071391bce40a862b7be0b86fb5382beefecd968"}, + {file = "black-22.3.0-cp310-cp310-win_amd64.whl", hash = "sha256:fd57160949179ec517d32ac2ac898b5f20d68ed1a9c977346efbac9c2f1e779d"}, + {file = "black-22.3.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:cc1e1de68c8e5444e8f94c3670bb48a2beef0e91dddfd4fcc29595ebd90bb9ce"}, + {file = "black-22.3.0-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6d2fc92002d44746d3e7db7cf9313cf4452f43e9ea77a2c939defce3b10b5c82"}, + {file = "black-22.3.0-cp36-cp36m-win_amd64.whl", hash = "sha256:a6342964b43a99dbc72f72812bf88cad8f0217ae9acb47c0d4f141a6416d2d7b"}, + {file = "black-22.3.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:328efc0cc70ccb23429d6be184a15ce613f676bdfc85e5fe8ea2a9354b4e9015"}, + {file = "black-22.3.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:06f9d8846f2340dfac80ceb20200ea5d1b3f181dd0556b47af4e8e0b24fa0a6b"}, + {file = "black-22.3.0-cp37-cp37m-win_amd64.whl", hash = "sha256:ad4efa5fad66b903b4a5f96d91461d90b9507a812b3c5de657d544215bb7877a"}, + {file = "black-22.3.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:e8477ec6bbfe0312c128e74644ac8a02ca06bcdb8982d4ee06f209be28cdf163"}, + {file = "black-22.3.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:637a4014c63fbf42a692d22b55d8ad6968a946b4a6ebc385c5505d9625b6a464"}, + {file = "black-22.3.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:863714200ada56cbc366dc9ae5291ceb936573155f8bf8e9de92aef51f3ad0f0"}, + {file = "black-22.3.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:10dbe6e6d2988049b4655b2b739f98785a884d4d6b85bc35133a8fb9a2233176"}, + {file = "black-22.3.0-cp38-cp38-win_amd64.whl", hash = "sha256:cee3e11161dde1b2a33a904b850b0899e0424cc331b7295f2a9698e79f9a69a0"}, + {file = "black-22.3.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:5891ef8abc06576985de8fa88e95ab70641de6c1fca97e2a15820a9b69e51b20"}, + {file = "black-22.3.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:30d78ba6bf080eeaf0b7b875d924b15cd46fec5fd044ddfbad38c8ea9171043a"}, + {file = "black-22.3.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ee8f1f7228cce7dffc2b464f07ce769f478968bfb3dd1254a4c2eeed84928aad"}, + {file = "black-22.3.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6ee227b696ca60dd1c507be80a6bc849a5a6ab57ac7352aad1ffec9e8b805f21"}, + {file = "black-22.3.0-cp39-cp39-win_amd64.whl", hash = "sha256:9b542ced1ec0ceeff5b37d69838106a6348e60db7b8fdd245294dc1d26136265"}, + {file = "black-22.3.0-py3-none-any.whl", hash = "sha256:bc58025940a896d7e5356952228b68f793cf5fcb342be703c3a2669a1488cb72"}, + {file = "black-22.3.0.tar.gz", hash = "sha256:35020b8886c022ced9282b51b5a875b6d1ab0c387b31a065b84db7c33085ca79"}, ] bleach = [ - {file = "bleach-4.0.0-py2.py3-none-any.whl", hash = "sha256:c1685a132e6a9a38bf93752e5faab33a9517a6c0bb2f37b785e47bf253bdb51d"}, - {file = "bleach-4.0.0.tar.gz", hash = "sha256:ffa9221c6ac29399cc50fcc33473366edd0cf8d5e2cbbbb63296dc327fb67cc8"}, + {file = "bleach-4.1.0-py2.py3-none-any.whl", hash = "sha256:4d2651ab93271d1129ac9cbc679f524565cc8a1b791909c4a51eac4446a15994"}, + {file = "bleach-4.1.0.tar.gz", hash = "sha256:0900d8b37eba61a802ee40ac0061f8c2b5dee29c1927dd1d233e075ebf5a71da"}, ] cffi = [ - {file = "cffi-1.14.6-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:22b9c3c320171c108e903d61a3723b51e37aaa8c81255b5e7ce102775bd01e2c"}, - {file = "cffi-1.14.6-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:f0c5d1acbfca6ebdd6b1e3eded8d261affb6ddcf2186205518f1428b8569bb99"}, - {file = "cffi-1.14.6-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:99f27fefe34c37ba9875f224a8f36e31d744d8083e00f520f133cab79ad5e819"}, - {file = "cffi-1.14.6-cp27-cp27m-win32.whl", hash = "sha256:55af55e32ae468e9946f741a5d51f9896da6b9bf0bbdd326843fec05c730eb20"}, - {file = "cffi-1.14.6-cp27-cp27m-win_amd64.whl", hash = "sha256:7bcac9a2b4fdbed2c16fa5681356d7121ecabf041f18d97ed5b8e0dd38a80224"}, - {file = "cffi-1.14.6-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:ed38b924ce794e505647f7c331b22a693bee1538fdf46b0222c4717b42f744e7"}, - {file = "cffi-1.14.6-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:e22dcb48709fc51a7b58a927391b23ab37eb3737a98ac4338e2448bef8559b33"}, - {file = "cffi-1.14.6-cp35-cp35m-macosx_10_9_x86_64.whl", hash = "sha256:aedb15f0a5a5949ecb129a82b72b19df97bbbca024081ed2ef88bd5c0a610534"}, - {file = "cffi-1.14.6-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:48916e459c54c4a70e52745639f1db524542140433599e13911b2f329834276a"}, - {file = "cffi-1.14.6-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:f627688813d0a4140153ff532537fbe4afea5a3dffce1f9deb7f91f848a832b5"}, - {file = "cffi-1.14.6-cp35-cp35m-win32.whl", hash = "sha256:f0010c6f9d1a4011e429109fda55a225921e3206e7f62a0c22a35344bfd13cca"}, - {file = "cffi-1.14.6-cp35-cp35m-win_amd64.whl", hash = "sha256:57e555a9feb4a8460415f1aac331a2dc833b1115284f7ded7278b54afc5bd218"}, - {file = "cffi-1.14.6-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:e8c6a99be100371dbb046880e7a282152aa5d6127ae01783e37662ef73850d8f"}, - {file = "cffi-1.14.6-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:19ca0dbdeda3b2615421d54bef8985f72af6e0c47082a8d26122adac81a95872"}, - {file = "cffi-1.14.6-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:d950695ae4381ecd856bcaf2b1e866720e4ab9a1498cba61c602e56630ca7195"}, - {file = "cffi-1.14.6-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e9dc245e3ac69c92ee4c167fbdd7428ec1956d4e754223124991ef29eb57a09d"}, - {file = "cffi-1.14.6-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a8661b2ce9694ca01c529bfa204dbb144b275a31685a075ce123f12331be790b"}, - {file = "cffi-1.14.6-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b315d709717a99f4b27b59b021e6207c64620790ca3e0bde636a6c7f14618abb"}, - {file = "cffi-1.14.6-cp36-cp36m-win32.whl", hash = "sha256:80b06212075346b5546b0417b9f2bf467fea3bfe7352f781ffc05a8ab24ba14a"}, - {file = "cffi-1.14.6-cp36-cp36m-win_amd64.whl", hash = "sha256:a9da7010cec5a12193d1af9872a00888f396aba3dc79186604a09ea3ee7c029e"}, - {file = "cffi-1.14.6-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:4373612d59c404baeb7cbd788a18b2b2a8331abcc84c3ba40051fcd18b17a4d5"}, - {file = "cffi-1.14.6-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:f10afb1004f102c7868ebfe91c28f4a712227fe4cb24974350ace1f90e1febbf"}, - {file = "cffi-1.14.6-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:fd4305f86f53dfd8cd3522269ed7fc34856a8ee3709a5e28b2836b2db9d4cd69"}, - {file = "cffi-1.14.6-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6d6169cb3c6c2ad50db5b868db6491a790300ade1ed5d1da29289d73bbe40b56"}, - {file = "cffi-1.14.6-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5d4b68e216fc65e9fe4f524c177b54964af043dde734807586cf5435af84045c"}, - {file = "cffi-1.14.6-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:33791e8a2dc2953f28b8d8d300dde42dd929ac28f974c4b4c6272cb2955cb762"}, - {file = "cffi-1.14.6-cp37-cp37m-win32.whl", hash = "sha256:0c0591bee64e438883b0c92a7bed78f6290d40bf02e54c5bf0978eaf36061771"}, - {file = "cffi-1.14.6-cp37-cp37m-win_amd64.whl", hash = "sha256:8eb687582ed7cd8c4bdbff3df6c0da443eb89c3c72e6e5dcdd9c81729712791a"}, - {file = "cffi-1.14.6-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:ba6f2b3f452e150945d58f4badd92310449876c4c954836cfb1803bdd7b422f0"}, - {file = "cffi-1.14.6-cp38-cp38-manylinux1_i686.whl", hash = "sha256:64fda793737bc4037521d4899be780534b9aea552eb673b9833b01f945904c2e"}, - {file = "cffi-1.14.6-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:9f3e33c28cd39d1b655ed1ba7247133b6f7fc16fa16887b120c0c670e35ce346"}, - {file = "cffi-1.14.6-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:26bb2549b72708c833f5abe62b756176022a7b9a7f689b571e74c8478ead51dc"}, - {file = "cffi-1.14.6-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:eb687a11f0a7a1839719edd80f41e459cc5366857ecbed383ff376c4e3cc6afd"}, - {file = "cffi-1.14.6-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d2ad4d668a5c0645d281dcd17aff2be3212bc109b33814bbb15c4939f44181cc"}, - {file = "cffi-1.14.6-cp38-cp38-win32.whl", hash = "sha256:487d63e1454627c8e47dd230025780e91869cfba4c753a74fda196a1f6ad6548"}, - {file = "cffi-1.14.6-cp38-cp38-win_amd64.whl", hash = "sha256:c33d18eb6e6bc36f09d793c0dc58b0211fccc6ae5149b808da4a62660678b156"}, - {file = "cffi-1.14.6-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:06c54a68935738d206570b20da5ef2b6b6d92b38ef3ec45c5422c0ebaf338d4d"}, - {file = "cffi-1.14.6-cp39-cp39-manylinux1_i686.whl", hash = "sha256:f174135f5609428cc6e1b9090f9268f5c8935fddb1b25ccb8255a2d50de6789e"}, - {file = "cffi-1.14.6-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:f3ebe6e73c319340830a9b2825d32eb6d8475c1dac020b4f0aa774ee3b898d1c"}, - {file = "cffi-1.14.6-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3c8d896becff2fa653dc4438b54a5a25a971d1f4110b32bd3068db3722c80202"}, - {file = "cffi-1.14.6-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4922cd707b25e623b902c86188aca466d3620892db76c0bdd7b99a3d5e61d35f"}, - {file = "cffi-1.14.6-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c9e005e9bd57bc987764c32a1bee4364c44fdc11a3cc20a40b93b444984f2b87"}, - {file = "cffi-1.14.6-cp39-cp39-win32.whl", hash = "sha256:eb9e2a346c5238a30a746893f23a9535e700f8192a68c07c0258e7ece6ff3728"}, - {file = "cffi-1.14.6-cp39-cp39-win_amd64.whl", hash = "sha256:818014c754cd3dba7229c0f5884396264d51ffb87ec86e927ef0be140bfdb0d2"}, - {file = "cffi-1.14.6.tar.gz", hash = "sha256:c9a875ce9d7fe32887784274dd533c57909b7b1dcadcc128a2ac21331a9765dd"}, + {file = "cffi-1.15.0-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:c2502a1a03b6312837279c8c1bd3ebedf6c12c4228ddbad40912d671ccc8a962"}, + {file = "cffi-1.15.0-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:23cfe892bd5dd8941608f93348c0737e369e51c100d03718f108bf1add7bd6d0"}, + {file = "cffi-1.15.0-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:41d45de54cd277a7878919867c0f08b0cf817605e4eb94093e7516505d3c8d14"}, + {file = "cffi-1.15.0-cp27-cp27m-win32.whl", hash = "sha256:4a306fa632e8f0928956a41fa8e1d6243c71e7eb59ffbd165fc0b41e316b2474"}, + {file = "cffi-1.15.0-cp27-cp27m-win_amd64.whl", hash = "sha256:e7022a66d9b55e93e1a845d8c9eba2a1bebd4966cd8bfc25d9cd07d515b33fa6"}, + {file = "cffi-1.15.0-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:14cd121ea63ecdae71efa69c15c5543a4b5fbcd0bbe2aad864baca0063cecf27"}, + {file = "cffi-1.15.0-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:d4d692a89c5cf08a8557fdeb329b82e7bf609aadfaed6c0d79f5a449a3c7c023"}, + {file = "cffi-1.15.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0104fb5ae2391d46a4cb082abdd5c69ea4eab79d8d44eaaf79f1b1fd806ee4c2"}, + {file = "cffi-1.15.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:91ec59c33514b7c7559a6acda53bbfe1b283949c34fe7440bcf917f96ac0723e"}, + {file = "cffi-1.15.0-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:f5c7150ad32ba43a07c4479f40241756145a1f03b43480e058cfd862bf5041c7"}, + {file = "cffi-1.15.0-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:00c878c90cb53ccfaae6b8bc18ad05d2036553e6d9d1d9dbcf323bbe83854ca3"}, + {file = "cffi-1.15.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:abb9a20a72ac4e0fdb50dae135ba5e77880518e742077ced47eb1499e29a443c"}, + {file = "cffi-1.15.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a5263e363c27b653a90078143adb3d076c1a748ec9ecc78ea2fb916f9b861962"}, + {file = "cffi-1.15.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f54a64f8b0c8ff0b64d18aa76675262e1700f3995182267998c31ae974fbc382"}, + {file = "cffi-1.15.0-cp310-cp310-win32.whl", hash = "sha256:c21c9e3896c23007803a875460fb786118f0cdd4434359577ea25eb556e34c55"}, + {file = "cffi-1.15.0-cp310-cp310-win_amd64.whl", hash = "sha256:5e069f72d497312b24fcc02073d70cb989045d1c91cbd53979366077959933e0"}, + {file = "cffi-1.15.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:64d4ec9f448dfe041705426000cc13e34e6e5bb13736e9fd62e34a0b0c41566e"}, + {file = "cffi-1.15.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2756c88cbb94231c7a147402476be2c4df2f6078099a6f4a480d239a8817ae39"}, + {file = "cffi-1.15.0-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3b96a311ac60a3f6be21d2572e46ce67f09abcf4d09344c49274eb9e0bf345fc"}, + {file = "cffi-1.15.0-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:75e4024375654472cc27e91cbe9eaa08567f7fbdf822638be2814ce059f58032"}, + {file = "cffi-1.15.0-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:59888172256cac5629e60e72e86598027aca6bf01fa2465bdb676d37636573e8"}, + {file = "cffi-1.15.0-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:27c219baf94952ae9d50ec19651a687b826792055353d07648a5695413e0c605"}, + {file = "cffi-1.15.0-cp36-cp36m-win32.whl", hash = "sha256:4958391dbd6249d7ad855b9ca88fae690783a6be9e86df65865058ed81fc860e"}, + {file = "cffi-1.15.0-cp36-cp36m-win_amd64.whl", hash = "sha256:f6f824dc3bce0edab5f427efcfb1d63ee75b6fcb7282900ccaf925be84efb0fc"}, + {file = "cffi-1.15.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:06c48159c1abed75c2e721b1715c379fa3200c7784271b3c46df01383b593636"}, + {file = "cffi-1.15.0-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:c2051981a968d7de9dd2d7b87bcb9c939c74a34626a6e2f8181455dd49ed69e4"}, + {file = "cffi-1.15.0-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:fd8a250edc26254fe5b33be00402e6d287f562b6a5b2152dec302fa15bb3e997"}, + {file = "cffi-1.15.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:91d77d2a782be4274da750752bb1650a97bfd8f291022b379bb8e01c66b4e96b"}, + {file = "cffi-1.15.0-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:45db3a33139e9c8f7c09234b5784a5e33d31fd6907800b316decad50af323ff2"}, + {file = "cffi-1.15.0-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:263cc3d821c4ab2213cbe8cd8b355a7f72a8324577dc865ef98487c1aeee2bc7"}, + {file = "cffi-1.15.0-cp37-cp37m-win32.whl", hash = "sha256:17771976e82e9f94976180f76468546834d22a7cc404b17c22df2a2c81db0c66"}, + {file = "cffi-1.15.0-cp37-cp37m-win_amd64.whl", hash = "sha256:3415c89f9204ee60cd09b235810be700e993e343a408693e80ce7f6a40108029"}, + {file = "cffi-1.15.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:4238e6dab5d6a8ba812de994bbb0a79bddbdf80994e4ce802b6f6f3142fcc880"}, + {file = "cffi-1.15.0-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:0808014eb713677ec1292301ea4c81ad277b6cdf2fdd90fd540af98c0b101d20"}, + {file = "cffi-1.15.0-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:57e9ac9ccc3101fac9d6014fba037473e4358ef4e89f8e181f8951a2c0162024"}, + {file = "cffi-1.15.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8b6c2ea03845c9f501ed1313e78de148cd3f6cad741a75d43a29b43da27f2e1e"}, + {file = "cffi-1.15.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:10dffb601ccfb65262a27233ac273d552ddc4d8ae1bf93b21c94b8511bffe728"}, + {file = "cffi-1.15.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:786902fb9ba7433aae840e0ed609f45c7bcd4e225ebb9c753aa39725bb3e6ad6"}, + {file = "cffi-1.15.0-cp38-cp38-win32.whl", hash = "sha256:da5db4e883f1ce37f55c667e5c0de439df76ac4cb55964655906306918e7363c"}, + {file = "cffi-1.15.0-cp38-cp38-win_amd64.whl", hash = "sha256:181dee03b1170ff1969489acf1c26533710231c58f95534e3edac87fff06c443"}, + {file = "cffi-1.15.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:45e8636704eacc432a206ac7345a5d3d2c62d95a507ec70d62f23cd91770482a"}, + {file = "cffi-1.15.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:31fb708d9d7c3f49a60f04cf5b119aeefe5644daba1cd2a0fe389b674fd1de37"}, + {file = "cffi-1.15.0-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:6dc2737a3674b3e344847c8686cf29e500584ccad76204efea14f451d4cc669a"}, + {file = "cffi-1.15.0-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:74fdfdbfdc48d3f47148976f49fab3251e550a8720bebc99bf1483f5bfb5db3e"}, + {file = "cffi-1.15.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ffaa5c925128e29efbde7301d8ecaf35c8c60ffbcd6a1ffd3a552177c8e5e796"}, + {file = "cffi-1.15.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3f7d084648d77af029acb79a0ff49a0ad7e9d09057a9bf46596dac9514dc07df"}, + {file = "cffi-1.15.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ef1f279350da2c586a69d32fc8733092fd32cc8ac95139a00377841f59a3f8d8"}, + {file = "cffi-1.15.0-cp39-cp39-win32.whl", hash = "sha256:2a23af14f408d53d5e6cd4e3d9a24ff9e05906ad574822a10563efcef137979a"}, + {file = "cffi-1.15.0-cp39-cp39-win_amd64.whl", hash = "sha256:3773c4d81e6e818df2efbc7dd77325ca0dcb688116050fb2b3011218eda36139"}, + {file = "cffi-1.15.0.tar.gz", hash = "sha256:920f0d66a896c2d99f0adbb391f990a84091179542c205fa53ce5787aff87954"}, +] +cfgv = [ + {file = "cfgv-3.3.1-py2.py3-none-any.whl", hash = "sha256:c6a0883f3917a037485059700b9e75da2464e6c27051014ad85ba6aaa5884426"}, + {file = "cfgv-3.3.1.tar.gz", hash = "sha256:f5a830efb9ce7a445376bb66ec94c638a9787422f96264c98edc6bdeed8ab736"}, ] click = [ - {file = "click-8.0.1-py3-none-any.whl", hash = "sha256:fba402a4a47334742d782209a7c79bc448911afe1149d07bdabdf480b3e2f4b6"}, - {file = "click-8.0.1.tar.gz", hash = "sha256:8c04c11192119b1ef78ea049e0a6f0463e4c48ef00a30160c704337586f3ad7a"}, + {file = "click-8.0.4-py3-none-any.whl", hash = "sha256:6a7a62563bbfabfda3a38f3023a1db4a35978c0abd76f6c9605ecd6554d6d9b1"}, + {file = "click-8.0.4.tar.gz", hash = "sha256:8458d7b1287c5fb128c90e23381cf99dcde74beaf6c7ff6384ce84d6fe090adb"}, ] colorama = [ {file = "colorama-0.4.4-py2.py3-none-any.whl", hash = "sha256:9f47eda37229f68eee03b24b9748937c7dc3868f906e8ba69fbcbdd3bc5dc3e2"}, @@ -1029,126 +1216,137 @@ commonmark = [ {file = "commonmark-0.9.1.tar.gz", hash = "sha256:452f9dc859be7f06631ddcb328b6919c67984aca654e5fefb3914d54691aed60"}, ] coverage = [ - {file = "coverage-5.5-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:b6d534e4b2ab35c9f93f46229363e17f63c53ad01330df9f2d6bd1187e5eaacf"}, - {file = "coverage-5.5-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:b7895207b4c843c76a25ab8c1e866261bcfe27bfaa20c192de5190121770672b"}, - {file = "coverage-5.5-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:c2723d347ab06e7ddad1a58b2a821218239249a9e4365eaff6649d31180c1669"}, - {file = "coverage-5.5-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:900fbf7759501bc7807fd6638c947d7a831fc9fdf742dc10f02956ff7220fa90"}, - {file = "coverage-5.5-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:004d1880bed2d97151facef49f08e255a20ceb6f9432df75f4eef018fdd5a78c"}, - {file = "coverage-5.5-cp27-cp27m-win32.whl", hash = "sha256:06191eb60f8d8a5bc046f3799f8a07a2d7aefb9504b0209aff0b47298333302a"}, - {file = "coverage-5.5-cp27-cp27m-win_amd64.whl", hash = "sha256:7501140f755b725495941b43347ba8a2777407fc7f250d4f5a7d2a1050ba8e82"}, - {file = "coverage-5.5-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:372da284cfd642d8e08ef606917846fa2ee350f64994bebfbd3afb0040436905"}, - {file = "coverage-5.5-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:8963a499849a1fc54b35b1c9f162f4108017b2e6db2c46c1bed93a72262ed083"}, - {file = "coverage-5.5-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:869a64f53488f40fa5b5b9dcb9e9b2962a66a87dab37790f3fcfb5144b996ef5"}, - {file = "coverage-5.5-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:4a7697d8cb0f27399b0e393c0b90f0f1e40c82023ea4d45d22bce7032a5d7b81"}, - {file = "coverage-5.5-cp310-cp310-macosx_10_14_x86_64.whl", hash = "sha256:8d0a0725ad7c1a0bcd8d1b437e191107d457e2ec1084b9f190630a4fb1af78e6"}, - {file = "coverage-5.5-cp310-cp310-manylinux1_x86_64.whl", hash = "sha256:51cb9476a3987c8967ebab3f0fe144819781fca264f57f89760037a2ea191cb0"}, - {file = "coverage-5.5-cp310-cp310-win_amd64.whl", hash = "sha256:c0891a6a97b09c1f3e073a890514d5012eb256845c451bd48f7968ef939bf4ae"}, - {file = "coverage-5.5-cp35-cp35m-macosx_10_9_x86_64.whl", hash = "sha256:3487286bc29a5aa4b93a072e9592f22254291ce96a9fbc5251f566b6b7343cdb"}, - {file = "coverage-5.5-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:deee1077aae10d8fa88cb02c845cfba9b62c55e1183f52f6ae6a2df6a2187160"}, - {file = "coverage-5.5-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:f11642dddbb0253cc8853254301b51390ba0081750a8ac03f20ea8103f0c56b6"}, - {file = "coverage-5.5-cp35-cp35m-manylinux2010_i686.whl", hash = "sha256:6c90e11318f0d3c436a42409f2749ee1a115cd8b067d7f14c148f1ce5574d701"}, - {file = "coverage-5.5-cp35-cp35m-manylinux2010_x86_64.whl", hash = "sha256:30c77c1dc9f253283e34c27935fded5015f7d1abe83bc7821680ac444eaf7793"}, - {file = "coverage-5.5-cp35-cp35m-win32.whl", hash = "sha256:9a1ef3b66e38ef8618ce5fdc7bea3d9f45f3624e2a66295eea5e57966c85909e"}, - {file = "coverage-5.5-cp35-cp35m-win_amd64.whl", hash = "sha256:972c85d205b51e30e59525694670de6a8a89691186012535f9d7dbaa230e42c3"}, - {file = "coverage-5.5-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:af0e781009aaf59e25c5a678122391cb0f345ac0ec272c7961dc5455e1c40066"}, - {file = "coverage-5.5-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:74d881fc777ebb11c63736622b60cb9e4aee5cace591ce274fb69e582a12a61a"}, - {file = "coverage-5.5-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:92b017ce34b68a7d67bd6d117e6d443a9bf63a2ecf8567bb3d8c6c7bc5014465"}, - {file = "coverage-5.5-cp36-cp36m-manylinux2010_i686.whl", hash = "sha256:d636598c8305e1f90b439dbf4f66437de4a5e3c31fdf47ad29542478c8508bbb"}, - {file = "coverage-5.5-cp36-cp36m-manylinux2010_x86_64.whl", hash = "sha256:41179b8a845742d1eb60449bdb2992196e211341818565abded11cfa90efb821"}, - {file = "coverage-5.5-cp36-cp36m-win32.whl", hash = "sha256:040af6c32813fa3eae5305d53f18875bedd079960822ef8ec067a66dd8afcd45"}, - {file = "coverage-5.5-cp36-cp36m-win_amd64.whl", hash = "sha256:5fec2d43a2cc6965edc0bb9e83e1e4b557f76f843a77a2496cbe719583ce8184"}, - {file = "coverage-5.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:18ba8bbede96a2c3dde7b868de9dcbd55670690af0988713f0603f037848418a"}, - {file = "coverage-5.5-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:2910f4d36a6a9b4214bb7038d537f015346f413a975d57ca6b43bf23d6563b53"}, - {file = "coverage-5.5-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:f0b278ce10936db1a37e6954e15a3730bea96a0997c26d7fee88e6c396c2086d"}, - {file = "coverage-5.5-cp37-cp37m-manylinux2010_i686.whl", hash = "sha256:796c9c3c79747146ebd278dbe1e5c5c05dd6b10cc3bcb8389dfdf844f3ead638"}, - {file = "coverage-5.5-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:53194af30d5bad77fcba80e23a1441c71abfb3e01192034f8246e0d8f99528f3"}, - {file = "coverage-5.5-cp37-cp37m-win32.whl", hash = "sha256:184a47bbe0aa6400ed2d41d8e9ed868b8205046518c52464fde713ea06e3a74a"}, - {file = "coverage-5.5-cp37-cp37m-win_amd64.whl", hash = "sha256:2949cad1c5208b8298d5686d5a85b66aae46d73eec2c3e08c817dd3513e5848a"}, - {file = "coverage-5.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:217658ec7187497e3f3ebd901afdca1af062b42cfe3e0dafea4cced3983739f6"}, - {file = "coverage-5.5-cp38-cp38-manylinux1_i686.whl", hash = "sha256:1aa846f56c3d49205c952d8318e76ccc2ae23303351d9270ab220004c580cfe2"}, - {file = "coverage-5.5-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:24d4a7de75446be83244eabbff746d66b9240ae020ced65d060815fac3423759"}, - {file = "coverage-5.5-cp38-cp38-manylinux2010_i686.whl", hash = "sha256:d1f8bf7b90ba55699b3a5e44930e93ff0189aa27186e96071fac7dd0d06a1873"}, - {file = "coverage-5.5-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:970284a88b99673ccb2e4e334cfb38a10aab7cd44f7457564d11898a74b62d0a"}, - {file = "coverage-5.5-cp38-cp38-win32.whl", hash = "sha256:01d84219b5cdbfc8122223b39a954820929497a1cb1422824bb86b07b74594b6"}, - {file = "coverage-5.5-cp38-cp38-win_amd64.whl", hash = "sha256:2e0d881ad471768bf6e6c2bf905d183543f10098e3b3640fc029509530091502"}, - {file = "coverage-5.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:d1f9ce122f83b2305592c11d64f181b87153fc2c2bbd3bb4a3dde8303cfb1a6b"}, - {file = "coverage-5.5-cp39-cp39-manylinux1_i686.whl", hash = "sha256:13c4ee887eca0f4c5a247b75398d4114c37882658300e153113dafb1d76de529"}, - {file = "coverage-5.5-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:52596d3d0e8bdf3af43db3e9ba8dcdaac724ba7b5ca3f6358529d56f7a166f8b"}, - {file = "coverage-5.5-cp39-cp39-manylinux2010_i686.whl", hash = "sha256:2cafbbb3af0733db200c9b5f798d18953b1a304d3f86a938367de1567f4b5bff"}, - {file = "coverage-5.5-cp39-cp39-manylinux2010_x86_64.whl", hash = "sha256:44d654437b8ddd9eee7d1eaee28b7219bec228520ff809af170488fd2fed3e2b"}, - {file = "coverage-5.5-cp39-cp39-win32.whl", hash = "sha256:d314ed732c25d29775e84a960c3c60808b682c08d86602ec2c3008e1202e3bb6"}, - {file = "coverage-5.5-cp39-cp39-win_amd64.whl", hash = "sha256:13034c4409db851670bc9acd836243aeee299949bd5673e11844befcb0149f03"}, - {file = "coverage-5.5-pp36-none-any.whl", hash = "sha256:f030f8873312a16414c0d8e1a1ddff2d3235655a2174e3648b4fa66b3f2f1079"}, - {file = "coverage-5.5-pp37-none-any.whl", hash = "sha256:2a3859cb82dcbda1cfd3e6f71c27081d18aa251d20a17d87d26d4cd216fb0af4"}, - {file = "coverage-5.5.tar.gz", hash = "sha256:ebe78fe9a0e874362175b02371bdfbee64d8edc42a044253ddf4ee7d3c15212c"}, + {file = "coverage-6.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:6dbc1536e105adda7a6312c778f15aaabe583b0e9a0b0a324990334fd458c94b"}, + {file = "coverage-6.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:174cf9b4bef0db2e8244f82059a5a72bd47e1d40e71c68ab055425172b16b7d0"}, + {file = "coverage-6.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:92b8c845527eae547a2a6617d336adc56394050c3ed8a6918683646328fbb6da"}, + {file = "coverage-6.2-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:c7912d1526299cb04c88288e148c6c87c0df600eca76efd99d84396cfe00ef1d"}, + {file = "coverage-6.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:d5d2033d5db1d58ae2d62f095e1aefb6988af65b4b12cb8987af409587cc0739"}, + {file = "coverage-6.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:3feac4084291642165c3a0d9eaebedf19ffa505016c4d3db15bfe235718d4971"}, + {file = "coverage-6.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:276651978c94a8c5672ea60a2656e95a3cce2a3f31e9fb2d5ebd4c215d095840"}, + {file = "coverage-6.2-cp310-cp310-win32.whl", hash = "sha256:f506af4f27def639ba45789fa6fde45f9a217da0be05f8910458e4557eed020c"}, + {file = "coverage-6.2-cp310-cp310-win_amd64.whl", hash = "sha256:3f7c17209eef285c86f819ff04a6d4cbee9b33ef05cbcaae4c0b4e8e06b3ec8f"}, + {file = "coverage-6.2-cp311-cp311-macosx_10_14_x86_64.whl", hash = "sha256:13362889b2d46e8d9f97c421539c97c963e34031ab0cb89e8ca83a10cc71ac76"}, + {file = "coverage-6.2-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:22e60a3ca5acba37d1d4a2ee66e051f5b0e1b9ac950b5b0cf4aa5366eda41d47"}, + {file = "coverage-6.2-cp311-cp311-win_amd64.whl", hash = "sha256:b637c57fdb8be84e91fac60d9325a66a5981f8086c954ea2772efe28425eaf64"}, + {file = "coverage-6.2-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:f467bbb837691ab5a8ca359199d3429a11a01e6dfb3d9dcc676dc035ca93c0a9"}, + {file = "coverage-6.2-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2641f803ee9f95b1f387f3e8f3bf28d83d9b69a39e9911e5bfee832bea75240d"}, + {file = "coverage-6.2-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:1219d760ccfafc03c0822ae2e06e3b1248a8e6d1a70928966bafc6838d3c9e48"}, + {file = "coverage-6.2-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:9a2b5b52be0a8626fcbffd7e689781bf8c2ac01613e77feda93d96184949a98e"}, + {file = "coverage-6.2-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:8e2c35a4c1f269704e90888e56f794e2d9c0262fb0c1b1c8c4ee44d9b9e77b5d"}, + {file = "coverage-6.2-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:5d6b09c972ce9200264c35a1d53d43ca55ef61836d9ec60f0d44273a31aa9f17"}, + {file = "coverage-6.2-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:e3db840a4dee542e37e09f30859f1612da90e1c5239a6a2498c473183a50e781"}, + {file = "coverage-6.2-cp36-cp36m-win32.whl", hash = "sha256:4e547122ca2d244f7c090fe3f4b5a5861255ff66b7ab6d98f44a0222aaf8671a"}, + {file = "coverage-6.2-cp36-cp36m-win_amd64.whl", hash = "sha256:01774a2c2c729619760320270e42cd9e797427ecfddd32c2a7b639cdc481f3c0"}, + {file = "coverage-6.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:fb8b8ee99b3fffe4fd86f4c81b35a6bf7e4462cba019997af2fe679365db0c49"}, + {file = "coverage-6.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:619346d57c7126ae49ac95b11b0dc8e36c1dd49d148477461bb66c8cf13bb521"}, + {file = "coverage-6.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:0a7726f74ff63f41e95ed3a89fef002916c828bb5fcae83b505b49d81a066884"}, + {file = "coverage-6.2-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:cfd9386c1d6f13b37e05a91a8583e802f8059bebfccde61a418c5808dea6bbfa"}, + {file = "coverage-6.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:17e6c11038d4ed6e8af1407d9e89a2904d573be29d51515f14262d7f10ef0a64"}, + {file = "coverage-6.2-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:c254b03032d5a06de049ce8bca8338a5185f07fb76600afff3c161e053d88617"}, + {file = "coverage-6.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:dca38a21e4423f3edb821292e97cec7ad38086f84313462098568baedf4331f8"}, + {file = "coverage-6.2-cp37-cp37m-win32.whl", hash = "sha256:600617008aa82032ddeace2535626d1bc212dfff32b43989539deda63b3f36e4"}, + {file = "coverage-6.2-cp37-cp37m-win_amd64.whl", hash = "sha256:bf154ba7ee2fd613eb541c2bc03d3d9ac667080a737449d1a3fb342740eb1a74"}, + {file = "coverage-6.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:f9afb5b746781fc2abce26193d1c817b7eb0e11459510fba65d2bd77fe161d9e"}, + {file = "coverage-6.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:edcada2e24ed68f019175c2b2af2a8b481d3d084798b8c20d15d34f5c733fa58"}, + {file = "coverage-6.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:a9c8c4283e17690ff1a7427123ffb428ad6a52ed720d550e299e8291e33184dc"}, + {file = "coverage-6.2-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:f614fc9956d76d8a88a88bb41ddc12709caa755666f580af3a688899721efecd"}, + {file = "coverage-6.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:9365ed5cce5d0cf2c10afc6add145c5037d3148585b8ae0e77cc1efdd6aa2953"}, + {file = "coverage-6.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:8bdfe9ff3a4ea37d17f172ac0dff1e1c383aec17a636b9b35906babc9f0f5475"}, + {file = "coverage-6.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:63c424e6f5b4ab1cf1e23a43b12f542b0ec2e54f99ec9f11b75382152981df57"}, + {file = "coverage-6.2-cp38-cp38-win32.whl", hash = "sha256:49dbff64961bc9bdd2289a2bda6a3a5a331964ba5497f694e2cbd540d656dc1c"}, + {file = "coverage-6.2-cp38-cp38-win_amd64.whl", hash = "sha256:9a29311bd6429be317c1f3fe4bc06c4c5ee45e2fa61b2a19d4d1d6111cb94af2"}, + {file = "coverage-6.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:03b20e52b7d31be571c9c06b74746746d4eb82fc260e594dc662ed48145e9efd"}, + {file = "coverage-6.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:215f8afcc02a24c2d9a10d3790b21054b58d71f4b3c6f055d4bb1b15cecce685"}, + {file = "coverage-6.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:a4bdeb0a52d1d04123b41d90a4390b096f3ef38eee35e11f0b22c2d031222c6c"}, + {file = "coverage-6.2-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:c332d8f8d448ded473b97fefe4a0983265af21917d8b0cdcb8bb06b2afe632c3"}, + {file = "coverage-6.2-cp39-cp39-win32.whl", hash = "sha256:6e1394d24d5938e561fbeaa0cd3d356207579c28bd1792f25a068743f2d5b282"}, + {file = "coverage-6.2-cp39-cp39-win_amd64.whl", hash = "sha256:86f2e78b1eff847609b1ca8050c9e1fa3bd44ce755b2ec30e70f2d3ba3844644"}, + {file = "coverage-6.2-pp36.pp37.pp38-none-any.whl", hash = "sha256:5829192582c0ec8ca4a2532407bc14c2f338d9878a10442f5d03804a95fac9de"}, + {file = "coverage-6.2.tar.gz", hash = "sha256:e2cad8093172b7d1595b4ad66f24270808658e11acf43a8f95b41276162eb5b8"}, ] dataclasses = [ {file = "dataclasses-0.8-py3-none-any.whl", hash = "sha256:0201d89fa866f68c8ebd9d08ee6ff50c0b255f8ec63a71c16fda7af82bb887bf"}, {file = "dataclasses-0.8.tar.gz", hash = "sha256:8479067f342acf957dc82ec415d355ab5edb7e7646b90dc6e2fd1d96ad084c97"}, ] decorator = [ - {file = "decorator-5.0.9-py3-none-any.whl", hash = "sha256:6e5c199c16f7a9f0e3a61a4a54b3d27e7dad0dbdde92b944426cb20914376323"}, - {file = "decorator-5.0.9.tar.gz", hash = "sha256:72ecfba4320a893c53f9706bebb2d55c270c1e51a28789361aa93e4a21319ed5"}, + {file = "decorator-5.1.1-py3-none-any.whl", hash = "sha256:b8c3f85900b9dc423225913c5aace94729fe1fa9763b38939a95226f02d37186"}, + {file = "decorator-5.1.1.tar.gz", hash = "sha256:637996211036b6385ef91435e4fae22989472f9d571faba8927ba8253acbc330"}, ] defusedxml = [ {file = "defusedxml-0.7.1-py2.py3-none-any.whl", hash = "sha256:a352e7e428770286cc899e2542b6cdaedb2b4953ff269a210103ec58f6198a61"}, {file = "defusedxml-0.7.1.tar.gz", hash = "sha256:1bb3032db185915b62d7c6209c5a8792be6a32ab2fedacc84e01b52c51aa3e69"}, ] +distlib = [ + {file = "distlib-0.3.4-py2.py3-none-any.whl", hash = "sha256:6564fe0a8f51e734df6333d08b8b94d4ea8ee6b99b5ed50613f731fd4089f34b"}, + {file = "distlib-0.3.4.zip", hash = "sha256:e4b58818180336dc9c529bfb9a0b58728ffc09ad92027a3f30b7cd91e3458579"}, +] entrypoints = [ - {file = "entrypoints-0.3-py2.py3-none-any.whl", hash = "sha256:589f874b313739ad35be6e0cd7efde2a4e9b6fea91edcc34e58ecbb8dbe56d19"}, - {file = "entrypoints-0.3.tar.gz", hash = "sha256:c70dd71abe5a8c85e55e12c19bd91ccfeec11a6e99044204511f9ed547d48451"}, + {file = "entrypoints-0.4-py3-none-any.whl", hash = "sha256:f174b5ff827504fd3cd97cc3f8649f3693f51538c7e4bdf3ef002c8429d42f9f"}, + {file = "entrypoints-0.4.tar.gz", hash = "sha256:b706eddaa9218a19ebcd67b56818f05bb27589b1ca9e8d797b74affad4ccacd4"}, +] +filelock = [ + {file = "filelock-3.4.1-py3-none-any.whl", hash = "sha256:a4bc51381e01502a30e9f06dd4fa19a1712eab852b6fb0f84fd7cce0793d8ca3"}, + {file = "filelock-3.4.1.tar.gz", hash = "sha256:0f12f552b42b5bf60dba233710bf71337d35494fc8bdd4fd6d9f6d082ad45e06"}, +] +identify = [ + {file = "identify-2.4.4-py2.py3-none-any.whl", hash = "sha256:aa68609c7454dbcaae60a01ff6b8df1de9b39fe6e50b1f6107ec81dcda624aa6"}, + {file = "identify-2.4.4.tar.gz", hash = "sha256:6b4b5031f69c48bf93a646b90de9b381c6b5f560df4cbe0ed3cf7650ae741e4d"}, ] importlib-metadata = [ - {file = "importlib_metadata-4.6.3-py3-none-any.whl", hash = "sha256:51c6635429c77cf1ae634c997ff9e53ca3438b495f10a55ba28594dd69764a8b"}, - {file = "importlib_metadata-4.6.3.tar.gz", hash = "sha256:0645585859e9a6689c523927a5032f2ba5919f1f7d0e84bd4533312320de1ff9"}, + {file = "importlib_metadata-4.8.3-py3-none-any.whl", hash = "sha256:65a9576a5b2d58ca44d133c42a241905cc45e34d2c06fd5ba2bafa221e5d7b5e"}, + {file = "importlib_metadata-4.8.3.tar.gz", hash = "sha256:766abffff765960fcc18003801f7044eb6755ffae4521c8e8ce8e83b9c9b0668"}, +] +importlib-resources = [ + {file = "importlib_resources-5.2.3-py3-none-any.whl", hash = "sha256:ae35ed1cfe8c0d6c1a53ecd168167f01fa93b893d51a62cdf23aea044c67211b"}, + {file = "importlib_resources-5.2.3.tar.gz", hash = "sha256:203d70dda34cfbfbb42324a8d4211196e7d3e858de21a5eb68c6d1cdd99e4e98"}, ] iniconfig = [ {file = "iniconfig-1.1.1-py2.py3-none-any.whl", hash = "sha256:011e24c64b7f47f6ebd835bb12a743f2fbe9a26d4cecaa7f53bc4f35ee9da8b3"}, {file = "iniconfig-1.1.1.tar.gz", hash = "sha256:bc3af051d7d14b2ee5ef9969666def0cd1a000e121eaea580d4a313df4b37f32"}, ] ipykernel = [ - {file = "ipykernel-5.5.5-py3-none-any.whl", hash = "sha256:29eee66548ee7c2edb7941de60c0ccf0a7a8dd957341db0a49c5e8e6a0fcb712"}, - {file = "ipykernel-5.5.5.tar.gz", hash = "sha256:e976751336b51082a89fc2099fb7f96ef20f535837c398df6eab1283c2070884"}, + {file = "ipykernel-5.5.6-py3-none-any.whl", hash = "sha256:66f824af1ef4650e1e2f6c42e1423074321440ef79ca3651a6cfd06a4e25e42f"}, + {file = "ipykernel-5.5.6.tar.gz", hash = "sha256:4ea44b90ae1f7c38987ad58ea0809562a17c2695a0499644326f334aecd369ec"}, ] ipython = [ - {file = "ipython-7.16.1-py3-none-any.whl", hash = "sha256:2dbcc8c27ca7d3cfe4fcdff7f45b27f9a8d3edfa70ff8024a71c7a8eb5f09d64"}, - {file = "ipython-7.16.1.tar.gz", hash = "sha256:9f4fcb31d3b2c533333893b9172264e4821c1ac91839500f31bd43f2c59b3ccf"}, + {file = "ipython-7.16.3-py3-none-any.whl", hash = "sha256:c0427ed8bc33ac481faf9d3acf7e84e0010cdaada945e0badd1e2e74cc075833"}, + {file = "ipython-7.16.3.tar.gz", hash = "sha256:5ac47dc9af66fc2f5530c12069390877ae372ac905edca75a92a6e363b5d7caa"}, ] ipython-genutils = [ {file = "ipython_genutils-0.2.0-py2.py3-none-any.whl", hash = "sha256:72dd37233799e619666c9f639a9da83c34013a73e8bbc79a7a6348d93c61fab8"}, {file = "ipython_genutils-0.2.0.tar.gz", hash = "sha256:eb2e116e75ecef9d4d228fdc66af54269afa26ab4463042e33785b887c628ba8"}, ] ipywidgets = [ - {file = "ipywidgets-7.6.5-py2.py3-none-any.whl", hash = "sha256:d258f582f915c62ea91023299603be095de19afb5ee271698f88327b9fe9bf43"}, - {file = "ipywidgets-7.6.5.tar.gz", hash = "sha256:00974f7cb4d5f8d494c19810fedb9fa9b64bffd3cda7c2be23c133a1ad3c99c5"}, + {file = "ipywidgets-7.7.0-py2.py3-none-any.whl", hash = "sha256:e58ff58bc94d481e91ecb6e13a5cb96a87b6b8ade135e055603d0ca24593df38"}, + {file = "ipywidgets-7.7.0.tar.gz", hash = "sha256:ab4a5596855a88b83761921c768707d65e5847068139bc1729ddfe834703542a"}, ] jedi = [ - {file = "jedi-0.18.0-py2.py3-none-any.whl", hash = "sha256:18456d83f65f400ab0c2d3319e48520420ef43b23a086fdc05dff34132f0fb93"}, - {file = "jedi-0.18.0.tar.gz", hash = "sha256:92550a404bad8afed881a137ec9a461fed49eca661414be45059329614ed0707"}, + {file = "jedi-0.17.2-py2.py3-none-any.whl", hash = "sha256:98cc583fa0f2f8304968199b01b6b4b94f469a1f4a74c1560506ca2a211378b5"}, + {file = "jedi-0.17.2.tar.gz", hash = "sha256:86ed7d9b750603e4ba582ea8edc678657fb4007894a12bcf6f4bb97892f31d20"}, ] jinja2 = [ - {file = "Jinja2-3.0.1-py3-none-any.whl", hash = "sha256:1f06f2da51e7b56b8f238affdd6b4e2c61e39598a378cc49345bc1bd42a978a4"}, - {file = "Jinja2-3.0.1.tar.gz", hash = "sha256:703f484b47a6af502e743c9122595cc812b0271f661722403114f71a79d0f5a4"}, + {file = "Jinja2-3.0.3-py3-none-any.whl", hash = "sha256:077ce6014f7b40d03b47d1f1ca4b0fc8328a692bd284016f806ed0eaca390ad8"}, + {file = "Jinja2-3.0.3.tar.gz", hash = "sha256:611bb273cd68f3b993fabdc4064fc858c5b47a973cb5aa7999ec1ba405c87cd7"}, ] jsonschema = [ - {file = "jsonschema-3.2.0-py2.py3-none-any.whl", hash = "sha256:4e5b3cf8216f577bee9ce139cbe72eca3ea4f292ec60928ff24758ce626cd163"}, - {file = "jsonschema-3.2.0.tar.gz", hash = "sha256:c8a85b28d377cc7737e46e2d9f2b4f44ee3c0e1deac6bf46ddefc7187d30797a"}, + {file = "jsonschema-4.0.0-py3-none-any.whl", hash = "sha256:c773028c649441ab980015b5b622f4cd5134cf563daaf0235ca4b73cc3734f20"}, + {file = "jsonschema-4.0.0.tar.gz", hash = "sha256:bc51325b929171791c42ebc1c70b9713eb134d3bb8ebd5474c8b659b15be6d86"}, ] jupyter-client = [ - {file = "jupyter_client-6.1.13-py3-none-any.whl", hash = "sha256:1df17b0525b45cc03645fc9eeab023765882d3c18fb100f82499cf6a353b3941"}, - {file = "jupyter_client-6.1.13.tar.gz", hash = "sha256:d03558bc9b7955d8b4a6df604a8d9d257e00bcea7fb364fe41cdef81d998a966"}, + {file = "jupyter_client-7.1.2-py3-none-any.whl", hash = "sha256:d56f1c57bef42ff31e61b1185d3348a5b2bcde7c9a05523ae4dbe5ee0871797c"}, + {file = "jupyter_client-7.1.2.tar.gz", hash = "sha256:4ea61033726c8e579edb55626d8ee2e6bf0a83158ddf3751b8dd46b2c5cd1e96"}, ] jupyter-core = [ - {file = "jupyter_core-4.7.1-py3-none-any.whl", hash = "sha256:8c6c0cac5c1b563622ad49321d5ec47017bd18b94facb381c6973a0486395f8e"}, - {file = "jupyter_core-4.7.1.tar.gz", hash = "sha256:79025cb3225efcd36847d0840f3fc672c0abd7afd0de83ba8a1d3837619122b4"}, + {file = "jupyter_core-4.9.2-py3-none-any.whl", hash = "sha256:f875e4d27e202590311d468fa55f90c575f201490bd0c18acabe4e318db4a46d"}, + {file = "jupyter_core-4.9.2.tar.gz", hash = "sha256:d69baeb9ffb128b8cd2657fcf2703f89c769d1673c851812119e3a2a0e93ad9a"}, ] jupyterlab-pygments = [ {file = "jupyterlab_pygments-0.1.2-py2.py3-none-any.whl", hash = "sha256:abfb880fd1561987efaefcb2d2ac75145d2a5d0139b1876d5be806e32f630008"}, {file = "jupyterlab_pygments-0.1.2.tar.gz", hash = "sha256:cfcda0873626150932f438eccf0f8bf22bfa92345b814890ab360d666b254146"}, ] jupyterlab-widgets = [ - {file = "jupyterlab_widgets-1.0.0-py3-none-any.whl", hash = "sha256:caeaf3e6103180e654e7d8d2b81b7d645e59e432487c1d35a41d6d3ee56b3fef"}, - {file = "jupyterlab_widgets-1.0.0.tar.gz", hash = "sha256:5c1a29a84d3069208cb506b10609175b249b6486d6b1cbae8fcde2a11584fb78"}, + {file = "jupyterlab_widgets-1.1.0-py3-none-any.whl", hash = "sha256:c2a9bd3789f120f64d73268c066ed3b000c56bc1dda217be5cdc43e7b4ebad3f"}, + {file = "jupyterlab_widgets-1.1.0.tar.gz", hash = "sha256:d5f41bc1713795385f718d44dcba47e1e1473c6289f28a95aa6b2c0782ee372a"}, ] markupsafe = [ {file = "MarkupSafe-2.0.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:d8446c54dc28c01e5a2dbac5a25f071f6653e6e40f3a8818e8b45d790fe6ef53"}, @@ -1156,6 +1354,9 @@ markupsafe = [ {file = "MarkupSafe-2.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2d7d807855b419fc2ed3e631034685db6079889a1f01d5d9dac950f764da3dad"}, {file = "MarkupSafe-2.0.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:add36cb2dbb8b736611303cd3bfcee00afd96471b09cda130da3581cbdc56a6d"}, {file = "MarkupSafe-2.0.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:168cd0a3642de83558a5153c8bd34f175a9a6e7f6dc6384b9655d2697312a646"}, + {file = "MarkupSafe-2.0.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:4dc8f9fb58f7364b63fd9f85013b780ef83c11857ae79f2feda41e270468dd9b"}, + {file = "MarkupSafe-2.0.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:20dca64a3ef2d6e4d5d615a3fd418ad3bde77a47ec8a23d984a12b5b4c74491a"}, + {file = "MarkupSafe-2.0.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:cdfba22ea2f0029c9261a4bd07e830a8da012291fbe44dc794e488b6c9bb353a"}, {file = "MarkupSafe-2.0.1-cp310-cp310-win32.whl", hash = "sha256:99df47edb6bda1249d3e80fdabb1dab8c08ef3975f69aed437cb69d0a5de1e28"}, {file = "MarkupSafe-2.0.1-cp310-cp310-win_amd64.whl", hash = "sha256:e0f138900af21926a02425cf736db95be9f4af72ba1bb21453432a07f6082134"}, {file = "MarkupSafe-2.0.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:f9081981fe268bd86831e5c75f7de206ef275defcb82bc70740ae6dc507aee51"}, @@ -1167,6 +1368,9 @@ markupsafe = [ {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bf5d821ffabf0ef3533c39c518f3357b171a1651c1ff6827325e4489b0e46c3c"}, {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:0d4b31cc67ab36e3392bbf3862cfbadac3db12bdd8b02a2731f509ed5b829724"}, {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:baa1a4e8f868845af802979fcdbf0bb11f94f1cb7ced4c4b8a351bb60d108145"}, + {file = "MarkupSafe-2.0.1-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:deb993cacb280823246a026e3b2d81c493c53de6acfd5e6bfe31ab3402bb37dd"}, + {file = "MarkupSafe-2.0.1-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:63f3268ba69ace99cab4e3e3b5840b03340efed0948ab8f78d2fd87ee5442a4f"}, + {file = "MarkupSafe-2.0.1-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:8d206346619592c6200148b01a2142798c989edcb9c896f9ac9722a99d4e77e6"}, {file = "MarkupSafe-2.0.1-cp36-cp36m-win32.whl", hash = "sha256:6c4ca60fa24e85fe25b912b01e62cb969d69a23a5d5867682dd3e80b5b02581d"}, {file = "MarkupSafe-2.0.1-cp36-cp36m-win_amd64.whl", hash = "sha256:b2f4bf27480f5e5e8ce285a8c8fd176c0b03e93dcc6646477d4630e83440c6a9"}, {file = "MarkupSafe-2.0.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:0717a7390a68be14b8c793ba258e075c6f4ca819f15edfc2a3a027c823718567"}, @@ -1178,6 +1382,9 @@ markupsafe = [ {file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e9936f0b261d4df76ad22f8fee3ae83b60d7c3e871292cd42f40b81b70afae85"}, {file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:2a7d351cbd8cfeb19ca00de495e224dea7e7d919659c2841bbb7f420ad03e2d6"}, {file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:60bf42e36abfaf9aff1f50f52644b336d4f0a3fd6d8a60ca0d054ac9f713a864"}, + {file = "MarkupSafe-2.0.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:d6c7ebd4e944c85e2c3421e612a7057a2f48d478d79e61800d81468a8d842207"}, + {file = "MarkupSafe-2.0.1-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:f0567c4dc99f264f49fe27da5f735f414c4e7e7dd850cfd8e69f0862d7c74ea9"}, + {file = "MarkupSafe-2.0.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:89c687013cb1cd489a0f0ac24febe8c7a666e6e221b783e53ac50ebf68e45d86"}, {file = "MarkupSafe-2.0.1-cp37-cp37m-win32.whl", hash = "sha256:a30e67a65b53ea0a5e62fe23682cfe22712e01f453b95233b25502f7c61cb415"}, {file = "MarkupSafe-2.0.1-cp37-cp37m-win_amd64.whl", hash = "sha256:611d1ad9a4288cf3e3c16014564df047fe08410e628f89805e475368bd304914"}, {file = "MarkupSafe-2.0.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:5bb28c636d87e840583ee3adeb78172efc47c8b26127267f54a9c0ec251d41a9"}, @@ -1190,6 +1397,9 @@ markupsafe = [ {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6fcf051089389abe060c9cd7caa212c707e58153afa2c649f00346ce6d260f1b"}, {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:5855f8438a7d1d458206a2466bf82b0f104a3724bf96a1c781ab731e4201731a"}, {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:3dd007d54ee88b46be476e293f48c85048603f5f516008bee124ddd891398ed6"}, + {file = "MarkupSafe-2.0.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:aca6377c0cb8a8253e493c6b451565ac77e98c2951c45f913e0b52facdcff83f"}, + {file = "MarkupSafe-2.0.1-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:04635854b943835a6ea959e948d19dcd311762c5c0c6e1f0e16ee57022669194"}, + {file = "MarkupSafe-2.0.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:6300b8454aa6930a24b9618fbb54b5a68135092bc666f7b06901f897fa5c2fee"}, {file = "MarkupSafe-2.0.1-cp38-cp38-win32.whl", hash = "sha256:023cb26ec21ece8dc3907c0e8320058b2e0cb3c55cf9564da612bc325bed5e64"}, {file = "MarkupSafe-2.0.1-cp38-cp38-win_amd64.whl", hash = "sha256:984d76483eb32f1bcb536dc27e4ad56bba4baa70be32fa87152832cdd9db0833"}, {file = "MarkupSafe-2.0.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:2ef54abee730b502252bcdf31b10dacb0a416229b72c18b19e24a4509f273d26"}, @@ -1202,6 +1412,9 @@ markupsafe = [ {file = "MarkupSafe-2.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c47adbc92fc1bb2b3274c4b3a43ae0e4573d9fbff4f54cd484555edbf030baf1"}, {file = "MarkupSafe-2.0.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:37205cac2a79194e3750b0af2a5720d95f786a55ce7df90c3af697bfa100eaac"}, {file = "MarkupSafe-2.0.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:1f2ade76b9903f39aa442b4aadd2177decb66525062db244b35d71d0ee8599b6"}, + {file = "MarkupSafe-2.0.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:4296f2b1ce8c86a6aea78613c34bb1a672ea0e3de9c6ba08a960efe0b0a09047"}, + {file = "MarkupSafe-2.0.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:9f02365d4e99430a12647f09b6cc8bab61a6564363f313126f775eb4f6ef798e"}, + {file = "MarkupSafe-2.0.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5b6d930f030f8ed98e3e6c98ffa0652bdb82601e7a016ec2ab5d7ff23baa78d1"}, {file = "MarkupSafe-2.0.1-cp39-cp39-win32.whl", hash = "sha256:10f82115e21dc0dfec9ab5c0223652f7197feb168c940f3ef61563fc2d6beb74"}, {file = "MarkupSafe-2.0.1-cp39-cp39-win_amd64.whl", hash = "sha256:693ce3f9e70a6cf7d2fb9e6c9d8b204b6b39897a2c4a1aa65728d5ac97dcc1d8"}, {file = "MarkupSafe-2.0.1.tar.gz", hash = "sha256:594c67807fb16238b30c44bdf74f36c02cdf22d1c8cda91ef8a0ed8dabf5620a"}, @@ -1211,37 +1424,37 @@ mistune = [ {file = "mistune-0.8.4.tar.gz", hash = "sha256:59a3429db53c50b5c6bcc8a07f8848cb00d7dc8bdb431a4ab41920d201d4756e"}, ] mypy = [ - {file = "mypy-0.910-cp35-cp35m-macosx_10_9_x86_64.whl", hash = "sha256:a155d80ea6cee511a3694b108c4494a39f42de11ee4e61e72bc424c490e46457"}, - {file = "mypy-0.910-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:b94e4b785e304a04ea0828759172a15add27088520dc7e49ceade7834275bedb"}, - {file = "mypy-0.910-cp35-cp35m-manylinux2010_x86_64.whl", hash = "sha256:088cd9c7904b4ad80bec811053272986611b84221835e079be5bcad029e79dd9"}, - {file = "mypy-0.910-cp35-cp35m-win_amd64.whl", hash = "sha256:adaeee09bfde366d2c13fe6093a7df5df83c9a2ba98638c7d76b010694db760e"}, - {file = "mypy-0.910-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:ecd2c3fe726758037234c93df7e98deb257fd15c24c9180dacf1ef829da5f921"}, - {file = "mypy-0.910-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:d9dd839eb0dc1bbe866a288ba3c1afc33a202015d2ad83b31e875b5905a079b6"}, - {file = "mypy-0.910-cp36-cp36m-manylinux2010_x86_64.whl", hash = "sha256:3e382b29f8e0ccf19a2df2b29a167591245df90c0b5a2542249873b5c1d78212"}, - {file = "mypy-0.910-cp36-cp36m-win_amd64.whl", hash = "sha256:53fd2eb27a8ee2892614370896956af2ff61254c275aaee4c230ae771cadd885"}, - {file = "mypy-0.910-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:b6fb13123aeef4a3abbcfd7e71773ff3ff1526a7d3dc538f3929a49b42be03f0"}, - {file = "mypy-0.910-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:e4dab234478e3bd3ce83bac4193b2ecd9cf94e720ddd95ce69840273bf44f6de"}, - {file = "mypy-0.910-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:7df1ead20c81371ccd6091fa3e2878559b5c4d4caadaf1a484cf88d93ca06703"}, - {file = "mypy-0.910-cp37-cp37m-win_amd64.whl", hash = "sha256:0aadfb2d3935988ec3815952e44058a3100499f5be5b28c34ac9d79f002a4a9a"}, - {file = "mypy-0.910-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:ec4e0cd079db280b6bdabdc807047ff3e199f334050db5cbb91ba3e959a67504"}, - {file = "mypy-0.910-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:119bed3832d961f3a880787bf621634ba042cb8dc850a7429f643508eeac97b9"}, - {file = "mypy-0.910-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:866c41f28cee548475f146aa4d39a51cf3b6a84246969f3759cb3e9c742fc072"}, - {file = "mypy-0.910-cp38-cp38-win_amd64.whl", hash = "sha256:ceb6e0a6e27fb364fb3853389607cf7eb3a126ad335790fa1e14ed02fba50811"}, - {file = "mypy-0.910-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:1a85e280d4d217150ce8cb1a6dddffd14e753a4e0c3cf90baabb32cefa41b59e"}, - {file = "mypy-0.910-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:42c266ced41b65ed40a282c575705325fa7991af370036d3f134518336636f5b"}, - {file = "mypy-0.910-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:3c4b8ca36877fc75339253721f69603a9c7fdb5d4d5a95a1a1b899d8b86a4de2"}, - {file = "mypy-0.910-cp39-cp39-manylinux2010_x86_64.whl", hash = "sha256:c0df2d30ed496a08de5daed2a9ea807d07c21ae0ab23acf541ab88c24b26ab97"}, - {file = "mypy-0.910-cp39-cp39-win_amd64.whl", hash = "sha256:c6c2602dffb74867498f86e6129fd52a2770c48b7cd3ece77ada4fa38f94eba8"}, - {file = "mypy-0.910-py3-none-any.whl", hash = "sha256:ef565033fa5a958e62796867b1df10c40263ea9ded87164d67572834e57a174d"}, - {file = "mypy-0.910.tar.gz", hash = "sha256:704098302473cb31a218f1775a873b376b30b4c18229421e9e9dc8916fd16150"}, + {file = "mypy-0.950-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:cf9c261958a769a3bd38c3e133801ebcd284ffb734ea12d01457cb09eacf7d7b"}, + {file = "mypy-0.950-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:b5b5bd0ffb11b4aba2bb6d31b8643902c48f990cc92fda4e21afac658044f0c0"}, + {file = "mypy-0.950-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:5e7647df0f8fc947388e6251d728189cfadb3b1e558407f93254e35abc026e22"}, + {file = "mypy-0.950-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:eaff8156016487c1af5ffa5304c3e3fd183edcb412f3e9c72db349faf3f6e0eb"}, + {file = "mypy-0.950-cp310-cp310-win_amd64.whl", hash = "sha256:563514c7dc504698fb66bb1cf897657a173a496406f1866afae73ab5b3cdb334"}, + {file = "mypy-0.950-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:dd4d670eee9610bf61c25c940e9ade2d0ed05eb44227275cce88701fee014b1f"}, + {file = "mypy-0.950-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:ca75ecf2783395ca3016a5e455cb322ba26b6d33b4b413fcdedfc632e67941dc"}, + {file = "mypy-0.950-cp36-cp36m-win_amd64.whl", hash = "sha256:6003de687c13196e8a1243a5e4bcce617d79b88f83ee6625437e335d89dfebe2"}, + {file = "mypy-0.950-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:4c653e4846f287051599ed8f4b3c044b80e540e88feec76b11044ddc5612ffed"}, + {file = "mypy-0.950-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:e19736af56947addedce4674c0971e5dceef1b5ec7d667fe86bcd2b07f8f9075"}, + {file = "mypy-0.950-cp37-cp37m-win_amd64.whl", hash = "sha256:ef7beb2a3582eb7a9f37beaf38a28acfd801988cde688760aea9e6cc4832b10b"}, + {file = "mypy-0.950-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:0112752a6ff07230f9ec2f71b0d3d4e088a910fdce454fdb6553e83ed0eced7d"}, + {file = "mypy-0.950-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:ee0a36edd332ed2c5208565ae6e3a7afc0eabb53f5327e281f2ef03a6bc7687a"}, + {file = "mypy-0.950-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:77423570c04aca807508a492037abbd72b12a1fb25a385847d191cd50b2c9605"}, + {file = "mypy-0.950-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:5ce6a09042b6da16d773d2110e44f169683d8cc8687e79ec6d1181a72cb028d2"}, + {file = "mypy-0.950-cp38-cp38-win_amd64.whl", hash = "sha256:5b231afd6a6e951381b9ef09a1223b1feabe13625388db48a8690f8daa9b71ff"}, + {file = "mypy-0.950-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:0384d9f3af49837baa92f559d3fa673e6d2652a16550a9ee07fc08c736f5e6f8"}, + {file = "mypy-0.950-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:1fdeb0a0f64f2a874a4c1f5271f06e40e1e9779bf55f9567f149466fc7a55038"}, + {file = "mypy-0.950-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:61504b9a5ae166ba5ecfed9e93357fd51aa693d3d434b582a925338a2ff57fd2"}, + {file = "mypy-0.950-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:a952b8bc0ae278fc6316e6384f67bb9a396eb30aced6ad034d3a76120ebcc519"}, + {file = "mypy-0.950-cp39-cp39-win_amd64.whl", hash = "sha256:eaea21d150fb26d7b4856766e7addcf929119dd19fc832b22e71d942835201ef"}, + {file = "mypy-0.950-py3-none-any.whl", hash = "sha256:a4d9898f46446bfb6405383b57b96737dcfd0a7f25b748e78ef3e8c576bba3cb"}, + {file = "mypy-0.950.tar.gz", hash = "sha256:1b333cfbca1762ff15808a0ef4f71b5d3eed8528b23ea1c3fb50543c867d68de"}, ] mypy-extensions = [ {file = "mypy_extensions-0.4.3-py2.py3-none-any.whl", hash = "sha256:090fedd75945a69ae91ce1303b5824f428daf5a028d2f6ab8a299250a846f15d"}, {file = "mypy_extensions-0.4.3.tar.gz", hash = "sha256:2d82818f5bb3e369420cb3c4060a7970edba416647068eb4c5343488a6c604a8"}, ] nbclient = [ - {file = "nbclient-0.5.1-py3-none-any.whl", hash = "sha256:4d6b116187c795c99b9dba13d46e764d596574b14c296d60670c8dfe454db364"}, - {file = "nbclient-0.5.1.tar.gz", hash = "sha256:01e2d726d16eaf2cde6db74a87e2451453547e8832d142f73f72fddcd4fe0250"}, + {file = "nbclient-0.5.9-py3-none-any.whl", hash = "sha256:8a307be4129cce5f70eb83a57c3edbe45656623c31de54e38bb6fdfbadc428b3"}, + {file = "nbclient-0.5.9.tar.gz", hash = "sha256:99e46ddafacd0b861293bf246fed8540a184adfa3aa7d641f89031ec070701e0"}, ] nbconvert = [ {file = "nbconvert-6.0.7-py3-none-any.whl", hash = "sha256:39e9f977920b203baea0be67eea59f7b37a761caa542abe80f5897ce3cf6311d"}, @@ -1252,23 +1465,28 @@ nbformat = [ {file = "nbformat-5.1.3.tar.gz", hash = "sha256:b516788ad70771c6250977c1374fcca6edebe6126fd2adb5a69aa5c2356fd1c8"}, ] nest-asyncio = [ - {file = "nest_asyncio-1.5.1-py3-none-any.whl", hash = "sha256:76d6e972265063fe92a90b9cc4fb82616e07d586b346ed9d2c89a4187acea39c"}, - {file = "nest_asyncio-1.5.1.tar.gz", hash = "sha256:afc5a1c515210a23c461932765691ad39e8eba6551c055ac8d5546e69250d0aa"}, + {file = "nest_asyncio-1.5.5-py3-none-any.whl", hash = "sha256:b98e3ec1b246135e4642eceffa5a6c23a3ab12c82ff816a92c612d68205813b2"}, + {file = "nest_asyncio-1.5.5.tar.gz", hash = "sha256:e442291cd942698be619823a17a86a5759eabe1f8613084790de189fe9e16d65"}, +] +nodeenv = [ + {file = "nodeenv-1.6.0-py2.py3-none-any.whl", hash = "sha256:621e6b7076565ddcacd2db0294c0381e01fd28945ab36bcf00f41c5daf63bef7"}, + {file = "nodeenv-1.6.0.tar.gz", hash = "sha256:3ef13ff90291ba2a4a7a4ff9a979b63ffdd00a464dbe04acf0ea6471517a4c2b"}, ] notebook = [ - {file = "notebook-6.4.1-py3-none-any.whl", hash = "sha256:5d999285fd449898c4dfa0b7880dd881f317c653eb221e8d51d0b5400751ce35"}, - {file = "notebook-6.4.1.tar.gz", hash = "sha256:2a67037730e2b2991f5d684ecb07255bbb191f49234888e71e1fabf8e50679a6"}, + {file = "notebook-6.4.10-py3-none-any.whl", hash = "sha256:49cead814bff0945fcb2ee07579259418672ac175d3dc3d8102a4b0a656ed4df"}, + {file = "notebook-6.4.10.tar.gz", hash = "sha256:2408a76bc6289283a8eecfca67e298ec83c67db51a4c2e1b713dd180bb39e90e"}, ] packaging = [ - {file = "packaging-21.0-py3-none-any.whl", hash = "sha256:c86254f9220d55e31cc94d69bade760f0847da8000def4dfe1c6b872fd14ff14"}, - {file = "packaging-21.0.tar.gz", hash = "sha256:7dc96269f53a4ccec5c0670940a4281106dd0bb343f47b7471f779df49c2fbe7"}, + {file = "packaging-21.3-py3-none-any.whl", hash = "sha256:ef103e05f519cdc783ae24ea4e2e0f508a9c99b2d4969652eed6a2e1ea5bd522"}, + {file = "packaging-21.3.tar.gz", hash = "sha256:dd47c42927d89ab911e606518907cc2d3a1f38bbd026385970643f9c5b8ecfeb"}, ] pandocfilters = [ - {file = "pandocfilters-1.4.3.tar.gz", hash = "sha256:bc63fbb50534b4b1f8ebe1860889289e8af94a23bff7445259592df25a3906eb"}, + {file = "pandocfilters-1.5.0-py2.py3-none-any.whl", hash = "sha256:33aae3f25fd1a026079f5d27bdd52496f0e0803b3469282162bafdcbdf6ef14f"}, + {file = "pandocfilters-1.5.0.tar.gz", hash = "sha256:0b679503337d233b4339a817bfc8c50064e2eff681314376a47cb582305a7a38"}, ] parso = [ - {file = "parso-0.8.2-py2.py3-none-any.whl", hash = "sha256:a8c4922db71e4fdb90e0d0bc6e50f9b273d3397925e5e60a717e719201778d22"}, - {file = "parso-0.8.2.tar.gz", hash = "sha256:12b83492c6239ce32ff5eed6d3639d6a536170723c6f3f1506869f1ace413398"}, + {file = "parso-0.7.1-py2.py3-none-any.whl", hash = "sha256:97218d9159b2520ff45eb78028ba8b50d2bc61dcc062a9682666f2dc4bd331ea"}, + {file = "parso-0.7.1.tar.gz", hash = "sha256:caba44724b994a8a5e086460bb212abc5a8bc46951bf4a9a1210745953622eb9"}, ] pathspec = [ {file = "pathspec-0.9.0-py2.py3-none-any.whl", hash = "sha256:7d15c4ddb0b5c802d161efc417ec1a2558ea2653c2e8ad9c19098201dc1c993a"}, @@ -1282,37 +1500,45 @@ pickleshare = [ {file = "pickleshare-0.7.5-py2.py3-none-any.whl", hash = "sha256:9649af414d74d4df115d5d718f82acb59c9d418196b7b4290ed47a12ce62df56"}, {file = "pickleshare-0.7.5.tar.gz", hash = "sha256:87683d47965c1da65cdacaf31c8441d12b8044cdec9aca500cd78fc2c683afca"}, ] +platformdirs = [ + {file = "platformdirs-2.4.0-py3-none-any.whl", hash = "sha256:8868bbe3c3c80d42f20156f22e7131d2fb321f5bc86a2a345375c6481a67021d"}, + {file = "platformdirs-2.4.0.tar.gz", hash = "sha256:367a5e80b3d04d2428ffa76d33f124cf11e8fff2acdaa9b43d545f5c7d661ef2"}, +] pluggy = [ - {file = "pluggy-0.13.1-py2.py3-none-any.whl", hash = "sha256:966c145cd83c96502c3c3868f50408687b38434af77734af1e9ca461a4081d2d"}, - {file = "pluggy-0.13.1.tar.gz", hash = "sha256:15b2acde666561e1298d71b523007ed7364de07029219b604cf808bfa1c765b0"}, + {file = "pluggy-1.0.0-py2.py3-none-any.whl", hash = "sha256:74134bbf457f031a36d68416e1509f34bd5ccc019f0bcc952c7b909d06b37bd3"}, + {file = "pluggy-1.0.0.tar.gz", hash = "sha256:4224373bacce55f955a878bf9cfa763c1e360858e330072059e10bad68531159"}, +] +pre-commit = [ + {file = "pre_commit-2.17.0-py2.py3-none-any.whl", hash = "sha256:725fa7459782d7bec5ead072810e47351de01709be838c2ce1726b9591dad616"}, + {file = "pre_commit-2.17.0.tar.gz", hash = "sha256:c1a8040ff15ad3d648c70cc3e55b93e4d2d5b687320955505587fd79bbaed06a"}, ] prometheus-client = [ - {file = "prometheus_client-0.11.0-py2.py3-none-any.whl", hash = "sha256:b014bc76815eb1399da8ce5fc84b7717a3e63652b0c0f8804092c9363acab1b2"}, - {file = "prometheus_client-0.11.0.tar.gz", hash = "sha256:3a8baade6cb80bcfe43297e33e7623f3118d660d41387593758e2fb1ea173a86"}, + {file = "prometheus_client-0.14.1-py3-none-any.whl", hash = "sha256:522fded625282822a89e2773452f42df14b5a8e84a86433e3f8a189c1d54dc01"}, + {file = "prometheus_client-0.14.1.tar.gz", hash = "sha256:5459c427624961076277fdc6dc50540e2bacb98eebde99886e59ec55ed92093a"}, ] prompt-toolkit = [ - {file = "prompt_toolkit-3.0.3-py3-none-any.whl", hash = "sha256:c93e53af97f630f12f5f62a3274e79527936ed466f038953dfa379d4941f651a"}, - {file = "prompt_toolkit-3.0.3.tar.gz", hash = "sha256:a402e9bf468b63314e37460b68ba68243d55b2f8c4d0192f85a019af3945050e"}, + {file = "prompt_toolkit-3.0.29-py3-none-any.whl", hash = "sha256:62291dad495e665fca0bda814e342c69952086afb0f4094d0893d357e5c78752"}, + {file = "prompt_toolkit-3.0.29.tar.gz", hash = "sha256:bd640f60e8cecd74f0dc249713d433ace2ddc62b65ee07f96d358e0b152b6ea7"}, ] ptyprocess = [ {file = "ptyprocess-0.7.0-py2.py3-none-any.whl", hash = "sha256:4b41f3967fce3af57cc7e94b888626c18bf37a083e3651ca8feeb66d492fef35"}, {file = "ptyprocess-0.7.0.tar.gz", hash = "sha256:5c5d0a3b48ceee0b48485e0c26037c0acd7d29765ca3fbb5cb3831d347423220"}, ] py = [ - {file = "py-1.10.0-py2.py3-none-any.whl", hash = "sha256:3b80836aa6d1feeaa108e046da6423ab8f6ceda6468545ae8d02d9d58d18818a"}, - {file = "py-1.10.0.tar.gz", hash = "sha256:21b81bda15b66ef5e1a777a21c4dcd9c20ad3efd0b3f817e7a809035269e1bd3"}, + {file = "py-1.11.0-py2.py3-none-any.whl", hash = "sha256:607c53218732647dff4acdfcd50cb62615cedf612e72d1724fb1a0cc6405b378"}, + {file = "py-1.11.0.tar.gz", hash = "sha256:51c75c4126074b472f746a24399ad32f6053d1b34b68d2fa41e558e6f4a98719"}, ] pycparser = [ - {file = "pycparser-2.20-py2.py3-none-any.whl", hash = "sha256:7582ad22678f0fcd81102833f60ef8d0e57288b6b5fb00323d101be910e35705"}, - {file = "pycparser-2.20.tar.gz", hash = "sha256:2d475327684562c3a96cc71adf7dc8c4f0565175cf86b6d7a404ff4c771f15f0"}, + {file = "pycparser-2.21-py2.py3-none-any.whl", hash = "sha256:8ee45429555515e1f6b185e78100aea234072576aa43ab53aefcae078162fca9"}, + {file = "pycparser-2.21.tar.gz", hash = "sha256:e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206"}, ] pygments = [ - {file = "Pygments-2.10.0-py3-none-any.whl", hash = "sha256:b8e67fe6af78f492b3c4b3e2970c0624cbf08beb1e493b2c99b9fa1b67a20380"}, - {file = "Pygments-2.10.0.tar.gz", hash = "sha256:f398865f7eb6874156579fdf36bc840a03cab64d1cde9e93d68f46a425ec52c6"}, + {file = "Pygments-2.12.0-py3-none-any.whl", hash = "sha256:dc9c10fb40944260f6ed4c688ece0cd2048414940f1cea51b8b226318411c519"}, + {file = "Pygments-2.12.0.tar.gz", hash = "sha256:5eb116118f9612ff1ee89ac96437bb6b49e8f04d8a13b514ba26f620208e26eb"}, ] pyparsing = [ - {file = "pyparsing-2.4.7-py2.py3-none-any.whl", hash = "sha256:ef9d7589ef3c200abe66653d3f1ab1033c3c419ae9b9bdb1240a85b024efc88b"}, - {file = "pyparsing-2.4.7.tar.gz", hash = "sha256:c203ec8783bf771a155b207279b9bccb8dea02d8f0c9e5f8ead507bc3246ecc1"}, + {file = "pyparsing-3.0.7-py3-none-any.whl", hash = "sha256:a6c06a88f252e6c322f65faf8f418b16213b51bdfaece0524c1c1bc30c63c484"}, + {file = "pyparsing-3.0.7.tar.gz", hash = "sha256:18ee9022775d270c55187733956460083db60b37d0d0fb357445f3094eed3eea"}, ] pyrsistent = [ {file = "pyrsistent-0.18.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:f4c8cabb46ff8e5d61f56a037974228e978f26bfefce4f61a4b1ac0ba7a2ab72"}, @@ -1338,130 +1564,148 @@ pyrsistent = [ {file = "pyrsistent-0.18.0.tar.gz", hash = "sha256:773c781216f8c2900b42a7b638d5b517bb134ae1acbebe4d1e8f1f41ea60eb4b"}, ] pytest = [ - {file = "pytest-6.2.5-py3-none-any.whl", hash = "sha256:7310f8d27bc79ced999e760ca304d69f6ba6c6649c0b60fb0e04a4a77cacc134"}, - {file = "pytest-6.2.5.tar.gz", hash = "sha256:131b36680866a76e6781d13f101efb86cf674ebb9762eb70d3082b6f29889e89"}, + {file = "pytest-7.0.1-py3-none-any.whl", hash = "sha256:9ce3ff477af913ecf6321fe337b93a2c0dcf2a0a1439c43f5452112c1e4280db"}, + {file = "pytest-7.0.1.tar.gz", hash = "sha256:e30905a0c131d3d94b89624a1cc5afec3e0ba2fbdb151867d8e0ebd49850f171"}, ] pytest-cov = [ - {file = "pytest-cov-2.12.1.tar.gz", hash = "sha256:261ceeb8c227b726249b376b8526b600f38667ee314f910353fa318caa01f4d7"}, - {file = "pytest_cov-2.12.1-py2.py3-none-any.whl", hash = "sha256:261bb9e47e65bd099c89c3edf92972865210c36813f80ede5277dceb77a4a62a"}, + {file = "pytest-cov-3.0.0.tar.gz", hash = "sha256:e7f0f5b1617d2210a2cabc266dfe2f4c75a8d32fb89eafb7ad9d06f6d076d470"}, + {file = "pytest_cov-3.0.0-py3-none-any.whl", hash = "sha256:578d5d15ac4a25e5f961c938b85a05b09fdaae9deef3bb6de9a6e766622ca7a6"}, ] python-dateutil = [ {file = "python-dateutil-2.8.2.tar.gz", hash = "sha256:0123cacc1627ae19ddf3c27a5de5bd67ee4586fbdd6440d9748f8abb483d3e86"}, {file = "python_dateutil-2.8.2-py2.py3-none-any.whl", hash = "sha256:961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9"}, ] pywin32 = [ - {file = "pywin32-301-cp35-cp35m-win32.whl", hash = "sha256:93367c96e3a76dfe5003d8291ae16454ca7d84bb24d721e0b74a07610b7be4a7"}, - {file = "pywin32-301-cp35-cp35m-win_amd64.whl", hash = "sha256:9635df6998a70282bd36e7ac2a5cef9ead1627b0a63b17c731312c7a0daebb72"}, - {file = "pywin32-301-cp36-cp36m-win32.whl", hash = "sha256:c866f04a182a8cb9b7855de065113bbd2e40524f570db73ef1ee99ff0a5cc2f0"}, - {file = "pywin32-301-cp36-cp36m-win_amd64.whl", hash = "sha256:dafa18e95bf2a92f298fe9c582b0e205aca45c55f989937c52c454ce65b93c78"}, - {file = "pywin32-301-cp37-cp37m-win32.whl", hash = "sha256:98f62a3f60aa64894a290fb7494bfa0bfa0a199e9e052e1ac293b2ad3cd2818b"}, - {file = "pywin32-301-cp37-cp37m-win_amd64.whl", hash = "sha256:fb3b4933e0382ba49305cc6cd3fb18525df7fd96aa434de19ce0878133bf8e4a"}, - {file = "pywin32-301-cp38-cp38-win32.whl", hash = "sha256:88981dd3cfb07432625b180f49bf4e179fb8cbb5704cd512e38dd63636af7a17"}, - {file = "pywin32-301-cp38-cp38-win_amd64.whl", hash = "sha256:8c9d33968aa7fcddf44e47750e18f3d034c3e443a707688a008a2e52bbef7e96"}, - {file = "pywin32-301-cp39-cp39-win32.whl", hash = "sha256:595d397df65f1b2e0beaca63a883ae6d8b6df1cdea85c16ae85f6d2e648133fe"}, - {file = "pywin32-301-cp39-cp39-win_amd64.whl", hash = "sha256:87604a4087434cd814ad8973bd47d6524bd1fa9e971ce428e76b62a5e0860fdf"}, + {file = "pywin32-304-cp310-cp310-win32.whl", hash = "sha256:3c7bacf5e24298c86314f03fa20e16558a4e4138fc34615d7de4070c23e65af3"}, + {file = "pywin32-304-cp310-cp310-win_amd64.whl", hash = "sha256:4f32145913a2447736dad62495199a8e280a77a0ca662daa2332acf849f0be48"}, + {file = "pywin32-304-cp310-cp310-win_arm64.whl", hash = "sha256:d3ee45adff48e0551d1aa60d2ec066fec006083b791f5c3527c40cd8aefac71f"}, + {file = "pywin32-304-cp311-cp311-win32.whl", hash = "sha256:30c53d6ce44c12a316a06c153ea74152d3b1342610f1b99d40ba2795e5af0269"}, + {file = "pywin32-304-cp311-cp311-win_amd64.whl", hash = "sha256:7ffa0c0fa4ae4077e8b8aa73800540ef8c24530057768c3ac57c609f99a14fd4"}, + {file = "pywin32-304-cp311-cp311-win_arm64.whl", hash = "sha256:cbbe34dad39bdbaa2889a424d28752f1b4971939b14b1bb48cbf0182a3bcfc43"}, + {file = "pywin32-304-cp36-cp36m-win32.whl", hash = "sha256:be253e7b14bc601718f014d2832e4c18a5b023cbe72db826da63df76b77507a1"}, + {file = "pywin32-304-cp36-cp36m-win_amd64.whl", hash = "sha256:de9827c23321dcf43d2f288f09f3b6d772fee11e809015bdae9e69fe13213988"}, + {file = "pywin32-304-cp37-cp37m-win32.whl", hash = "sha256:f64c0377cf01b61bd5e76c25e1480ca8ab3b73f0c4add50538d332afdf8f69c5"}, + {file = "pywin32-304-cp37-cp37m-win_amd64.whl", hash = "sha256:bb2ea2aa81e96eee6a6b79d87e1d1648d3f8b87f9a64499e0b92b30d141e76df"}, + {file = "pywin32-304-cp38-cp38-win32.whl", hash = "sha256:94037b5259701988954931333aafd39cf897e990852115656b014ce72e052e96"}, + {file = "pywin32-304-cp38-cp38-win_amd64.whl", hash = "sha256:ead865a2e179b30fb717831f73cf4373401fc62fbc3455a0889a7ddac848f83e"}, + {file = "pywin32-304-cp39-cp39-win32.whl", hash = "sha256:25746d841201fd9f96b648a248f731c1dec851c9a08b8e33da8b56148e4c65cc"}, + {file = "pywin32-304-cp39-cp39-win_amd64.whl", hash = "sha256:d24a3382f013b21aa24a5cfbfad5a2cd9926610c0affde3e8ab5b3d7dbcf4ac9"}, ] pywinpty = [ - {file = "pywinpty-1.1.3-cp36-none-win_amd64.whl", hash = "sha256:81dc6f16d917b756e06fc58943e9750d59dbefc0ffd2086871d3fa5f33824446"}, - {file = "pywinpty-1.1.3-cp37-none-win_amd64.whl", hash = "sha256:54557887e712ea3215ab0d9f089ed55a6cc8d826cd5d1e340d75300654c9663f"}, - {file = "pywinpty-1.1.3-cp38-none-win_amd64.whl", hash = "sha256:f5e25197397f1fef0362caf3eb89f25441827a1e48bf15827c27021592fd2160"}, - {file = "pywinpty-1.1.3-cp39-none-win_amd64.whl", hash = "sha256:b767276224f86b7560eb9173ba7956758cafcdfab97bb33837d42d2a0f1dbf67"}, - {file = "pywinpty-1.1.3.tar.gz", hash = "sha256:3a1d57b338390333812a5eed31c93c7d8ba82b131078063703e731946d90c9f2"}, + {file = "pywinpty-2.0.3-cp310-none-win_amd64.whl", hash = "sha256:7a330ef7a2ce284370b1a1fdd2a80c523585464fa5e5ab934c9f27220fa7feab"}, + {file = "pywinpty-2.0.3-cp37-none-win_amd64.whl", hash = "sha256:6455f1075f978942d318f95616661c605d5e0f991c5b176c0c852d237aafefc0"}, + {file = "pywinpty-2.0.3-cp38-none-win_amd64.whl", hash = "sha256:2e7a288a8121393c526d4e6ec7d65edef75d68c7787ab9560e438df867b75a5d"}, + {file = "pywinpty-2.0.3-cp39-none-win_amd64.whl", hash = "sha256:def51627e6aa659f33ea7a0ea4c6b68365c83af4aad7940600f844746817a0ed"}, + {file = "pywinpty-2.0.3.tar.gz", hash = "sha256:6b29a826e896105370c38d53904c3aaac6c36146a50448fc0ed5082cf9d092bc"}, +] +pyyaml = [ + {file = "PyYAML-6.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d4db7c7aef085872ef65a8fd7d6d09a14ae91f691dec3e87ee5ee0539d516f53"}, + {file = "PyYAML-6.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9df7ed3b3d2e0ecfe09e14741b857df43adb5a3ddadc919a2d94fbdf78fea53c"}, + {file = "PyYAML-6.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:77f396e6ef4c73fdc33a9157446466f1cff553d979bd00ecb64385760c6babdc"}, + {file = "PyYAML-6.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a80a78046a72361de73f8f395f1f1e49f956c6be882eed58505a15f3e430962b"}, + {file = "PyYAML-6.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:f84fbc98b019fef2ee9a1cb3ce93e3187a6df0b2538a651bfb890254ba9f90b5"}, + {file = "PyYAML-6.0-cp310-cp310-win32.whl", hash = "sha256:2cd5df3de48857ed0544b34e2d40e9fac445930039f3cfe4bcc592a1f836d513"}, + {file = "PyYAML-6.0-cp310-cp310-win_amd64.whl", hash = "sha256:daf496c58a8c52083df09b80c860005194014c3698698d1a57cbcfa182142a3a"}, + {file = "PyYAML-6.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:897b80890765f037df3403d22bab41627ca8811ae55e9a722fd0392850ec4d86"}, + {file = "PyYAML-6.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:50602afada6d6cbfad699b0c7bb50d5ccffa7e46a3d738092afddc1f9758427f"}, + {file = "PyYAML-6.0-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:48c346915c114f5fdb3ead70312bd042a953a8ce5c7106d5bfb1a5254e47da92"}, + {file = "PyYAML-6.0-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:98c4d36e99714e55cfbaaee6dd5badbc9a1ec339ebfc3b1f52e293aee6bb71a4"}, + {file = "PyYAML-6.0-cp36-cp36m-win32.whl", hash = "sha256:0283c35a6a9fbf047493e3a0ce8d79ef5030852c51e9d911a27badfde0605293"}, + {file = "PyYAML-6.0-cp36-cp36m-win_amd64.whl", hash = "sha256:07751360502caac1c067a8132d150cf3d61339af5691fe9e87803040dbc5db57"}, + {file = "PyYAML-6.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:819b3830a1543db06c4d4b865e70ded25be52a2e0631ccd2f6a47a2822f2fd7c"}, + {file = "PyYAML-6.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:473f9edb243cb1935ab5a084eb238d842fb8f404ed2193a915d1784b5a6b5fc0"}, + {file = "PyYAML-6.0-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0ce82d761c532fe4ec3f87fc45688bdd3a4c1dc5e0b4a19814b9009a29baefd4"}, + {file = "PyYAML-6.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:231710d57adfd809ef5d34183b8ed1eeae3f76459c18fb4a0b373ad56bedcdd9"}, + {file = "PyYAML-6.0-cp37-cp37m-win32.whl", hash = "sha256:c5687b8d43cf58545ade1fe3e055f70eac7a5a1a0bf42824308d868289a95737"}, + {file = "PyYAML-6.0-cp37-cp37m-win_amd64.whl", hash = "sha256:d15a181d1ecd0d4270dc32edb46f7cb7733c7c508857278d3d378d14d606db2d"}, + {file = "PyYAML-6.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:0b4624f379dab24d3725ffde76559cff63d9ec94e1736b556dacdfebe5ab6d4b"}, + {file = "PyYAML-6.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:213c60cd50106436cc818accf5baa1aba61c0189ff610f64f4a3e8c6726218ba"}, + {file = "PyYAML-6.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9fa600030013c4de8165339db93d182b9431076eb98eb40ee068700c9c813e34"}, + {file = "PyYAML-6.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:277a0ef2981ca40581a47093e9e2d13b3f1fbbeffae064c1d21bfceba2030287"}, + {file = "PyYAML-6.0-cp38-cp38-win32.whl", hash = "sha256:d4eccecf9adf6fbcc6861a38015c2a64f38b9d94838ac1810a9023a0609e1b78"}, + {file = "PyYAML-6.0-cp38-cp38-win_amd64.whl", hash = "sha256:1e4747bc279b4f613a09eb64bba2ba602d8a6664c6ce6396a4d0cd413a50ce07"}, + {file = "PyYAML-6.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:055d937d65826939cb044fc8c9b08889e8c743fdc6a32b33e2390f66013e449b"}, + {file = "PyYAML-6.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:e61ceaab6f49fb8bdfaa0f92c4b57bcfbea54c09277b1b4f7ac376bfb7a7c174"}, + {file = "PyYAML-6.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d67d839ede4ed1b28a4e8909735fc992a923cdb84e618544973d7dfc71540803"}, + {file = "PyYAML-6.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cba8c411ef271aa037d7357a2bc8f9ee8b58b9965831d9e51baf703280dc73d3"}, + {file = "PyYAML-6.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:40527857252b61eacd1d9af500c3337ba8deb8fc298940291486c465c8b46ec0"}, + {file = "PyYAML-6.0-cp39-cp39-win32.whl", hash = "sha256:b5b9eccad747aabaaffbc6064800670f0c297e52c12754eb1d976c57e4f74dcb"}, + {file = "PyYAML-6.0-cp39-cp39-win_amd64.whl", hash = "sha256:b3d267842bf12586ba6c734f89d1f5b871df0273157918b0ccefa29deb05c21c"}, + {file = "PyYAML-6.0.tar.gz", hash = "sha256:68fb519c14306fec9720a2a5b45bc9f0c8d1b9c72adf45c37baedfcd949c35a2"}, ] pyzmq = [ - {file = "pyzmq-22.2.1-cp310-cp310-macosx_10_15_universal2.whl", hash = "sha256:d60a407663b7c2af781ab7f49d94a3d379dd148bb69ea8d9dd5bc69adf18097c"}, - {file = "pyzmq-22.2.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:631f932fb1fa4b76f31adf976f8056519bc6208a3c24c184581c3dd5be15066e"}, - {file = "pyzmq-22.2.1-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:0471d634c7fe48ff7d3849798da6c16afc71676dd890b5ae08eb1efe735c6fec"}, - {file = "pyzmq-22.2.1-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:f520e9fee5d7a2e09b051d924f85b977c6b4e224e56c0551c3c241bbeeb0ad8d"}, - {file = "pyzmq-22.2.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c1b6619ceb33a8907f1cb82ff8afc8a133e7a5f16df29528e919734718600426"}, - {file = "pyzmq-22.2.1-cp310-cp310-win32.whl", hash = "sha256:31c5dfb6df5148789835128768c01bf6402eb753d06f524f12f6786caf96fb44"}, - {file = "pyzmq-22.2.1-cp310-cp310-win_amd64.whl", hash = "sha256:4842a8263cbaba6fce401bbe4e2b125321c401a01714e42624dabc554bfc2629"}, - {file = "pyzmq-22.2.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:b921758f8b5098faa85f341bbdd5e36d5339de5e9032ca2b07d8c8e7bec5069b"}, - {file = "pyzmq-22.2.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:240b83b3a8175b2f616f80092cbb019fcd5c18598f78ffc6aa0ae9034b300f14"}, - {file = "pyzmq-22.2.1-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:da7f7f3bb08bcf59a6b60b4e53dd8f08bb00c9e61045319d825a906dbb3c8fb7"}, - {file = "pyzmq-22.2.1-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:e66025b64c4724ba683d6d4a4e5ee23de12fe9ae683908f0c7f0f91b4a2fd94e"}, - {file = "pyzmq-22.2.1-cp36-cp36m-win32.whl", hash = "sha256:50d007d5702171bc810c1e74498fa2c7bc5b50f9750697f7fd2a3e71a25aad91"}, - {file = "pyzmq-22.2.1-cp36-cp36m-win_amd64.whl", hash = "sha256:b4a51c7d906dc263a0cc5590761e53e0a68f2c2fefe549cbef21c9ee5d2d98a4"}, - {file = "pyzmq-22.2.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:93705cb90baa9d6f75e8448861a1efd3329006f79095ab18846bd1eaa342f7c3"}, - {file = "pyzmq-22.2.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:620b0abb813958cb3ecb5144c177e26cde92fee6f43c4b9de6b329515532bf27"}, - {file = "pyzmq-22.2.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2dd3896b3c952cf6c8013deda53c1df16bf962f355b5503d23521e0f6403ae3d"}, - {file = "pyzmq-22.2.1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:6e9c030222893afa86881d7485d3e841969760a16004bd23e9a83cca28b42778"}, - {file = "pyzmq-22.2.1-cp37-cp37m-win32.whl", hash = "sha256:262f470e7acde18b7217aac78d19d2e29ced91a5afbeb7d98521ebf26461aa7e"}, - {file = "pyzmq-22.2.1-cp37-cp37m-win_amd64.whl", hash = "sha256:246f27b88722cfa729bb04881e94484e40b085720d728c1b05133b3f331b0b7b"}, - {file = "pyzmq-22.2.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:0d17bac19e934e9f547a8811b7c2a32651a7840f38086b924e2e3dcb2fae5c3a"}, - {file = "pyzmq-22.2.1-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:5933d1f4087de6e52906f72d92e1e4dcc630d371860b92c55d7f7a4b815a664c"}, - {file = "pyzmq-22.2.1-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:ac4497e4b7d134ee53ce5532d9cc3b640d6e71806a55062984e0c99a2f88f465"}, - {file = "pyzmq-22.2.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:66375a6094af72a6098ed4403b15b4db6bf00013c6febc1baa832e7abda827f4"}, - {file = "pyzmq-22.2.1-cp38-cp38-win32.whl", hash = "sha256:b2c16d20bd0aef8e57bc9505fdd80ea0d6008020c3740accd96acf1b3d1b5347"}, - {file = "pyzmq-22.2.1-cp38-cp38-win_amd64.whl", hash = "sha256:ff345d48940c834168f81fa1d4724675099f148f1ab6369748c4d712ed71bf7c"}, - {file = "pyzmq-22.2.1-cp39-cp39-macosx_10_15_universal2.whl", hash = "sha256:f5c84c5de9a773bbf8b22c51e28380999ea72e5e85b4db8edf5e69a7a0d4d9f9"}, - {file = "pyzmq-22.2.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:2534a036b777f957bd6b89b55fb2136775ca2659fb0f1c85036ba78d17d86fd5"}, - {file = "pyzmq-22.2.1-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:a649065413ba4eab92a783a7caa4de8ce14cf46ba8a2a09951426143f1298adb"}, - {file = "pyzmq-22.2.1-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:c9cb0bd3a3cb7ccad3caa1d7b0d18ba71ed3a4a3610028e506a4084371d4d223"}, - {file = "pyzmq-22.2.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b4428302c389fffc0c9c07a78cad5376636b9d096f332acfe66b321ae9ff2c63"}, - {file = "pyzmq-22.2.1-cp39-cp39-win32.whl", hash = "sha256:6a5b4566f66d953601d0d47d4071897f550a265bafd52ebcad5ac7aad3838cbb"}, - {file = "pyzmq-22.2.1-cp39-cp39-win_amd64.whl", hash = "sha256:89200ab6ef9081c72a04ed84c52a50b60dcb0655375aeedb40689bc7c934715e"}, - {file = "pyzmq-22.2.1-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:ed67df4eaa99a20d162d76655bda23160abdf8abf82a17f41dfd3962e608dbcc"}, - {file = "pyzmq-22.2.1-pp37-pypy37_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:021e22a8c58ab294bd4b96448a2ca4e716e1d76600192ff84c33d71edb1fbd37"}, - {file = "pyzmq-22.2.1-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:200ac096cee5499964c90687306a7244b79ef891f773ed4cf15019fd1f3df330"}, - {file = "pyzmq-22.2.1-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:b3f57bee62e36be5c97712de32237c5589caee0d1154c2ad01a888accfae20bc"}, - {file = "pyzmq-22.2.1.tar.gz", hash = "sha256:6d18c76676771fd891ca8e0e68da0bbfb88e30129835c0ade748016adb3b6242"}, -] -regex = [ - {file = "regex-2021.8.3-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:8764a78c5464ac6bde91a8c87dd718c27c1cabb7ed2b4beaf36d3e8e390567f9"}, - {file = "regex-2021.8.3-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4551728b767f35f86b8e5ec19a363df87450c7376d7419c3cac5b9ceb4bce576"}, - {file = "regex-2021.8.3-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:577737ec3d4c195c4aef01b757905779a9e9aee608fa1cf0aec16b5576c893d3"}, - {file = "regex-2021.8.3-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:c856ec9b42e5af4fe2d8e75970fcc3a2c15925cbcc6e7a9bcb44583b10b95e80"}, - {file = "regex-2021.8.3-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3835de96524a7b6869a6c710b26c90e94558c31006e96ca3cf6af6751b27dca1"}, - {file = "regex-2021.8.3-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:cea56288eeda8b7511d507bbe7790d89ae7049daa5f51ae31a35ae3c05408531"}, - {file = "regex-2021.8.3-cp36-cp36m-win32.whl", hash = "sha256:a4eddbe2a715b2dd3849afbdeacf1cc283160b24e09baf64fa5675f51940419d"}, - {file = "regex-2021.8.3-cp36-cp36m-win_amd64.whl", hash = "sha256:57fece29f7cc55d882fe282d9de52f2f522bb85290555b49394102f3621751ee"}, - {file = "regex-2021.8.3-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:a5c6dbe09aff091adfa8c7cfc1a0e83fdb8021ddb2c183512775a14f1435fe16"}, - {file = "regex-2021.8.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ff4a8ad9638b7ca52313d8732f37ecd5fd3c8e3aff10a8ccb93176fd5b3812f6"}, - {file = "regex-2021.8.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b63e3571b24a7959017573b6455e05b675050bbbea69408f35f3cb984ec54363"}, - {file = "regex-2021.8.3-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:fbc20975eee093efa2071de80df7f972b7b35e560b213aafabcec7c0bd00bd8c"}, - {file = "regex-2021.8.3-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:14caacd1853e40103f59571f169704367e79fb78fac3d6d09ac84d9197cadd16"}, - {file = "regex-2021.8.3-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:bb350eb1060591d8e89d6bac4713d41006cd4d479f5e11db334a48ff8999512f"}, - {file = "regex-2021.8.3-cp37-cp37m-win32.whl", hash = "sha256:18fdc51458abc0a974822333bd3a932d4e06ba2a3243e9a1da305668bd62ec6d"}, - {file = "regex-2021.8.3-cp37-cp37m-win_amd64.whl", hash = "sha256:026beb631097a4a3def7299aa5825e05e057de3c6d72b139c37813bfa351274b"}, - {file = "regex-2021.8.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:16d9eaa8c7e91537516c20da37db975f09ac2e7772a0694b245076c6d68f85da"}, - {file = "regex-2021.8.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3905c86cc4ab6d71635d6419a6f8d972cab7c634539bba6053c47354fd04452c"}, - {file = "regex-2021.8.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:937b20955806381e08e54bd9d71f83276d1f883264808521b70b33d98e4dec5d"}, - {file = "regex-2021.8.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:28e8af338240b6f39713a34e337c3813047896ace09d51593d6907c66c0708ba"}, - {file = "regex-2021.8.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3c09d88a07483231119f5017904db8f60ad67906efac3f1baa31b9b7f7cca281"}, - {file = "regex-2021.8.3-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:85f568892422a0e96235eb8ea6c5a41c8ccbf55576a2260c0160800dbd7c4f20"}, - {file = "regex-2021.8.3-cp38-cp38-win32.whl", hash = "sha256:bf6d987edd4a44dd2fa2723fca2790f9442ae4de2c8438e53fcb1befdf5d823a"}, - {file = "regex-2021.8.3-cp38-cp38-win_amd64.whl", hash = "sha256:8fe58d9f6e3d1abf690174fd75800fda9bdc23d2a287e77758dc0e8567e38ce6"}, - {file = "regex-2021.8.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:7976d410e42be9ae7458c1816a416218364e06e162b82e42f7060737e711d9ce"}, - {file = "regex-2021.8.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9569da9e78f0947b249370cb8fadf1015a193c359e7e442ac9ecc585d937f08d"}, - {file = "regex-2021.8.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:459bbe342c5b2dec5c5223e7c363f291558bc27982ef39ffd6569e8c082bdc83"}, - {file = "regex-2021.8.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:4f421e3cdd3a273bace013751c345f4ebeef08f05e8c10757533ada360b51a39"}, - {file = "regex-2021.8.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ea212df6e5d3f60341aef46401d32fcfded85593af1d82b8b4a7a68cd67fdd6b"}, - {file = "regex-2021.8.3-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:a3b73390511edd2db2d34ff09aa0b2c08be974c71b4c0505b4a048d5dc128c2b"}, - {file = "regex-2021.8.3-cp39-cp39-win32.whl", hash = "sha256:f35567470ee6dbfb946f069ed5f5615b40edcbb5f1e6e1d3d2b114468d505fc6"}, - {file = "regex-2021.8.3-cp39-cp39-win_amd64.whl", hash = "sha256:bfa6a679410b394600eafd16336b2ce8de43e9b13f7fb9247d84ef5ad2b45e91"}, - {file = "regex-2021.8.3.tar.gz", hash = "sha256:8935937dad2c9b369c3d932b0edbc52a62647c2afb2fafc0c280f14a8bf56a6a"}, + {file = "pyzmq-22.3.0-cp310-cp310-macosx_10_15_universal2.whl", hash = "sha256:6b217b8f9dfb6628f74b94bdaf9f7408708cb02167d644edca33f38746ca12dd"}, + {file = "pyzmq-22.3.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:2841997a0d85b998cbafecb4183caf51fd19c4357075dfd33eb7efea57e4c149"}, + {file = "pyzmq-22.3.0-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:f89468059ebc519a7acde1ee50b779019535db8dcf9b8c162ef669257fef7a93"}, + {file = "pyzmq-22.3.0-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:ea12133df25e3a6918718fbb9a510c6ee5d3fdd5a346320421aac3882f4feeea"}, + {file = "pyzmq-22.3.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:76c532fd68b93998aab92356be280deec5de8f8fe59cd28763d2cc8a58747b7f"}, + {file = "pyzmq-22.3.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:f907c7359ce8bf7f7e63c82f75ad0223384105f5126f313400b7e8004d9b33c3"}, + {file = "pyzmq-22.3.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:902319cfe23366595d3fa769b5b751e6ee6750a0a64c5d9f757d624b2ac3519e"}, + {file = "pyzmq-22.3.0-cp310-cp310-win32.whl", hash = "sha256:67db33bea0a29d03e6eeec55a8190e033318cee3cbc732ba8fd939617cbf762d"}, + {file = "pyzmq-22.3.0-cp310-cp310-win_amd64.whl", hash = "sha256:7661fc1d5cb73481cf710a1418a4e1e301ed7d5d924f91c67ba84b2a1b89defd"}, + {file = "pyzmq-22.3.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:79244b9e97948eaf38695f4b8e6fc63b14b78cc37f403c6642ba555517ac1268"}, + {file = "pyzmq-22.3.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ab888624ed68930442a3f3b0b921ad7439c51ba122dbc8c386e6487a658e4a4e"}, + {file = "pyzmq-22.3.0-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:18cd854b423fce44951c3a4d3e686bac8f1243d954f579e120a1714096637cc0"}, + {file = "pyzmq-22.3.0-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:de8df0684398bd74ad160afdc2a118ca28384ac6f5e234eb0508858d8d2d9364"}, + {file = "pyzmq-22.3.0-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:62bcade20813796c426409a3e7423862d50ff0639f5a2a95be4b85b09a618666"}, + {file = "pyzmq-22.3.0-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:ea5a79e808baef98c48c884effce05c31a0698c1057de8fc1c688891043c1ce1"}, + {file = "pyzmq-22.3.0-cp36-cp36m-win32.whl", hash = "sha256:3c1895c95be92600233e476fe283f042e71cf8f0b938aabf21b7aafa62a8dac9"}, + {file = "pyzmq-22.3.0-cp36-cp36m-win_amd64.whl", hash = "sha256:851977788b9caa8ed011f5f643d3ee8653af02c5fc723fa350db5125abf2be7b"}, + {file = "pyzmq-22.3.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:b4ebed0977f92320f6686c96e9e8dd29eed199eb8d066936bac991afc37cbb70"}, + {file = "pyzmq-22.3.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:42abddebe2c6a35180ca549fadc7228d23c1e1f76167c5ebc8a936b5804ea2df"}, + {file = "pyzmq-22.3.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:c1e41b32d6f7f9c26bc731a8b529ff592f31fc8b6ef2be9fa74abd05c8a342d7"}, + {file = "pyzmq-22.3.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:be4e0f229cf3a71f9ecd633566bd6f80d9fa6afaaff5489492be63fe459ef98c"}, + {file = "pyzmq-22.3.0-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:08c4e315a76ef26eb833511ebf3fa87d182152adf43dedee8d79f998a2162a0b"}, + {file = "pyzmq-22.3.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:badb868fff14cfd0e200eaa845887b1011146a7d26d579aaa7f966c203736b92"}, + {file = "pyzmq-22.3.0-cp37-cp37m-win32.whl", hash = "sha256:7c58f598d9fcc52772b89a92d72bf8829c12d09746a6d2c724c5b30076c1f11d"}, + {file = "pyzmq-22.3.0-cp37-cp37m-win_amd64.whl", hash = "sha256:2b97502c16a5ec611cd52410bdfaab264997c627a46b0f98d3f666227fd1ea2d"}, + {file = "pyzmq-22.3.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:d728b08448e5ac3e4d886b165385a262883c34b84a7fe1166277fe675e1c197a"}, + {file = "pyzmq-22.3.0-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:480b9931bfb08bf8b094edd4836271d4d6b44150da051547d8c7113bf947a8b0"}, + {file = "pyzmq-22.3.0-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:7dc09198e4073e6015d9a8ea093fc348d4e59de49382476940c3dd9ae156fba8"}, + {file = "pyzmq-22.3.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0ca6cd58f62a2751728016d40082008d3b3412a7f28ddfb4a2f0d3c130f69e74"}, + {file = "pyzmq-22.3.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:468bd59a588e276961a918a3060948ae68f6ff5a7fa10bb2f9160c18fe341067"}, + {file = "pyzmq-22.3.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:c88fa7410e9fc471e0858638f403739ee869924dd8e4ae26748496466e27ac59"}, + {file = "pyzmq-22.3.0-cp38-cp38-win32.whl", hash = "sha256:c0f84360dcca3481e8674393bdf931f9f10470988f87311b19d23cda869bb6b7"}, + {file = "pyzmq-22.3.0-cp38-cp38-win_amd64.whl", hash = "sha256:f762442bab706fd874064ca218b33a1d8e40d4938e96c24dafd9b12e28017f45"}, + {file = "pyzmq-22.3.0-cp39-cp39-macosx_10_15_universal2.whl", hash = "sha256:954e73c9cd4d6ae319f1c936ad159072b6d356a92dcbbabfd6e6204b9a79d356"}, + {file = "pyzmq-22.3.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:f43b4a2e6218371dd4f41e547bd919ceeb6ebf4abf31a7a0669cd11cd91ea973"}, + {file = "pyzmq-22.3.0-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:acebba1a23fb9d72b42471c3771b6f2f18dcd46df77482612054bd45c07dfa36"}, + {file = "pyzmq-22.3.0-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:cf98fd7a6c8aaa08dbc699ffae33fd71175696d78028281bc7b832b26f00ca57"}, + {file = "pyzmq-22.3.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d072f7dfbdb184f0786d63bda26e8a0882041b1e393fbe98940395f7fab4c5e2"}, + {file = "pyzmq-22.3.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:53f4fd13976789ffafedd4d46f954c7bb01146121812b72b4ddca286034df966"}, + {file = "pyzmq-22.3.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:d1b5d457acbadcf8b27561deeaa386b0217f47626b29672fa7bd31deb6e91e1b"}, + {file = "pyzmq-22.3.0-cp39-cp39-win32.whl", hash = "sha256:e6a02cf7271ee94674a44f4e62aa061d2d049001c844657740e156596298b70b"}, + {file = "pyzmq-22.3.0-cp39-cp39-win_amd64.whl", hash = "sha256:d3dcb5548ead4f1123851a5ced467791f6986d68c656bc63bfff1bf9e36671e2"}, + {file = "pyzmq-22.3.0-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:3a4c9886d61d386b2b493377d980f502186cd71d501fffdba52bd2a0880cef4f"}, + {file = "pyzmq-22.3.0-pp37-pypy37_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:80e043a89c6cadefd3a0712f8a1322038e819ebe9dbac7eca3bce1721bcb63bf"}, + {file = "pyzmq-22.3.0-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:1621e7a2af72cced1f6ec8ca8ca91d0f76ac236ab2e8828ac8fe909512d566cb"}, + {file = "pyzmq-22.3.0-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:d6157793719de168b199194f6b6173f0ccd3bf3499e6870fac17086072e39115"}, + {file = "pyzmq-22.3.0.tar.gz", hash = "sha256:8eddc033e716f8c91c6a2112f0a8ebc5e00532b4a6ae1eb0ccc48e027f9c671c"}, ] send2trash = [ - {file = "Send2Trash-1.7.1-py3-none-any.whl", hash = "sha256:c20fee8c09378231b3907df9c215ec9766a84ee20053d99fbad854fe8bd42159"}, - {file = "Send2Trash-1.7.1.tar.gz", hash = "sha256:17730aa0a33ab82ed6ca76be3bb25f0433d0014f1ccf63c979bab13a5b9db2b2"}, + {file = "Send2Trash-1.8.0-py3-none-any.whl", hash = "sha256:f20eaadfdb517eaca5ce077640cb261c7d2698385a6a0f072a4a5447fd49fa08"}, + {file = "Send2Trash-1.8.0.tar.gz", hash = "sha256:d2c24762fd3759860a0aff155e45871447ea58d2be6bdd39b5c8f966a0c99c2d"}, ] six = [ {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"}, {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"}, ] terminado = [ - {file = "terminado-0.10.1-py3-none-any.whl", hash = "sha256:c89ace5bffd0e7268bdcf22526830eb787fd146ff9d78691a0528386f92b9ae3"}, - {file = "terminado-0.10.1.tar.gz", hash = "sha256:89d5dac2f4e2b39758a0ff9a3b643707c95a020a6df36e70583b88297cd59cbe"}, + {file = "terminado-0.13.0-py3-none-any.whl", hash = "sha256:50a18654ad0cff153fdeb58711c9a7b25e0e2b74fb721dbaddd9e80d5612fac6"}, + {file = "terminado-0.13.0.tar.gz", hash = "sha256:713531ccb5db7d4f544651f14050da79809030f00d1afa21462088cf32fb143a"}, ] testpath = [ - {file = "testpath-0.5.0-py3-none-any.whl", hash = "sha256:8044f9a0bab6567fc644a3593164e872543bb44225b0e24846e2c89237937589"}, - {file = "testpath-0.5.0.tar.gz", hash = "sha256:1acf7a0bcd3004ae8357409fc33751e16d37ccc650921da1094a86581ad1e417"}, + {file = "testpath-0.6.0-py3-none-any.whl", hash = "sha256:8ada9f80a2ac6fb0391aa7cdb1a7d11cfa8429f693eda83f74dde570fe6fa639"}, + {file = "testpath-0.6.0.tar.gz", hash = "sha256:2f1b97e6442c02681ebe01bd84f531028a7caea1af3825000f52345c30285e0f"}, ] toml = [ {file = "toml-0.10.2-py2.py3-none-any.whl", hash = "sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b"}, {file = "toml-0.10.2.tar.gz", hash = "sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f"}, ] +tomli = [ + {file = "tomli-1.2.3-py3-none-any.whl", hash = "sha256:e3069e4be3ead9668e21cb9b074cd948f7b3113fd9c8bba083f48247aab8b11c"}, + {file = "tomli-1.2.3.tar.gz", hash = "sha256:05b6166bff487dc068d322585c7ea4ef78deed501cc124060e0f238e89a9231f"}, +] tornado = [ {file = "tornado-6.1-cp35-cp35m-macosx_10_9_x86_64.whl", hash = "sha256:d371e811d6b156d82aa5f9a4e08b58debf97c302a35714f6f45e35139c332e32"}, {file = "tornado-6.1-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:0d321a39c36e5f2c4ff12b4ed58d41390460f798422c4504e09eb5678e09998c"}, @@ -1510,45 +1754,42 @@ traitlets = [ {file = "traitlets-4.3.3.tar.gz", hash = "sha256:d023ee369ddd2763310e4c3eae1ff649689440d4ae59d7485eb4cfbbe3e359f7"}, ] typed-ast = [ - {file = "typed_ast-1.4.3-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:2068531575a125b87a41802130fa7e29f26c09a2833fea68d9a40cf33902eba6"}, - {file = "typed_ast-1.4.3-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:c907f561b1e83e93fad565bac5ba9c22d96a54e7ea0267c708bffe863cbe4075"}, - {file = "typed_ast-1.4.3-cp35-cp35m-manylinux2014_aarch64.whl", hash = "sha256:1b3ead4a96c9101bef08f9f7d1217c096f31667617b58de957f690c92378b528"}, - {file = "typed_ast-1.4.3-cp35-cp35m-win32.whl", hash = "sha256:dde816ca9dac1d9c01dd504ea5967821606f02e510438120091b84e852367428"}, - {file = "typed_ast-1.4.3-cp35-cp35m-win_amd64.whl", hash = "sha256:777a26c84bea6cd934422ac2e3b78863a37017618b6e5c08f92ef69853e765d3"}, - {file = "typed_ast-1.4.3-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:f8afcf15cc511ada719a88e013cec87c11aff7b91f019295eb4530f96fe5ef2f"}, - {file = "typed_ast-1.4.3-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:52b1eb8c83f178ab787f3a4283f68258525f8d70f778a2f6dd54d3b5e5fb4341"}, - {file = "typed_ast-1.4.3-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:01ae5f73431d21eead5015997ab41afa53aa1fbe252f9da060be5dad2c730ace"}, - {file = "typed_ast-1.4.3-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:c190f0899e9f9f8b6b7863debfb739abcb21a5c054f911ca3596d12b8a4c4c7f"}, - {file = "typed_ast-1.4.3-cp36-cp36m-win32.whl", hash = "sha256:398e44cd480f4d2b7ee8d98385ca104e35c81525dd98c519acff1b79bdaac363"}, - {file = "typed_ast-1.4.3-cp36-cp36m-win_amd64.whl", hash = "sha256:bff6ad71c81b3bba8fa35f0f1921fb24ff4476235a6e94a26ada2e54370e6da7"}, - {file = "typed_ast-1.4.3-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:0fb71b8c643187d7492c1f8352f2c15b4c4af3f6338f21681d3681b3dc31a266"}, - {file = "typed_ast-1.4.3-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:760ad187b1041a154f0e4d0f6aae3e40fdb51d6de16e5c99aedadd9246450e9e"}, - {file = "typed_ast-1.4.3-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:5feca99c17af94057417d744607b82dd0a664fd5e4ca98061480fd8b14b18d04"}, - {file = "typed_ast-1.4.3-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:95431a26309a21874005845c21118c83991c63ea800dd44843e42a916aec5899"}, - {file = "typed_ast-1.4.3-cp37-cp37m-win32.whl", hash = "sha256:aee0c1256be6c07bd3e1263ff920c325b59849dc95392a05f258bb9b259cf39c"}, - {file = "typed_ast-1.4.3-cp37-cp37m-win_amd64.whl", hash = "sha256:9ad2c92ec681e02baf81fdfa056fe0d818645efa9af1f1cd5fd6f1bd2bdfd805"}, - {file = "typed_ast-1.4.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:b36b4f3920103a25e1d5d024d155c504080959582b928e91cb608a65c3a49e1a"}, - {file = "typed_ast-1.4.3-cp38-cp38-manylinux1_i686.whl", hash = "sha256:067a74454df670dcaa4e59349a2e5c81e567d8d65458d480a5b3dfecec08c5ff"}, - {file = "typed_ast-1.4.3-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:7538e495704e2ccda9b234b82423a4038f324f3a10c43bc088a1636180f11a41"}, - {file = "typed_ast-1.4.3-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:af3d4a73793725138d6b334d9d247ce7e5f084d96284ed23f22ee626a7b88e39"}, - {file = "typed_ast-1.4.3-cp38-cp38-win32.whl", hash = "sha256:f2362f3cb0f3172c42938946dbc5b7843c2a28aec307c49100c8b38764eb6927"}, - {file = "typed_ast-1.4.3-cp38-cp38-win_amd64.whl", hash = "sha256:dd4a21253f42b8d2b48410cb31fe501d32f8b9fbeb1f55063ad102fe9c425e40"}, - {file = "typed_ast-1.4.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:f328adcfebed9f11301eaedfa48e15bdece9b519fb27e6a8c01aa52a17ec31b3"}, - {file = "typed_ast-1.4.3-cp39-cp39-manylinux1_i686.whl", hash = "sha256:2c726c276d09fc5c414693a2de063f521052d9ea7c240ce553316f70656c84d4"}, - {file = "typed_ast-1.4.3-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:cae53c389825d3b46fb37538441f75d6aecc4174f615d048321b716df2757fb0"}, - {file = "typed_ast-1.4.3-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:b9574c6f03f685070d859e75c7f9eeca02d6933273b5e69572e5ff9d5e3931c3"}, - {file = "typed_ast-1.4.3-cp39-cp39-win32.whl", hash = "sha256:209596a4ec71d990d71d5e0d312ac935d86930e6eecff6ccc7007fe54d703808"}, - {file = "typed_ast-1.4.3-cp39-cp39-win_amd64.whl", hash = "sha256:9c6d1a54552b5330bc657b7ef0eae25d00ba7ffe85d9ea8ae6540d2197a3788c"}, - {file = "typed_ast-1.4.3.tar.gz", hash = "sha256:fb1bbeac803adea29cedd70781399c99138358c26d05fcbd23c13016b7f5ec65"}, + {file = "typed_ast-1.5.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:9ad3b48cf2b487be140072fb86feff36801487d4abb7382bb1929aaac80638ea"}, + {file = "typed_ast-1.5.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:542cd732351ba8235f20faa0fc7398946fe1a57f2cdb289e5497e1e7f48cfedb"}, + {file = "typed_ast-1.5.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5dc2c11ae59003d4a26dda637222d9ae924387f96acae9492df663843aefad55"}, + {file = "typed_ast-1.5.3-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:fd5df1313915dbd70eaaa88c19030b441742e8b05e6103c631c83b75e0435ccc"}, + {file = "typed_ast-1.5.3-cp310-cp310-win_amd64.whl", hash = "sha256:e34f9b9e61333ecb0f7d79c21c28aa5cd63bec15cb7e1310d7d3da6ce886bc9b"}, + {file = "typed_ast-1.5.3-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:f818c5b81966d4728fec14caa338e30a70dfc3da577984d38f97816c4b3071ec"}, + {file = "typed_ast-1.5.3-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3042bfc9ca118712c9809201f55355479cfcdc17449f9f8db5e744e9625c6805"}, + {file = "typed_ast-1.5.3-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:4fff9fdcce59dc61ec1b317bdb319f8f4e6b69ebbe61193ae0a60c5f9333dc49"}, + {file = "typed_ast-1.5.3-cp36-cp36m-win_amd64.whl", hash = "sha256:8e0b8528838ffd426fea8d18bde4c73bcb4167218998cc8b9ee0a0f2bfe678a6"}, + {file = "typed_ast-1.5.3-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:8ef1d96ad05a291f5c36895d86d1375c0ee70595b90f6bb5f5fdbee749b146db"}, + {file = "typed_ast-1.5.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ed44e81517364cb5ba367e4f68fca01fba42a7a4690d40c07886586ac267d9b9"}, + {file = "typed_ast-1.5.3-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:f60d9de0d087454c91b3999a296d0c4558c1666771e3460621875021bf899af9"}, + {file = "typed_ast-1.5.3-cp37-cp37m-win_amd64.whl", hash = "sha256:9e237e74fd321a55c90eee9bc5d44be976979ad38a29bbd734148295c1ce7617"}, + {file = "typed_ast-1.5.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:ee852185964744987609b40aee1d2eb81502ae63ee8eef614558f96a56c1902d"}, + {file = "typed_ast-1.5.3-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:27e46cdd01d6c3a0dd8f728b6a938a6751f7bd324817501c15fb056307f918c6"}, + {file = "typed_ast-1.5.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d64dabc6336ddc10373922a146fa2256043b3b43e61f28961caec2a5207c56d5"}, + {file = "typed_ast-1.5.3-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:8cdf91b0c466a6c43f36c1964772918a2c04cfa83df8001ff32a89e357f8eb06"}, + {file = "typed_ast-1.5.3-cp38-cp38-win_amd64.whl", hash = "sha256:9cc9e1457e1feb06b075c8ef8aeb046a28ec351b1958b42c7c31c989c841403a"}, + {file = "typed_ast-1.5.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:e20d196815eeffb3d76b75223e8ffed124e65ee62097e4e73afb5fec6b993e7a"}, + {file = "typed_ast-1.5.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:37e5349d1d5de2f4763d534ccb26809d1c24b180a477659a12c4bde9dd677d74"}, + {file = "typed_ast-1.5.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c9f1a27592fac87daa4e3f16538713d705599b0a27dfe25518b80b6b017f0a6d"}, + {file = "typed_ast-1.5.3-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:8831479695eadc8b5ffed06fdfb3e424adc37962a75925668deeb503f446c0a3"}, + {file = "typed_ast-1.5.3-cp39-cp39-win_amd64.whl", hash = "sha256:20d5118e494478ef2d3a2702d964dae830aedd7b4d3b626d003eea526be18718"}, + {file = "typed_ast-1.5.3.tar.gz", hash = "sha256:27f25232e2dd0edfe1f019d6bfaaf11e86e657d9bdb7b0956db95f560cceb2b3"}, ] types-dataclasses = [ - {file = "types-dataclasses-0.1.7.tar.gz", hash = "sha256:248075d093d8f7c1541ce515594df7ae40233d1340afde11ce7125368c5209b8"}, - {file = "types_dataclasses-0.1.7-py3-none-any.whl", hash = "sha256:fc372bb68b878ac7a68fd04230d923d4a6303a137ecb0b9700b90630bdfcbfc9"}, + {file = "types-dataclasses-0.6.5.tar.gz", hash = "sha256:c3226d0a93289f53aac7b55ced17fb18473e278247abdb8d85a8956f5fb4faa6"}, + {file = "types_dataclasses-0.6.5-py3-none-any.whl", hash = "sha256:2d6347ff290a17e802400ddc747c2e2c05f3d64dc4c29de9818dc497b808180a"}, ] typing-extensions = [ - {file = "typing_extensions-3.10.0.2-py2-none-any.whl", hash = "sha256:d8226d10bc02a29bcc81df19a26e56a9647f8b0a6d4a83924139f4a8b01f17b7"}, - {file = "typing_extensions-3.10.0.2-py3-none-any.whl", hash = "sha256:f1d25edafde516b146ecd0613dabcc61409817af4766fbbcfb8d1ad4ec441a34"}, - {file = "typing_extensions-3.10.0.2.tar.gz", hash = "sha256:49f75d16ff11f1cd258e1b988ccff82a3ca5570217d7ad8c5f48205dd99a677e"}, + {file = "typing_extensions-4.1.1-py3-none-any.whl", hash = "sha256:21c85e0fe4b9a155d0799430b0ad741cdce7e359660ccbd8b530613e8df88ce2"}, + {file = "typing_extensions-4.1.1.tar.gz", hash = "sha256:1a9462dcc3347a79b1f1c0271fbe79e844580bb598bafa1ed208b94da3cdcd42"}, +] +virtualenv = [ + {file = "virtualenv-20.14.1-py2.py3-none-any.whl", hash = "sha256:e617f16e25b42eb4f6e74096b9c9e37713cf10bf30168fb4a739f3fa8f898a3a"}, + {file = "virtualenv-20.14.1.tar.gz", hash = "sha256:ef589a79795589aada0c1c5b319486797c03b67ac3984c48c669c0e4f50df3a5"}, ] wcwidth = [ {file = "wcwidth-0.2.5-py2.py3-none-any.whl", hash = "sha256:beb4802a9cebb9144e99086eff703a642a13d6a0052920003a230f3294bbe784"}, @@ -1559,10 +1800,10 @@ webencodings = [ {file = "webencodings-0.5.1.tar.gz", hash = "sha256:b36a1c245f2d304965eb4e0a82848379241dc04b865afcc4aab16748587e1923"}, ] widgetsnbextension = [ - {file = "widgetsnbextension-3.5.1-py2.py3-none-any.whl", hash = "sha256:bd314f8ceb488571a5ffea6cc5b9fc6cba0adaf88a9d2386b93a489751938bcd"}, - {file = "widgetsnbextension-3.5.1.tar.gz", hash = "sha256:079f87d87270bce047512400efd70238820751a11d2d8cb137a5a5bdbaf255c7"}, + {file = "widgetsnbextension-3.6.0-py2.py3-none-any.whl", hash = "sha256:4fd321cad39fdcf8a8e248a657202d42917ada8e8ed5dd3f60f073e0d54ceabd"}, + {file = "widgetsnbextension-3.6.0.tar.gz", hash = "sha256:e84a7a9fcb9baf3d57106e184a7389a8f8eb935bf741a5eb9d60aa18cc029a80"}, ] zipp = [ - {file = "zipp-3.5.0-py3-none-any.whl", hash = "sha256:957cfda87797e389580cb8b9e3870841ca991e2125350677b2ca83a0e99390a3"}, - {file = "zipp-3.5.0.tar.gz", hash = "sha256:f5812b1e007e48cff63449a5e9f4e7ebea716b4111f9c4f9a645f91d579bf0c4"}, + {file = "zipp-3.6.0-py3-none-any.whl", hash = "sha256:9fe5ea21568a0a70e50f273397638d39b03353731e6cbbb3fd8502a33fec40bc"}, + {file = "zipp-3.6.0.tar.gz", hash = "sha256:71c644c5369f4a6e07636f0aa966270449561fcea2e3d6747b8d23efaa9d7832"}, ] diff --git a/pyproject.toml b/pyproject.toml index c9b4bbb9ce..e922561cf1 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -2,7 +2,7 @@ name = "rich" homepage = "https://github.com/willmcgugan/rich" documentation = "https://rich.readthedocs.io/en/latest/" -version = "10.11.0" +version = "12.4.3" description = "Render rich text, tables, progress bars, syntax highlighting, markdown and more to the terminal" authors = ["Will McGugan "] license = "MIT" @@ -26,12 +26,11 @@ include = ["rich/py.typed"] [tool.poetry.dependencies] -python = "^3.6" -typing-extensions = { version = "^3.7.4", python = "<3.8" } -dataclasses = { version = ">=0.7,<0.9", python = "~3.6" } +python = "^3.6.3" +typing-extensions = { version = ">=4.0.0, <5.0", python = "<3.9" } +dataclasses = { version = ">=0.7,<0.9", python = "<3.7" } pygments = "^2.6.0" commonmark = "^0.9.0" -colorama = "^0.4.0" ipywidgets = { version = "^7.5.1", optional = true } @@ -39,13 +38,26 @@ ipywidgets = { version = "^7.5.1", optional = true } jupyter = ["ipywidgets"] [tool.poetry.dev-dependencies] -pytest = "^6.2.5" -black = "^20.8b1" -mypy = "^0.910" -pytest-cov = "^2.12.1" -attrs = "^21.2.0" -types-dataclasses = "^0.1.7" +pytest = "^7.0.0" +black = "^22.3" +mypy = "^0.950" +pytest-cov = "^3.0.0" +attrs = "^21.4.0" +types-dataclasses = "^0.6.4" +pre-commit = "^2.17.0" +asv = "^0.5.1" [build-system] requires = ["poetry-core>=1.0.0"] build-backend = "poetry.core.masonry.api" + + +[tool.mypy] +files = ["rich"] +show_error_codes = true +strict = true +enable_error_code = ["ignore-without-code", "redundant-expr", "truthy-bool"] + +[[tool.mypy.overrides]] +module = ["pygments.*", "IPython.*", "commonmark.*", "ipywidgets.*"] +ignore_missing_imports = true diff --git a/rich/__init__.py b/rich/__init__.py index 604fa04cf5..07bc1a1920 100644 --- a/rich/__init__.py +++ b/rich/__init__.py @@ -1,9 +1,9 @@ """Rich text and beautiful formatting in the terminal.""" import os -from typing import IO, TYPE_CHECKING, Any, Optional +from typing import IO, TYPE_CHECKING, Any, Callable, Optional, Union -from ._extension import load_ipython_extension +from ._extension import load_ipython_extension # noqa: F401 __all__ = ["get_console", "reconfigure", "print", "inspect"] @@ -13,7 +13,11 @@ # Global console used by alternative print _console: Optional["Console"] = None -_IMPORT_CWD = os.path.abspath(os.getcwd()) +try: + _IMPORT_CWD = os.path.abspath(os.getcwd()) +except FileNotFoundError: + # Can happen if the cwd has been deleted + _IMPORT_CWD = "" def get_console() -> "Console": @@ -73,8 +77,14 @@ def print_json( json: Optional[str] = None, *, data: Any = None, - indent: int = 2, + indent: Union[None, int, str] = 2, highlight: bool = True, + skip_keys: bool = False, + ensure_ascii: bool = True, + check_circular: bool = True, + allow_nan: bool = True, + default: Optional[Callable[[Any], Any]] = None, + sort_keys: bool = False, ) -> None: """Pretty prints JSON. Output will be valid JSON. @@ -83,9 +93,27 @@ def print_json( data (Any): If json is not supplied, then encode this data. indent (int, optional): Number of spaces to indent. Defaults to 2. highlight (bool, optional): Enable highlighting of output: Defaults to True. + skip_keys (bool, optional): Skip keys not of a basic type. Defaults to False. + ensure_ascii (bool, optional): Escape all non-ascii characters. Defaults to False. + check_circular (bool, optional): Check for circular references. Defaults to True. + allow_nan (bool, optional): Allow NaN and Infinity values. Defaults to True. + default (Callable, optional): A callable that converts values that can not be encoded + in to something that can be JSON encoded. Defaults to None. + sort_keys (bool, optional): Sort dictionary keys. Defaults to False. """ - get_console().print_json(json, data=data, indent=indent, highlight=highlight) + get_console().print_json( + json, + data=data, + indent=indent, + highlight=highlight, + skip_keys=skip_keys, + ensure_ascii=ensure_ascii, + check_circular=check_circular, + allow_nan=allow_nan, + default=default, + sort_keys=sort_keys, + ) def inspect( diff --git a/rich/__main__.py b/rich/__main__.py index 66ae166ba4..eb293a0ba3 100644 --- a/rich/__main__.py +++ b/rich/__main__.py @@ -4,13 +4,7 @@ from rich import box from rich.color import Color -from rich.console import ( - Console, - ConsoleOptions, - Group, - RenderResult, - RenderableType, -) +from rich.console import Console, ConsoleOptions, Group, RenderableType, RenderResult from rich.markdown import Markdown from rich.measure import Measurement from rich.pretty import Pretty @@ -57,7 +51,6 @@ def make_test_card() -> Table: pad_edge=False, ) color_table.add_row( - # "[bold yellow]256[/] colors or [bold green]16.7 million[/] colors [blue](if supported by your terminal)[/].", ( "✓ [bold green]4-bit color[/]\n" "✓ [bold blue]8-bit color[/]\n" @@ -222,19 +215,25 @@ def iter_last(values: Iterable[T]) -> Iterable[Tuple[bool, T]]: test_card = make_test_card() # Print once to warm cache + start = process_time() console.print(test_card) + pre_cache_taken = round((process_time() - start) * 1000.0, 1) + console.file = io.StringIO() start = process_time() console.print(test_card) taken = round((process_time() - start) * 1000.0, 1) - text = console.file.getvalue() - # https://bugs.python.org/issue37871 - for line in text.splitlines(): - print(line) + c = Console(record=True) + c.print(test_card) + # c.save_svg( + # path="/Users/darrenburns/Library/Application Support/JetBrains/PyCharm2021.3/scratches/svg_export.svg", + # title="Rich can export to SVG", + # ) - print(f"rendered in {taken}ms") + print(f"rendered in {pre_cache_taken}ms (cold cache)") + print(f"rendered in {taken}ms (warm cache)") from rich.panel import Panel @@ -243,27 +242,25 @@ def iter_last(values: Iterable[T]) -> Iterable[Tuple[bool, T]]: sponsor_message = Table.grid(padding=1) sponsor_message.add_column(style="green", justify="right") sponsor_message.add_column(no_wrap=True) + sponsor_message.add_row( - "Sponsor me", - "[u blue link=https://github.com/sponsors/willmcgugan]https://github.com/sponsors/willmcgugan", + "Textualize", + "[u blue link=https://github.com/textualize]https://github.com/textualize", ) sponsor_message.add_row( - "Buy me a :coffee:", - "[u blue link=https://ko-fi.com/willmcgugan]https://ko-fi.com/willmcgugan", + "Buy devs a :coffee:", + "[u blue link=https://ko-fi.com/textualize]https://ko-fi.com/textualize", ) sponsor_message.add_row( "Twitter", "[u blue link=https://twitter.com/willmcgugan]https://twitter.com/willmcgugan", ) - sponsor_message.add_row( - "Blog", "[u blue link=https://www.willmcgugan.com]https://www.willmcgugan.com" - ) intro_message = Text.from_markup( """\ -It takes a lot of time to develop Rich and to provide support. +We hope you enjoy using Rich! -Consider supporting my work via Github Sponsors (ask your company / organization), or buy me a coffee to say thanks. +Rich is maintained with [red]:heart:[/] by [link=https://www.textualize.io]Textualize.io[/] - Will McGugan""" ) diff --git a/rich/_export_format.py b/rich/_export_format.py new file mode 100644 index 0000000000..028e833669 --- /dev/null +++ b/rich/_export_format.py @@ -0,0 +1,77 @@ +CONSOLE_HTML_FORMAT = """\ + + + + + + + + +
{code}
+
+ + +""" + +CONSOLE_SVG_FORMAT = """\ + + + + + + + + + + + {chrome} + + {backgrounds} + + {matrix} + + + +""" + +_SVG_FONT_FAMILY = "Rich Fira Code" +_SVG_CLASSES_PREFIX = "rich-svg" diff --git a/rich/_inspect.py b/rich/_inspect.py index 262695b1c4..01713e5767 100644 --- a/rich/_inspect.py +++ b/rich/_inspect.py @@ -1,9 +1,10 @@ from __future__ import absolute_import +import inspect from inspect import cleandoc, getdoc, getfile, isclass, ismodule, signature from typing import Any, Iterable, Optional, Tuple -from .console import RenderableType, Group +from .console import Group, RenderableType from .highlighter import ReprHighlighter from .jupyter import JupyterMixin from .panel import Panel @@ -97,7 +98,8 @@ def _get_signature(self, name: str, obj: Any) -> Optional[Text]: source_filename: Optional[str] = None try: source_filename = getfile(obj) - except TypeError: + except (OSError, TypeError): + # OSError is raised if obj has no source file, e.g. when defined in REPL. pass callable_name = Text(name, style="inspect.callable") @@ -106,8 +108,17 @@ def _get_signature(self, name: str, obj: Any) -> Optional[Text]: signature_text = self.highlighter(_signature) qualname = name or getattr(obj, "__qualname__", name) + + # If obj is a module, there may be classes (which are callable) to display + if inspect.isclass(obj): + prefix = "class" + else: + prefix = "def" + qual_signature = Text.assemble( - ("def ", "inspect.def"), (qualname, "inspect.callable"), signature_text + (f"{prefix} ", f"inspect.{prefix}"), + (qualname, "inspect.callable"), + signature_text, ) return qual_signature @@ -204,7 +215,8 @@ def safe_getattr(attr_name: str) -> Tuple[Any, Any]: add_row(key_text, Pretty(value, highlighter=highlighter)) if items_table.row_count: yield items_table - else: + elif not_shown_count: yield Text.from_markup( - f"[b cyan]{not_shown_count}[/][i] attribute(s) not shown.[/i] Run [b][magenta]inspect[/]([not b]inspect[/])[/b] for options." + f"[b cyan]{not_shown_count}[/][i] attribute(s) not shown.[/i] " + f"Run [b][magenta]inspect[/]([not b]inspect[/])[/b] for options." ) diff --git a/rich/_log_render.py b/rich/_log_render.py index 3a77f0c876..e8810100b3 100644 --- a/rich/_log_render.py +++ b/rich/_log_render.py @@ -75,7 +75,11 @@ def __call__( path, style=f"link file://{link_path}" if link_path else "" ) if line_no: - path_text.append(f":{line_no}") + path_text.append(":") + path_text.append( + f"{line_no}", + style=f"link file://{link_path}#{line_no}" if link_path else "", + ) row.append(path_text) output.add_row(*row) diff --git a/rich/_lru_cache.py b/rich/_lru_cache.py index b7bf2ce1ad..a227894352 100644 --- a/rich/_lru_cache.py +++ b/rich/_lru_cache.py @@ -1,12 +1,16 @@ -from collections import OrderedDict -from typing import Dict, Generic, TypeVar - +from typing import Dict, Generic, TypeVar, TYPE_CHECKING +import sys CacheKey = TypeVar("CacheKey") CacheValue = TypeVar("CacheValue") +if sys.version_info < (3, 9): + from typing_extensions import OrderedDict +else: + from collections import OrderedDict + -class LRUCache(Generic[CacheKey, CacheValue], OrderedDict): # type: ignore # https://github.com/python/mypy/issues/6904 +class LRUCache(OrderedDict[CacheKey, CacheValue]): """ A dictionary-like container that stores a given maximum items. @@ -17,18 +21,18 @@ class LRUCache(Generic[CacheKey, CacheValue], OrderedDict): # type: ignore # ht def __init__(self, cache_size: int) -> None: self.cache_size = cache_size - super(LRUCache, self).__init__() + super().__init__() def __setitem__(self, key: CacheKey, value: CacheValue) -> None: """Store a new views, potentially discarding an old value.""" if key not in self: if len(self) >= self.cache_size: self.popitem(last=False) - OrderedDict.__setitem__(self, key, value) + super().__setitem__(key, value) - def __getitem__(self: Dict[CacheKey, CacheValue], key: CacheKey) -> CacheValue: + def __getitem__(self, key: CacheKey) -> CacheValue: """Gets the item, but also makes it most recent.""" - value: CacheValue = OrderedDict.__getitem__(self, key) - OrderedDict.__delitem__(self, key) - OrderedDict.__setitem__(self, key, value) + value: CacheValue = super().__getitem__(key) + super().__delitem__(key) + super().__setitem__(key, value) return value diff --git a/rich/_spinners.py b/rich/_spinners.py index dc1db0777e..d0bb1fe751 100644 --- a/rich/_spinners.py +++ b/rich/_spinners.py @@ -22,149 +22,36 @@ SPINNERS = { "dots": { "interval": 80, - "frames": ["⠋", "⠙", "⠹", "⠸", "⠼", "⠴", "⠦", "⠧", "⠇", "⠏"], + "frames": "⠋⠙⠹⠸⠼⠴⠦⠧⠇⠏", }, - "dots2": {"interval": 80, "frames": ["⣾", "⣽", "⣻", "⢿", "⡿", "⣟", "⣯", "⣷"]}, + "dots2": {"interval": 80, "frames": "⣾⣽⣻⢿⡿⣟⣯⣷"}, "dots3": { "interval": 80, - "frames": ["⠋", "⠙", "⠚", "⠞", "⠖", "⠦", "⠴", "⠲", "⠳", "⠓"], + "frames": "⠋⠙⠚⠞⠖⠦⠴⠲⠳⠓", }, "dots4": { "interval": 80, - "frames": [ - "⠄", - "⠆", - "⠇", - "⠋", - "⠙", - "⠸", - "⠰", - "⠠", - "⠰", - "⠸", - "⠙", - "⠋", - "⠇", - "⠆", - ], + "frames": "⠄⠆⠇⠋⠙⠸⠰⠠⠰⠸⠙⠋⠇⠆", }, "dots5": { "interval": 80, - "frames": [ - "⠋", - "⠙", - "⠚", - "⠒", - "⠂", - "⠂", - "⠒", - "⠲", - "⠴", - "⠦", - "⠖", - "⠒", - "⠐", - "⠐", - "⠒", - "⠓", - "⠋", - ], + "frames": "⠋⠙⠚⠒⠂⠂⠒⠲⠴⠦⠖⠒⠐⠐⠒⠓⠋", }, "dots6": { "interval": 80, - "frames": [ - "⠁", - "⠉", - "⠙", - "⠚", - "⠒", - "⠂", - "⠂", - "⠒", - "⠲", - "⠴", - "⠤", - "⠄", - "⠄", - "⠤", - "⠴", - "⠲", - "⠒", - "⠂", - "⠂", - "⠒", - "⠚", - "⠙", - "⠉", - "⠁", - ], + "frames": "⠁⠉⠙⠚⠒⠂⠂⠒⠲⠴⠤⠄⠄⠤⠴⠲⠒⠂⠂⠒⠚⠙⠉⠁", }, "dots7": { "interval": 80, - "frames": [ - "⠈", - "⠉", - "⠋", - "⠓", - "⠒", - "⠐", - "⠐", - "⠒", - "⠖", - "⠦", - "⠤", - "⠠", - "⠠", - "⠤", - "⠦", - "⠖", - "⠒", - "⠐", - "⠐", - "⠒", - "⠓", - "⠋", - "⠉", - "⠈", - ], + "frames": "⠈⠉⠋⠓⠒⠐⠐⠒⠖⠦⠤⠠⠠⠤⠦⠖⠒⠐⠐⠒⠓⠋⠉⠈", }, "dots8": { "interval": 80, - "frames": [ - "⠁", - "⠁", - "⠉", - "⠙", - "⠚", - "⠒", - "⠂", - "⠂", - "⠒", - "⠲", - "⠴", - "⠤", - "⠄", - "⠄", - "⠤", - "⠠", - "⠠", - "⠤", - "⠦", - "⠖", - "⠒", - "⠐", - "⠐", - "⠒", - "⠓", - "⠋", - "⠉", - "⠈", - "⠈", - ], + "frames": "⠁⠁⠉⠙⠚⠒⠂⠂⠒⠲⠴⠤⠄⠄⠤⠠⠠⠤⠦⠖⠒⠐⠐⠒⠓⠋⠉⠈⠈", }, - "dots9": {"interval": 80, "frames": ["⢹", "⢺", "⢼", "⣸", "⣇", "⡧", "⡗", "⡏"]}, - "dots10": {"interval": 80, "frames": ["⢄", "⢂", "⢁", "⡁", "⡈", "⡐", "⡠"]}, - "dots11": {"interval": 100, "frames": ["⠁", "⠂", "⠄", "⡀", "⢀", "⠠", "⠐", "⠈"]}, + "dots9": {"interval": 80, "frames": "⢹⢺⢼⣸⣇⡧⡗⡏"}, + "dots10": {"interval": 80, "frames": "⢄⢂⢁⡁⡈⡐⡠"}, + "dots11": {"interval": 100, "frames": "⠁⠂⠄⡀⢀⠠⠐⠈"}, "dots12": { "interval": 80, "frames": [ @@ -228,315 +115,62 @@ }, "dots8Bit": { "interval": 80, - "frames": [ - "⠀", - "⠁", - "⠂", - "⠃", - "⠄", - "⠅", - "⠆", - "⠇", - "⡀", - "⡁", - "⡂", - "⡃", - "⡄", - "⡅", - "⡆", - "⡇", - "⠈", - "⠉", - "⠊", - "⠋", - "⠌", - "⠍", - "⠎", - "⠏", - "⡈", - "⡉", - "⡊", - "⡋", - "⡌", - "⡍", - "⡎", - "⡏", - "⠐", - "⠑", - "⠒", - "⠓", - "⠔", - "⠕", - "⠖", - "⠗", - "⡐", - "⡑", - "⡒", - "⡓", - "⡔", - "⡕", - "⡖", - "⡗", - "⠘", - "⠙", - "⠚", - "⠛", - "⠜", - "⠝", - "⠞", - "⠟", - "⡘", - "⡙", - "⡚", - "⡛", - "⡜", - "⡝", - "⡞", - "⡟", - "⠠", - "⠡", - "⠢", - "⠣", - "⠤", - "⠥", - "⠦", - "⠧", - "⡠", - "⡡", - "⡢", - "⡣", - "⡤", - "⡥", - "⡦", - "⡧", - "⠨", - "⠩", - "⠪", - "⠫", - "⠬", - "⠭", - "⠮", - "⠯", - "⡨", - "⡩", - "⡪", - "⡫", - "⡬", - "⡭", - "⡮", - "⡯", - "⠰", - "⠱", - "⠲", - "⠳", - "⠴", - "⠵", - "⠶", - "⠷", - "⡰", - "⡱", - "⡲", - "⡳", - "⡴", - "⡵", - "⡶", - "⡷", - "⠸", - "⠹", - "⠺", - "⠻", - "⠼", - "⠽", - "⠾", - "⠿", - "⡸", - "⡹", - "⡺", - "⡻", - "⡼", - "⡽", - "⡾", - "⡿", - "⢀", - "⢁", - "⢂", - "⢃", - "⢄", - "⢅", - "⢆", - "⢇", - "⣀", - "⣁", - "⣂", - "⣃", - "⣄", - "⣅", - "⣆", - "⣇", - "⢈", - "⢉", - "⢊", - "⢋", - "⢌", - "⢍", - "⢎", - "⢏", - "⣈", - "⣉", - "⣊", - "⣋", - "⣌", - "⣍", - "⣎", - "⣏", - "⢐", - "⢑", - "⢒", - "⢓", - "⢔", - "⢕", - "⢖", - "⢗", - "⣐", - "⣑", - "⣒", - "⣓", - "⣔", - "⣕", - "⣖", - "⣗", - "⢘", - "⢙", - "⢚", - "⢛", - "⢜", - "⢝", - "⢞", - "⢟", - "⣘", - "⣙", - "⣚", - "⣛", - "⣜", - "⣝", - "⣞", - "⣟", - "⢠", - "⢡", - "⢢", - "⢣", - "⢤", - "⢥", - "⢦", - "⢧", - "⣠", - "⣡", - "⣢", - "⣣", - "⣤", - "⣥", - "⣦", - "⣧", - "⢨", - "⢩", - "⢪", - "⢫", - "⢬", - "⢭", - "⢮", - "⢯", - "⣨", - "⣩", - "⣪", - "⣫", - "⣬", - "⣭", - "⣮", - "⣯", - "⢰", - "⢱", - "⢲", - "⢳", - "⢴", - "⢵", - "⢶", - "⢷", - "⣰", - "⣱", - "⣲", - "⣳", - "⣴", - "⣵", - "⣶", - "⣷", - "⢸", - "⢹", - "⢺", - "⢻", - "⢼", - "⢽", - "⢾", - "⢿", - "⣸", - "⣹", - "⣺", - "⣻", - "⣼", - "⣽", - "⣾", - "⣿", - ], + "frames": "⠀⠁⠂⠃⠄⠅⠆⠇⡀⡁⡂⡃⡄⡅⡆⡇⠈⠉⠊⠋⠌⠍⠎⠏⡈⡉⡊⡋⡌⡍⡎⡏⠐⠑⠒⠓⠔⠕⠖⠗⡐⡑⡒⡓⡔⡕⡖⡗⠘⠙⠚⠛⠜⠝⠞⠟⡘⡙" + "⡚⡛⡜⡝⡞⡟⠠⠡⠢⠣⠤⠥⠦⠧⡠⡡⡢⡣⡤⡥⡦⡧⠨⠩⠪⠫⠬⠭⠮⠯⡨⡩⡪⡫⡬⡭⡮⡯⠰⠱⠲⠳⠴⠵⠶⠷⡰⡱⡲⡳⡴⡵⡶⡷⠸⠹⠺⠻" + "⠼⠽⠾⠿⡸⡹⡺⡻⡼⡽⡾⡿⢀⢁⢂⢃⢄⢅⢆⢇⣀⣁⣂⣃⣄⣅⣆⣇⢈⢉⢊⢋⢌⢍⢎⢏⣈⣉⣊⣋⣌⣍⣎⣏⢐⢑⢒⢓⢔⢕⢖⢗⣐⣑⣒⣓⣔⣕" + "⣖⣗⢘⢙⢚⢛⢜⢝⢞⢟⣘⣙⣚⣛⣜⣝⣞⣟⢠⢡⢢⢣⢤⢥⢦⢧⣠⣡⣢⣣⣤⣥⣦⣧⢨⢩⢪⢫⢬⢭⢮⢯⣨⣩⣪⣫⣬⣭⣮⣯⢰⢱⢲⢳⢴⢵⢶⢷" + "⣰⣱⣲⣳⣴⣵⣶⣷⢸⢹⢺⢻⢼⢽⢾⢿⣸⣹⣺⣻⣼⣽⣾⣿", }, "line": {"interval": 130, "frames": ["-", "\\", "|", "/"]}, - "line2": {"interval": 100, "frames": ["⠂", "-", "–", "—", "–", "-"]}, - "pipe": {"interval": 100, "frames": ["┤", "┘", "┴", "└", "├", "┌", "┬", "┐"]}, + "line2": {"interval": 100, "frames": "⠂-–—–-"}, + "pipe": {"interval": 100, "frames": "┤┘┴└├┌┬┐"}, "simpleDots": {"interval": 400, "frames": [". ", ".. ", "...", " "]}, "simpleDotsScrolling": { "interval": 200, "frames": [". ", ".. ", "...", " ..", " .", " "], }, - "star": {"interval": 70, "frames": ["✶", "✸", "✹", "✺", "✹", "✷"]}, - "star2": {"interval": 80, "frames": ["+", "x", "*"]}, + "star": {"interval": 70, "frames": "✶✸✹✺✹✷"}, + "star2": {"interval": 80, "frames": "+x*"}, "flip": { "interval": 70, - "frames": ["_", "_", "_", "-", "`", "`", "'", "´", "-", "_", "_", "_"], + "frames": "___-``'´-___", }, - "hamburger": {"interval": 100, "frames": ["☱", "☲", "☴"]}, + "hamburger": {"interval": 100, "frames": "☱☲☴"}, "growVertical": { "interval": 120, - "frames": ["▁", "▃", "▄", "▅", "▆", "▇", "▆", "▅", "▄", "▃"], + "frames": "▁▃▄▅▆▇▆▅▄▃", }, "growHorizontal": { "interval": 120, - "frames": ["▏", "▎", "▍", "▌", "▋", "▊", "▉", "▊", "▋", "▌", "▍", "▎"], + "frames": "▏▎▍▌▋▊▉▊▋▌▍▎", }, - "balloon": {"interval": 140, "frames": [" ", ".", "o", "O", "@", "*", " "]}, - "balloon2": {"interval": 120, "frames": [".", "o", "O", "°", "O", "o", "."]}, - "noise": {"interval": 100, "frames": ["▓", "▒", "░"]}, - "bounce": {"interval": 120, "frames": ["⠁", "⠂", "⠄", "⠂"]}, - "boxBounce": {"interval": 120, "frames": ["▖", "▘", "▝", "▗"]}, - "boxBounce2": {"interval": 100, "frames": ["▌", "▀", "▐", "▄"]}, - "triangle": {"interval": 50, "frames": ["◢", "◣", "◤", "◥"]}, - "arc": {"interval": 100, "frames": ["◜", "◠", "◝", "◞", "◡", "◟"]}, - "circle": {"interval": 120, "frames": ["◡", "⊙", "◠"]}, - "squareCorners": {"interval": 180, "frames": ["◰", "◳", "◲", "◱"]}, - "circleQuarters": {"interval": 120, "frames": ["◴", "◷", "◶", "◵"]}, - "circleHalves": {"interval": 50, "frames": ["◐", "◓", "◑", "◒"]}, - "squish": {"interval": 100, "frames": ["╫", "╪"]}, - "toggle": {"interval": 250, "frames": ["⊶", "⊷"]}, - "toggle2": {"interval": 80, "frames": ["▫", "▪"]}, - "toggle3": {"interval": 120, "frames": ["□", "■"]}, - "toggle4": {"interval": 100, "frames": ["■", "□", "▪", "▫"]}, - "toggle5": {"interval": 100, "frames": ["▮", "▯"]}, - "toggle6": {"interval": 300, "frames": ["ဝ", "၀"]}, - "toggle7": {"interval": 80, "frames": ["⦾", "⦿"]}, - "toggle8": {"interval": 100, "frames": ["◍", "◌"]}, - "toggle9": {"interval": 100, "frames": ["◉", "◎"]}, - "toggle10": {"interval": 100, "frames": ["㊂", "㊀", "㊁"]}, - "toggle11": {"interval": 50, "frames": ["⧇", "⧆"]}, - "toggle12": {"interval": 120, "frames": ["☗", "☖"]}, - "toggle13": {"interval": 80, "frames": ["=", "*", "-"]}, - "arrow": {"interval": 100, "frames": ["←", "↖", "↑", "↗", "→", "↘", "↓", "↙"]}, + "balloon": {"interval": 140, "frames": " .oO@* "}, + "balloon2": {"interval": 120, "frames": ".oO°Oo."}, + "noise": {"interval": 100, "frames": "▓▒░"}, + "bounce": {"interval": 120, "frames": "⠁⠂⠄⠂"}, + "boxBounce": {"interval": 120, "frames": "▖▘▝▗"}, + "boxBounce2": {"interval": 100, "frames": "▌▀▐▄"}, + "triangle": {"interval": 50, "frames": "◢◣◤◥"}, + "arc": {"interval": 100, "frames": "◜◠◝◞◡◟"}, + "circle": {"interval": 120, "frames": "◡⊙◠"}, + "squareCorners": {"interval": 180, "frames": "◰◳◲◱"}, + "circleQuarters": {"interval": 120, "frames": "◴◷◶◵"}, + "circleHalves": {"interval": 50, "frames": "◐◓◑◒"}, + "squish": {"interval": 100, "frames": "╫╪"}, + "toggle": {"interval": 250, "frames": "⊶⊷"}, + "toggle2": {"interval": 80, "frames": "▫▪"}, + "toggle3": {"interval": 120, "frames": "□■"}, + "toggle4": {"interval": 100, "frames": "■□▪▫"}, + "toggle5": {"interval": 100, "frames": "▮▯"}, + "toggle6": {"interval": 300, "frames": "ဝ၀"}, + "toggle7": {"interval": 80, "frames": "⦾⦿"}, + "toggle8": {"interval": 100, "frames": "◍◌"}, + "toggle9": {"interval": 100, "frames": "◉◎"}, + "toggle10": {"interval": 100, "frames": "㊂㊀㊁"}, + "toggle11": {"interval": 50, "frames": "⧇⧆"}, + "toggle12": {"interval": 120, "frames": "☗☖"}, + "toggle13": {"interval": 80, "frames": "=*-"}, + "arrow": {"interval": 100, "frames": "←↖↑↗→↘↓↙"}, "arrow2": { "interval": 80, "frames": ["⬆️ ", "↗️ ", "➡️ ", "↘️ ", "⬇️ ", "↙️ ", "⬅️ ", "↖️ "], @@ -769,7 +403,7 @@ "▐/|____________▌", ], }, - "dqpb": {"interval": 100, "frames": ["d", "q", "p", "b"]}, + "dqpb": {"interval": 100, "frames": "dqpb"}, "weather": { "interval": 100, "frames": [ @@ -798,7 +432,7 @@ "☀️ ", ], }, - "christmas": {"interval": 400, "frames": ["🌲", "🎄"]}, + "christmas": {"interval": 400, "frames": "🌲🎄"}, "grenade": { "interval": 80, "frames": [ @@ -819,7 +453,7 @@ ], }, "point": {"interval": 125, "frames": ["∙∙∙", "●∙∙", "∙●∙", "∙∙●", "∙∙∙"]}, - "layer": {"interval": 150, "frames": ["-", "=", "≡"]}, + "layer": {"interval": 150, "frames": "-=≡"}, "betaWave": { "interval": 80, "frames": [ diff --git a/rich/_win32_console.py b/rich/_win32_console.py new file mode 100644 index 0000000000..f642279c55 --- /dev/null +++ b/rich/_win32_console.py @@ -0,0 +1,630 @@ +"""Light wrapper around the Win32 Console API - this module should only be imported on Windows + +The API that this module wraps is documented at https://docs.microsoft.com/en-us/windows/console/console-functions +""" +import ctypes +import sys +from typing import Any + +windll: Any = None +if sys.platform == "win32": + windll = ctypes.LibraryLoader(ctypes.WinDLL) +else: + raise ImportError(f"{__name__} can only be imported on Windows") + +import time +from ctypes import Structure, byref, wintypes +from typing import IO, NamedTuple, Type, cast + +from rich.color import ColorSystem +from rich.style import Style + +STDOUT = -11 +ENABLE_VIRTUAL_TERMINAL_PROCESSING = 4 + +COORD = wintypes._COORD + + +class LegacyWindowsError(Exception): + pass + + +class WindowsCoordinates(NamedTuple): + """Coordinates in the Windows Console API are (y, x), not (x, y). + This class is intended to prevent that confusion. + Rows and columns are indexed from 0. + This class can be used in place of wintypes._COORD in arguments and argtypes. + """ + + row: int + col: int + + @classmethod + def from_param(cls, value: "WindowsCoordinates") -> COORD: + """Converts a WindowsCoordinates into a wintypes _COORD structure. + This classmethod is internally called by ctypes to perform the conversion. + + Args: + value (WindowsCoordinates): The input coordinates to convert. + + Returns: + wintypes._COORD: The converted coordinates struct. + """ + return COORD(value.col, value.row) + + +class CONSOLE_SCREEN_BUFFER_INFO(Structure): + _fields_ = [ + ("dwSize", COORD), + ("dwCursorPosition", COORD), + ("wAttributes", wintypes.WORD), + ("srWindow", wintypes.SMALL_RECT), + ("dwMaximumWindowSize", COORD), + ] + + +class CONSOLE_CURSOR_INFO(ctypes.Structure): + _fields_ = [("dwSize", wintypes.DWORD), ("bVisible", wintypes.BOOL)] + + +_GetStdHandle = windll.kernel32.GetStdHandle +_GetStdHandle.argtypes = [ + wintypes.DWORD, +] +_GetStdHandle.restype = wintypes.HANDLE + + +def GetStdHandle(handle: int = STDOUT) -> wintypes.HANDLE: + """Retrieves a handle to the specified standard device (standard input, standard output, or standard error). + + Args: + handle (int): Integer identifier for the handle. Defaults to -11 (stdout). + + Returns: + wintypes.HANDLE: The handle + """ + return cast(wintypes.HANDLE, _GetStdHandle(handle)) + + +_GetConsoleMode = windll.kernel32.GetConsoleMode +_GetConsoleMode.argtypes = [wintypes.HANDLE, wintypes.LPDWORD] +_GetConsoleMode.restype = wintypes.BOOL + + +def GetConsoleMode(std_handle: wintypes.HANDLE) -> int: + """Retrieves the current input mode of a console's input buffer + or the current output mode of a console screen buffer. + + Args: + std_handle (wintypes.HANDLE): A handle to the console input buffer or the console screen buffer. + + Raises: + LegacyWindowsError: If any error occurs while calling the Windows console API. + + Returns: + int: Value representing the current console mode as documented at + https://docs.microsoft.com/en-us/windows/console/getconsolemode#parameters + """ + + console_mode = wintypes.DWORD() + success = bool(_GetConsoleMode(std_handle, console_mode)) + if not success: + raise LegacyWindowsError("Unable to get legacy Windows Console Mode") + return console_mode.value + + +_FillConsoleOutputCharacterW = windll.kernel32.FillConsoleOutputCharacterW +_FillConsoleOutputCharacterW.argtypes = [ + wintypes.HANDLE, + ctypes.c_char, + wintypes.DWORD, + cast(Type[COORD], WindowsCoordinates), + ctypes.POINTER(wintypes.DWORD), +] +_FillConsoleOutputCharacterW.restype = wintypes.BOOL + + +def FillConsoleOutputCharacter( + std_handle: wintypes.HANDLE, + char: str, + length: int, + start: WindowsCoordinates, +) -> int: + """Writes a character to the console screen buffer a specified number of times, beginning at the specified coordinates. + + Args: + std_handle (wintypes.HANDLE): A handle to the console input buffer or the console screen buffer. + char (str): The character to write. Must be a string of length 1. + length (int): The number of times to write the character. + start (WindowsCoordinates): The coordinates to start writing at. + + Returns: + int: The number of characters written. + """ + character = ctypes.c_char(char.encode()) + num_characters = wintypes.DWORD(length) + num_written = wintypes.DWORD(0) + _FillConsoleOutputCharacterW( + std_handle, + character, + num_characters, + start, + byref(num_written), + ) + return num_written.value + + +_FillConsoleOutputAttribute = windll.kernel32.FillConsoleOutputAttribute +_FillConsoleOutputAttribute.argtypes = [ + wintypes.HANDLE, + wintypes.WORD, + wintypes.DWORD, + cast(Type[COORD], WindowsCoordinates), + ctypes.POINTER(wintypes.DWORD), +] +_FillConsoleOutputAttribute.restype = wintypes.BOOL + + +def FillConsoleOutputAttribute( + std_handle: wintypes.HANDLE, + attributes: int, + length: int, + start: WindowsCoordinates, +) -> int: + """Sets the character attributes for a specified number of character cells, + beginning at the specified coordinates in a screen buffer. + + Args: + std_handle (wintypes.HANDLE): A handle to the console input buffer or the console screen buffer. + attributes (int): Integer value representing the foreground and background colours of the cells. + length (int): The number of cells to set the output attribute of. + start (WindowsCoordinates): The coordinates of the first cell whose attributes are to be set. + + Returns: + int: The number of cells whose attributes were actually set. + """ + num_cells = wintypes.DWORD(length) + style_attrs = wintypes.WORD(attributes) + num_written = wintypes.DWORD(0) + _FillConsoleOutputAttribute( + std_handle, style_attrs, num_cells, start, byref(num_written) + ) + return num_written.value + + +_SetConsoleTextAttribute = windll.kernel32.SetConsoleTextAttribute +_SetConsoleTextAttribute.argtypes = [ + wintypes.HANDLE, + wintypes.WORD, +] +_SetConsoleTextAttribute.restype = wintypes.BOOL + + +def SetConsoleTextAttribute( + std_handle: wintypes.HANDLE, attributes: wintypes.WORD +) -> bool: + """Set the colour attributes for all text written after this function is called. + + Args: + std_handle (wintypes.HANDLE): A handle to the console input buffer or the console screen buffer. + attributes (int): Integer value representing the foreground and background colours. + + + Returns: + bool: True if the attribute was set successfully, otherwise False. + """ + return bool(_SetConsoleTextAttribute(std_handle, attributes)) + + +_GetConsoleScreenBufferInfo = windll.kernel32.GetConsoleScreenBufferInfo +_GetConsoleScreenBufferInfo.argtypes = [ + wintypes.HANDLE, + ctypes.POINTER(CONSOLE_SCREEN_BUFFER_INFO), +] +_GetConsoleScreenBufferInfo.restype = wintypes.BOOL + + +def GetConsoleScreenBufferInfo( + std_handle: wintypes.HANDLE, +) -> CONSOLE_SCREEN_BUFFER_INFO: + """Retrieves information about the specified console screen buffer. + + Args: + std_handle (wintypes.HANDLE): A handle to the console input buffer or the console screen buffer. + + Returns: + CONSOLE_SCREEN_BUFFER_INFO: A CONSOLE_SCREEN_BUFFER_INFO ctype struct contain information about + screen size, cursor position, colour attributes, and more.""" + console_screen_buffer_info = CONSOLE_SCREEN_BUFFER_INFO() + _GetConsoleScreenBufferInfo(std_handle, byref(console_screen_buffer_info)) + return console_screen_buffer_info + + +_SetConsoleCursorPosition = windll.kernel32.SetConsoleCursorPosition +_SetConsoleCursorPosition.argtypes = [ + wintypes.HANDLE, + cast(Type[COORD], WindowsCoordinates), +] +_SetConsoleCursorPosition.restype = wintypes.BOOL + + +def SetConsoleCursorPosition( + std_handle: wintypes.HANDLE, coords: WindowsCoordinates +) -> bool: + """Set the position of the cursor in the console screen + + Args: + std_handle (wintypes.HANDLE): A handle to the console input buffer or the console screen buffer. + coords (WindowsCoordinates): The coordinates to move the cursor to. + + Returns: + bool: True if the function succeeds, otherwise False. + """ + return bool(_SetConsoleCursorPosition(std_handle, coords)) + + +_SetConsoleCursorInfo = windll.kernel32.SetConsoleCursorInfo +_SetConsoleCursorInfo.argtypes = [ + wintypes.HANDLE, + ctypes.POINTER(CONSOLE_CURSOR_INFO), +] +_SetConsoleCursorInfo.restype = wintypes.BOOL + + +def SetConsoleCursorInfo( + std_handle: wintypes.HANDLE, cursor_info: CONSOLE_CURSOR_INFO +) -> bool: + """Set the cursor info - used for adjusting cursor visibility and width + + Args: + std_handle (wintypes.HANDLE): A handle to the console input buffer or the console screen buffer. + cursor_info (CONSOLE_CURSOR_INFO): CONSOLE_CURSOR_INFO ctype struct containing the new cursor info. + + Returns: + bool: True if the function succeeds, otherwise False. + """ + return bool(_SetConsoleCursorInfo(std_handle, byref(cursor_info))) + + +_SetConsoleTitle = windll.kernel32.SetConsoleTitleW +_SetConsoleTitle.argtypes = [wintypes.LPCWSTR] +_SetConsoleTitle.restype = wintypes.BOOL + + +def SetConsoleTitle(title: str) -> bool: + """Sets the title of the current console window + + Args: + title (str): The new title of the console window. + + Returns: + bool: True if the function succeeds, otherwise False. + """ + return bool(_SetConsoleTitle(title)) + + +class LegacyWindowsTerm: + """This class allows interaction with the legacy Windows Console API. It should only be used in the context + of environments where virtual terminal processing is not available. However, if it is used in a Windows environment, + the entire API should work. + + Args: + file (IO[str]): The file which the Windows Console API HANDLE is retrieved from, defaults to sys.stdout. + """ + + BRIGHT_BIT = 8 + + # Indices are ANSI color numbers, values are the corresponding Windows Console API color numbers + ANSI_TO_WINDOWS = [ + 0, # black The Windows colours are defined in wincon.h as follows: + 4, # red define FOREGROUND_BLUE 0x0001 -- 0000 0001 + 2, # green define FOREGROUND_GREEN 0x0002 -- 0000 0010 + 6, # yellow define FOREGROUND_RED 0x0004 -- 0000 0100 + 1, # blue define FOREGROUND_INTENSITY 0x0008 -- 0000 1000 + 5, # magenta define BACKGROUND_BLUE 0x0010 -- 0001 0000 + 3, # cyan define BACKGROUND_GREEN 0x0020 -- 0010 0000 + 7, # white define BACKGROUND_RED 0x0040 -- 0100 0000 + 8, # bright black (grey) define BACKGROUND_INTENSITY 0x0080 -- 1000 0000 + 12, # bright red + 10, # bright green + 14, # bright yellow + 9, # bright blue + 13, # bright magenta + 11, # bright cyan + 15, # bright white + ] + + def __init__(self, file: "IO[str]") -> None: + handle = GetStdHandle(STDOUT) + self._handle = handle + default_text = GetConsoleScreenBufferInfo(handle).wAttributes + self._default_text = default_text + + self._default_fore = default_text & 7 + self._default_back = (default_text >> 4) & 7 + self._default_attrs = self._default_fore | (self._default_back << 4) + + self._file = file + self.write = file.write + self.flush = file.flush + + @property + def cursor_position(self) -> WindowsCoordinates: + """Returns the current position of the cursor (0-based) + + Returns: + WindowsCoordinates: The current cursor position. + """ + coord: COORD = GetConsoleScreenBufferInfo(self._handle).dwCursorPosition + return WindowsCoordinates(row=cast(int, coord.Y), col=cast(int, coord.X)) + + @property + def screen_size(self) -> WindowsCoordinates: + """Returns the current size of the console screen buffer, in character columns and rows + + Returns: + WindowsCoordinates: The width and height of the screen as WindowsCoordinates. + """ + screen_size: COORD = GetConsoleScreenBufferInfo(self._handle).dwSize + return WindowsCoordinates( + row=cast(int, screen_size.Y), col=cast(int, screen_size.X) + ) + + def write_text(self, text: str) -> None: + """Write text directly to the terminal without any modification of styles + + Args: + text (str): The text to write to the console + """ + self.write(text) + self.flush() + + def write_styled(self, text: str, style: Style) -> None: + """Write styled text to the terminal. + + Args: + text (str): The text to write + style (Style): The style of the text + """ + color = style.color + bgcolor = style.bgcolor + if style.reverse: + color, bgcolor = bgcolor, color + + if color: + fore = color.downgrade(ColorSystem.WINDOWS).number + fore = fore if fore is not None else 7 # Default to ANSI 7: White + if style.bold: + fore = fore | self.BRIGHT_BIT + if style.dim: + fore = fore & ~self.BRIGHT_BIT + fore = self.ANSI_TO_WINDOWS[fore] + else: + fore = self._default_fore + + if bgcolor: + back = bgcolor.downgrade(ColorSystem.WINDOWS).number + back = back if back is not None else 0 # Default to ANSI 0: Black + back = self.ANSI_TO_WINDOWS[back] + else: + back = self._default_back + + assert fore is not None + assert back is not None + + SetConsoleTextAttribute( + self._handle, attributes=ctypes.c_ushort(fore | (back << 4)) + ) + self.write_text(text) + SetConsoleTextAttribute(self._handle, attributes=self._default_text) + + def move_cursor_to(self, new_position: WindowsCoordinates) -> None: + """Set the position of the cursor + + Args: + new_position (WindowsCoordinates): The WindowsCoordinates representing the new position of the cursor. + """ + if new_position.col < 0 or new_position.row < 0: + return + SetConsoleCursorPosition(self._handle, coords=new_position) + + def erase_line(self) -> None: + """Erase all content on the line the cursor is currently located at""" + screen_size = self.screen_size + cursor_position = self.cursor_position + cells_to_erase = screen_size.col + start_coordinates = WindowsCoordinates(row=cursor_position.row, col=0) + FillConsoleOutputCharacter( + self._handle, " ", length=cells_to_erase, start=start_coordinates + ) + FillConsoleOutputAttribute( + self._handle, + self._default_attrs, + length=cells_to_erase, + start=start_coordinates, + ) + + def erase_end_of_line(self) -> None: + """Erase all content from the cursor position to the end of that line""" + cursor_position = self.cursor_position + cells_to_erase = self.screen_size.col - cursor_position.col + FillConsoleOutputCharacter( + self._handle, " ", length=cells_to_erase, start=cursor_position + ) + FillConsoleOutputAttribute( + self._handle, + self._default_attrs, + length=cells_to_erase, + start=cursor_position, + ) + + def erase_start_of_line(self) -> None: + """Erase all content from the cursor position to the start of that line""" + row, col = self.cursor_position + start = WindowsCoordinates(row, 0) + FillConsoleOutputCharacter(self._handle, " ", length=col, start=start) + FillConsoleOutputAttribute( + self._handle, self._default_attrs, length=col, start=start + ) + + def move_cursor_up(self) -> None: + """Move the cursor up a single cell""" + cursor_position = self.cursor_position + SetConsoleCursorPosition( + self._handle, + coords=WindowsCoordinates( + row=cursor_position.row - 1, col=cursor_position.col + ), + ) + + def move_cursor_down(self) -> None: + """Move the cursor down a single cell""" + cursor_position = self.cursor_position + SetConsoleCursorPosition( + self._handle, + coords=WindowsCoordinates( + row=cursor_position.row + 1, + col=cursor_position.col, + ), + ) + + def move_cursor_forward(self) -> None: + """Move the cursor forward a single cell. Wrap to the next line if required.""" + row, col = self.cursor_position + if col == self.screen_size.col - 1: + row += 1 + col = 0 + else: + col += 1 + SetConsoleCursorPosition( + self._handle, coords=WindowsCoordinates(row=row, col=col) + ) + + def move_cursor_to_column(self, column: int) -> None: + """Move cursor to the column specified by the zero-based column index, staying on the same row + + Args: + column (int): The zero-based column index to move the cursor to. + """ + row, _ = self.cursor_position + SetConsoleCursorPosition(self._handle, coords=WindowsCoordinates(row, column)) + + def move_cursor_backward(self) -> None: + """Move the cursor backward a single cell. Wrap to the previous line if required.""" + row, col = self.cursor_position + if col == 0: + row -= 1 + col = self.screen_size.col - 1 + else: + col -= 1 + SetConsoleCursorPosition( + self._handle, coords=WindowsCoordinates(row=row, col=col) + ) + + def hide_cursor(self) -> None: + """Hide the cursor""" + invisible_cursor = CONSOLE_CURSOR_INFO(dwSize=100, bVisible=0) + SetConsoleCursorInfo(self._handle, cursor_info=invisible_cursor) + + def show_cursor(self) -> None: + """Show the cursor""" + visible_cursor = CONSOLE_CURSOR_INFO(dwSize=100, bVisible=1) + SetConsoleCursorInfo(self._handle, cursor_info=visible_cursor) + + def set_title(self, title: str) -> None: + """Set the title of the terminal window + + Args: + title (str): The new title of the console window + """ + assert len(title) < 255, "Console title must be less than 255 characters" + SetConsoleTitle(title) + + +if __name__ == "__main__": + handle = GetStdHandle() + + from rich.console import Console + + console = Console() + + term = LegacyWindowsTerm(sys.stdout) + term.set_title("Win32 Console Examples") + + style = Style(color="black", bgcolor="red") + + heading = Style.parse("black on green") + + # Check colour output + console.rule("Checking colour output") + console.print("[on red]on red!") + console.print("[blue]blue!") + console.print("[yellow]yellow!") + console.print("[bold yellow]bold yellow!") + console.print("[bright_yellow]bright_yellow!") + console.print("[dim bright_yellow]dim bright_yellow!") + console.print("[italic cyan]italic cyan!") + console.print("[bold white on blue]bold white on blue!") + console.print("[reverse bold white on blue]reverse bold white on blue!") + console.print("[bold black on cyan]bold black on cyan!") + console.print("[black on green]black on green!") + console.print("[blue on green]blue on green!") + console.print("[white on black]white on black!") + console.print("[black on white]black on white!") + console.print("[#1BB152 on #DA812D]#1BB152 on #DA812D!") + + # Check cursor movement + console.rule("Checking cursor movement") + console.print() + term.move_cursor_backward() + term.move_cursor_backward() + term.write_text("went back and wrapped to prev line") + time.sleep(1) + term.move_cursor_up() + term.write_text("we go up") + time.sleep(1) + term.move_cursor_down() + term.write_text("and down") + time.sleep(1) + term.move_cursor_up() + term.move_cursor_backward() + term.move_cursor_backward() + term.write_text("we went up and back 2") + time.sleep(1) + term.move_cursor_down() + term.move_cursor_backward() + term.move_cursor_backward() + term.write_text("we went down and back 2") + time.sleep(1) + + # Check erasing of lines + term.hide_cursor() + console.print() + console.rule("Checking line erasing") + console.print("\n...Deleting to the start of the line...") + term.write_text("The red arrow shows the cursor location, and direction of erase") + time.sleep(1) + term.move_cursor_to_column(16) + term.write_styled("<", Style.parse("black on red")) + term.move_cursor_backward() + time.sleep(1) + term.erase_start_of_line() + time.sleep(1) + + console.print("\n\n...And to the end of the line...") + term.write_text("The red arrow shows the cursor location, and direction of erase") + time.sleep(1) + + term.move_cursor_to_column(16) + term.write_styled(">", Style.parse("black on red")) + time.sleep(1) + term.erase_end_of_line() + time.sleep(1) + + console.print("\n\n...Now the whole line will be erased...") + term.write_styled("I'm going to disappear!", style=Style.parse("black on cyan")) + time.sleep(1) + term.erase_line() + + term.show_cursor() + print("\n") diff --git a/rich/_windows.py b/rich/_windows.py index bac88e639b..98c7008635 100644 --- a/rich/_windows.py +++ b/rich/_windows.py @@ -1,5 +1,4 @@ import sys - from dataclasses import dataclass @@ -15,7 +14,6 @@ class WindowsConsoleFeatures: try: import ctypes - from ctypes import wintypes from ctypes import LibraryLoader if sys.platform == "win32": @@ -23,6 +21,14 @@ class WindowsConsoleFeatures: else: windll = None raise ImportError("Not windows") + + from rich._win32_console import ( + ENABLE_VIRTUAL_TERMINAL_PROCESSING, + GetConsoleMode, + GetStdHandle, + LegacyWindowsError, + ) + except (AttributeError, ImportError, ValueError): # Fallback if we can't load the Windows DLL @@ -30,31 +36,22 @@ def get_windows_console_features() -> WindowsConsoleFeatures: features = WindowsConsoleFeatures() return features - else: - STDOUT = -11 - ENABLE_VIRTUAL_TERMINAL_PROCESSING = 4 - _GetConsoleMode = windll.kernel32.GetConsoleMode - _GetConsoleMode.argtypes = [wintypes.HANDLE, wintypes.LPDWORD] - _GetConsoleMode.restype = wintypes.BOOL - - _GetStdHandle = windll.kernel32.GetStdHandle - _GetStdHandle.argtypes = [ - wintypes.DWORD, - ] - _GetStdHandle.restype = wintypes.HANDLE - def get_windows_console_features() -> WindowsConsoleFeatures: """Get windows console features. Returns: WindowsConsoleFeatures: An instance of WindowsConsoleFeatures. """ - handle = _GetStdHandle(STDOUT) - console_mode = wintypes.DWORD() - result = _GetConsoleMode(handle, console_mode) - vt = bool(result and console_mode.value & ENABLE_VIRTUAL_TERMINAL_PROCESSING) + handle = GetStdHandle() + try: + console_mode = GetConsoleMode(handle) + success = True + except LegacyWindowsError: + console_mode = 0 + success = False + vt = bool(success and console_mode & ENABLE_VIRTUAL_TERMINAL_PROCESSING) truecolor = False if vt: win_version = sys.getwindowsversion() diff --git a/rich/_windows_renderer.py b/rich/_windows_renderer.py new file mode 100644 index 0000000000..0fc2ba852a --- /dev/null +++ b/rich/_windows_renderer.py @@ -0,0 +1,56 @@ +from typing import Iterable, Sequence, Tuple, cast + +from rich._win32_console import LegacyWindowsTerm, WindowsCoordinates +from rich.segment import ControlCode, ControlType, Segment + + +def legacy_windows_render(buffer: Iterable[Segment], term: LegacyWindowsTerm) -> None: + """Makes appropriate Windows Console API calls based on the segments in the buffer. + + Args: + buffer (Iterable[Segment]): Iterable of Segments to convert to Win32 API calls. + term (LegacyWindowsTerm): Used to call the Windows Console API. + """ + for text, style, control in buffer: + if not control: + if style: + term.write_styled(text, style) + else: + term.write_text(text) + else: + control_codes: Sequence[ControlCode] = control + for control_code in control_codes: + control_type = control_code[0] + if control_type == ControlType.CURSOR_MOVE_TO: + _, x, y = cast(Tuple[ControlType, int, int], control_code) + term.move_cursor_to(WindowsCoordinates(row=y - 1, col=x - 1)) + elif control_type == ControlType.CARRIAGE_RETURN: + term.write_text("\r") + elif control_type == ControlType.HOME: + term.move_cursor_to(WindowsCoordinates(0, 0)) + elif control_type == ControlType.CURSOR_UP: + term.move_cursor_up() + elif control_type == ControlType.CURSOR_DOWN: + term.move_cursor_down() + elif control_type == ControlType.CURSOR_FORWARD: + term.move_cursor_forward() + elif control_type == ControlType.CURSOR_BACKWARD: + term.move_cursor_backward() + elif control_type == ControlType.CURSOR_MOVE_TO_COLUMN: + _, column = cast(Tuple[ControlType, int], control_code) + term.move_cursor_to_column(column - 1) + elif control_type == ControlType.HIDE_CURSOR: + term.hide_cursor() + elif control_type == ControlType.SHOW_CURSOR: + term.show_cursor() + elif control_type == ControlType.ERASE_IN_LINE: + _, mode = cast(Tuple[ControlType, int], control_code) + if mode == 0: + term.erase_end_of_line() + elif mode == 1: + term.erase_start_of_line() + elif mode == 2: + term.erase_line() + elif control_type == ControlType.SET_WINDOW_TITLE: + _, title = cast(Tuple[ControlType, str], control_code) + term.set_title(title) diff --git a/rich/align.py b/rich/align.py index 3f605a7b9d..c9b7cfa01e 100644 --- a/rich/align.py +++ b/rich/align.py @@ -18,7 +18,6 @@ AlignMethod = Literal["left", "center", "right"] VerticalAlignMethod = Literal["top", "middle", "bottom"] -AlignValues = AlignMethod # TODO: deprecate AlignValues class Align(JupyterMixin): diff --git a/rich/ansi.py b/rich/ansi.py index 92e4772edd..d4c32cef1e 100644 --- a/rich/ansi.py +++ b/rich/ansi.py @@ -1,21 +1,27 @@ -from contextlib import suppress import re -from typing import Iterable, NamedTuple +import sys +from contextlib import suppress +from typing import Iterable, NamedTuple, Optional from .color import Color from .style import Style from .text import Text -re_ansi = re.compile(r"(?:\x1b\[(.*?)m)|(?:\x1b\](.*?)\x1b\\)") -re_csi = re.compile(r"\x1B(?:[@-Z\\-_]|\[[0-?]*[ -/]*[@-~])") +re_ansi = re.compile( + r""" +(?:\x1b\](.*?)\x1b\\)| +(?:\x1b([(@-Z\\-_]|\[[0-?]*[ -/]*[@-~])) +""", + re.VERBOSE, +) class _AnsiToken(NamedTuple): """Result of ansi tokenized string.""" plain: str = "" - sgr: str = "" - osc: str = "" + sgr: Optional[str] = "" + osc: Optional[str] = "" def _ansi_tokenize(ansi_text: str) -> Iterable[_AnsiToken]: @@ -28,20 +34,22 @@ def _ansi_tokenize(ansi_text: str) -> Iterable[_AnsiToken]: AnsiToken: A named tuple of (plain, sgr, osc) """ - def remove_csi(ansi_text: str) -> str: - """Remove unknown CSI sequences.""" - return re_csi.sub("", ansi_text) - position = 0 + sgr: Optional[str] + osc: Optional[str] for match in re_ansi.finditer(ansi_text): start, end = match.span(0) - sgr, osc = match.groups() + osc, sgr = match.groups() if start > position: - yield _AnsiToken(remove_csi(ansi_text[position:start])) - yield _AnsiToken("", sgr, osc) + yield _AnsiToken(ansi_text[position:start]) + if sgr: + if sgr.endswith("m"): + yield _AnsiToken("", sgr[1:-1], osc) + else: + yield _AnsiToken("", sgr, osc) position = end if position < len(ansi_text): - yield _AnsiToken(remove_csi(ansi_text[position:])) + yield _AnsiToken(ansi_text[position:]) SGR_STYLE_MAP = { @@ -138,20 +146,21 @@ def decode_line(self, line: str) -> Text: text = Text() append = text.append line = line.rsplit("\r", 1)[-1] - for token in _ansi_tokenize(line): - plain_text, sgr, osc = token + for plain_text, sgr, osc in _ansi_tokenize(line): if plain_text: append(plain_text, self.style or None) - elif osc: + elif osc is not None: if osc.startswith("8;"): _params, semicolon, link = osc[2:].partition(";") if semicolon: self.style = self.style.update_link(link or None) - elif sgr: + elif sgr is not None: # Translate in to semi-colon separated codes # Ignore invalid codes, because we want to be lenient codes = [ - min(255, int(_code)) for _code in sgr.split(";") if _code.isdigit() + min(255, int(_code) if _code else 0) + for _code in sgr.split(";") + if _code.isdigit() or _code == "" ] iter_codes = iter(codes) for code in iter_codes: @@ -198,10 +207,10 @@ def decode_line(self, line: str) -> Text: return text -if __name__ == "__main__": # pragma: no cover - import pty +if sys.platform != "win32" and __name__ == "__main__": # pragma: no cover import io import os + import pty import sys decoder = AnsiDecoder() diff --git a/rich/box.py b/rich/box.py index de79f05932..d37c6c81c0 100644 --- a/rich/box.py +++ b/rich/box.py @@ -435,7 +435,7 @@ def get_bottom(self, widths: Iterable[int]) -> str: from rich.columns import Columns from rich.panel import Panel - from . import box + from . import box as box from .console import Console from .table import Table from .text import Text diff --git a/rich/cells.py b/rich/cells.py index 7f9c0c16c9..d7adf5a046 100644 --- a/rich/cells.py +++ b/rich/cells.py @@ -1,9 +1,13 @@ +import re from functools import lru_cache from typing import Dict, List from ._cell_widths import CELL_WIDTHS from ._lru_cache import LRUCache +# Regex to match sequence of the most common character ranges +_is_single_cell_widths = re.compile("^[\u0020-\u006f\u00a0\u02ff\u0370-\u0482]*$").match + def cell_len(text: str, _cache: Dict[str, int] = LRUCache(1024 * 4)) -> int: """Get the number of cells required to display text. @@ -12,7 +16,7 @@ def cell_len(text: str, _cache: Dict[str, int] = LRUCache(1024 * 4)) -> int: text (str): Text to display. Returns: - int: Number of cells required to display the text. + int: Get the number of cells required to display text. """ cached_result = _cache.get(text, None) if cached_result is not None: @@ -20,7 +24,7 @@ def cell_len(text: str, _cache: Dict[str, int] = LRUCache(1024 * 4)) -> int: _get_size = get_character_cell_size total_size = sum(_get_size(character) for character in text) - if len(text) <= 64: + if len(text) <= 512: _cache[text] = total_size return total_size @@ -35,12 +39,7 @@ def get_character_cell_size(character: str) -> int: Returns: int: Number of cells (0, 1 or 2) occupied by that character. """ - - codepoint = ord(character) - if 127 > codepoint > 31: - # Shortcut for ascii - return 1 - return _get_codepoint_cell_size(codepoint) + return _get_codepoint_cell_size(ord(character)) @lru_cache(maxsize=4096) @@ -74,6 +73,15 @@ def _get_codepoint_cell_size(codepoint: int) -> int: def set_cell_size(text: str, total: int) -> str: """Set the length of a string to fit within given number of cells.""" + + if _is_single_cell_widths(text): + size = len(text) + if size < total: + return text + " " * (total - size) + return text[:total] + + if not total: + return "" cell_size = cell_len(text) if cell_size == total: return text @@ -81,12 +89,12 @@ def set_cell_size(text: str, total: int) -> str: return text + " " * (total - cell_size) start = 0 - end = cell_size + end = len(text) # Binary search until we find the right size while True: pos = (start + end) // 2 - before = text[:pos] + before = text[: pos + 1] before_len = cell_len(before) if before_len == total + 1 and cell_len(before[-1]) == 2: return before[:-1] + " " @@ -105,14 +113,12 @@ def chop_cells(text: str, max_size: int, position: int = 0) -> List[str]: _get_character_cell_size = get_character_cell_size characters = [ (character, _get_character_cell_size(character)) for character in text - ][::-1] + ] total_size = position lines: List[List[str]] = [[]] append = lines[-1].append - pop = characters.pop - while characters: - character, size = pop() + for character, size in reversed(characters): if total_size + size > max_size: lines.append([character]) append = lines[-1].append @@ -120,6 +126,7 @@ def chop_cells(text: str, max_size: int, position: int = 0) -> List[str]: else: total_size += size append(character) + return ["".join(line) for line in lines] diff --git a/rich/color.py b/rich/color.py index f0fa026d64..6bca2da922 100644 --- a/rich/color.py +++ b/rich/color.py @@ -7,7 +7,7 @@ from ._palettes import EIGHT_BIT_PALETTE, STANDARD_PALETTE, WINDOWS_PALETTE from .color_triplet import ColorTriplet -from .repr import rich_repr, Result +from .repr import Result, rich_repr from .terminal_theme import DEFAULT_TERMINAL_THEME if TYPE_CHECKING: # pragma: no cover @@ -61,6 +61,7 @@ def __repr__(self) -> str: "bright_cyan": 14, "bright_white": 15, "grey0": 16, + "gray0": 16, "navy_blue": 17, "dark_blue": 18, "blue3": 20, @@ -96,6 +97,7 @@ def __repr__(self) -> str: "blue_violet": 57, "orange4": 94, "grey37": 59, + "gray37": 59, "medium_purple4": 60, "slate_blue3": 62, "royal_blue1": 63, @@ -128,7 +130,9 @@ def __repr__(self) -> str: "yellow4": 106, "wheat4": 101, "grey53": 102, + "gray53": 102, "light_slate_grey": 103, + "light_slate_gray": 103, "medium_purple": 104, "light_slate_blue": 105, "dark_olive_green3": 149, @@ -155,11 +159,13 @@ def __repr__(self) -> str: "light_salmon3": 173, "rosy_brown": 138, "grey63": 139, + "gray63": 139, "medium_purple1": 141, "gold3": 178, "dark_khaki": 143, "navajo_white3": 144, "grey69": 145, + "gray69": 145, "light_steel_blue3": 146, "light_steel_blue": 147, "yellow3": 184, @@ -189,6 +195,7 @@ def __repr__(self) -> str: "light_goldenrod2": 222, "light_yellow3": 187, "grey84": 188, + "gray84": 188, "light_steel_blue1": 189, "yellow2": 190, "dark_olive_green1": 192, @@ -223,30 +230,55 @@ def __repr__(self) -> str: "wheat1": 229, "cornsilk1": 230, "grey100": 231, + "gray100": 231, "grey3": 232, + "gray3": 232, "grey7": 233, + "gray7": 233, "grey11": 234, + "gray11": 234, "grey15": 235, + "gray15": 235, "grey19": 236, + "gray19": 236, "grey23": 237, + "gray23": 237, "grey27": 238, + "gray27": 238, "grey30": 239, + "gray30": 239, "grey35": 240, + "gray35": 240, "grey39": 241, + "gray39": 241, "grey42": 242, + "gray42": 242, "grey46": 243, + "gray46": 243, "grey50": 244, + "gray50": 244, "grey54": 245, + "gray54": 245, "grey58": 246, + "gray58": 246, "grey62": 247, + "gray62": 247, "grey66": 248, + "gray66": 248, "grey70": 249, + "gray70": 249, "grey74": 250, + "gray74": 250, "grey78": 251, + "gray78": 251, "grey82": 252, + "gray82": 252, "grey85": 253, + "gray85": 253, "grey89": 254, + "gray89": 254, "grey93": 255, + "gray93": 255, } @@ -279,8 +311,8 @@ class Color(NamedTuple): def __rich__(self) -> "Text": """Dispays the actual color if Rich printed.""" - from .text import Text from .style import Style + from .text import Text return Text.assemble( f" None: diff --git a/rich/console.py b/rich/console.py index d314d9bd8b..9e2b5fe30b 100644 --- a/rich/console.py +++ b/rich/console.py @@ -1,9 +1,10 @@ import inspect +import io import os import platform -import shutil import sys import threading +import zlib from abc import ABC, abstractmethod from dataclasses import dataclass, field from datetime import datetime @@ -12,8 +13,9 @@ from html import escape from inspect import isclass from itertools import islice +from math import ceil from time import monotonic -from types import FrameType, TracebackType, ModuleType +from types import FrameType, ModuleType, TracebackType from typing import ( IO, TYPE_CHECKING, @@ -43,9 +45,10 @@ from . import errors, themes from ._emoji_replace import _emoji_replace +from ._export_format import CONSOLE_HTML_FORMAT, CONSOLE_SVG_FORMAT from ._log_render import FormatTimeCallable, LogRender from .align import Align, AlignMethod -from .color import ColorSystem +from .color import ColorSystem, blend_rgb from .control import Control from .emoji import EmojiVariant from .highlighter import NullHighlighter, ReprHighlighter @@ -53,13 +56,14 @@ from .measure import Measurement, measure_renderables from .pager import Pager, SystemPager from .pretty import Pretty, is_expandable +from .protocol import rich_cast from .region import Region from .scope import render_scope from .screen import Screen from .segment import Segment from .style import Style, StyleType from .styled import Styled -from .terminal_theme import DEFAULT_TERMINAL_THEME, TerminalTheme +from .terminal_theme import DEFAULT_TERMINAL_THEME, SVG_EXPORT_THEME, TerminalTheme from .text import Text, TextType from .theme import Theme, ThemeStack @@ -81,27 +85,22 @@ class NoChange: NO_CHANGE = NoChange() +try: + _STDIN_FILENO = sys.__stdin__.fileno() +except Exception: + _STDIN_FILENO = 0 +try: + _STDOUT_FILENO = sys.__stdout__.fileno() +except Exception: + _STDOUT_FILENO = 1 +try: + _STDERR_FILENO = sys.__stderr__.fileno() +except Exception: + _STDERR_FILENO = 2 + +_STD_STREAMS = (_STDIN_FILENO, _STDOUT_FILENO, _STDERR_FILENO) +_STD_STREAMS_OUTPUT = (_STDOUT_FILENO, _STDERR_FILENO) -CONSOLE_HTML_FORMAT = """\ - - - - - - - - -
{code}
-
- - -""" _TERM_COLORS = {"256color": ColorSystem.EIGHT_BIT, "16color": ColorSystem.STANDARD} @@ -210,6 +209,29 @@ def update_width(self, width: int) -> "ConsoleOptions": options.min_width = options.max_width = max(0, width) return options + def update_height(self, height: int) -> "ConsoleOptions": + """Update the height, and return a copy. + + Args: + height (int): New height + + Returns: + ~ConsoleOptions: New Console options instance. + """ + options = self.copy() + options.max_height = options.height = height + return options + + def reset_height(self) -> "ConsoleOptions": + """Return a copy of the options with height set to ``None``. + + Returns: + ~ConsoleOptions: New console options instance. + """ + options = self.copy() + options.height = None + return options + def update_dimensions(self, width: int, height: int) -> "ConsoleOptions": """Update the width and height, and return a copy. @@ -222,8 +244,7 @@ def update_dimensions(self, width: int, height: int) -> "ConsoleOptions": """ options = self.copy() options.min_width = options.max_width = max(0, width) - options.height = height - options.max_height = height + options.height = options.max_height = height return options @@ -231,7 +252,9 @@ def update_dimensions(self, width: int, height: int) -> "ConsoleOptions": class RichCast(Protocol): """An object that may be 'cast' to a console renderable.""" - def __rich__(self) -> Union["ConsoleRenderable", str]: # pragma: no cover + def __rich__( + self, + ) -> Union["ConsoleRenderable", "RichCast", str]: # pragma: no cover ... @@ -245,12 +268,11 @@ def __rich_console__( ... +# A type that may be rendered by Console. RenderableType = Union[ConsoleRenderable, RichCast, str] -"""A type that may be rendered by Console.""" +# The result of calling a __rich_console__ method. RenderResult = Iterable[Union[RenderableType, Segment]] -"""The result of calling a __rich_console__ method.""" - _null_highlighter = NullHighlighter() @@ -462,9 +484,6 @@ def __rich_console__( yield from self.renderables -RenderGroup = Group # TODO: deprecate at some point - - def group(fit: bool = True) -> Callable[..., Callable[..., Group]]: """A decorator that turns an iterable of renderables in to a group. @@ -475,7 +494,7 @@ def group(fit: bool = True) -> Callable[..., Callable[..., Group]]: def decorator( method: Callable[..., Iterable[RenderableType]] ) -> Callable[..., Group]: - """Convert a method that returns an iterable of renderables in to a RenderGroup.""" + """Convert a method that returns an iterable of renderables in to a Group.""" @wraps(method) def _replace(*args: Any, **kwargs: Any) -> Group: @@ -487,16 +506,13 @@ def _replace(*args: Any, **kwargs: Any) -> Group: return decorator -render_group = group - - def _is_jupyter() -> bool: # pragma: no cover """Check if we're running in a Jupyter notebook.""" try: - get_ipython # type: ignore + get_ipython # type: ignore[name-defined] except NameError: return False - ipython = get_ipython() # type: ignore + ipython = get_ipython() # type: ignore[name-defined] shell = ipython.__class__.__name__ if "google.colab" in str(ipython.__class__) or shell == "ZMQInteractiveShell": return True # Jupyter notebook or qtconsole @@ -513,7 +529,6 @@ def _is_jupyter() -> bool: # pragma: no cover "windows": ColorSystem.WINDOWS, } - _COLOR_SYSTEMS_NAMES = {system: name for name, system in COLOR_SYSTEMS.items()} @@ -563,12 +578,6 @@ def detect_legacy_windows() -> bool: return WINDOWS and not get_windows_console_features().vt -if detect_legacy_windows(): # pragma: no cover - from colorama import init - - init(strip=False) - - class Console: """A high level console interface. @@ -589,7 +598,7 @@ class Console: no_color (Optional[bool], optional): Enabled no color mode, or None to auto detect. Defaults to None. tab_size (int, optional): Number of spaces used to replace a tab character. Defaults to 8. record (bool, optional): Boolean to enable recording of terminal output, - required to call :meth:`export_html` and :meth:`export_text`. Defaults to False. + required to call :meth:`export_html`, :meth:`export_svg`, and :meth:`export_text`. Defaults to False. markup (bool, optional): Boolean to enable :ref:`console_markup`. Defaults to True. emoji (bool, optional): Enable emoji code. Defaults to True. emoji_variant (str, optional): Optional emoji variant, either "text" or "emoji". Defaults to None. @@ -650,15 +659,6 @@ def __init__( width = width or 93 height = height or 100 - if width is None: - columns = self._environ.get("COLUMNS") - if columns is not None and columns.isdigit(): - width = int(columns) - if height is None: - lines = self._environ.get("LINES") - if lines is not None and lines.isdigit(): - height = int(lines) - self.soft_wrap = soft_wrap self._width = width self._height = height @@ -666,13 +666,25 @@ def __init__( self.record = record self._markup = markup self._emoji = emoji - self._emoji_variant = emoji_variant + self._emoji_variant: Optional[EmojiVariant] = emoji_variant self._highlight = highlight self.legacy_windows: bool = ( (detect_legacy_windows() and not self.is_jupyter) if legacy_windows is None else legacy_windows ) + if width is None: + columns = self._environ.get("COLUMNS") + if columns is not None and columns.isdigit(): + width = int(columns) - self.legacy_windows + if height is None: + lines = self._environ.get("LINES") + if lines is not None and lines.isdigit(): + height = int(lines) + + self.soft_wrap = soft_wrap + self._width = width + self._height = height self._color_system: Optional[ColorSystem] self._force_terminal = force_terminal @@ -770,7 +782,7 @@ def _detect_color_system(self) -> Optional[ColorSystem]: if color_term in ("truecolor", "24bit"): return ColorSystem.TRUECOLOR term = self._environ.get("TERM", "").strip().lower() - _term_name, _hyphen, colors = term.partition("-") + _term_name, _hyphen, colors = term.rpartition("-") color_system = _TERM_COLORS.get(colors, ColorSystem.STANDARD) return color_system @@ -808,12 +820,13 @@ def push_render_hook(self, hook: RenderHook) -> None: Args: hook (RenderHook): Render hook instance. """ - - self._render_hooks.append(hook) + with self._lock: + self._render_hooks.append(hook) def pop_render_hook(self) -> None: """Pop the last renderhook from the stack.""" - self._render_hooks.pop() + with self._lock: + self._render_hooks.pop() def __enter__(self) -> "Console": """Own context manager to enter buffer context.""" @@ -898,8 +911,21 @@ def is_terminal(self) -> bool: """ if self._force_terminal is not None: return self._force_terminal + + if hasattr(sys.stdin, "__module__") and sys.stdin.__module__.startswith( + "idlelib" + ): + # Return False for Idle which claims to be a tty but can't handle ansi codes + return False + isatty: Optional[Callable[[], bool]] = getattr(self.file, "isatty", None) - return False if isatty is None else isatty() + try: + return False if isatty is None else isatty() + except ValueError: + # in some situation (at the end of a pytest run for example) isatty() can raise + # ValueError: I/O operation on closed file + # return False because we aren't in a terminal anymore + return False @property def is_dumb_terminal(self) -> bool: @@ -935,29 +961,40 @@ def size(self) -> ConsoleDimensions: """ if self._width is not None and self._height is not None: - return ConsoleDimensions(self._width, self._height) + return ConsoleDimensions(self._width - self.legacy_windows, self._height) if self.is_dumb_terminal: return ConsoleDimensions(80, 25) width: Optional[int] = None height: Optional[int] = None + if WINDOWS: # pragma: no cover - width, height = shutil.get_terminal_size() - else: try: - width, height = os.get_terminal_size(sys.__stdin__.fileno()) - except (AttributeError, ValueError, OSError): + width, height = os.get_terminal_size() + except (AttributeError, ValueError, OSError): # Probably not a terminal + pass + else: + for file_descriptor in _STD_STREAMS: try: - width, height = os.get_terminal_size(sys.__stdout__.fileno()) + width, height = os.get_terminal_size(file_descriptor) except (AttributeError, ValueError, OSError): pass + else: + break + + columns = self._environ.get("COLUMNS") + if columns is not None and columns.isdigit(): + width = int(columns) + lines = self._environ.get("LINES") + if lines is not None and lines.isdigit(): + height = int(lines) # get_terminal_size can report 0, 0 if run from pseudo-terminal width = width or 80 height = height or 25 return ConsoleDimensions( - (width - self.legacy_windows) if self._width is None else self._width, + width - self.legacy_windows if self._width is None else self._width, height if self._height is None else self._height, ) @@ -1036,7 +1073,7 @@ def pager( is defined by the system and will typically support at least pressing a key to scroll. Args: - pager (Pager, optional): A pager object, or None to use :class:~rich.pager.SystemPager`. Defaults to None. + pager (Pager, optional): A pager object, or None to use :class:`~rich.pager.SystemPager`. Defaults to None. styles (bool, optional): Show styles in pager. Defaults to False. links (bool, optional): Show links in pager. Defaults to False. @@ -1112,7 +1149,7 @@ def show_cursor(self, show: bool = True) -> bool: Args: show (bool, optional): Set visibility of the cursor. """ - if self.is_terminal and not self.legacy_windows: + if self.is_terminal: self.control(Control.show_cursor(show)) return True return False @@ -1147,6 +1184,38 @@ def is_alt_screen(self) -> bool: """ return self._is_alt_screen + def set_window_title(self, title: str) -> bool: + """Set the title of the console terminal window. + + Warning: There is no means within Rich of "resetting" the window title to its + previous value, meaning the title you set will persist even after your application + exits. + + ``fish`` shell resets the window title before and after each command by default, + negating this issue. Windows Terminal and command prompt will also reset the title for you. + Most other shells and terminals, however, do not do this. + + Some terminals may require configuration changes before you can set the title. + Some terminals may not support setting the title at all. + + Other software (including the terminal itself, the shell, custom prompts, plugins, etc.) + may also set the terminal window title. This could result in whatever value you write + using this method being overwritten. + + Args: + title (str): The new title of the terminal window. + + Returns: + bool: True if the control code to change the terminal title was + written, otherwise False. Note that a return value of True + does not guarantee that the window title has actually changed, + since the feature may be unsupported/disabled in some terminals. + """ + if self.is_terminal: + self.control(Control.title(title)) + return True + return False + def screen( self, hide_cursor: bool = True, style: Optional[StyleType] = None ) -> "ScreenContext": @@ -1200,10 +1269,10 @@ def render( # No space to render anything. This prevents potential recursion errors. return render_iterable: RenderResult - if hasattr(renderable, "__rich__") and not isclass(renderable): - renderable = renderable.__rich__() # type: ignore + + renderable = rich_cast(renderable) if hasattr(renderable, "__rich_console__") and not isclass(renderable): - render_iterable = renderable.__rich_console__(self, _options) # type: ignore + render_iterable = renderable.__rich_console__(self, _options) # type: ignore[union-attr] elif isinstance(renderable, str): text_renderable = self.render_str( renderable, highlight=_options.highlight, markup=_options.markup @@ -1222,6 +1291,7 @@ def render( f"object {render_iterable!r} is not renderable" ) _Segment = Segment + _options = _options.reset_height() for render_output in iter_render: if isinstance(render_output, _Segment): yield render_output @@ -1257,6 +1327,11 @@ def render_lines( _rendered = self.render(renderable, render_options) if style: _rendered = Segment.apply_style(_rendered, style) + + render_height = render_options.height + if render_height is not None: + render_height = max(0, render_height) + lines = list( islice( Segment.split_and_crop_lines( @@ -1266,7 +1341,7 @@ def render_lines( pad=pad, ), None, - render_options.height, + render_height, ) ) if render_options.height is not None: @@ -1293,7 +1368,7 @@ def render_str( highlight: Optional[bool] = None, highlighter: Optional[HighlighterType] = None, ) -> "Text": - """Convert a string to a Text instance. This is is called automatically if + """Convert a string to a Text instance. This is called automatically if you print or log a string. Args: @@ -1343,7 +1418,7 @@ def render_str( def get_style( self, name: Union[str, Style], *, default: Optional[Union[Style, str]] = None ) -> Style: - """Get a Style instance by it's theme name or parse a definition. + """Get a Style instance by its theme name or parse a definition. Args: name (str): The name of a style or a style definition. @@ -1419,21 +1494,15 @@ def check_text() -> None: del text[:] for renderable in objects: - # I promise this is sane - # This detects an object which claims to have all attributes, such as MagicMock.mock_calls - if hasattr( - renderable, "jwevpw_eors4dfo6mwo345ermk7kdnfnwerwer" - ): # pragma: no cover - renderable = repr(renderable) - rich_cast = getattr(renderable, "__rich__", None) - if rich_cast: - renderable = rich_cast() + renderable = rich_cast(renderable) if isinstance(renderable, str): append_text( self.render_str( renderable, emoji=emoji, markup=markup, highlighter=_highlighter ) ) + elif isinstance(renderable, Text): + append_text(renderable) elif isinstance(renderable, ConsoleRenderable): check_text() append(renderable) @@ -1479,9 +1548,8 @@ def control(self, *control: Control) -> None: control_codes (str): Control codes, such as those that may move the cursor. """ if not self.is_dumb_terminal: - for _control in control: - self._buffer.append(_control.segment) - self._check_buffer() + with self: + self._buffer.extend(_control.segment for _control in control) def out( self, @@ -1563,7 +1631,7 @@ def print( if overflow is None: overflow = "ignore" crop = False - + render_hooks = self._render_hooks[:] with self: renderables = self._collect_renderables( objects, @@ -1574,7 +1642,7 @@ def print( markup=markup, highlight=highlight, ) - for hook in self._render_hooks: + for hook in render_hooks: renderables = hook.process_renderables(renderables) render_options = self.options.update( justify=justify, @@ -1619,28 +1687,61 @@ def print_json( json: Optional[str] = None, *, data: Any = None, - indent: int = 2, + indent: Union[None, int, str] = 2, highlight: bool = True, + skip_keys: bool = False, + ensure_ascii: bool = True, + check_circular: bool = True, + allow_nan: bool = True, + default: Optional[Callable[[Any], Any]] = None, + sort_keys: bool = False, ) -> None: """Pretty prints JSON. Output will be valid JSON. Args: json (Optional[str]): A string containing JSON. data (Any): If json is not supplied, then encode this data. - indent (int, optional): Number of spaces to indent. Defaults to 2. + indent (Union[None, int, str], optional): Number of spaces to indent. Defaults to 2. highlight (bool, optional): Enable highlighting of output: Defaults to True. + skip_keys (bool, optional): Skip keys not of a basic type. Defaults to False. + ensure_ascii (bool, optional): Escape all non-ascii characters. Defaults to False. + check_circular (bool, optional): Check for circular references. Defaults to True. + allow_nan (bool, optional): Allow NaN and Infinity values. Defaults to True. + default (Callable, optional): A callable that converts values that can not be encoded + in to something that can be JSON encoded. Defaults to None. + sort_keys (bool, optional): Sort dictionary keys. Defaults to False. """ from rich.json import JSON if json is None: - json_renderable = JSON.from_data(data, indent=indent, highlight=highlight) + json_renderable = JSON.from_data( + data, + indent=indent, + highlight=highlight, + skip_keys=skip_keys, + ensure_ascii=ensure_ascii, + check_circular=check_circular, + allow_nan=allow_nan, + default=default, + sort_keys=sort_keys, + ) else: if not isinstance(json, str): raise TypeError( f"json must be str. Did you mean print_json(data={json!r}) ?" ) - json_renderable = JSON(json, indent=indent, highlight=highlight) - self.print(json_renderable) + json_renderable = JSON( + json, + indent=indent, + highlight=highlight, + skip_keys=skip_keys, + ensure_ascii=ensure_ascii, + check_circular=check_circular, + allow_nan=allow_nan, + default=default, + sort_keys=sort_keys, + ) + self.print(json_renderable, soft_wrap=True) def update_screen( self, @@ -1710,7 +1811,7 @@ def print_exception( """Prints a rich render of the last exception and traceback. Args: - width (Optional[int], optional): Number of characters used to render code. Defaults to 88. + width (Optional[int], optional): Number of characters used to render code. Defaults to 100. extra_lines (int, optional): Additional lines of code to render. Defaults to 3. theme (str, optional): Override pygments theme used in traceback word_wrap (bool, optional): Enable word wrapping of long lines. Defaults to False. @@ -1756,7 +1857,7 @@ def _caller_frame_info( frame = currentframe() if frame is not None: # Use the faster currentframe where implemented - while offset and frame: + while offset and frame is not None: frame = frame.f_back offset -= 1 assert frame is not None @@ -1798,6 +1899,8 @@ def log( if not objects: objects = (NewLine(),) + render_hooks = self._render_hooks[:] + with self: renderables = self._collect_renderables( objects, @@ -1832,7 +1935,7 @@ def log( link_path=link_path, ) ] - for hook in self._render_hooks: + for hook in render_hooks: renderables = hook.process_renderables(renderables) new_segments: List[Segment] = [] extend = new_segments.extend @@ -1847,43 +1950,72 @@ def log( buffer_extend(line) def _check_buffer(self) -> None: - """Check if the buffer may be rendered.""" + """Check if the buffer may be rendered. Render it if it can (e.g. Console.quiet is False) + Rendering is supported on Windows, Unix and Jupyter environments. For + legacy Windows consoles, the win32 API is called directly. + This method will also record what it renders if recording is enabled via Console.record. + """ if self.quiet: del self._buffer[:] return with self._lock: if self._buffer_index == 0: + + if self.record: + with self._record_buffer_lock: + self._record_buffer.extend(self._buffer[:]) + if self.is_jupyter: # pragma: no cover from .jupyter import display display(self._buffer, self._render_buffer(self._buffer[:])) del self._buffer[:] else: - text = self._render_buffer(self._buffer[:]) - del self._buffer[:] - if text: - try: - if WINDOWS: # pragma: no cover - # https://bugs.python.org/issue37871 - write = self.file.write - for line in text.splitlines(True): + if WINDOWS: + use_legacy_windows_render = False + if self.legacy_windows: + try: + use_legacy_windows_render = ( + self.file.fileno() in _STD_STREAMS_OUTPUT + ) + except (ValueError, io.UnsupportedOperation): + pass + + if use_legacy_windows_render: + from rich._win32_console import LegacyWindowsTerm + from rich._windows_renderer import legacy_windows_render + + legacy_windows_render( + self._buffer[:], LegacyWindowsTerm(self.file) + ) + else: + # Either a non-std stream on legacy Windows, or modern Windows. + text = self._render_buffer(self._buffer[:]) + # https://bugs.python.org/issue37871 + write = self.file.write + for line in text.splitlines(True): + try: write(line) - else: - self.file.write(text) - self.file.flush() + except UnicodeEncodeError as error: + error.reason = f"{error.reason}\n*** You may need to add PYTHONIOENCODING=utf-8 to your environment ***" + raise + else: + text = self._render_buffer(self._buffer[:]) + try: + self.file.write(text) except UnicodeEncodeError as error: error.reason = f"{error.reason}\n*** You may need to add PYTHONIOENCODING=utf-8 to your environment ***" raise + self.file.flush() + del self._buffer[:] + def _render_buffer(self, buffer: Iterable[Segment]) -> str: """Render buffered output, and clear buffer.""" output: List[str] = [] append = output.append color_system = self._color_system legacy_windows = self.legacy_windows - if self.record: - with self._record_buffer_lock: - self._record_buffer.extend(buffer) not_terminal = not self.is_terminal if self.no_color and color_system: buffer = Segment.remove_color(buffer) @@ -1913,6 +2045,8 @@ def input( ) -> str: """Displays a prompt and waits for input from the user. The prompt may contain color / style. + It works in the same way as Python's builtin :func:`input` function and provides elaborate line editing and history features if Python's builtin :mod:`readline` module is previously loaded. + Args: prompt (Union[str, Text]): Text to render in the prompt. markup (bool, optional): Enable console markup (requires a str prompt). Defaults to True. @@ -1923,23 +2057,15 @@ def input( Returns: str: Text read from stdin. """ - prompt_str = "" if prompt: - with self.capture() as capture: - self.print(prompt, markup=markup, emoji=emoji, end="") - prompt_str = capture.get() - if self.legacy_windows: - # Legacy windows doesn't like ANSI codes in getpass or input (colorama bug)? - self.file.write(prompt_str) - prompt_str = "" + self.print(prompt, markup=markup, emoji=emoji, end="") if password: - result = getpass(prompt_str, stream=stream) + result = getpass("", stream=stream) else: if stream: - self.file.write(prompt_str) result = stream.readline() else: - result = input(prompt_str) + result = input() return result def export_text(self, *, clear: bool = True, styles: bool = False) -> str: @@ -2001,8 +2127,8 @@ def export_html( Args: theme (TerminalTheme, optional): TerminalTheme object containing console colors. clear (bool, optional): Clear record buffer after exporting. Defaults to ``True``. - code_format (str, optional): Format string to render HTML, should contain {foreground} - {background} and {code}. + code_format (str, optional): Format string to render HTML. In addition to '{foreground}', + '{background}', and '{code}', should contain '{stylesheet}' if inline_styles is ``False``. inline_styles (bool, optional): If ``True`` styles will be inlined in to spans, which makes files larger but easier to cut and paste markup. If ``False``, styles will be embedded in a style tag. Defaults to False. @@ -2078,8 +2204,8 @@ def save_html( path (str): Path to write html file. theme (TerminalTheme, optional): TerminalTheme object containing console colors. clear (bool, optional): Clear record buffer after exporting. Defaults to ``True``. - code_format (str, optional): Format string to render HTML, should contain {foreground} - {background} and {code}. + code_format (str, optional): Format string to render HTML. In addition to '{foreground}', + '{background}', and '{code}', should contain '{stylesheet}' if inline_styles is ``False``. inline_styles (bool, optional): If ``True`` styles will be inlined in to spans, which makes files larger but easier to cut and paste markup. If ``False``, styles will be embedded in a style tag. Defaults to False. @@ -2094,9 +2220,286 @@ def save_html( with open(path, "wt", encoding="utf-8") as write_file: write_file.write(html) + def export_svg( + self, + *, + title: str = "Rich", + theme: Optional[TerminalTheme] = None, + clear: bool = True, + code_format: str = CONSOLE_SVG_FORMAT, + ) -> str: + """ + Generate an SVG from the console contents (requires record=True in Console constructor). + + Args: + path (str): The path to write the SVG to. + title (str): The title of the tab in the output image + theme (TerminalTheme, optional): The ``TerminalTheme`` object to use to style the terminal + clear (bool, optional): Clear record buffer after exporting. Defaults to ``True`` + code_format (str): Format string used to generate the SVG. Rich will inject a number of variables + into the string in order to form the final SVG output. The default template used and the variables + injected by Rich can be found by inspecting the ``console.CONSOLE_SVG_FORMAT`` variable. + """ + + from rich.cells import cell_len + + style_cache: Dict[Style, str] = {} + + def get_svg_style(style: Style) -> str: + """Convert a Style to CSS rules for SVG.""" + if style in style_cache: + return style_cache[style] + css_rules = [] + color = ( + _theme.foreground_color + if (style.color is None or style.color.is_default) + else style.color.get_truecolor(_theme) + ) + bgcolor = ( + _theme.background_color + if (style.bgcolor is None or style.bgcolor.is_default) + else style.bgcolor.get_truecolor(_theme) + ) + if style.reverse: + color, bgcolor = bgcolor, color + if style.dim: + color = blend_rgb(color, bgcolor, 0.4) + css_rules.append(f"fill: {color.hex}") + if style.bold: + css_rules.append("font-weight: bold") + if style.italic: + css_rules.append("font-style: italic;") + if style.underline: + css_rules.append("text-decoration: underline;") + if style.strike: + css_rules.append("text-decoration: line-through;") + + css = ";".join(css_rules) + style_cache[style] = css + return css + + _theme = theme or SVG_EXPORT_THEME + + width = self.width + char_height = 20 + char_width = char_height * 0.61 + line_height = char_height * 1.22 + + margin_top = 1 + margin_right = 1 + margin_bottom = 1 + margin_left = 1 + + padding_top = 40 + padding_right = 8 + padding_bottom = 8 + padding_left = 8 + + padding_width = padding_left + padding_right + padding_height = padding_top + padding_bottom + margin_width = margin_left + margin_right + margin_height = margin_top + margin_bottom + + text_backgrounds: List[str] = [] + text_group: List[str] = [] + classes: Dict[str, int] = {} + style_no = 1 + + def escape_text(text: str) -> str: + """HTML escape text and replace spaces with nbsp.""" + return escape(text).replace(" ", " ") + + def make_tag( + name: str, content: Optional[str] = None, **attribs: object + ) -> str: + """Make a tag from name, content, and attributes.""" + + def stringify(value: object) -> str: + if isinstance(value, (float)): + return format(value, "g") + return str(value) + + tag_attribs = " ".join( + f'{k.lstrip("_").replace("_", "-")}="{stringify(v)}"' + for k, v in attribs.items() + ) + return ( + f"<{name} {tag_attribs}>{content}" + if content + else f"<{name} {tag_attribs}/>" + ) + + with self._record_buffer_lock: + segments = list( + Segment.filter_control( + Segment.simplify(self._record_buffer), + ) + ) + if clear: + self._record_buffer.clear() + + unique_id = "terminal-" + str( + zlib.adler32( + ("".join(segment.text for segment in segments)).encode( + "utf-8", "ignore" + ) + + title.encode("utf-8", "ignore") + ) + ) + y = 0 + for y, line in enumerate(Segment.split_and_crop_lines(segments, length=width)): + x = 0 + for text, style, _control in line: + style = style or Style() + rules = get_svg_style(style) + if rules not in classes: + classes[rules] = style_no + style_no += 1 + class_name = f"r{classes[rules]}" + + if style.reverse: + has_background = True + background = ( + _theme.foreground_color.hex + if style.color is None + else style.color.get_truecolor(_theme).hex + ) + else: + bgcolor = style.bgcolor + has_background = bgcolor is not None and not bgcolor.is_default + background = ( + _theme.background_color.hex + if style.bgcolor is None + else style.bgcolor.get_truecolor(_theme).hex + ) + + text_length = cell_len(text) + if has_background: + text_backgrounds.append( + make_tag( + "rect", + fill=background, + x=x * char_width, + y=y * line_height + 1.5, + width=char_width * text_length, + height=line_height + 0.25, + ) + ) + + if text != " " * len(text): + text_group.append( + make_tag( + "text", + escape_text(text), + _class=f"{unique_id}-{class_name}", + x=x * char_width, + y=y * line_height + char_height, + textLength=char_width * len(text), + ) + ) + x += cell_len(text) + + styles = "\n".join( + f".{unique_id}-r{rule_no} {{ {css} }}" for css, rule_no in classes.items() + ) + backgrounds = "".join(text_backgrounds) + matrix = "".join(text_group) + + terminal_width = ceil(width * char_width + padding_width) + terminal_height = (y + 1) * line_height + padding_height + chrome = make_tag( + "rect", + fill=_theme.background_color.hex, + stroke="rgba(255,255,255,0.35)", + stroke_width="1", + x=margin_left, + y=margin_top, + width=terminal_width, + height=terminal_height, + rx=8, + ) + + title_color = _theme.foreground_color.hex + if title: + chrome += make_tag( + "text", + escape_text(title), + _class=f"{unique_id}-title", + fill=title_color, + text_anchor="middle", + x=terminal_width // 2, + y=margin_top + char_height + 6, + ) + chrome += f""" + + + + + + """ + + svg = code_format.format( + unique_id=unique_id, + char_width=char_width, + char_height=char_height, + line_height=line_height, + terminal_width=char_width * width, + terminal_height=(y + 1) * line_height, + width=terminal_width + margin_width, + height=terminal_height + margin_height, + terminal_x=margin_left + padding_left, + terminal_y=margin_top + padding_top, + styles=styles, + chrome=chrome, + backgrounds=backgrounds, + matrix=matrix, + ) + return svg + + def save_svg( + self, + path: str, + *, + title: str = "Rich", + theme: Optional[TerminalTheme] = None, + clear: bool = True, + code_format: str = CONSOLE_SVG_FORMAT, + ) -> None: + """Generate an SVG file from the console contents (requires record=True in Console constructor). + + Args: + path (str): The path to write the SVG to. + title (str): The title of the tab in the output image + theme (TerminalTheme, optional): The ``TerminalTheme`` object to use to style the terminal + clear (bool, optional): Clear record buffer after exporting. Defaults to ``True`` + code_format (str): Format string used to generate the SVG. Rich will inject a number of variables + into the string in order to form the final SVG output. The default template used and the variables + injected by Rich can be found by inspecting the ``console.CONSOLE_SVG_FORMAT`` variable. + """ + svg = self.export_svg( + title=title, + theme=theme, + clear=clear, + code_format=code_format, + ) + with open(path, "wt", encoding="utf-8") as write_file: + write_file.write(svg) + + +def _svg_hash(svg_main_code: str) -> str: + """Returns a unique hash for the given SVG main code. + + Args: + svg_main_code (str): The content we're going to inject in the SVG envelope. + + Returns: + str: a hash of the given content + """ + return str(zlib.adler32(svg_main_code.encode())) + if __name__ == "__main__": # pragma: no cover - console = Console() + console = Console(record=True) console.log( "JSONRPC [i]request[/i]", @@ -2149,4 +2552,3 @@ def save_html( }, } ) - console.log("foo") diff --git a/rich/control.py b/rich/control.py index c98d0d7d98..747311fcea 100644 --- a/rich/control.py +++ b/rich/control.py @@ -1,4 +1,5 @@ -from typing import Any, Callable, Dict, Iterable, List, TYPE_CHECKING, Union +import time +from typing import TYPE_CHECKING, Callable, Dict, Iterable, List, Union from .segment import ControlCode, ControlType, Segment @@ -30,6 +31,7 @@ ControlType.CURSOR_MOVE_TO_COLUMN: lambda param: f"\x1b[{param+1}G", ControlType.ERASE_IN_LINE: lambda param: f"\x1b[{param}K", ControlType.CURSOR_MOVE_TO: lambda x, y: f"\x1b[{y+1};{x+1}H", + ControlType.SET_WINDOW_TITLE: lambda title: f"\x1b]0;{title}\x07", } @@ -147,6 +149,15 @@ def alt_screen(cls, enable: bool) -> "Control": else: return cls(ControlType.DISABLE_ALT_SCREEN) + @classmethod + def title(cls, title: str) -> "Control": + """Set the terminal window title + + Args: + title (str): The new terminal window title + """ + return cls((ControlType.SET_WINDOW_TITLE, title)) + def __str__(self) -> str: return self.segment.text @@ -172,4 +183,11 @@ def strip_control_codes( if __name__ == "__main__": # pragma: no cover - print(strip_control_codes("hello\rWorld")) + from rich.console import Console + + console = Console() + console.print("Look at the title of your terminal window ^") + # console.print(Control((ControlType.SET_WINDOW_TITLE, "Hello, world!"))) + for i in range(10): + console.set_window_title("🚀 Loading" + "." * i) + time.sleep(0.5) diff --git a/rich/default_styles.py b/rich/default_styles.py index 355f9df852..1969bb787b 100644 --- a/rich/default_styles.py +++ b/rich/default_styles.py @@ -2,7 +2,6 @@ from .style import Style - DEFAULT_STYLES: Dict[str, Style] = { "none": Style.null(), "reset": Style( @@ -41,6 +40,7 @@ "inspect.attr.dunder": Style(color="yellow", italic=True, dim=True), "inspect.callable": Style(bold=True, color="red"), "inspect.def": Style(italic=True, color="bright_cyan"), + "inspect.class": Style(italic=True, color="bright_cyan"), "inspect.error": Style(bold=True, color="red"), "inspect.equals": Style(), "inspect.help": Style(color="cyan"), @@ -78,6 +78,7 @@ "repr.attrib_equal": Style(bold=True), "repr.attrib_value": Style(color="magenta", italic=False), "repr.number": Style(color="cyan", bold=True, italic=False), + "repr.number_complex": Style(color="cyan", bold=True, italic=False), # same "repr.bool_true": Style(color="bright_green", italic=True), "repr.bool_false": Style(color="bright_red", italic=True), "repr.none": Style(color="magenta", italic=True), @@ -157,3 +158,27 @@ "markdown.link": Style(color="bright_blue"), "markdown.link_url": Style(color="blue"), } + + +if __name__ == "__main__": # pragma: no cover + import argparse + import io + + from rich.console import Console + from rich.table import Table + from rich.text import Text + + parser = argparse.ArgumentParser() + parser.add_argument("--html", action="store_true", help="Export as HTML table") + args = parser.parse_args() + html: bool = args.html + console = Console(record=True, width=70, file=io.StringIO()) if html else Console() + + table = Table("Name", "Styling") + + for style_name, style in DEFAULT_STYLES.items(): + table.add_row(Text(style_name, style=style), str(style)) + + console.print(table) + if html: + print(console.export_html(inline_styles=True)) diff --git a/rich/diagnose.py b/rich/diagnose.py index 455e11dc02..09c4e0622b 100644 --- a/rich/diagnose.py +++ b/rich/diagnose.py @@ -1,6 +1,35 @@ -if __name__ == "__main__": # pragma: no cover - from rich.console import Console - from rich import inspect +import os +import platform + +from rich import inspect +from rich.console import Console, get_windows_console_features +from rich.panel import Panel +from rich.pretty import Pretty + +def report() -> None: # pragma: no cover + """Print a report to the terminal with debugging information""" console = Console() inspect(console) + features = get_windows_console_features() + inspect(features) + + env_names = ( + "TERM", + "COLORTERM", + "CLICOLOR", + "NO_COLOR", + "TERM_PROGRAM", + "COLUMNS", + "LINES", + "JPY_PARENT_PID", + "VSCODE_VERBOSE_LOGGING", + ) + env = {name: os.getenv(name) for name in env_names} + console.print(Panel.fit((Pretty(env)), title="[b]Environment Variables")) + + console.print(f'platform="{platform.system()}"') + + +if __name__ == "__main__": # pragma: no cover + report() diff --git a/rich/file_proxy.py b/rich/file_proxy.py index 99a6922cb4..cc69f22f3c 100644 --- a/rich/file_proxy.py +++ b/rich/file_proxy.py @@ -1,5 +1,5 @@ import io -from typing import List, Any, IO, TYPE_CHECKING +from typing import IO, TYPE_CHECKING, Any, List from .ansi import AnsiDecoder from .text import Text @@ -44,11 +44,11 @@ def write(self, text: str) -> int: output = Text("\n").join( self.__ansi_decoder.decode_line(line) for line in lines ) - console.print(output, markup=False, emoji=False, highlight=False) + console.print(output) return len(text) def flush(self) -> None: - buffer = self.__buffer - if buffer: - self.__console.print("".join(buffer)) - del buffer[:] + output = "".join(self.__buffer) + if output: + self.__console.print(output) + del self.__buffer[:] diff --git a/rich/filesize.py b/rich/filesize.py index b3a0996b05..61be47510f 100644 --- a/rich/filesize.py +++ b/rich/filesize.py @@ -13,7 +13,7 @@ __all__ = ["decimal"] -from typing import Iterable, List, Tuple, Optional +from typing import Iterable, List, Optional, Tuple def _to_str( @@ -30,7 +30,7 @@ def _to_str( return "{:,} bytes".format(size) for i, suffix in enumerate(suffixes, 2): # noqa: B007 - unit = base ** i + unit = base**i if size < unit: break return "{:,.{precision}f}{separator}{}".format( @@ -44,7 +44,7 @@ def _to_str( def pick_unit_and_suffix(size: int, suffixes: List[str], base: int) -> Tuple[int, str]: """Pick a suffix and base for the given size.""" for i, suffix in enumerate(suffixes): - unit = base ** i + unit = base**i if size < unit * base: break return unit, suffix diff --git a/rich/highlighter.py b/rich/highlighter.py index 9e71d00531..193261c4c1 100644 --- a/rich/highlighter.py +++ b/rich/highlighter.py @@ -1,7 +1,8 @@ +import re from abc import ABC, abstractmethod from typing import List, Union -from .text import Text +from .text import Span, Text def _combine_regex(*regexes: str) -> str: @@ -81,22 +82,23 @@ class ReprHighlighter(RegexHighlighter): base_style = "repr." highlights = [ - r"(?P\<)(?P[\w\-\.\:]*)(?P[\w\W]*?)(?P\>)", - r"(?P[\w_]{1,50})=(?P\"?[\w_]+\"?)?", - r"(?P[\{\[\(\)\]\}])", + r"(?P<)(?P[-\w.:|]*)(?P[\w\W]*?)(?P>)", + r'(?P[\w_]{1,50})=(?P"?[\w_]+"?)?', + r"(?P[][{}()])", _combine_regex( r"(?P[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3})", r"(?P([A-Fa-f0-9]{1,4}::?){1,7}[A-Fa-f0-9]{1,4})", r"(?P(?:[0-9A-Fa-f]{1,2}-){7}[0-9A-Fa-f]{1,2}|(?:[0-9A-Fa-f]{1,2}:){7}[0-9A-Fa-f]{1,2}|(?:[0-9A-Fa-f]{4}\.){3}[0-9A-Fa-f]{4})", r"(?P(?:[0-9A-Fa-f]{1,2}-){5}[0-9A-Fa-f]{1,2}|(?:[0-9A-Fa-f]{1,2}:){5}[0-9A-Fa-f]{1,2}|(?:[0-9A-Fa-f]{4}\.){2}[0-9A-Fa-f]{4})", - r"(?P[\w\.]*?)\(", + r"(?P[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12})", + r"(?P[\w.]*?)\(", r"\b(?PTrue)\b|\b(?PFalse)\b|\b(?PNone)\b", r"(?P\.\.\.)", - r"(?P(?\B(\/[\w\.\-\_\+]+)*\/)(?P[\w\.\-\_\+]*)?", - r"(?b?\'\'\'.*?(?[a-fA-F0-9]{8}\-[a-fA-F0-9]{4}\-[a-fA-F0-9]{4}\-[a-fA-F0-9]{4}\-[a-fA-F0-9]{12})", - r"(?P(https|http|ws|wss):\/\/[0-9a-zA-Z\$\-\_\+\!`\(\)\,\.\?\/\;\:\&\=\%\#]*)", + r"(?P(?(?\B(/[-\w._+]+)*\/)(?P[-\w._+]*)?", + r"(?b?'''.*?(?(file|https|http|ws|wss)://[-0-9a-zA-Z$_+!`(),.?/;:&=%#]*)", ), ] @@ -104,17 +106,39 @@ class ReprHighlighter(RegexHighlighter): class JSONHighlighter(RegexHighlighter): """Highlights JSON""" + # Captures the start and end of JSON strings, handling escaped quotes + JSON_STR = r"(?b?\".*?(?[\{\[\(\)\]\}])", r"\b(?Ptrue)\b|\b(?Pfalse)\b|\b(?Pnull)\b", r"(?P(?b?\".*?(?b?\".*?(? None: + super().highlight(text) + + # Additional work to handle highlighting JSON keys + plain = text.plain + append = text.spans.append + whitespace = self.JSON_WHITESPACE + for match in re.finditer(self.JSON_STR, plain): + start, end = match.span() + cursor = end + while cursor < len(plain): + char = plain[cursor] + cursor += 1 + if char == ":": + append(Span(start, end, "json.key")) + elif char in whitespace: + continue + break + if __name__ == "__main__": # pragma: no cover from .console import Console @@ -145,3 +169,6 @@ class JSONHighlighter(RegexHighlighter): console.print( "127.0.1.1 bar 192.168.1.4 2001:0db8:85a3:0000:0000:8a2e:0370:7334 foo" ) + import json + + console.print_json(json.dumps(obj={"name": "apple", "count": 1}), indent=None) diff --git a/rich/json.py b/rich/json.py index c51514f482..1fc115a952 100644 --- a/rich/json.py +++ b/rich/json.py @@ -1,5 +1,5 @@ from json import loads, dumps -from typing import Any +from typing import Any, Callable, Optional, Union from .text import Text from .highlighter import JSONHighlighter, NullHighlighter @@ -10,30 +10,87 @@ class JSON: Args: json (str): JSON encoded data. - indent (int, optional): Number of characters to indent by. Defaults to True. - highlight (bool, optional): Enable highlighting. Defaults to 2. + indent (Union[None, int, str], optional): Number of characters to indent by. Defaults to 2. + highlight (bool, optional): Enable highlighting. Defaults to True. + skip_keys (bool, optional): Skip keys not of a basic type. Defaults to False. + ensure_ascii (bool, optional): Escape all non-ascii characters. Defaults to False. + check_circular (bool, optional): Check for circular references. Defaults to True. + allow_nan (bool, optional): Allow NaN and Infinity values. Defaults to True. + default (Callable, optional): A callable that converts values that can not be encoded + in to something that can be JSON encoded. Defaults to None. + sort_keys (bool, optional): Sort dictionary keys. Defaults to False. """ - def __init__(self, json: str, indent: int = 2, highlight: bool = True) -> None: + def __init__( + self, + json: str, + indent: Union[None, int, str] = 2, + highlight: bool = True, + skip_keys: bool = False, + ensure_ascii: bool = True, + check_circular: bool = True, + allow_nan: bool = True, + default: Optional[Callable[[Any], Any]] = None, + sort_keys: bool = False, + ) -> None: data = loads(json) - json = dumps(data, indent=indent) + json = dumps( + data, + indent=indent, + skipkeys=skip_keys, + ensure_ascii=ensure_ascii, + check_circular=check_circular, + allow_nan=allow_nan, + default=default, + sort_keys=sort_keys, + ) highlighter = JSONHighlighter() if highlight else NullHighlighter() self.text = highlighter(json) self.text.no_wrap = True self.text.overflow = None @classmethod - def from_data(cls, data: Any, indent: int = 2, highlight: bool = True) -> "JSON": + def from_data( + cls, + data: Any, + indent: Union[None, int, str] = 2, + highlight: bool = True, + skip_keys: bool = False, + ensure_ascii: bool = True, + check_circular: bool = True, + allow_nan: bool = True, + default: Optional[Callable[[Any], Any]] = None, + sort_keys: bool = False, + ) -> "JSON": """Encodes a JSON object from arbitrary data. + Args: + data (Any): An object that may be encoded in to JSON + indent (Union[None, int, str], optional): Number of characters to indent by. Defaults to 2. + highlight (bool, optional): Enable highlighting. Defaults to True. + default (Callable, optional): Optional callable which will be called for objects that cannot be serialized. Defaults to None. + skip_keys (bool, optional): Skip keys not of a basic type. Defaults to False. + ensure_ascii (bool, optional): Escape all non-ascii characters. Defaults to False. + check_circular (bool, optional): Check for circular references. Defaults to True. + allow_nan (bool, optional): Allow NaN and Infinity values. Defaults to True. + default (Callable, optional): A callable that converts values that can not be encoded + in to something that can be JSON encoded. Defaults to None. + sort_keys (bool, optional): Sort dictionary keys. Defaults to False. + Returns: - Args: - data (Any): An object that may be encoded in to JSON - indent (int, optional): Number of characters to indent by. Defaults to 2. - highlight (bool, optional): Enable highlighting. Defaults to True. + JSON: New JSON object from the given data. """ json_instance: "JSON" = cls.__new__(cls) - json = dumps(data, indent=indent) + json = dumps( + data, + indent=indent, + skipkeys=skip_keys, + ensure_ascii=ensure_ascii, + check_circular=check_circular, + allow_nan=allow_nan, + default=default, + sort_keys=sort_keys, + ) highlighter = JSONHighlighter() if highlight else NullHighlighter() json_instance.text = highlighter(json) json_instance.text.no_wrap = True diff --git a/rich/jupyter.py b/rich/jupyter.py index 7cdcc9cabc..7608bd0177 100644 --- a/rich/jupyter.py +++ b/rich/jupyter.py @@ -1,9 +1,14 @@ -from typing import Any, Dict, Iterable, List +from typing import Any, Dict, Iterable, List, TYPE_CHECKING, Sequence + +if TYPE_CHECKING: + from rich.console import ConsoleRenderable from . import get_console from .segment import Segment from .terminal_theme import DEFAULT_TERMINAL_THEME +if TYPE_CHECKING: + from rich.console import ConsoleRenderable JUPYTER_HTML_FORMAT = """\
{code}
@@ -18,7 +23,7 @@ def __init__(self, html: str, text: str) -> None: self.text = text def _repr_mimebundle_( - self, include: Iterable[str], exclude: Iterable[str], **kwargs: Any + self, include: Sequence[str], exclude: Sequence[str], **kwargs: Any ) -> Dict[str, str]: data = {"text/plain": self.text, "text/html": self.html} if include: @@ -34,10 +39,13 @@ class JupyterMixin: __slots__ = () def _repr_mimebundle_( - self, include: Iterable[str], exclude: Iterable[str], **kwargs: Any + self: "ConsoleRenderable", + include: Sequence[str], + exclude: Sequence[str], + **kwargs: Any, ) -> Dict[str, str]: console = get_console() - segments = list(console.render(self, console.options)) # type: ignore + segments = list(console.render(self, console.options)) html = _render_segments(segments) text = console._render_buffer(segments) data = {"text/plain": text, "text/html": html} @@ -64,7 +72,7 @@ def escape(text: str) -> str: rule = style.get_html_style(theme) text = f'{text}' if rule else text if style.link: - text = f'{text}' + text = f'{text}' append_fragment(text) code = "".join(fragments) @@ -75,11 +83,16 @@ def escape(text: str) -> str: def display(segments: Iterable[Segment], text: str) -> None: """Render segments to Jupyter.""" - from IPython.display import display as ipython_display - html = _render_segments(segments) jupyter_renderable = JupyterRenderable(html, text) - ipython_display(jupyter_renderable) + try: + from IPython.display import display as ipython_display + + ipython_display(jupyter_renderable) + except ModuleNotFoundError: + # Handle the case where the Console has force_jupyter=True, + # but IPython is not installed. + pass def print(*args: Any, **kwargs: Any) -> None: diff --git a/rich/layout.py b/rich/layout.py index e25ced675c..2030c04018 100644 --- a/rich/layout.py +++ b/rich/layout.py @@ -73,6 +73,7 @@ def __rich_console__( style=self.style, title=self.highlighter(title), border_style="blue", + height=height, ) @@ -299,7 +300,7 @@ def add_split(self, *layouts: Union["Layout", RenderableType]) -> None: self._children.extend(_layouts) def split_row(self, *layouts: Union["Layout", RenderableType]) -> None: - """Split the layout in tow a row (Layouts side by side). + """Split the layout in to a row (layouts side by side). Args: *layouts (Layout): Positional arguments should be (sub) Layout instances. diff --git a/rich/live.py b/rich/live.py index f2ba64a7eb..6db5b605f9 100644 --- a/rich/live.py +++ b/rich/live.py @@ -130,35 +130,29 @@ def stop(self) -> None: return self.console.clear_live() self._started = False - try: - if self.auto_refresh and self._refresh_thread is not None: - self._refresh_thread.stop() - # allow it to fully render on the last even if overflow - self.vertical_overflow = "visible" - if not self._alt_screen and not self.console.is_jupyter: - self.refresh() - - finally: - self._disable_redirect_io() - self.console.pop_render_hook() - if not self._alt_screen and self.console.is_terminal: - self.console.line() - self.console.show_cursor(True) - if self._alt_screen: - self.console.set_alt_screen(False) - - if self._refresh_thread is not None: - self._refresh_thread.join() - self._refresh_thread = None - if self.transient and not self._alt_screen: - self.console.control(self._live_render.restore_cursor()) - if self.ipy_widget is not None: # pragma: no cover - if self.transient: - self.ipy_widget.close() - else: - # jupyter last refresh must occur after console pop render hook - # i am not sure why this is needed - self.refresh() + + if self.auto_refresh and self._refresh_thread is not None: + self._refresh_thread.stop() + self._refresh_thread = None + # allow it to fully render on the last even if overflow + self.vertical_overflow = "visible" + with self.console: + try: + if not self._alt_screen and not self.console.is_jupyter: + self.refresh() + finally: + self._disable_redirect_io() + self.console.pop_render_hook() + if not self._alt_screen and self.console.is_terminal: + self.console.line() + self.console.show_cursor(True) + if self._alt_screen: + self.console.set_alt_screen(False) + + if self.transient and not self._alt_screen: + self.console.control(self._live_render.restore_cursor()) + if self.ipy_widget is not None and self.transient: + self.ipy_widget.close() # pragma: no cover def __enter__(self) -> "Live": self.start(refresh=self._renderable is not None) @@ -174,7 +168,7 @@ def __exit__( def _enable_redirect_io(self) -> None: """Enable redirecting of stdout / stderr.""" - if self.console.is_terminal: + if self.console.is_terminal or self.console.is_jupyter: if self._redirect_stdout and not isinstance(sys.stdout, FileProxy): self._restore_stdout = sys.stdout sys.stdout = cast("TextIO", FileProxy(self.console, sys.stdout)) @@ -255,11 +249,7 @@ def process_renderables( if self._alt_screen else self._live_render.position_cursor() ) - renderables = [ - reset, - *renderables, - self._live_render, - ] + renderables = [reset, *renderables, self._live_render] elif ( not self._started and not self.transient ): # if it is finished render the final output for files or dumb_terminals @@ -276,7 +266,7 @@ def process_renderables( from .align import Align from .console import Console - from .live import Live + from .live import Live as Live from .panel import Panel from .rule import Rule from .syntax import Syntax diff --git a/rich/live_render.py b/rich/live_render.py index ca5ad23b2c..f6fa7b2daa 100644 --- a/rich/live_render.py +++ b/rich/live_render.py @@ -84,16 +84,15 @@ def __rich_console__( ) -> RenderResult: renderable = self.renderable - _Segment = Segment style = console.get_style(self.style) lines = console.render_lines(renderable, options, style=style, pad=False) - shape = _Segment.get_shape(lines) + shape = Segment.get_shape(lines) _, height = shape if height > options.size.height: if self.vertical_overflow == "crop": lines = lines[: options.size.height] - shape = _Segment.get_shape(lines) + shape = Segment.get_shape(lines) elif self.vertical_overflow == "ellipsis": lines = lines[: (options.size.height - 1)] overflow_text = Text( @@ -104,10 +103,11 @@ def __rich_console__( style="live.ellipsis", ) lines.append(list(console.render(overflow_text))) - shape = _Segment.get_shape(lines) + shape = Segment.get_shape(lines) self._shape = shape + new_line = Segment.line() for last, line in loop_last(lines): yield from line if not last: - yield _Segment.line() + yield new_line diff --git a/rich/logging.py b/rich/logging.py index c193ee5a2f..58188fd8a8 100644 --- a/rich/logging.py +++ b/rich/logging.py @@ -2,7 +2,8 @@ from datetime import datetime from logging import Handler, LogRecord from pathlib import Path -from typing import ClassVar, List, Optional, Type, Union +from types import ModuleType +from typing import ClassVar, List, Optional, Iterable, Type, Union from . import get_console from ._log_render import LogRender, FormatTimeCallable @@ -37,10 +38,12 @@ class RichHandler(Handler): tracebacks_theme (str, optional): Override pygments theme used in traceback. tracebacks_word_wrap (bool, optional): Enable word wrapping of long tracebacks lines. Defaults to True. tracebacks_show_locals (bool, optional): Enable display of locals in tracebacks. Defaults to False. + tracebacks_suppress (Sequence[Union[str, ModuleType]]): Optional sequence of modules or paths to exclude from traceback. locals_max_length (int, optional): Maximum length of containers before abbreviating, or None for no abbreviation. Defaults to 10. locals_max_string (int, optional): Maximum length of string before truncating, or None to disable. Defaults to 80. log_time_format (Union[str, TimeFormatterCallable], optional): If ``log_time`` is enabled, either string for strftime or callable that formats the time. Defaults to "[%x %X] ". + keywords (List[str], optional): List of words to highlight instead of ``RichHandler.KEYWORDS``. """ KEYWORDS: ClassVar[Optional[List[str]]] = [ @@ -73,9 +76,11 @@ def __init__( tracebacks_theme: Optional[str] = None, tracebacks_word_wrap: bool = True, tracebacks_show_locals: bool = False, + tracebacks_suppress: Iterable[Union[str, ModuleType]] = (), locals_max_length: int = 10, locals_max_string: int = 80, log_time_format: Union[str, FormatTimeCallable] = "[%x %X]", + keywords: Optional[List[str]] = None, ) -> None: super().__init__(level=level) self.console = console or get_console() @@ -96,8 +101,10 @@ def __init__( self.tracebacks_theme = tracebacks_theme self.tracebacks_word_wrap = tracebacks_word_wrap self.tracebacks_show_locals = tracebacks_show_locals + self.tracebacks_suppress = tracebacks_suppress self.locals_max_length = locals_max_length self.locals_max_string = locals_max_string + self.keywords = keywords def get_level_text(self, record: LogRecord) -> Text: """Get the level name from the record. @@ -137,6 +144,7 @@ def emit(self, record: LogRecord) -> None: show_locals=self.tracebacks_show_locals, locals_max_length=self.locals_max_length, locals_max_string=self.locals_max_string, + suppress=self.tracebacks_suppress, ) message = record.getMessage() if self.formatter: @@ -150,7 +158,10 @@ def emit(self, record: LogRecord) -> None: log_renderable = self.render( record=record, traceback=traceback, message_renderable=message_renderable ) - self.console.print(log_renderable) + try: + self.console.print(log_renderable) + except Exception: + self.handleError(record) def render_message(self, record: LogRecord, message: str) -> "ConsoleRenderable": """Render message text in to Text. @@ -161,14 +172,19 @@ def render_message(self, record: LogRecord, message: str) -> "ConsoleRenderable" Returns: ConsoleRenderable: Renderable to display log message. """ - use_markup = ( - getattr(record, "markup") if hasattr(record, "markup") else self.markup - ) + use_markup = getattr(record, "markup", self.markup) message_text = Text.from_markup(message) if use_markup else Text(message) - if self.highlighter: - message_text = self.highlighter(message_text) - if self.KEYWORDS: - message_text.highlight_words(self.KEYWORDS, "logging.keyword") + + highlighter = getattr(record, "highlighter", self.highlighter) + if highlighter: + message_text = highlighter(message_text) + + if self.keywords is None: + self.keywords = self.KEYWORDS + + if self.keywords: + message_text.highlight_words(self.keywords, "logging.keyword") + return message_text def render( diff --git a/rich/markdown.py b/rich/markdown.py index 35ac28c1c2..b3e6504197 100644 --- a/rich/markdown.py +++ b/rich/markdown.py @@ -25,7 +25,7 @@ def create(cls, markdown: "Markdown", node: Any) -> "MarkdownElement": """Factory to create markdown element, Args: - markdown (Markdown): THe parent Markdown object. + markdown (Markdown): The parent Markdown object. node (Any): A node from Pygments. Returns: @@ -177,7 +177,7 @@ def __rich_console__( ) -> RenderResult: code = str(self.text).rstrip() syntax = Panel( - Syntax(code, self.lexer_name, theme=self.theme), + Syntax(code, self.lexer_name, theme=self.theme, word_wrap=True), border_style="dim", box=box.SQUARE, ) @@ -312,7 +312,7 @@ def create(cls, markdown: "Markdown", node: Any) -> "MarkdownElement": """Factory to create markdown element, Args: - markdown (Markdown): THe parent Markdown object. + markdown (Markdown): The parent Markdown object. node (Any): A node from Pygments. Returns: @@ -613,11 +613,12 @@ def __rich_console__( import pydoc import io + fileio = io.StringIO() console = Console( - file=io.StringIO(), force_terminal=args.force_color, width=args.width + file=fileio, force_terminal=args.force_color, width=args.width ) console.print(markdown) - pydoc.pager(console.file.getvalue()) # type: ignore + pydoc.pager(fileio.getvalue()) else: console = Console(force_terminal=args.force_color, width=args.width) diff --git a/rich/markup.py b/rich/markup.py index 473f86ae1a..0ffd056dde 100644 --- a/rich/markup.py +++ b/rich/markup.py @@ -1,21 +1,20 @@ +import re from ast import literal_eval from operator import attrgetter -import re from typing import Callable, Iterable, List, Match, NamedTuple, Optional, Tuple, Union +from ._emoji_replace import _emoji_replace +from .emoji import EmojiVariant from .errors import MarkupError from .style import Style from .text import Span, Text -from .emoji import EmojiVariant -from ._emoji_replace import _emoji_replace - RE_TAGS = re.compile( - r"""((\\*)\[([a-z#\/@].*?)\])""", + r"""((\\*)\[([a-z#/@][^[]*?)])""", re.VERBOSE, ) -RE_HANDLER = re.compile(r"^([\w\.]*?)(\(.*?\))?$") +RE_HANDLER = re.compile(r"^([\w.]*?)(\(.*?\))?$") class Tag(NamedTuple): @@ -47,7 +46,8 @@ def markup(self) -> str: def escape( - markup: str, _escape: _EscapeSubMethod = re.compile(r"(\\*)(\[[a-z#\/].*?\])").sub + markup: str, + _escape: _EscapeSubMethod = re.compile(r"(\\*)(\[[a-z#/@][^[]*?])").sub, ) -> str: """Escapes text so that it won't be interpreted as markup. @@ -146,6 +146,8 @@ def pop_style(style_name: str) -> Tuple[int, Tag]: for position, plain_text, tag in _parse(markup): if plain_text is not None: + # Handle open brace escapes, where the brace is not part of a tag. + plain_text = plain_text.replace("\\[", "[") append(emoji_replace(plain_text) if emoji else plain_text) elif tag is not None: if tag.name.startswith("/"): # Closing tag @@ -233,8 +235,8 @@ def pop_style(style_name: str) -> Tuple[int, Tag]: ":warning-emoji: [bold red blink] DANGER![/]", ] - from rich.table import Table from rich import print + from rich.table import Table grid = Table("Markup", "Result", padding=(0, 1)) diff --git a/rich/measure.py b/rich/measure.py index 4382184f63..a508ffa80b 100644 --- a/rich/measure.py +++ b/rich/measure.py @@ -1,8 +1,8 @@ from operator import itemgetter -from typing import Callable, Iterable, NamedTuple, Optional, TYPE_CHECKING +from typing import TYPE_CHECKING, Callable, NamedTuple, Optional, Sequence from . import errors -from .protocol import is_renderable +from .protocol import is_renderable, rich_cast if TYPE_CHECKING: from .console import Console, ConsoleOptions, RenderableType @@ -96,12 +96,13 @@ def get( if _max_width < 1: return Measurement(0, 0) if isinstance(renderable, str): - renderable = console.render_str(renderable, markup=options.markup) - if hasattr(renderable, "__rich__"): - renderable = renderable.__rich__() # type: ignore + renderable = console.render_str( + renderable, markup=options.markup, highlight=False + ) + renderable = rich_cast(renderable) if is_renderable(renderable): - get_console_width: Callable[ - ["Console", "ConsoleOptions"], "Measurement" + get_console_width: Optional[ + Callable[["Console", "ConsoleOptions"], "Measurement"] ] = getattr(renderable, "__rich_measure__", None) if get_console_width is not None: render_width = ( @@ -124,18 +125,18 @@ def get( def measure_renderables( console: "Console", options: "ConsoleOptions", - renderables: Iterable["RenderableType"], + renderables: Sequence["RenderableType"], ) -> "Measurement": """Get a measurement that would fit a number of renderables. Args: console (~rich.console.Console): Console instance. + options (~rich.console.ConsoleOptions): Console options. renderables (Iterable[RenderableType]): One or more renderable objects. - max_width (int): The maximum width available. Returns: Measurement: Measurement object containing range of character widths required to - contain all given renderables. + contain all given renderables. """ if not renderables: return Measurement(0, 0) diff --git a/rich/padding.py b/rich/padding.py index da1eb3a8d6..1d1f4a553c 100644 --- a/rich/padding.py +++ b/rich/padding.py @@ -89,11 +89,13 @@ def __rich_console__( + self.right, options.max_width, ) + render_options = options.update_width(width - self.left - self.right) + if render_options.height is not None: + render_options = render_options.update_height( + height=render_options.height - self.top - self.bottom + ) lines = console.render_lines( - self.renderable, - options.update_width(width - self.left - self.right), - style=style, - pad=True, + self.renderable, render_options, style=style, pad=True ) _Segment = Segment diff --git a/rich/pager.py b/rich/pager.py index 4290021f21..a3f7aa62af 100644 --- a/rich/pager.py +++ b/rich/pager.py @@ -1,5 +1,5 @@ from abc import ABC, abstractmethod -from typing import Any, Callable +from typing import Any class Pager(ABC): @@ -17,9 +17,8 @@ def show(self, content: str) -> None: class SystemPager(Pager): """Uses the pager installed on the system.""" - _pager: Callable[[Any, str], Any] = lambda self, content: __import__("pydoc").pager( - content - ) + def _pager(self, content: str) -> Any: #  pragma: no cover + return __import__("pydoc").pager(content) def show(self, content: str) -> None: """Use the same pager used by pydoc.""" diff --git a/rich/panel.py b/rich/panel.py index fcd1691764..fc2807c313 100644 --- a/rich/panel.py +++ b/rich/panel.py @@ -1,14 +1,13 @@ -from typing import Optional, TYPE_CHECKING - -from .box import Box, ROUNDED +from typing import TYPE_CHECKING, Optional from .align import AlignMethod +from .box import ROUNDED, Box from .jupyter import JupyterMixin from .measure import Measurement, measure_renderables from .padding import Padding, PaddingDimensions +from .segment import Segment from .style import StyleType from .text import Text, TextType -from .segment import Segment if TYPE_CHECKING: from .console import Console, ConsoleOptions, RenderableType, RenderResult @@ -56,7 +55,7 @@ def __init__( self.renderable = renderable self.box = box self.title = title - self.title_align = title_align + self.title_align: AlignMethod = title_align self.subtitle = subtitle self.subtitle_align = subtitle_align self.safe_box = safe_box @@ -183,7 +182,7 @@ def __rich_console__( else: title_text.align(self.title_align, width - 4, character=box.top) yield Segment(box.top_left + box.top, border_style) - yield from console.render(title_text) + yield from console.render(title_text, child_options.update_width(width - 4)) yield Segment(box.top + box.top_right, border_style) yield new_line @@ -202,7 +201,9 @@ def __rich_console__( else: subtitle_text.align(self.subtitle_align, width - 4, character=box.bottom) yield Segment(box.bottom_left + box.bottom, border_style) - yield from console.render(subtitle_text) + yield from console.render( + subtitle_text, child_options.update_width(width - 4) + ) yield Segment(box.bottom + box.bottom_right, border_style) yield new_line @@ -235,8 +236,8 @@ def __rich_measure__( c = Console() + from .box import DOUBLE, ROUNDED from .padding import Padding - from .box import ROUNDED, DOUBLE p = Panel( "Hello, World!", diff --git a/rich/pretty.py b/rich/pretty.py index ecd60fbce1..1c6b167166 100644 --- a/rich/pretty.py +++ b/rich/pretty.py @@ -1,45 +1,39 @@ import builtins +import collections +import dataclasses +import inspect import os -from rich.repr import RichReprResult import sys from array import array -from collections import Counter, defaultdict, deque, UserDict, UserList +from collections import Counter, UserDict, UserList, defaultdict, deque from dataclasses import dataclass, fields, is_dataclass from inspect import isclass from itertools import islice -import re +from types import MappingProxyType from typing import ( - DefaultDict, TYPE_CHECKING, Any, Callable, + DefaultDict, Dict, Iterable, List, Optional, + Sequence, Set, - Union, Tuple, + Union, ) -from types import MappingProxyType + +from rich.repr import RichReprResult try: import attr as _attr_module -except ImportError: # pragma: no cover - _attr_module = None # type: ignore - - -def _is_attr_object(obj: Any) -> bool: - """Check if an object was created with attrs module.""" - return _attr_module is not None and _attr_module.has(type(obj)) - - -def _get_attr_fields(obj: Any) -> Iterable["_attr_module.Attribute[Any]"]: - """Get fields for an attrs object.""" - return _attr_module.fields(type(obj)) if _attr_module is not None else [] + _has_attrs = True +except ImportError: # pragma: no cover + _has_attrs = False -from .highlighter import ReprHighlighter from . import get_console from ._loop import loop_last from ._pick import pick_bool @@ -60,8 +54,129 @@ def _get_attr_fields(obj: Any) -> Iterable["_attr_module.Attribute[Any]"]: RenderResult, ) -# Matches Jupyter's special methods -_re_jupyter_repr = re.compile(f"^_repr_.+_$") + +def _is_attr_object(obj: Any) -> bool: + """Check if an object was created with attrs module.""" + return _has_attrs and _attr_module.has(type(obj)) + + +def _get_attr_fields(obj: Any) -> Sequence["_attr_module.Attribute[Any]"]: + """Get fields for an attrs object.""" + return _attr_module.fields(type(obj)) if _has_attrs else [] + + +def _is_dataclass_repr(obj: object) -> bool: + """Check if an instance of a dataclass contains the default repr. + + Args: + obj (object): A dataclass instance. + + Returns: + bool: True if the default repr is used, False if there is a custom repr. + """ + # Digging in to a lot of internals here + # Catching all exceptions in case something is missing on a non CPython implementation + try: + return obj.__repr__.__code__.co_filename == dataclasses.__file__ + except Exception: # pragma: no coverage + return False + + +_dummy_namedtuple = collections.namedtuple("_dummy_namedtuple", []) + + +def _has_default_namedtuple_repr(obj: object) -> bool: + """Check if an instance of namedtuple contains the default repr + + Args: + obj (object): A namedtuple + + Returns: + bool: True if the default repr is used, False if there's a custom repr. + """ + obj_file = None + try: + obj_file = inspect.getfile(obj.__repr__) + except (OSError, TypeError): + # OSError handles case where object is defined in __main__ scope, e.g. REPL - no filename available. + # TypeError trapped defensively, in case of object without filename slips through. + pass + default_repr_file = inspect.getfile(_dummy_namedtuple.__repr__) + return obj_file == default_repr_file + + +def _ipy_display_hook( + value: Any, + console: Optional["Console"] = None, + overflow: "OverflowMethod" = "ignore", + crop: bool = False, + indent_guides: bool = False, + max_length: Optional[int] = None, + max_string: Optional[int] = None, + expand_all: bool = False, +) -> None: + from .console import ConsoleRenderable # needed here to prevent circular import + + # always skip rich generated jupyter renderables or None values + if _safe_isinstance(value, JupyterRenderable) or value is None: + return + + console = console or get_console() + if console.is_jupyter: + # Delegate rendering to IPython if the object (and IPython) supports it + # https://ipython.readthedocs.io/en/stable/config/integrating.html#rich-display + ipython_repr_methods = [ + "_repr_html_", + "_repr_markdown_", + "_repr_json_", + "_repr_latex_", + "_repr_jpeg_", + "_repr_png_", + "_repr_svg_", + "_repr_mimebundle_", + ] + for repr_method in ipython_repr_methods: + method = getattr(value, repr_method, None) + if inspect.ismethod(method): + # Calling the method ourselves isn't ideal. The interface for the `_repr_*_` methods + # specifies that if they return None, then they should not be rendered + # by the notebook. + try: + repr_result = method() + except Exception: + continue # If the method raises, treat it as if it doesn't exist, try any others + if repr_result is not None: + return # Delegate rendering to IPython + + # certain renderables should start on a new line + if _safe_isinstance(value, ConsoleRenderable): + console.line() + + console.print( + value + if _safe_isinstance(value, RichRenderable) + else Pretty( + value, + overflow=overflow, + indent_guides=indent_guides, + max_length=max_length, + max_string=max_string, + expand_all=expand_all, + margin=12, + ), + crop=crop, + new_line_start=True, + ) + + +def _safe_isinstance( + obj: object, class_or_tuple: Union[type, Tuple[type, ...]] +) -> bool: + """isinstance can fail in rare cases, for example types with no __class__""" + try: + return isinstance(obj, class_or_tuple) + except Exception: + return False def install( @@ -88,8 +203,6 @@ def install( """ from rich import get_console - from .console import ConsoleRenderable # needed here to prevent circular import - console = console or get_console() assert console is not None @@ -97,10 +210,10 @@ def display_hook(value: Any) -> None: """Replacement sys.displayhook which prettifies objects with Rich.""" if value is not None: assert console is not None - builtins._ = None # type: ignore + builtins._ = None # type: ignore[attr-defined] console.print( value - if isinstance(value, RichRenderable) + if _safe_isinstance(value, RichRenderable) else Pretty( value, overflow=overflow, @@ -111,46 +224,31 @@ def display_hook(value: Any) -> None: ), crop=crop, ) - builtins._ = value # type: ignore - - def ipy_display_hook(value: Any) -> None: # pragma: no cover - assert console is not None - # always skip rich generated jupyter renderables or None values - if isinstance(value, JupyterRenderable) or value is None: - return - # on jupyter rich display, if using one of the special representations don't use rich - if console.is_jupyter and any( - _re_jupyter_repr.match(attr) for attr in dir(value) - ): - return - - # certain renderables should start on a new line - if isinstance(value, ConsoleRenderable): - console.line() - - console.print( - value - if isinstance(value, RichRenderable) - else Pretty( - value, - overflow=overflow, - indent_guides=indent_guides, - max_length=max_length, - max_string=max_string, - expand_all=expand_all, - margin=12, - ), - crop=crop, - new_line_start=True, - ) + builtins._ = value # type: ignore[attr-defined] try: # pragma: no cover - ip = get_ipython() # type: ignore + ip = get_ipython() # type: ignore[name-defined] from IPython.core.formatters import BaseFormatter + class RichFormatter(BaseFormatter): # type: ignore[misc] + pprint: bool = True + + def __call__(self, value: Any) -> Any: + if self.pprint: + return _ipy_display_hook( + value, + console=get_console(), + overflow=overflow, + indent_guides=indent_guides, + max_length=max_length, + max_string=max_string, + expand_all=expand_all, + ) + else: + return repr(value) + # replace plain text formatter with rich formatter - rich_formatter = BaseFormatter() - rich_formatter.for_type(object, func=ipy_display_hook) + rich_formatter = RichFormatter() ip.display_formatter.formatters["text/plain"] = rich_formatter except Exception: sys.displayhook = display_hook @@ -170,6 +268,7 @@ class Pretty(JupyterMixin): max_length (int, optional): Maximum length of containers before abbreviating, or None for no abbreviation. Defaults to None. max_string (int, optional): Maximum length of string before truncating, or None to disable. Defaults to None. + max_depth (int, optional): Maximum depth of nested data structures, or None for no maximum. Defaults to None. expand_all (bool, optional): Expand all containers. Defaults to False. margin (int, optional): Subtrace a margin from width to force containers to expand earlier. Defaults to 0. insert_line (bool, optional): Insert a new line if the output has multiple new lines. Defaults to False. @@ -187,6 +286,7 @@ def __init__( indent_guides: bool = False, max_length: Optional[int] = None, max_string: Optional[int] = None, + max_depth: Optional[int] = None, expand_all: bool = False, margin: int = 0, insert_line: bool = False, @@ -194,12 +294,13 @@ def __init__( self._object = _object self.highlighter = highlighter or ReprHighlighter() self.indent_size = indent_size - self.justify = justify - self.overflow = overflow + self.justify: Optional["JustifyMethod"] = justify + self.overflow: Optional["OverflowMethod"] = overflow self.no_wrap = no_wrap self.indent_guides = indent_guides self.max_length = max_length self.max_string = max_string + self.max_depth = max_depth self.expand_all = expand_all self.margin = margin self.insert_line = insert_line @@ -213,6 +314,7 @@ def __rich_console__( indent_size=self.indent_size, max_length=self.max_length, max_string=self.max_string, + max_depth=self.max_depth, expand_all=self.expand_all, ) pretty_text = Text( @@ -247,6 +349,7 @@ def __rich_measure__( indent_size=self.indent_size, max_length=self.max_length, max_string=self.max_string, + expand_all=self.expand_all, ) text_width = ( max(cell_len(line) for line in pretty_str.splitlines()) if pretty_str else 0 @@ -263,7 +366,7 @@ def _get_braces_for_defaultdict(_object: DefaultDict[Any, Any]) -> Tuple[str, st def _get_braces_for_array(_object: "array[Any]") -> Tuple[str, str, str]: - return (f"array({_object.typecode!r}, [", "])", "array({_object.typecode!r})") + return (f"array({_object.typecode!r}, [", "])", f"array({_object.typecode!r})") _BRACES: Dict[type, Callable[[Any], Tuple[str, str, str]]] = { @@ -288,7 +391,7 @@ def _get_braces_for_array(_object: "array[Any]") -> Tuple[str, str, str]: def is_expandable(obj: Any) -> bool: """Check if an object may be expanded by pretty print.""" return ( - isinstance(obj, _CONTAINERS) + _safe_isinstance(obj, _CONTAINERS) or (is_dataclass(obj)) or (hasattr(obj, "__rich_repr__")) or _is_attr_object(obj) @@ -306,6 +409,7 @@ class Node: empty: str = "" last: bool = False is_tuple: bool = False + is_namedtuple: bool = False children: Optional[List["Node"]] = None key_separator = ": " separator: str = ", " @@ -320,7 +424,7 @@ def iter_tokens(self) -> Iterable[str]: elif self.children is not None: if self.children: yield self.open_brace - if self.is_tuple and len(self.children) == 1: + if self.is_tuple and not self.is_namedtuple and len(self.children) == 1: yield from self.children[0].iter_tokens() yield "," else: @@ -447,8 +551,30 @@ def __str__(self) -> str: ) +def _is_namedtuple(obj: Any) -> bool: + """Checks if an object is most likely a namedtuple. It is possible + to craft an object that passes this check and isn't a namedtuple, but + there is only a minuscule chance of this happening unintentionally. + + Args: + obj (Any): The object to test + + Returns: + bool: True if the object is a namedtuple. False otherwise. + """ + try: + fields = getattr(obj, "_fields", None) + except Exception: + # Being very defensive - if we cannot get the attr then its not a namedtuple + return False + return isinstance(obj, tuple) and isinstance(fields, tuple) + + def traverse( - _object: Any, max_length: Optional[int] = None, max_string: Optional[int] = None + _object: Any, + max_length: Optional[int] = None, + max_string: Optional[int] = None, + max_depth: Optional[int] = None, ) -> Node: """Traverse object and generate a tree. @@ -458,6 +584,8 @@ def traverse( Defaults to None. max_string (int, optional): Maximum length of string before truncating, or None to disable truncating. Defaults to None. + max_depth (int, optional): Maximum depth of data structures, or None for no maximum. + Defaults to None. Returns: Node: The root of a tree structure which can be used to render a pretty repr. @@ -467,7 +595,7 @@ def to_repr(obj: Any) -> str: """Get repr string for an object, but catch errors.""" if ( max_string is not None - and isinstance(obj, (bytes, str)) + and _safe_isinstance(obj, (bytes, str)) and len(obj) > max_string ): truncated = len(obj) - max_string @@ -483,15 +611,17 @@ def to_repr(obj: Any) -> str: push_visited = visited_ids.add pop_visited = visited_ids.remove - def _traverse(obj: Any, root: bool = False) -> Node: + def _traverse(obj: Any, root: bool = False, depth: int = 0) -> Node: """Walk the object depth first.""" + obj_type = type(obj) py_version = (sys.version_info.major, sys.version_info.minor) children: List[Node] + reached_max_depth = max_depth is not None and depth >= max_depth def iter_rich_args(rich_args: Any) -> Iterable[Union[Any, Tuple[str, Any]]]: for arg in rich_args: - if isinstance(arg, tuple): + if _safe_isinstance(arg, tuple): if len(arg) == 3: key, child, default = arg if default == child: @@ -528,33 +658,37 @@ def iter_rich_args(rich_args: Any) -> Iterable[Union[Any, Tuple[str, Any]]]: if args: children = [] append = children.append - if angular: - node = Node( - open_brace=f"<{class_name} ", - close_brace=">", - children=children, - last=root, - separator=" ", - ) + + if reached_max_depth: + node = Node(value_repr=f"...") else: - node = Node( - open_brace=f"{class_name}(", - close_brace=")", - children=children, - last=root, - ) - for last, arg in loop_last(args): - if isinstance(arg, tuple): - key, child = arg - child_node = _traverse(child) - child_node.last = last - child_node.key_repr = key - child_node.key_separator = "=" - append(child_node) + if angular: + node = Node( + open_brace=f"<{class_name} ", + close_brace=">", + children=children, + last=root, + separator=" ", + ) else: - child_node = _traverse(arg) - child_node.last = last - append(child_node) + node = Node( + open_brace=f"{class_name}(", + close_brace=")", + children=children, + last=root, + ) + for last, arg in loop_last(args): + if _safe_isinstance(arg, tuple): + key, child = arg + child_node = _traverse(child, depth=depth + 1) + child_node.last = last + child_node.key_repr = key + child_node.key_separator = "=" + append(child_node) + else: + child_node = _traverse(arg, depth=depth + 1) + child_node.last = last + append(child_node) else: node = Node( value_repr=f"<{class_name}>" if angular else f"{class_name}()", @@ -567,40 +701,43 @@ def iter_rich_args(rich_args: Any) -> Iterable[Union[Any, Tuple[str, Any]]]: attr_fields = _get_attr_fields(obj) if attr_fields: - node = Node( - open_brace=f"{obj.__class__.__name__}(", - close_brace=")", - children=children, - last=root, - ) + if reached_max_depth: + node = Node(value_repr=f"...") + else: + node = Node( + open_brace=f"{obj.__class__.__name__}(", + close_brace=")", + children=children, + last=root, + ) - def iter_attrs() -> Iterable[ - Tuple[str, Any, Optional[Callable[[Any], str]]] - ]: - """Iterate over attr fields and values.""" - for attr in attr_fields: - if attr.repr: - try: - value = getattr(obj, attr.name) - except Exception as error: - # Can happen, albeit rarely - yield (attr.name, error, None) - else: - yield ( - attr.name, - value, - attr.repr if callable(attr.repr) else None, - ) - - for last, (name, value, repr_callable) in loop_last(iter_attrs()): - if repr_callable: - child_node = Node(value_repr=str(repr_callable(value))) - else: - child_node = _traverse(value) - child_node.last = last - child_node.key_repr = name - child_node.key_separator = "=" - append(child_node) + def iter_attrs() -> Iterable[ + Tuple[str, Any, Optional[Callable[[Any], str]]] + ]: + """Iterate over attr fields and values.""" + for attr in attr_fields: + if attr.repr: + try: + value = getattr(obj, attr.name) + except Exception as error: + # Can happen, albeit rarely + yield (attr.name, error, None) + else: + yield ( + attr.name, + value, + attr.repr if callable(attr.repr) else None, + ) + + for last, (name, value, repr_callable) in loop_last(iter_attrs()): + if repr_callable: + child_node = Node(value_repr=str(repr_callable(value))) + else: + child_node = _traverse(value, depth=depth + 1) + child_node.last = last + child_node.key_repr = name + child_node.key_separator = "=" + append(child_node) else: node = Node( value_repr=f"{obj.__class__.__name__}()", children=[], last=root @@ -608,11 +745,9 @@ def iter_attrs() -> Iterable[ elif ( is_dataclass(obj) - and not isinstance(obj, type) + and not _safe_isinstance(obj, type) and not fake_attributes - and ( - "__create_fn__" in obj.__repr__.__qualname__ or py_version == (3, 6) - ) # Check if __repr__ wasn't overridden + and (_is_dataclass_repr(obj) or py_version == (3, 6)) ): obj_id = id(obj) if obj_id in visited_ids: @@ -622,26 +757,48 @@ def iter_attrs() -> Iterable[ children = [] append = children.append - node = Node( - open_brace=f"{obj.__class__.__name__}(", - close_brace=")", - children=children, - last=root, - ) + if reached_max_depth: + node = Node(value_repr=f"...") + else: + node = Node( + open_brace=f"{obj.__class__.__name__}(", + close_brace=")", + children=children, + last=root, + ) - for last, field in loop_last(fields(obj)): - if field.repr: - child_node = _traverse(getattr(obj, field.name)) + for last, field in loop_last( + field for field in fields(obj) if field.repr + ): + child_node = _traverse(getattr(obj, field.name), depth=depth + 1) child_node.key_repr = field.name child_node.last = last child_node.key_separator = "=" append(child_node) - pop_visited(obj_id) - - elif isinstance(obj, _CONTAINERS): + pop_visited(obj_id) + elif _is_namedtuple(obj) and _has_default_namedtuple_repr(obj): + if reached_max_depth: + node = Node(value_repr="...") + else: + children = [] + class_name = obj.__class__.__name__ + node = Node( + open_brace=f"{class_name}(", + close_brace=")", + children=children, + empty=f"{class_name}()", + ) + append = children.append + for last, (key, value) in loop_last(obj._asdict().items()): + child_node = _traverse(value, depth=depth + 1) + child_node.key_repr = key + child_node.last = last + child_node.key_separator = "=" + append(child_node) + elif _safe_isinstance(obj, _CONTAINERS): for container_type in _CONTAINERS: - if isinstance(obj, container_type): + if _safe_isinstance(obj, container_type): obj_type = container_type break @@ -653,7 +810,9 @@ def iter_attrs() -> Iterable[ open_brace, close_brace, empty = _BRACES[obj_type](obj) - if obj_type.__repr__ != type(obj).__repr__: + if reached_max_depth: + node = Node(value_repr=f"...", last=root) + elif obj_type.__repr__ != type(obj).__repr__: node = Node(value_repr=to_repr(obj), last=root) elif obj: children = [] @@ -667,12 +826,12 @@ def iter_attrs() -> Iterable[ num_items = len(obj) last_item_index = num_items - 1 - if isinstance(obj, _MAPPING_CONTAINERS): + if _safe_isinstance(obj, _MAPPING_CONTAINERS): iter_items = iter(obj.items()) if max_length is not None: iter_items = islice(iter_items, max_length) for index, (key, child) in enumerate(iter_items): - child_node = _traverse(child) + child_node = _traverse(child, depth=depth + 1) child_node.key_repr = to_repr(key) child_node.last = index == last_item_index append(child_node) @@ -681,18 +840,19 @@ def iter_attrs() -> Iterable[ if max_length is not None: iter_values = islice(iter_values, max_length) for index, child in enumerate(iter_values): - child_node = _traverse(child) + child_node = _traverse(child, depth=depth + 1) child_node.last = index == last_item_index append(child_node) if max_length is not None and num_items > max_length: - append(Node(value_repr=f"... +{num_items-max_length}", last=True)) + append(Node(value_repr=f"... +{num_items - max_length}", last=True)) else: node = Node(empty=empty, children=[], last=root) pop_visited(obj_id) else: node = Node(value_repr=to_repr(obj), last=root) - node.is_tuple = isinstance(obj, tuple) + node.is_tuple = _safe_isinstance(obj, tuple) + node.is_namedtuple = _is_namedtuple(obj) return node node = _traverse(_object, root=True) @@ -706,6 +866,7 @@ def pretty_repr( indent_size: int = 4, max_length: Optional[int] = None, max_string: Optional[int] = None, + max_depth: Optional[int] = None, expand_all: bool = False, ) -> str: """Prettify repr string by expanding on to new lines to fit within a given width. @@ -718,17 +879,21 @@ def pretty_repr( Defaults to None. max_string (int, optional): Maximum length of string before truncating, or None to disable truncating. Defaults to None. + max_depth (int, optional): Maximum depth of nested data structure, or None for no depth. + Defaults to None. expand_all (bool, optional): Expand all containers regardless of available width. Defaults to False. Returns: str: A possibly multi-line representation of the object. """ - if isinstance(_object, Node): + if _safe_isinstance(_object, Node): node = _object else: - node = traverse(_object, max_length=max_length, max_string=max_string) - repr_str = node.render( + node = traverse( + _object, max_length=max_length, max_string=max_string, max_depth=max_depth + ) + repr_str: str = node.render( max_width=max_width, indent_size=indent_size, expand_all=expand_all ) return repr_str @@ -741,6 +906,7 @@ def pprint( indent_guides: bool = True, max_length: Optional[int] = None, max_string: Optional[int] = None, + max_depth: Optional[int] = None, expand_all: bool = False, ) -> None: """A convenience function for pretty printing. @@ -751,6 +917,7 @@ def pprint( max_length (int, optional): Maximum length of containers before abbreviating, or None for no abbreviation. Defaults to None. max_string (int, optional): Maximum length of strings before truncating, or None to disable. Defaults to None. + max_depth (int, optional): Maximum depth for nested data structures, or None for unlimited depth. Defaults to None. indent_guides (bool, optional): Enable indentation guides. Defaults to True. expand_all (bool, optional): Expand all containers. Defaults to False. """ @@ -760,6 +927,7 @@ def pprint( _object, max_length=max_length, max_string=max_string, + max_depth=max_depth, indent_guides=indent_guides, expand_all=expand_all, overflow="ignore", @@ -775,6 +943,15 @@ def __repr__(self) -> str: 1 / 0 return "this will fail" + from typing import NamedTuple + + class StockKeepingUnit(NamedTuple): + name: str + description: str + price: float + category: str + reviews: List[str] + d = defaultdict(int) d["foo"] = 5 data = { @@ -801,9 +978,16 @@ def __repr__(self) -> str: ] ), "atomic": (False, True, None), + "namedtuple": StockKeepingUnit( + "Sparkling British Spring Water", + "Carbonated spring water", + 0.9, + "water", + ["its amazing!", "its terrible!"], + ), "Broken": BrokenRepr(), } - data["foo"].append(data) # type: ignore + data["foo"].append(data) # type: ignore[attr-defined] from rich import print diff --git a/rich/progress.py b/rich/progress.py index 4eceea7352..ca52c4b98b 100644 --- a/rich/progress.py +++ b/rich/progress.py @@ -1,30 +1,46 @@ +import io +import sys +import typing +import warnings from abc import ABC, abstractmethod from collections import deque from collections.abc import Sized from dataclasses import dataclass, field from datetime import timedelta +from io import RawIOBase, UnsupportedOperation from math import ceil +from mmap import mmap +from os import PathLike, stat from threading import Event, RLock, Thread from types import TracebackType from typing import ( Any, + BinaryIO, Callable, + ContextManager, Deque, Dict, + Generic, Iterable, List, NamedTuple, NewType, Optional, Sequence, + TextIO, Tuple, Type, TypeVar, Union, ) +if sys.version_info >= (3, 8): + from typing import Literal +else: + from typing_extensions import Literal # pragma: no cover + from . import filesize, get_console -from .console import Console, JustifyMethod, RenderableType, Group +from .console import Console, Group, JustifyMethod, RenderableType from .highlighter import Highlighter from .jupyter import JupyterMixin from .live import Live @@ -41,6 +57,9 @@ GetTimeCallable = Callable[[], float] +_I = typing.TypeVar("_I", TextIO, BinaryIO) + + class _TrackThread(Thread): """A thread to periodically update progress.""" @@ -96,6 +115,7 @@ def track( pulse_style: StyleType = "bar.pulse", update_period: float = 0.1, disable: bool = False, + show_speed: bool = True, ) -> Iterable[ProgressType]: """Track progress by iterating over a sequence. @@ -113,6 +133,7 @@ def track( pulse_style (StyleType, optional): Style for pulsing bars. Defaults to "bar.pulse". update_period (float, optional): Minimum time (in seconds) between calls to update(). Defaults to 0.1. disable (bool, optional): Disable display of progress. + show_speed (bool, optional): Show speed if total isn't known. Defaults to True. Returns: Iterable[ProgressType]: An iterable of the values in the sequence. @@ -129,7 +150,7 @@ def track( finished_style=finished_style, pulse_style=pulse_style, ), - TextColumn("[progress.percentage]{task.percentage:>3.0f}%"), + TaskProgressColumn(show_speed=show_speed), TimeRemainingColumn(), ) ) @@ -149,6 +170,320 @@ def track( ) +class _Reader(RawIOBase, BinaryIO): + """A reader that tracks progress while it's being read from.""" + + def __init__( + self, + handle: BinaryIO, + progress: "Progress", + task: TaskID, + close_handle: bool = True, + ) -> None: + self.handle = handle + self.progress = progress + self.task = task + self.close_handle = close_handle + self._closed = False + + def __enter__(self) -> "_Reader": + self.handle.__enter__() + return self + + def __exit__( + self, + exc_type: Optional[Type[BaseException]], + exc_val: Optional[BaseException], + exc_tb: Optional[TracebackType], + ) -> None: + self.close() + + def __iter__(self) -> BinaryIO: + return self + + def __next__(self) -> bytes: + line = next(self.handle) + self.progress.advance(self.task, advance=len(line)) + return line + + @property + def closed(self) -> bool: + return self._closed + + def fileno(self) -> int: + return self.handle.fileno() + + def isatty(self) -> bool: + return self.handle.isatty() + + def readable(self) -> bool: + return self.handle.readable() + + def seekable(self) -> bool: + return self.handle.seekable() + + def writable(self) -> bool: + return False + + def read(self, size: int = -1) -> bytes: + block = self.handle.read(size) + self.progress.advance(self.task, advance=len(block)) + return block + + def readinto(self, b: Union[bytearray, memoryview, mmap]): # type: ignore[no-untyped-def, override] + n = self.handle.readinto(b) # type: ignore[attr-defined] + self.progress.advance(self.task, advance=n) + return n + + def readline(self, size: int = -1) -> bytes: # type: ignore[override] + line = self.handle.readline(size) + self.progress.advance(self.task, advance=len(line)) + return line + + def readlines(self, hint: int = -1) -> List[bytes]: + lines = self.handle.readlines(hint) + self.progress.advance(self.task, advance=sum(map(len, lines))) + return lines + + def close(self) -> None: + if self.close_handle: + self.handle.close() + self._closed = True + + def seek(self, offset: int, whence: int = 0) -> int: + pos = self.handle.seek(offset, whence) + self.progress.update(self.task, completed=pos) + return pos + + def tell(self) -> int: + return self.handle.tell() + + def write(self, s: Any) -> int: + raise UnsupportedOperation("write") + + +class _ReadContext(ContextManager[_I], Generic[_I]): + """A utility class to handle a context for both a reader and a progress.""" + + def __init__(self, progress: "Progress", reader: _I) -> None: + self.progress = progress + self.reader: _I = reader + + def __enter__(self) -> _I: + self.progress.start() + return self.reader.__enter__() + + def __exit__( + self, + exc_type: Optional[Type[BaseException]], + exc_val: Optional[BaseException], + exc_tb: Optional[TracebackType], + ) -> None: + self.progress.stop() + self.reader.__exit__(exc_type, exc_val, exc_tb) + + +def wrap_file( + file: BinaryIO, + total: int, + *, + description: str = "Reading...", + auto_refresh: bool = True, + console: Optional[Console] = None, + transient: bool = False, + get_time: Optional[Callable[[], float]] = None, + refresh_per_second: float = 10, + style: StyleType = "bar.back", + complete_style: StyleType = "bar.complete", + finished_style: StyleType = "bar.finished", + pulse_style: StyleType = "bar.pulse", + disable: bool = False, +) -> ContextManager[BinaryIO]: + """Read bytes from a file while tracking progress. + + Args: + file (Union[str, PathLike[str], BinaryIO]): The path to the file to read, or a file-like object in binary mode. + total (int): Total number of bytes to read. + description (str, optional): Description of task show next to progress bar. Defaults to "Reading". + auto_refresh (bool, optional): Automatic refresh, disable to force a refresh after each iteration. Default is True. + transient: (bool, optional): Clear the progress on exit. Defaults to False. + console (Console, optional): Console to write to. Default creates internal Console instance. + refresh_per_second (float): Number of times per second to refresh the progress information. Defaults to 10. + style (StyleType, optional): Style for the bar background. Defaults to "bar.back". + complete_style (StyleType, optional): Style for the completed bar. Defaults to "bar.complete". + finished_style (StyleType, optional): Style for a finished bar. Defaults to "bar.done". + pulse_style (StyleType, optional): Style for pulsing bars. Defaults to "bar.pulse". + disable (bool, optional): Disable display of progress. + Returns: + ContextManager[BinaryIO]: A context manager yielding a progress reader. + + """ + + columns: List["ProgressColumn"] = ( + [TextColumn("[progress.description]{task.description}")] if description else [] + ) + columns.extend( + ( + BarColumn( + style=style, + complete_style=complete_style, + finished_style=finished_style, + pulse_style=pulse_style, + ), + DownloadColumn(), + TimeRemainingColumn(), + ) + ) + progress = Progress( + *columns, + auto_refresh=auto_refresh, + console=console, + transient=transient, + get_time=get_time, + refresh_per_second=refresh_per_second or 10, + disable=disable, + ) + + reader = progress.wrap_file(file, total=total, description=description) + return _ReadContext(progress, reader) + + +@typing.overload +def open( + file: Union[str, "PathLike[str]", bytes], + mode: Union[Literal["rt"], Literal["r"]], + buffering: int = -1, + encoding: Optional[str] = None, + errors: Optional[str] = None, + newline: Optional[str] = None, + *, + total: Optional[int] = None, + description: str = "Reading...", + auto_refresh: bool = True, + console: Optional[Console] = None, + transient: bool = False, + get_time: Optional[Callable[[], float]] = None, + refresh_per_second: float = 10, + style: StyleType = "bar.back", + complete_style: StyleType = "bar.complete", + finished_style: StyleType = "bar.finished", + pulse_style: StyleType = "bar.pulse", + disable: bool = False, +) -> ContextManager[TextIO]: + pass + + +@typing.overload +def open( + file: Union[str, "PathLike[str]", bytes], + mode: Literal["rb"], + buffering: int = -1, + encoding: Optional[str] = None, + errors: Optional[str] = None, + newline: Optional[str] = None, + *, + total: Optional[int] = None, + description: str = "Reading...", + auto_refresh: bool = True, + console: Optional[Console] = None, + transient: bool = False, + get_time: Optional[Callable[[], float]] = None, + refresh_per_second: float = 10, + style: StyleType = "bar.back", + complete_style: StyleType = "bar.complete", + finished_style: StyleType = "bar.finished", + pulse_style: StyleType = "bar.pulse", + disable: bool = False, +) -> ContextManager[BinaryIO]: + pass + + +def open( + file: Union[str, "PathLike[str]", bytes], + mode: Union[Literal["rb"], Literal["rt"], Literal["r"]] = "r", + buffering: int = -1, + encoding: Optional[str] = None, + errors: Optional[str] = None, + newline: Optional[str] = None, + *, + total: Optional[int] = None, + description: str = "Reading...", + auto_refresh: bool = True, + console: Optional[Console] = None, + transient: bool = False, + get_time: Optional[Callable[[], float]] = None, + refresh_per_second: float = 10, + style: StyleType = "bar.back", + complete_style: StyleType = "bar.complete", + finished_style: StyleType = "bar.finished", + pulse_style: StyleType = "bar.pulse", + disable: bool = False, +) -> Union[ContextManager[BinaryIO], ContextManager[TextIO]]: + """Read bytes from a file while tracking progress. + + Args: + path (Union[str, PathLike[str], BinaryIO]): The path to the file to read, or a file-like object in binary mode. + mode (str): The mode to use to open the file. Only supports "r", "rb" or "rt". + buffering (int): The buffering strategy to use, see :func:`io.open`. + encoding (str, optional): The encoding to use when reading in text mode, see :func:`io.open`. + errors (str, optional): The error handling strategy for decoding errors, see :func:`io.open`. + newline (str, optional): The strategy for handling newlines in text mode, see :func:`io.open` + total: (int, optional): Total number of bytes to read. Must be provided if reading from a file handle. Default for a path is os.stat(file).st_size. + description (str, optional): Description of task show next to progress bar. Defaults to "Reading". + auto_refresh (bool, optional): Automatic refresh, disable to force a refresh after each iteration. Default is True. + transient: (bool, optional): Clear the progress on exit. Defaults to False. + console (Console, optional): Console to write to. Default creates internal Console instance. + refresh_per_second (float): Number of times per second to refresh the progress information. Defaults to 10. + style (StyleType, optional): Style for the bar background. Defaults to "bar.back". + complete_style (StyleType, optional): Style for the completed bar. Defaults to "bar.complete". + finished_style (StyleType, optional): Style for a finished bar. Defaults to "bar.done". + pulse_style (StyleType, optional): Style for pulsing bars. Defaults to "bar.pulse". + disable (bool, optional): Disable display of progress. + encoding (str, optional): The encoding to use when reading in text mode. + + Returns: + ContextManager[BinaryIO]: A context manager yielding a progress reader. + + """ + + columns: List["ProgressColumn"] = ( + [TextColumn("[progress.description]{task.description}")] if description else [] + ) + columns.extend( + ( + BarColumn( + style=style, + complete_style=complete_style, + finished_style=finished_style, + pulse_style=pulse_style, + ), + DownloadColumn(), + TimeRemainingColumn(), + ) + ) + progress = Progress( + *columns, + auto_refresh=auto_refresh, + console=console, + transient=transient, + get_time=get_time, + refresh_per_second=refresh_per_second or 10, + disable=disable, + ) + + reader = progress.open( + file, + mode=mode, + buffering=buffering, + encoding=encoding, + errors=errors, + newline=newline, + total=total, + description=description, + ) + return _ReadContext(progress, reader) # type: ignore[return-value, type-var] + + class ProgressColumn(ABC): """Base class for a widget to use in progress display.""" @@ -271,7 +606,7 @@ def __init__( table_column: Optional[Column] = None, ) -> None: self.text_format = text_format - self.justify = justify + self.justify: JustifyMethod = justify self.style = style self.markup = markup self.highlighter = highlighter @@ -318,7 +653,7 @@ def __init__( def render(self, task: "Task") -> ProgressBar: """Gets a progress bar widget for a task.""" return ProgressBar( - total=max(0, task.total), + total=max(0, task.total) if task.total is not None else None, completed=max(0, task.completed), width=None if self.bar_width is None else max(1, self.bar_width), pulse=not task.started, @@ -342,19 +677,125 @@ def render(self, task: "Task") -> Text: return Text(str(delta), style="progress.elapsed") +class TaskProgressColumn(TextColumn): + """Show task progress as a percentage. + + Args: + text_format (str, optional): Format for percentage display. Defaults to "[progress.percentage]{task.percentage:>3.0f}%". + text_format_no_percentage (str, optional): Format if percentage is unknown. Defaults to "". + style (StyleType, optional): Style of output. Defaults to "none". + justify (JustifyMethod, optional): Text justification. Defaults to "left". + markup (bool, optional): Enable markup. Defaults to True. + highlighter (Optional[Highlighter], optional): Highlighter to apply to output. Defaults to None. + table_column (Optional[Column], optional): Table Column to use. Defaults to None. + show_speed (bool, optional): Show speed if total is unknown. Defaults to False. + """ + + def __init__( + self, + text_format: str = "[progress.percentage]{task.percentage:>3.0f}%", + text_format_no_percentage: str = "", + style: StyleType = "none", + justify: JustifyMethod = "left", + markup: bool = True, + highlighter: Optional[Highlighter] = None, + table_column: Optional[Column] = None, + show_speed: bool = False, + ) -> None: + + self.text_format_no_percentage = text_format_no_percentage + self.show_speed = show_speed + super().__init__( + text_format=text_format, + style=style, + justify=justify, + markup=markup, + highlighter=highlighter, + table_column=table_column, + ) + + @classmethod + def render_speed(cls, speed: Optional[float]) -> Text: + """Render the speed in iterations per second. + + Args: + task (Task): A Task object. + + Returns: + Text: Text object containing the task speed. + """ + if speed is None: + return Text("", style="progress.percentage") + unit, suffix = filesize.pick_unit_and_suffix( + int(speed), + ["", "×10³", "×10⁶", "×10⁹", "×10¹²"], + 1000, + ) + data_speed = speed / unit + return Text(f"{data_speed:.1f}{suffix} it/s", style="progress.percentage") + + def render(self, task: "Task") -> Text: + if task.total is None and self.show_speed: + return self.render_speed(task.finished_speed or task.speed) + text_format = ( + self.text_format_no_percentage if task.total is None else self.text_format + ) + _text = text_format.format(task=task) + if self.markup: + text = Text.from_markup(_text, style=self.style, justify=self.justify) + else: + text = Text(_text, style=self.style, justify=self.justify) + if self.highlighter: + self.highlighter.highlight(text) + return text + + class TimeRemainingColumn(ProgressColumn): - """Renders estimated time remaining.""" + """Renders estimated time remaining. + + Args: + compact (bool, optional): Render MM:SS when time remaining is less than an hour. Defaults to False. + elapsed_when_finished (bool, optional): Render time elapsed when the task is finished. Defaults to False. + """ # Only refresh twice a second to prevent jitter max_refresh = 0.5 + def __init__( + self, + compact: bool = False, + elapsed_when_finished: bool = False, + table_column: Optional[Column] = None, + ): + self.compact = compact + self.elapsed_when_finished = elapsed_when_finished + super().__init__(table_column=table_column) + def render(self, task: "Task") -> Text: """Show time remaining.""" - remaining = task.time_remaining - if remaining is None: - return Text("-:--:--", style="progress.remaining") - remaining_delta = timedelta(seconds=int(remaining)) - return Text(str(remaining_delta), style="progress.remaining") + if self.elapsed_when_finished and task.finished: + task_time = task.finished_time + style = "progress.elapsed" + else: + task_time = task.time_remaining + style = "progress.remaining" + + if task.total is None: + return Text("", style=style) + + if task_time is None: + return Text("--:--" if self.compact else "-:--:--", style=style) + + # Based on https://github.com/tqdm/tqdm/blob/master/tqdm/std.py + minutes, seconds = divmod(int(task_time), 60) + hours, minutes = divmod(minutes, 60) + + if self.compact and not hours: + formatted = f"{minutes:02d}:{seconds:02d}" + else: + formatted = f"{hours:d}:{minutes:02d}:{seconds:02d}" + + return Text(formatted, style=style) class FileSizeColumn(ProgressColumn): @@ -371,10 +812,37 @@ class TotalFileSizeColumn(ProgressColumn): def render(self, task: "Task") -> Text: """Show data completed.""" - data_size = filesize.decimal(int(task.total)) + data_size = filesize.decimal(int(task.total)) if task.total is not None else "" return Text(data_size, style="progress.filesize.total") +class MofNCompleteColumn(ProgressColumn): + """Renders completed count/total, e.g. ' 10/1000'. + + Best for bounded tasks with int quantities. + + Space pads the completed count so that progress length does not change as task progresses + past powers of 10. + + Args: + separator (str, optional): Text to separate completed and total values. Defaults to "/". + """ + + def __init__(self, separator: str = "/", table_column: Optional[Column] = None): + self.separator = separator + super().__init__(table_column=table_column) + + def render(self, task: "Task") -> Text: + """Show completed/total.""" + completed = int(task.completed) + total = int(task.total) if task.total is not None else "?" + total_width = len(str(total)) + return Text( + f"{completed:{total_width}d}{self.separator}{total}", + style="progress.download", + ) + + class DownloadColumn(ProgressColumn): """Renders file size downloaded and total, e.g. '0.5/2.3 GB'. @@ -391,22 +859,34 @@ def __init__( def render(self, task: "Task") -> Text: """Calculate common unit for completed and total.""" completed = int(task.completed) - total = int(task.total) + + unit_and_suffix_calculation_base = ( + int(task.total) if task.total is not None else completed + ) if self.binary_units: unit, suffix = filesize.pick_unit_and_suffix( - total, + unit_and_suffix_calculation_base, ["bytes", "KiB", "MiB", "GiB", "TiB", "PiB", "EiB", "ZiB", "YiB"], 1024, ) else: unit, suffix = filesize.pick_unit_and_suffix( - total, ["bytes", "KB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB"], 1000 + unit_and_suffix_calculation_base, + ["bytes", "kB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB"], + 1000, ) - completed_ratio = completed / unit - total_ratio = total / unit precision = 0 if unit == 1 else 1 + + completed_ratio = completed / unit completed_str = f"{completed_ratio:,.{precision}f}" - total_str = f"{total_ratio:,.{precision}f}" + + if task.total is not None: + total = int(task.total) + total_ratio = total / unit + total_str = f"{total_ratio:,.{precision}f}" + else: + total_str = "?" + download_status = f"{completed_str}/{total_str} {suffix}" download_text = Text(download_status, style="progress.download") return download_text @@ -447,8 +927,8 @@ class Task: description: str """str: Description of the task.""" - total: float - """str: Total number of steps in this task.""" + total: Optional[float] + """Optional[float]: Total number of steps in this task.""" completed: float """float: Number of steps completed""" @@ -475,7 +955,7 @@ class Task: """Optional[float]: The last speed for a finished task.""" _progress: Deque[ProgressSample] = field( - default_factory=deque, init=False, repr=False + default_factory=lambda: deque(maxlen=1000), init=False, repr=False ) _lock: RLock = field(repr=False, default_factory=RLock) @@ -491,8 +971,10 @@ def started(self) -> bool: return self.start_time is not None @property - def remaining(self) -> float: - """float: Get the number of steps remaining.""" + def remaining(self) -> Optional[float]: + """Optional[float]: Get the number of steps remaining, if a non-None total was set.""" + if self.total is None: + return None return self.total - self.completed @property @@ -511,7 +993,7 @@ def finished(self) -> bool: @property def percentage(self) -> float: - """float: Get progress of task as a percentage.""" + """float: Get progress of task as a percentage. If a None total was set, returns 0""" if not self.total: return 0.0 completed = (self.completed / self.total) * 100.0 @@ -544,7 +1026,10 @@ def time_remaining(self) -> Optional[float]: speed = self.speed if not speed: return None - estimate = ceil(self.remaining / speed) + remaining = self.remaining + if remaining is None: + return None + estimate = ceil(remaining / speed) return estimate def _reset(self) -> None: @@ -584,16 +1069,9 @@ def __init__( disable: bool = False, expand: bool = False, ) -> None: - assert ( - refresh_per_second is None or refresh_per_second > 0 - ), "refresh_per_second must be > 0" + assert refresh_per_second > 0, "refresh_per_second must be > 0" self._lock = RLock() - self.columns = columns or ( - TextColumn("[progress.description]{task.description}"), - BarColumn(), - TextColumn("[progress.percentage]{task.percentage:>3.0f}%"), - TimeRemainingColumn(), - ) + self.columns = columns or self.get_default_columns() self.speed_estimate_period = speed_estimate_period self.disable = disable @@ -613,6 +1091,37 @@ def __init__( self.print = self.console.print self.log = self.console.log + @classmethod + def get_default_columns(cls) -> Tuple[ProgressColumn, ...]: + """Get the default columns used for a new Progress instance: + - a text column for the description (TextColumn) + - the bar itself (BarColumn) + - a text column showing completion percentage (TextColumn) + - an estimated-time-remaining column (TimeRemainingColumn) + If the Progress instance is created without passing a columns argument, + the default columns defined here will be used. + + You can also create a Progress instance using custom columns before + and/or after the defaults, as in this example: + + progress = Progress( + SpinnerColumn(), + *Progress.default_columns(), + "Elapsed:", + TimeElapsedColumn(), + ) + + This code shows the creation of a Progress display, containing + a spinner to the left, the default columns, and a labeled elapsed + time column. + """ + return ( + TextColumn("[progress.description]{task.description}"), + BarColumn(), + TaskProgressColumn(), + TimeRemainingColumn(), + ) + @property def console(self) -> Console: return self.live.console @@ -645,6 +1154,8 @@ def start(self) -> None: def stop(self) -> None: """Stop the progress display.""" self.live.stop() + if not self.console.is_interactive: + self.console.print() def __enter__(self) -> "Progress": self.start() @@ -679,13 +1190,10 @@ def track( Iterable[ProgressType]: An iterable of values taken from the provided sequence. """ + task_total: Optional[float] = None if total is None: if isinstance(sequence, Sized): task_total = float(len(sequence)) - else: - raise ValueError( - f"unable to get size of {sequence!r}, please specify 'total'" - ) else: task_total = total @@ -707,6 +1215,157 @@ def track( advance(task_id, 1) refresh() + def wrap_file( + self, + file: BinaryIO, + total: Optional[int] = None, + *, + task_id: Optional[TaskID] = None, + description: str = "Reading...", + ) -> BinaryIO: + """Track progress file reading from a binary file. + + Args: + file (BinaryIO): A file-like object opened in binary mode. + total (int, optional): Total number of bytes to read. This must be provided unless a task with a total is also given. + task_id (TaskID): Task to track. Default is new task. + description (str, optional): Description of task, if new task is created. + + Returns: + BinaryIO: A readable file-like object in binary mode. + + Raises: + ValueError: When no total value can be extracted from the arguments or the task. + """ + # attempt to recover the total from the task + total_bytes: Optional[float] = None + if total is not None: + total_bytes = total + elif task_id is not None: + with self._lock: + total_bytes = self._tasks[task_id].total + if total_bytes is None: + raise ValueError( + f"unable to get the total number of bytes, please specify 'total'" + ) + + # update total of task or create new task + if task_id is None: + task_id = self.add_task(description, total=total_bytes) + else: + self.update(task_id, total=total_bytes) + + return _Reader(file, self, task_id, close_handle=False) + + @typing.overload + def open( + self, + file: Union[str, "PathLike[str]", bytes], + mode: Literal["rb"], + buffering: int = -1, + encoding: Optional[str] = None, + errors: Optional[str] = None, + newline: Optional[str] = None, + *, + total: Optional[int] = None, + task_id: Optional[TaskID] = None, + description: str = "Reading...", + ) -> BinaryIO: + pass + + @typing.overload + def open( + self, + file: Union[str, "PathLike[str]", bytes], + mode: Union[Literal["r"], Literal["rt"]], + buffering: int = -1, + encoding: Optional[str] = None, + errors: Optional[str] = None, + newline: Optional[str] = None, + *, + total: Optional[int] = None, + task_id: Optional[TaskID] = None, + description: str = "Reading...", + ) -> TextIO: + pass + + def open( + self, + file: Union[str, "PathLike[str]", bytes], + mode: Union[Literal["rb"], Literal["rt"], Literal["r"]] = "r", + buffering: int = -1, + encoding: Optional[str] = None, + errors: Optional[str] = None, + newline: Optional[str] = None, + *, + total: Optional[int] = None, + task_id: Optional[TaskID] = None, + description: str = "Reading...", + ) -> Union[BinaryIO, TextIO]: + """Track progress while reading from a binary file. + + Args: + path (Union[str, PathLike[str]]): The path to the file to read. + mode (str): The mode to use to open the file. Only supports "r", "rb" or "rt". + buffering (int): The buffering strategy to use, see :func:`io.open`. + encoding (str, optional): The encoding to use when reading in text mode, see :func:`io.open`. + errors (str, optional): The error handling strategy for decoding errors, see :func:`io.open`. + newline (str, optional): The strategy for handling newlines in text mode, see :func:`io.open`. + total (int, optional): Total number of bytes to read. If none given, os.stat(path).st_size is used. + task_id (TaskID): Task to track. Default is new task. + description (str, optional): Description of task, if new task is created. + + Returns: + BinaryIO: A readable file-like object in binary mode. + + Raises: + ValueError: When an invalid mode is given. + """ + # normalize the mode (always rb, rt) + _mode = "".join(sorted(mode, reverse=False)) + if _mode not in ("br", "rt", "r"): + raise ValueError("invalid mode {!r}".format(mode)) + + # patch buffering to provide the same behaviour as the builtin `open` + line_buffering = buffering == 1 + if _mode == "br" and buffering == 1: + warnings.warn( + "line buffering (buffering=1) isn't supported in binary mode, the default buffer size will be used", + RuntimeWarning, + ) + buffering = -1 + elif _mode == "rt" or _mode == "r": + if buffering == 0: + raise ValueError("can't have unbuffered text I/O") + elif buffering == 1: + buffering = -1 + + # attempt to get the total with `os.stat` + if total is None: + total = stat(file).st_size + + # update total of task or create new task + if task_id is None: + task_id = self.add_task(description, total=total) + else: + self.update(task_id, total=total) + + # open the file in binary mode, + handle = io.open(file, "rb", buffering=buffering) + reader = _Reader(handle, self, task_id, close_handle=True) + + # wrap the reader in a `TextIOWrapper` if text mode + if mode == "r" or mode == "rt": + return io.TextIOWrapper( + reader, + encoding=encoding, + errors=errors, + newline=newline, + line_buffering=line_buffering, + ) + + return reader + def start_task(self, task_id: TaskID) -> None: """Start a task. @@ -764,7 +1423,7 @@ def update( task = self._tasks[task_id] completed_start = task.completed - if total is not None: + if total is not None and total != task.total: task.total = total task._reset() if advance is not None: @@ -785,11 +1444,13 @@ def update( popleft = _progress.popleft while _progress and _progress[0].timestamp < old_sample_time: popleft() - while len(_progress) > 1000: - popleft() if update_completed > 0: _progress.append(ProgressSample(current_time, update_completed)) - if task.completed >= task.total and task.finished_time is None: + if ( + task.total is not None + and task.completed >= task.total + and task.finished_time is None + ): task.finished_time = task.elapsed if refresh: @@ -854,7 +1515,11 @@ def advance(self, task_id: TaskID, advance: float = 1) -> None: while len(_progress) > 1000: popleft() _progress.append(ProgressSample(current_time, update_completed)) - if task.completed >= task.total and task.finished_time is None: + if ( + task.total is not None + and task.completed >= task.total + and task.finished_time is None + ): task.finished_time = task.elapsed task.finished_speed = task.speed @@ -915,7 +1580,7 @@ def add_task( self, description: str, start: bool = True, - total: float = 100.0, + total: Optional[float] = 100.0, completed: int = 0, visible: bool = True, **fields: Any, @@ -926,7 +1591,8 @@ def add_task( description (str): A description of the task. start (bool, optional): Start the task immediately (to calculate elapsed time). If set to False, you will need to call `start` manually. Defaults to True. - total (float, optional): Number of total steps in the progress if know. Defaults to 100. + total (float, optional): Number of total steps in the progress if known. + Set to None to render a pulsing animation. Defaults to 100. completed (int, optional): Number of steps completed so far.. Defaults to 0. visible (bool, optional): Enable display of the task. Defaults to True. **fields (str): Additional data fields required for rendering. @@ -1013,18 +1679,15 @@ def remove_task(self, task_id: TaskID) -> None: with Progress( SpinnerColumn(), - TextColumn("[progress.description]{task.description}"), - BarColumn(), - TextColumn("[progress.percentage]{task.percentage:>3.0f}%"), - TimeRemainingColumn(), + *Progress.get_default_columns(), TimeElapsedColumn(), console=console, - transient=True, + transient=False, ) as progress: task1 = progress.add_task("[red]Downloading", total=1000) task2 = progress.add_task("[green]Processing", total=1000) - task3 = progress.add_task("[yellow]Thinking", total=1000, start=False) + task3 = progress.add_task("[yellow]Thinking", total=None) while not progress.finished: progress.update(task1, advance=0.5) diff --git a/rich/progress_bar.py b/rich/progress_bar.py index 1797b5f786..9c3a4f25a2 100644 --- a/rich/progress_bar.py +++ b/rich/progress_bar.py @@ -19,10 +19,10 @@ class ProgressBar(JupyterMixin): """Renders a (progress) bar. Used by rich.progress. Args: - total (float, optional): Number of steps in the bar. Defaults to 100. + total (float, optional): Number of steps in the bar. Defaults to 100. Set to None to render a pulsing animation. completed (float, optional): Number of steps completed. Defaults to 0. width (int, optional): Width of the bar, or ``None`` for maximum width. Defaults to None. - pulse (bool, optional): Enable pulse effect. Defaults to False. + pulse (bool, optional): Enable pulse effect. Defaults to False. Will pulse if a None total was passed. style (StyleType, optional): Style for the bar background. Defaults to "bar.back". complete_style (StyleType, optional): Style for the completed bar. Defaults to "bar.complete". finished_style (StyleType, optional): Style for a finished bar. Defaults to "bar.done". @@ -32,7 +32,7 @@ class ProgressBar(JupyterMixin): def __init__( self, - total: float = 100.0, + total: Optional[float] = 100.0, completed: float = 0, width: Optional[int] = None, pulse: bool = False, @@ -58,8 +58,10 @@ def __repr__(self) -> str: return f"" @property - def percentage_completed(self) -> float: + def percentage_completed(self) -> Optional[float]: """Calculate percentage complete.""" + if self.total is None: + return None completed = (self.completed / self.total) * 100.0 completed = min(100, max(0.0, completed)) return completed @@ -157,23 +159,29 @@ def __rich_console__( width = min(self.width or options.max_width, options.max_width) ascii = options.legacy_windows or options.ascii_only - if self.pulse: + should_pulse = self.pulse or self.total is None + if should_pulse: yield from self._render_pulse(console, width, ascii=ascii) return - completed = min(self.total, max(0, self.completed)) + completed: Optional[float] = ( + min(self.total, max(0, self.completed)) if self.total is not None else None + ) bar = "-" if ascii else "━" half_bar_right = " " if ascii else "╸" half_bar_left = " " if ascii else "╺" complete_halves = ( - int(width * 2 * completed / self.total) if self.total else width * 2 + int(width * 2 * completed / self.total) + if self.total and completed is not None + else width * 2 ) bar_count = complete_halves // 2 half_bar_count = complete_halves % 2 style = console.get_style(self.style) + is_finished = self.total is None or self.completed >= self.total complete_style = console.get_style( - self.complete_style if self.completed < self.total else self.finished_style + self.finished_style if is_finished else self.complete_style ) _Segment = Segment if bar_count: diff --git a/rich/prompt.py b/rich/prompt.py index daf76df855..064c959b10 100644 --- a/rich/prompt.py +++ b/rich/prompt.py @@ -228,14 +228,14 @@ def process_response(self, value: str) -> PromptType: """ value = value.strip() try: - return_value = self.response_type(value) + return_value: PromptType = self.response_type(value) except ValueError: raise InvalidResponse(self.validate_error_message) if self.choices is not None and not self.check_choice(value): raise InvalidResponse(self.illegal_choice_message) - return return_value # type: ignore + return return_value def on_validate_error(self, value: str, error: InvalidResponse) -> None: """Called to handle validation error. @@ -330,11 +330,10 @@ class Confirm(PromptBase[bool]): response_type = bool validate_error_message = "[prompt.invalid]Please enter Y or N" - choices = ["y", "n"] + choices: List[str] = ["y", "n"] def render_default(self, default: DefaultType) -> Text: """Render the default as (y) or (n) rather than True/False.""" - assert self.choices is not None yes, no = self.choices return Text(f"({yes})" if default else f"({no})", style="prompt.default") @@ -343,7 +342,6 @@ def process_response(self, value: str) -> bool: value = value.strip().lower() if value not in self.choices: raise InvalidResponse(self.validate_error_message) - assert self.choices is not None return value == self.choices[0] diff --git a/rich/protocol.py b/rich/protocol.py index 711b31b6a5..c6923dd7d8 100644 --- a/rich/protocol.py +++ b/rich/protocol.py @@ -1,4 +1,10 @@ -from typing import Any +from typing import Any, cast, Set, TYPE_CHECKING +from inspect import isclass + +if TYPE_CHECKING: + from rich.console import RenderableType + +_GIBBERISH = """aihwerij235234ljsdnp34ksodfipwoe234234jlskjdf""" def is_renderable(check_object: Any) -> bool: @@ -8,3 +14,29 @@ def is_renderable(check_object: Any) -> bool: or hasattr(check_object, "__rich__") or hasattr(check_object, "__rich_console__") ) + + +def rich_cast(renderable: object) -> "RenderableType": + """Cast an object to a renderable by calling __rich__ if present. + + Args: + renderable (object): A potentially renderable object + + Returns: + object: The result of recursively calling __rich__. + """ + from rich.console import RenderableType + + rich_visited_set: Set[type] = set() # Prevent potential infinite loop + while hasattr(renderable, "__rich__") and not isclass(renderable): + # Detect object which claim to have all the attributes + if hasattr(renderable, _GIBBERISH): + return repr(renderable) + cast_method = getattr(renderable, "__rich__") + renderable = cast_method() + renderable_type = type(renderable) + if renderable_type in rich_visited_set: + break + rich_visited_set.add(renderable_type) + + return cast(RenderableType, renderable) diff --git a/rich/repr.py b/rich/repr.py index 5fd2f43609..8bdfdae2aa 100644 --- a/rich/repr.py +++ b/rich/repr.py @@ -1,5 +1,6 @@ from functools import partial import inspect +import sys from typing import ( Any, @@ -27,28 +28,28 @@ class ReprError(Exception): @overload -def auto(cls: Optional[T]) -> T: +def auto(cls: Optional[Type[T]]) -> Type[T]: ... @overload -def auto(*, angular: bool = False) -> Callable[[T], T]: +def auto(*, angular: bool = False) -> Callable[[Type[T]], Type[T]]: ... def auto( - cls: Optional[T] = None, *, angular: Optional[bool] = None -) -> Union[T, Callable[[T], T]]: + cls: Optional[Type[T]] = None, *, angular: Optional[bool] = None +) -> Union[Type[T], Callable[[Type[T]], Type[T]]]: """Class decorator to create __repr__ from __rich_repr__""" def do_replace(cls: Type[T], angular: Optional[bool] = None) -> Type[T]: - def auto_repr(self: Type[T]) -> str: + def auto_repr(self: T) -> str: """Create repr string from __rich_repr__""" repr_str: List[str] = [] append = repr_str.append - angular = getattr(self.__rich_repr__, "angular", False) # type: ignore - for arg in self.__rich_repr__(): # type: ignore + angular: bool = getattr(self.__rich_repr__, "angular", False) # type: ignore[attr-defined] + for arg in self.__rich_repr__(): # type: ignore[attr-defined] if isinstance(arg, tuple): if len(arg) == 1: append(repr(arg[0])) @@ -70,7 +71,7 @@ def auto_repr(self: Type[T]) -> str: def auto_rich_repr(self: Type[T]) -> Result: """Auto generate __rich_rep__ from signature of __init__""" try: - signature = inspect.signature(self.__init__) ## type: ignore + signature = inspect.signature(self.__init__) for name, param in signature.parameters.items(): if param.kind == param.POSITIONAL_ONLY: yield getattr(self, name) @@ -89,33 +90,33 @@ def auto_rich_repr(self: Type[T]) -> Result: if not hasattr(cls, "__rich_repr__"): auto_rich_repr.__doc__ = "Build a rich repr" - cls.__rich_repr__ = auto_rich_repr # type: ignore + cls.__rich_repr__ = auto_rich_repr # type: ignore[attr-defined] auto_repr.__doc__ = "Return repr(self)" - cls.__repr__ = auto_repr # type: ignore + cls.__repr__ = auto_repr # type: ignore[assignment] if angular is not None: - cls.__rich_repr__.angular = angular # type: ignore + cls.__rich_repr__.angular = angular # type: ignore[attr-defined] return cls if cls is None: - return partial(do_replace, angular=angular) # type: ignore + return partial(do_replace, angular=angular) else: - return do_replace(cls, angular=angular) # type: ignore + return do_replace(cls, angular=angular) @overload -def rich_repr(cls: Optional[T]) -> T: +def rich_repr(cls: Optional[Type[T]]) -> Type[T]: ... @overload -def rich_repr(*, angular: bool = False) -> Callable[[T], T]: +def rich_repr(*, angular: bool = False) -> Callable[[Type[T]], Type[T]]: ... def rich_repr( - cls: Optional[T] = None, *, angular: bool = False -) -> Union[T, Callable[[T], T]]: + cls: Optional[Type[T]] = None, *, angular: bool = False +) -> Union[Type[T], Callable[[Type[T]], Type[T]]]: if cls is None: return auto(angular=angular) else: @@ -143,7 +144,7 @@ def __rich_repr__(self) -> Result: console.print(foo, width=30) console.rule("Angular repr") - Foo.__rich_repr__.angular = True # type: ignore + Foo.__rich_repr__.angular = True # type: ignore[attr-defined] console.print(foo) diff --git a/rich/segment.py b/rich/segment.py index 97ddc8d0aa..d825cfca4f 100644 --- a/rich/segment.py +++ b/rich/segment.py @@ -12,10 +12,16 @@ Optional, Sequence, Tuple, + Type, Union, ) -from .cells import cell_len, get_character_cell_size, set_cell_size +from .cells import ( + _is_single_cell_widths, + cell_len, + get_character_cell_size, + set_cell_size, +) from .repr import Result, rich_repr from .style import Style @@ -43,10 +49,13 @@ class ControlType(IntEnum): CURSOR_MOVE_TO_COLUMN = 13 CURSOR_MOVE_TO = 14 ERASE_IN_LINE = 15 + SET_WINDOW_TITLE = 16 ControlCode = Union[ - Tuple[ControlType], Tuple[ControlType, int], Tuple[ControlType, int, int] + Tuple[ControlType], + Tuple[ControlType, Union[int, str]], + Tuple[ControlType, int, int], ] @@ -58,15 +67,25 @@ class Segment(NamedTuple): Args: text (str): A piece of text. style (:class:`~rich.style.Style`, optional): An optional style to apply to the text. - control (Tuple[ControlCode..], optional): Optional sequence of control codes. + control (Tuple[ControlCode], optional): Optional sequence of control codes. + + Attributes: + cell_length (int): The cell length of this Segment. """ - text: str = "" - """Raw text.""" + text: str style: Optional[Style] = None - """An optional style.""" control: Optional[Sequence[ControlCode]] = None - """Optional sequence of control codes.""" + + @property + def cell_length(self) -> int: + """The number of terminal cells required to display self.text. + + Returns: + int: A number of cells. + """ + text, _style, control = self + return 0 if control else cell_len(text) def __rich_repr__(self) -> Result: yield self.text @@ -81,11 +100,6 @@ def __bool__(self) -> bool: """Check if the segment contains text.""" return bool(self.text) - @property - def cell_length(self) -> int: - """Get cell length of segment.""" - return 0 if self.control else cell_len(self.text) - @property def is_control(self) -> bool: """Check if the segment contains control codes.""" @@ -93,23 +107,18 @@ def is_control(self) -> bool: @classmethod @lru_cache(1024 * 16) - def _split_cells(cls, segment: "Segment", cut: int) -> Tuple["Segment", "Segment"]: # type: ignore + def _split_cells(cls, segment: "Segment", cut: int) -> Tuple["Segment", "Segment"]: text, style, control = segment _Segment = Segment - if cut >= segment.cell_length: - return segment, _Segment("", style, control) - if len(text) == segment.cell_length: - # Fast path with all 1 cell characters - return ( - _Segment(text[:cut], style, control), - _Segment(text[cut:], style, control), - ) + cell_length = segment.cell_length + if cut >= cell_length: + return segment, _Segment("", style, control) cell_size = get_character_cell_size - pos = int((cut / segment.cell_length) * len(text)) + pos = int((cut / cell_length) * len(text)) before = text[:pos] cell_pos = cell_len(before) @@ -134,6 +143,8 @@ def _split_cells(cls, segment: "Segment", cut: int) -> Tuple["Segment", "Segment _Segment(" " + text[pos:], style, control), ) + raise AssertionError("Will never reach here") + def split_cells(self, cut: int) -> Tuple["Segment", "Segment"]: """Split segment in to two segments at the specified column. @@ -143,6 +154,17 @@ def split_cells(self, cut: int) -> Tuple["Segment", "Segment"]: Returns: Tuple[Segment, Segment]: Two segments. """ + text, style, control = self + + if _is_single_cell_widths(text): + # Fast path with all 1 cell characters + if cut >= len(text): + return self, Segment("", style, control) + return ( + Segment(text[:cut], style, control), + Segment(text[cut:], style, control), + ) + return self._split_cells(self, cut) @classmethod @@ -341,7 +363,8 @@ def get_line_length(cls, line: List["Segment"]) -> int: Returns: int: The length of the line. """ - return sum(segment.cell_length for segment in line) + _cell_len = cell_len + return sum(_cell_len(segment.text) for segment in line) @classmethod def get_shape(cls, lines: List[List["Segment"]]) -> Tuple[int, int]: @@ -372,33 +395,116 @@ def set_shape( lines (List[List[Segment]]): A list of lines. width (int): Desired width. height (int, optional): Desired height or None for no change. - style (Style, optional): Style of any padding added. Defaults to None. + style (Style, optional): Style of any padding added. new_lines (bool, optional): Padded lines should include "\n". Defaults to False. Returns: - List[List[Segment]]: New list of lines that fits width x height. + List[List[Segment]]: New list of lines. """ - if height is None: - height = len(lines) - shaped_lines: List[List[Segment]] = [] - pad_line = ( - [Segment(" " * width, style), Segment("\n")] - if new_lines - else [Segment(" " * width, style)] + _height = height or len(lines) + + blank = ( + [cls(" " * width + "\n", style)] if new_lines else [cls(" " * width, style)] ) - append = shaped_lines.append adjust_line_length = cls.adjust_line_length - line: Optional[List[Segment]] - iter_lines = iter(lines) - for _ in range(height): - line = next(iter_lines, None) - if line is None: - append(pad_line) - else: - append(adjust_line_length(line, width, style=style)) + shaped_lines = lines[:_height] + shaped_lines[:] = [ + adjust_line_length(line, width, style=style) for line in lines + ] + if len(shaped_lines) < _height: + shaped_lines.extend([blank] * (_height - len(shaped_lines))) return shaped_lines + @classmethod + def align_top( + cls: Type["Segment"], + lines: List[List["Segment"]], + width: int, + height: int, + style: Style, + new_lines: bool = False, + ) -> List[List["Segment"]]: + """Aligns lines to top (adds extra lines to bottom as required). + + Args: + lines (List[List[Segment]]): A list of lines. + width (int): Desired width. + height (int, optional): Desired height or None for no change. + style (Style): Style of any padding added. + new_lines (bool, optional): Padded lines should include "\n". Defaults to False. + + Returns: + List[List[Segment]]: New list of lines. + """ + extra_lines = height - len(lines) + if not extra_lines: + return lines[:] + lines = lines[:height] + blank = cls(" " * width + "\n", style) if new_lines else cls(" " * width, style) + lines = lines + [[blank]] * extra_lines + return lines + + @classmethod + def align_bottom( + cls: Type["Segment"], + lines: List[List["Segment"]], + width: int, + height: int, + style: Style, + new_lines: bool = False, + ) -> List[List["Segment"]]: + """Aligns render to bottom (adds extra lines above as required). + + Args: + lines (List[List[Segment]]): A list of lines. + width (int): Desired width. + height (int, optional): Desired height or None for no change. + style (Style): Style of any padding added. Defaults to None. + new_lines (bool, optional): Padded lines should include "\n". Defaults to False. + + Returns: + List[List[Segment]]: New list of lines. + """ + extra_lines = height - len(lines) + if not extra_lines: + return lines[:] + lines = lines[:height] + blank = cls(" " * width + "\n", style) if new_lines else cls(" " * width, style) + lines = [[blank]] * extra_lines + lines + return lines + + @classmethod + def align_middle( + cls: Type["Segment"], + lines: List[List["Segment"]], + width: int, + height: int, + style: Style, + new_lines: bool = False, + ) -> List[List["Segment"]]: + """Aligns lines to middle (adds extra lines to above and below as required). + + Args: + lines (List[List[Segment]]): A list of lines. + width (int): Desired width. + height (int, optional): Desired height or None for no change. + style (Style): Style of any padding added. + new_lines (bool, optional): Padded lines should include "\n". Defaults to False. + + Returns: + List[List[Segment]]: New list of lines. + """ + extra_lines = height - len(lines) + if not extra_lines: + return lines[:] + lines = lines[:height] + blank = cls(" " * width + "\n", style) if new_lines else cls(" " * width, style) + top_lines = extra_lines // 2 + bottom_lines = extra_lines - top_lines + lines = [[blank]] * top_lines + lines + [[blank]] * bottom_lines + return lines + @classmethod def simplify(cls, segments: Iterable["Segment"]) -> Iterable["Segment"]: """Simplify an iterable of segments by combining contiguous segments with the same style. @@ -492,6 +598,7 @@ def divide( """ split_segments: List["Segment"] = [] add_segment = split_segments.append + iter_cuts = iter(cuts) while True: @@ -504,9 +611,14 @@ def divide( yield [] pos = 0 + _cell_len = cell_len for segment in segments: - while segment.text: - end_pos = pos + segment.cell_length + text, _style, control = segment + while text: + if control: + end_pos = pos + else: + end_pos = pos + _cell_len(text) if end_pos < cut: add_segment(segment) pos = end_pos @@ -521,6 +633,7 @@ def divide( break else: before, segment = segment.split_cells(cut - pos) + text, _style, control = segment add_segment(before) yield split_segments[:] del split_segments[:] @@ -585,39 +698,35 @@ def __rich_console__( yield from line -if __name__ == "__main__": +if __name__ == "__main__": # pragma: no cover + from rich.console import Console + from rich.syntax import Syntax + from rich.text import Text - if __name__ == "__main__": # pragma: no cover - from rich.console import Console - from rich.syntax import Syntax - from rich.text import Text + code = """from rich.console import Console +console = Console() +text = Text.from_markup("Hello, [bold magenta]World[/]!") +console.print(text)""" - code = """from rich.console import Console - console = Console() text = Text.from_markup("Hello, [bold magenta]World[/]!") - console.print(text)""" - text = Text.from_markup("Hello, [bold magenta]World[/]!") - - console = Console() + console = Console() - console.rule("rich.Segment") - console.print( - "A Segment is the last step in the Rich render process before generating text with ANSI codes." - ) - console.print("\nConsider the following code:\n") - console.print(Syntax(code, "python", line_numbers=True)) - console.print() - console.print( - "When you call [b]print()[/b], Rich [i]renders[/i] the object in to the the following:\n" - ) - fragments = list(console.render(text)) - console.print(fragments) - console.print() - console.print( - "The Segments are then processed to produce the following output:\n" - ) - console.print(text) - console.print( - "\nYou will only need to know this if you are implementing your own Rich renderables." - ) + console.rule("rich.Segment") + console.print( + "A Segment is the last step in the Rich render process before generating text with ANSI codes." + ) + console.print("\nConsider the following code:\n") + console.print(Syntax(code, "python", line_numbers=True)) + console.print() + console.print( + "When you call [b]print()[/b], Rich [i]renders[/i] the object in to the the following:\n" + ) + fragments = list(console.render(text)) + console.print(fragments) + console.print() + console.print("The Segments are then processed to produce the following output:\n") + console.print(text) + console.print( + "\nYou will only need to know this if you are implementing your own Rich renderables." + ) diff --git a/rich/spinner.py b/rich/spinner.py index 5b13b1e9ba..0879088e14 100644 --- a/rich/spinner.py +++ b/rich/spinner.py @@ -1,4 +1,4 @@ -from typing import cast, List, Optional, TYPE_CHECKING +from typing import cast, List, Optional, TYPE_CHECKING, Union from ._spinners import SPINNERS from .measure import Measurement @@ -34,7 +34,9 @@ def __init__( spinner = SPINNERS[name] except KeyError: raise KeyError(f"no spinner called {name!r}") - self.text = Text.from_markup(text) if isinstance(text, str) else text + self.text: "Union[RenderableType, Text]" = ( + Text.from_markup(text) if isinstance(text, str) else text + ) self.frames = cast(List[str], spinner["frames"])[:] self.interval = cast(float, spinner["interval"]) self.start_time: Optional[float] = None diff --git a/rich/style.py b/rich/style.py index 0787c33147..bccbf23437 100644 --- a/rich/style.py +++ b/rich/style.py @@ -740,7 +740,7 @@ def __add__(self, style: Optional["Style"]) -> "Style": new_style._link = style._link or self._link new_style._link_id = style._link_id or self._link_id new_style._hash = style._hash - new_style._null = self._null or style._null + new_style._null = style._null if self._meta and style._meta: new_style._meta = dumps({**self.meta, **style.meta}) else: diff --git a/rich/syntax.py b/rich/syntax.py index 05d41c993e..cb34855acd 100644 --- a/rich/syntax.py +++ b/rich/syntax.py @@ -1,10 +1,10 @@ import os.path import platform -from rich.containers import Lines import textwrap from abc import ABC, abstractmethod from typing import Any, Dict, Iterable, List, Optional, Set, Tuple, Type, Union +from pygments.lexer import Lexer from pygments.lexers import get_lexer_by_name, guess_lexer_for_filename from pygments.style import Style as PygmentsStyle from pygments.styles import get_style_by_name @@ -22,12 +22,15 @@ ) from pygments.util import ClassNotFound +from rich.containers import Lines +from rich.padding import Padding, PaddingDimensions + from ._loop import loop_first from .color import Color, blend_rgb from .console import Console, ConsoleOptions, JustifyMethod, RenderResult from .jupyter import JupyterMixin from .measure import Measurement -from .segment import Segment +from .segment import Segment, Segments from .style import Style from .text import Text @@ -98,6 +101,7 @@ } RICH_SYNTAX_THEMES = {"ansi_light": ANSI_LIGHT, "ansi_dark": ANSI_DARK} +NUMBERS_COLUMN_DEFAULT_PADDING = 2 class SyntaxTheme(ABC): @@ -194,18 +198,20 @@ class Syntax(JupyterMixin): Args: code (str): Code to highlight. - lexer_name (str): Lexer to use (see https://pygments.org/docs/lexers/) + lexer (Lexer | str): Lexer to use (see https://pygments.org/docs/lexers/) theme (str, optional): Color theme, aka Pygments style (see https://pygments.org/docs/styles/#getting-a-list-of-available-styles). Defaults to "monokai". dedent (bool, optional): Enable stripping of initial whitespace. Defaults to False. line_numbers (bool, optional): Enable rendering of line numbers. Defaults to False. start_line (int, optional): Starting number for line numbers. Defaults to 1. - line_range (Tuple[int, int], optional): If given should be a tuple of the start and end line to render. + line_range (Tuple[int | None, int | None], optional): If given should be a tuple of the start and end line to render. + A value of None in the tuple indicates the range is open in that direction. highlight_lines (Set[int]): A set of line numbers to highlight. code_width: Width of code to render (not including line numbers), or ``None`` to use all available width. tab_size (int, optional): Size of tabs. Defaults to 4. word_wrap (bool, optional): Enable word wrapping. background_color (str, optional): Optional background color, or None to use theme color. Defaults to None. indent_guides (bool, optional): Show indent guides. Defaults to False. + padding (PaddingDimensions): Padding to apply around the syntax. Defaults to 0 (no padding). """ _pygments_style_class: Type[PygmentsStyle] @@ -226,22 +232,23 @@ def get_theme(cls, name: Union[str, SyntaxTheme]) -> SyntaxTheme: def __init__( self, code: str, - lexer_name: str, + lexer: Union[Lexer, str], *, theme: Union[str, SyntaxTheme] = DEFAULT_THEME, dedent: bool = False, line_numbers: bool = False, start_line: int = 1, - line_range: Optional[Tuple[int, int]] = None, + line_range: Optional[Tuple[Optional[int], Optional[int]]] = None, highlight_lines: Optional[Set[int]] = None, code_width: Optional[int] = None, tab_size: int = 4, word_wrap: bool = False, background_color: Optional[str] = None, indent_guides: bool = False, + padding: PaddingDimensions = 0, ) -> None: self.code = code - self.lexer_name = lexer_name + self._lexer = lexer self.dedent = dedent self.line_numbers = line_numbers self.start_line = start_line @@ -255,6 +262,7 @@ def __init__( Style(bgcolor=background_color) if background_color else Style() ) self.indent_guides = indent_guides + self.padding = padding self._theme = self.get_theme(theme) @@ -263,6 +271,7 @@ def from_path( cls, path: str, encoding: str = "utf-8", + lexer: Optional[Union[Lexer, str]] = None, theme: Union[str, SyntaxTheme] = DEFAULT_THEME, dedent: bool = False, line_numbers: bool = False, @@ -274,12 +283,14 @@ def from_path( word_wrap: bool = False, background_color: Optional[str] = None, indent_guides: bool = False, + padding: PaddingDimensions = 0, ) -> "Syntax": """Construct a Syntax object from a file. Args: path (str): Path to file to highlight. encoding (str): Encoding of file. + lexer (str | Lexer, optional): Lexer to use. If None, lexer will be auto-detected from path/file content. theme (str, optional): Color theme, aka Pygments style (see https://pygments.org/docs/styles/#getting-a-list-of-available-styles). Defaults to "emacs". dedent (bool, optional): Enable stripping of initial whitespace. Defaults to True. line_numbers (bool, optional): Enable rendering of line numbers. Defaults to False. @@ -291,6 +302,7 @@ def from_path( word_wrap (bool, optional): Enable word wrapping of code. background_color (str, optional): Optional background color, or None to use theme color. Defaults to None. indent_guides (bool, optional): Show indent guides. Defaults to False. + padding (PaddingDimensions): Padding to apply around the syntax. Defaults to 0 (no padding). Returns: [Syntax]: A Syntax object that may be printed to the console @@ -298,26 +310,12 @@ def from_path( with open(path, "rt", encoding=encoding) as code_file: code = code_file.read() - lexer = None - lexer_name = "default" - try: - _, ext = os.path.splitext(path) - if ext: - extension = ext.lstrip(".").lower() - lexer = get_lexer_by_name(extension) - lexer_name = lexer.name - except ClassNotFound: - pass - - if lexer is None: - try: - lexer_name = guess_lexer_for_filename(path, code).name - except ClassNotFound: - pass + if not lexer: + lexer = cls.guess_lexer(path, code=code) return cls( code, - lexer_name, + lexer, theme=theme, dedent=dedent, line_numbers=line_numbers, @@ -329,8 +327,51 @@ def from_path( word_wrap=word_wrap, background_color=background_color, indent_guides=indent_guides, + padding=padding, ) + @classmethod + def guess_lexer(cls, path: str, code: Optional[str] = None) -> str: + """Guess the alias of the Pygments lexer to use based on a path and an optional string of code. + If code is supplied, it will use a combination of the code and the filename to determine the + best lexer to use. For example, if the file is ``index.html`` and the file contains Django + templating syntax, then "html+django" will be returned. If the file is ``index.html``, and no + templating language is used, the "html" lexer will be used. If no string of code + is supplied, the lexer will be chosen based on the file extension.. + + Args: + path (AnyStr): The path to the file containing the code you wish to know the lexer for. + code (str, optional): Optional string of code that will be used as a fallback if no lexer + is found for the supplied path. + + Returns: + str: The name of the Pygments lexer that best matches the supplied path/code. + """ + lexer: Optional[Lexer] = None + lexer_name = "default" + if code: + try: + lexer = guess_lexer_for_filename(path, code) + except ClassNotFound: + pass + + if not lexer: + try: + _, ext = os.path.splitext(path) + if ext: + extension = ext.lstrip(".").lower() + lexer = get_lexer_by_name(extension) + except ClassNotFound: + pass + + if lexer: + if lexer.aliases: + lexer_name = lexer.aliases[0] + else: + lexer_name = lexer.name + + return lexer_name + def _get_base_style(self) -> Style: """Get the base style.""" default_style = self._theme.get_background_style() + self.background_style @@ -348,8 +389,29 @@ def _get_token_color(self, token_type: TokenType) -> Optional[Color]: style = self._theme.get_style_for_token(token_type) return style.color + @property + def lexer(self) -> Optional[Lexer]: + """The lexer for this syntax, or None if no lexer was found. + + Tries to find the lexer by name if a string was passed to the constructor. + """ + + if isinstance(self._lexer, Lexer): + return self._lexer + try: + return get_lexer_by_name( + self._lexer, + stripnl=False, + ensurenl=True, + tabsize=self.tab_size, + ) + except ClassNotFound: + return None + def highlight( - self, code: str, line_range: Optional[Tuple[int, int]] = None + self, + code: str, + line_range: Optional[Tuple[Optional[int], Optional[int]]] = None, ) -> Text: """Highlight code and return a Text instance. @@ -373,14 +435,10 @@ def highlight( no_wrap=not self.word_wrap, ) _get_theme_style = self._theme.get_style_for_token - try: - lexer = get_lexer_by_name( - self.lexer_name, - stripnl=False, - ensurenl=True, - tabsize=self.tab_size, - ) - except ClassNotFound: + + lexer = self.lexer + + if lexer is None: text.append(code) else: if line_range: @@ -390,6 +448,8 @@ def highlight( def line_tokenize() -> Iterable[Tuple[Any, str]]: """Split tokens to one per line.""" + assert lexer + for token_type, token in lexer.get_tokens(code): while token: line_token, new_line, token = token.partition("\n") @@ -399,7 +459,7 @@ def tokens_to_spans() -> Iterable[Tuple[str, Optional[Style]]]: """Convert tokens to spans.""" tokens = iter(line_tokenize()) line_no = 0 - _line_start = line_start - 1 + _line_start = line_start - 1 if line_start else 0 # Skip over tokens until line start while line_no < _line_start: @@ -412,7 +472,7 @@ def tokens_to_spans() -> Iterable[Tuple[str, Optional[Style]]]: yield (token, _get_theme_style(token_type)) if token.endswith("\n"): line_no += 1 - if line_no >= line_end: + if line_end and line_no >= line_end: break text.append_tokens(tokens_to_spans()) @@ -446,7 +506,10 @@ def _numbers_column_width(self) -> int: """Get the number of characters used to render the numbers column.""" column_width = 0 if self.line_numbers: - column_width = len(str(self.start_line + self.code.count("\n"))) + 2 + column_width = ( + len(str(self.start_line + self.code.count("\n"))) + + NUMBERS_COLUMN_DEFAULT_PADDING + ) return column_width def _get_number_styles(self, console: Console) -> Tuple[Style, Style, Style]: @@ -475,15 +538,31 @@ def _get_number_styles(self, console: Console) -> Tuple[Style, Style, Style]: def __rich_measure__( self, console: "Console", options: "ConsoleOptions" ) -> "Measurement": + _, right, _, left = Padding.unpack(self.padding) if self.code_width is not None: - width = self.code_width + self._numbers_column_width + width = self.code_width + self._numbers_column_width + right + left return Measurement(self._numbers_column_width, width) return Measurement(self._numbers_column_width, options.max_width) def __rich_console__( self, console: Console, options: ConsoleOptions ) -> RenderResult: + segments = Segments(self._get_syntax(console, options)) + if self.padding: + yield Padding( + segments, style=self._theme.get_background_style(), pad=self.padding + ) + else: + yield segments + def _get_syntax( + self, + console: Console, + options: ConsoleOptions, + ) -> Iterable[Segment]: + """ + Get the Segments for the Syntax object, excluding any vertical/horizontal padding + """ transparent_background = self._get_base_style().transparent_background code_width = ( ( @@ -495,23 +574,12 @@ def __rich_console__( else self.code_width ) - line_offset = 0 - if self.line_range: - start_line, end_line = self.line_range - line_offset = max(0, start_line - 1) - ends_on_nl = self.code.endswith("\n") code = self.code if ends_on_nl else self.code + "\n" code = textwrap.dedent(code) if self.dedent else code code = code.expandtabs(self.tab_size) text = self.highlight(code, self.line_range) - ( - background_style, - number_style, - highlight_number_style, - ) = self._get_number_styles(console) - if not self.line_numbers and not self.word_wrap and not self.line_range: if not ends_on_nl: text.remove_suffix("\n") @@ -532,7 +600,7 @@ def __rich_console__( else: syntax_lines = console.render_lines( text, - options.update(width=code_width, height=None), + options.update(width=code_width, height=None, justify="left"), style=self.background_style, pad=True, new_lines=True, @@ -541,6 +609,10 @@ def __rich_console__( yield from syntax_line return + start_line, end_line = self.line_range or (None, None) + line_offset = 0 + if start_line: + line_offset = max(0, start_line - 1) lines: Union[List[Text], Lines] = text.split("\n", allow_blank=ends_on_nl) if self.line_range: lines = lines[line_offset:end_line] @@ -564,20 +636,24 @@ def __rich_console__( highlight_line = self.highlight_lines.__contains__ _Segment = Segment - padding = _Segment(" " * numbers_column_width + " ", background_style) new_line = _Segment("\n") line_pointer = "> " if options.legacy_windows else "❱ " + ( + background_style, + number_style, + highlight_number_style, + ) = self._get_number_styles(console) + for line_no, line in enumerate(lines, self.start_line + line_offset): if self.word_wrap: wrapped_lines = console.render_lines( line, - render_options.update(height=None), + render_options.update(height=None, justify="left"), style=background_style, pad=not transparent_background, ) - else: segments = list(line.render(console, end="")) if options.no_wrap: @@ -591,7 +667,11 @@ def __rich_console__( pad=not transparent_background, ) ] + if self.line_numbers: + wrapped_line_left_pad = _Segment( + " " * numbers_column_width + " ", background_style + ) for first, wrapped_line in loop_first(wrapped_lines): if first: line_column = str(line_no).rjust(numbers_column_width - 2) + " " @@ -602,7 +682,7 @@ def __rich_console__( yield _Segment(" ", highlight_number_style) yield _Segment(line_column, number_style) else: - yield padding + yield wrapped_line_left_pad yield from wrapped_line yield new_line else: @@ -684,10 +764,20 @@ def __rich_console__( parser.add_argument( "-x", "--lexer", - default="default", + default=None, dest="lexer_name", help="Lexer name", ) + parser.add_argument( + "-p", "--padding", type=int, default=0, dest="padding", help="Padding" + ) + parser.add_argument( + "--highlight-line", + type=int, + default=None, + dest="highlight_line", + help="The line number (not index!) to highlight", + ) args = parser.parse_args() from rich.console import Console @@ -698,20 +788,25 @@ def __rich_console__( code = sys.stdin.read() syntax = Syntax( code=code, - lexer_name=args.lexer_name, + lexer=args.lexer_name, line_numbers=args.line_numbers, word_wrap=args.word_wrap, theme=args.theme, background_color=args.background_color, indent_guides=args.indent_guides, + padding=args.padding, + highlight_lines={args.highlight_line}, ) else: syntax = Syntax.from_path( args.path, + lexer=args.lexer_name, line_numbers=args.line_numbers, word_wrap=args.word_wrap, theme=args.theme, background_color=args.background_color, indent_guides=args.indent_guides, + padding=args.padding, + highlight_lines={args.highlight_line}, ) console.print(syntax, soft_wrap=args.soft_wrap) diff --git a/rich/table.py b/rich/table.py index b6a9c1ae6e..15a0c0e07f 100644 --- a/rich/table.py +++ b/rich/table.py @@ -1,11 +1,12 @@ from dataclasses import dataclass, field, replace from typing import ( - Dict, TYPE_CHECKING, + Dict, Iterable, List, NamedTuple, Optional, + Sequence, Tuple, Union, ) @@ -14,6 +15,7 @@ from ._loop import loop_first_last, loop_last from ._pick import pick_bool from ._ratio import ratio_distribute, ratio_reduce +from .align import VerticalAlignMethod from .jupyter import JupyterMixin from .measure import Measurement from .padding import Padding, PaddingDimensions @@ -35,7 +37,35 @@ @dataclass class Column: - """Defines a column in a table.""" + """Defines a column within a ~Table. + + Args: + title (Union[str, Text], optional): The title of the table rendered at the top. Defaults to None. + caption (Union[str, Text], optional): The table caption rendered below. Defaults to None. + width (int, optional): The width in characters of the table, or ``None`` to automatically fit. Defaults to None. + min_width (Optional[int], optional): The minimum width of the table, or ``None`` for no minimum. Defaults to None. + box (box.Box, optional): One of the constants in box.py used to draw the edges (see :ref:`appendix_box`), or ``None`` for no box lines. Defaults to box.HEAVY_HEAD. + safe_box (Optional[bool], optional): Disable box characters that don't display on windows legacy terminal with *raster* fonts. Defaults to True. + padding (PaddingDimensions, optional): Padding for cells (top, right, bottom, left). Defaults to (0, 1). + collapse_padding (bool, optional): Enable collapsing of padding around cells. Defaults to False. + pad_edge (bool, optional): Enable padding of edge cells. Defaults to True. + expand (bool, optional): Expand the table to fit the available space if ``True``, otherwise the table width will be auto-calculated. Defaults to False. + show_header (bool, optional): Show a header row. Defaults to True. + show_footer (bool, optional): Show a footer row. Defaults to False. + show_edge (bool, optional): Draw a box around the outside of the table. Defaults to True. + show_lines (bool, optional): Draw lines between every row. Defaults to False. + leading (bool, optional): Number of blank lines between rows (precludes ``show_lines``). Defaults to 0. + style (Union[str, Style], optional): Default style for the table. Defaults to "none". + row_styles (List[Union, str], optional): Optional list of row styles, if more than one style is given then the styles will alternate. Defaults to None. + header_style (Union[str, Style], optional): Style of the header. Defaults to "table.header". + footer_style (Union[str, Style], optional): Style of the footer. Defaults to "table.footer". + border_style (Union[str, Style], optional): Style of the border. Defaults to None. + title_style (Union[str, Style], optional): Style of the title. Defaults to None. + caption_style (Union[str, Style], optional): Style of the caption. Defaults to None. + title_justify (str, optional): Justify method for title. Defaults to "center". + caption_justify (str, optional): Justify method for caption. Defaults to "center". + highlight (bool, optional): Highlight cell contents (if str). Defaults to False. + """ header: "RenderableType" = "" """RenderableType: Renderable for the header (typically a string)""" @@ -55,6 +85,9 @@ class Column: justify: "JustifyMethod" = "left" """str: How to justify text within the column ("left", "center", "right", or "full")""" + vertical: "VerticalAlignMethod" = "top" + """str: How to vertically align content ("top", "middle", or "bottom")""" + overflow: "OverflowMethod" = "ellipsis" """str: Overflow method.""" @@ -111,6 +144,8 @@ class _Cell(NamedTuple): """Style to apply to cell.""" renderable: "RenderableType" """Cell renderable.""" + vertical: VerticalAlignMethod + """Cell vertical alignment.""" class Table(JupyterMixin): @@ -201,10 +236,10 @@ def __init__( self.border_style = border_style self.title_style = title_style self.caption_style = caption_style - self.title_justify = title_justify - self.caption_justify = caption_justify + self.title_justify: "JustifyMethod" = title_justify + self.caption_justify: "JustifyMethod" = caption_justify self.highlight = highlight - self.row_styles = list(row_styles or []) + self.row_styles: Sequence[StyleType] = list(row_styles or []) append_column = self.columns.append for header in headers: if isinstance(header, str): @@ -247,7 +282,7 @@ def grid( ) @property - def expand(self) -> int: + def expand(self) -> bool: """Setting a non-None self.width implies expand.""" return self._expand or self.width is not None @@ -334,6 +369,7 @@ def add_column( footer_style: Optional[StyleType] = None, style: Optional[StyleType] = None, justify: "JustifyMethod" = "left", + vertical: "VerticalAlignMethod" = "top", overflow: "OverflowMethod" = "ellipsis", width: Optional[int] = None, min_width: Optional[int] = None, @@ -352,6 +388,7 @@ def add_column( footer_style (Union[str, Style], optional): Style for the footer, or None for default. Defaults to None. style (Union[str, Style], optional): Style for the column cells, or None for default. Defaults to None. justify (JustifyMethod, optional): Alignment for cells. Defaults to "left". + vertical (VerticalAlignMethod, optional): Vertical alignment, one of "top", "middle", or "bottom". Defaults to "top". overflow (OverflowMethod): Overflow method: "crop", "fold", "ellipsis". Defaults to "ellipsis". width (int, optional): Desired width of column in characters, or None to fit to contents. Defaults to None. min_width (Optional[int], optional): Minimum width of column, or ``None`` for no minimum. Defaults to None. @@ -368,6 +405,7 @@ def add_column( footer_style=footer_style or "", style=style or "", justify=justify, + vertical=vertical, overflow=overflow, width=width, min_width=min_width, @@ -635,10 +673,18 @@ def get_padding(first_row: bool, last_row: bool) -> Tuple[int, int, int, int]: if any_padding: _Padding = Padding for first, last, (style, renderable) in loop_first_last(raw_cells): - yield _Cell(style, _Padding(renderable, get_padding(first, last))) + yield _Cell( + style, + _Padding(renderable, get_padding(first, last)), + getattr(renderable, "vertical", None) or column.vertical, + ) else: for (style, renderable) in raw_cells: - yield _Cell(style, renderable) + yield _Cell( + style, + renderable, + getattr(renderable, "vertical", None) or column.vertical, + ) def _get_padding_width(self, column_index: int) -> int: """Get extra width from padding.""" @@ -769,18 +815,45 @@ def _render( overflow=column.overflow, height=None, ) - cell_style = table_style + row_style + get_style(cell.style) lines = console.render_lines( - cell.renderable, render_options, style=cell_style + cell.renderable, + render_options, + style=get_style(cell.style) + row_style, ) max_height = max(max_height, len(lines)) cells.append(lines) + row_height = max(len(cell) for cell in cells) + + def align_cell( + cell: List[List[Segment]], + vertical: "VerticalAlignMethod", + width: int, + style: Style, + ) -> List[List[Segment]]: + if header_row: + vertical = "bottom" + elif footer_row: + vertical = "top" + + if vertical == "top": + return _Segment.align_top(cell, width, row_height, style) + elif vertical == "middle": + return _Segment.align_middle(cell, width, row_height, style) + return _Segment.align_bottom(cell, width, row_height, style) + cells[:] = [ _Segment.set_shape( - _cell, width, max_height, style=table_style + row_style + align_cell( + cell, + _cell.vertical, + width, + get_style(_cell.style) + row_style, + ), + width, + max_height, ) - for width, _cell in zip(widths, cells) + for width, _cell, cell, column in zip(widths, row_cell, cells, columns) ] if _box: @@ -845,74 +918,79 @@ def _render( if __name__ == "__main__": # pragma: no cover from rich.console import Console from rich.highlighter import ReprHighlighter - from rich.table import Table + from rich.table import Table as Table - table = Table( - title="Star Wars Movies", - caption="Rich example table", - caption_justify="right", - ) + from ._timer import timer - table.add_column("Released", header_style="bright_cyan", style="cyan", no_wrap=True) - table.add_column("Title", style="magenta") - table.add_column("Box Office", justify="right", style="green") + with timer("Table render"): + table = Table( + title="Star Wars Movies", + caption="Rich example table", + caption_justify="right", + ) - table.add_row( - "Dec 20, 2019", - "Star Wars: The Rise of Skywalker", - "$952,110,690", - ) - table.add_row("May 25, 2018", "Solo: A Star Wars Story", "$393,151,347") - table.add_row( - "Dec 15, 2017", - "Star Wars Ep. V111: The Last Jedi", - "$1,332,539,889", - style="on black", - end_section=True, - ) - table.add_row( - "Dec 16, 2016", - "Rogue One: A Star Wars Story", - "$1,332,439,889", - ) + table.add_column( + "Released", header_style="bright_cyan", style="cyan", no_wrap=True + ) + table.add_column("Title", style="magenta") + table.add_column("Box Office", justify="right", style="green") + + table.add_row( + "Dec 20, 2019", + "Star Wars: The Rise of Skywalker", + "$952,110,690", + ) + table.add_row("May 25, 2018", "Solo: A Star Wars Story", "$393,151,347") + table.add_row( + "Dec 15, 2017", + "Star Wars Ep. V111: The Last Jedi", + "$1,332,539,889", + style="on black", + end_section=True, + ) + table.add_row( + "Dec 16, 2016", + "Rogue One: A Star Wars Story", + "$1,332,439,889", + ) - def header(text: str) -> None: - console.print() - console.rule(highlight(text)) - console.print() - - console = Console() - highlight = ReprHighlighter() - header("Example Table") - console.print(table, justify="center") - - table.expand = True - header("expand=True") - console.print(table) - - table.width = 50 - header("width=50") - - console.print(table, justify="center") - - table.width = None - table.expand = False - table.row_styles = ["dim", "none"] - header("row_styles=['dim', 'none']") - - console.print(table, justify="center") - - table.width = None - table.expand = False - table.row_styles = ["dim", "none"] - table.leading = 1 - header("leading=1, row_styles=['dim', 'none']") - console.print(table, justify="center") - - table.width = None - table.expand = False - table.row_styles = ["dim", "none"] - table.show_lines = True - table.leading = 0 - header("show_lines=True, row_styles=['dim', 'none']") - console.print(table, justify="center") + def header(text: str) -> None: + console.print() + console.rule(highlight(text)) + console.print() + + console = Console() + highlight = ReprHighlighter() + header("Example Table") + console.print(table, justify="center") + + table.expand = True + header("expand=True") + console.print(table) + + table.width = 50 + header("width=50") + + console.print(table, justify="center") + + table.width = None + table.expand = False + table.row_styles = ["dim", "none"] + header("row_styles=['dim', 'none']") + + console.print(table, justify="center") + + table.width = None + table.expand = False + table.row_styles = ["dim", "none"] + table.leading = 1 + header("leading=1, row_styles=['dim', 'none']") + console.print(table, justify="center") + + table.width = None + table.expand = False + table.row_styles = ["dim", "none"] + table.show_lines = True + table.leading = 0 + header("show_lines=True, row_styles=['dim', 'none']") + console.print(table, justify="center") diff --git a/rich/tabulate.py b/rich/tabulate.py deleted file mode 100644 index ca4fe293a6..0000000000 --- a/rich/tabulate.py +++ /dev/null @@ -1,51 +0,0 @@ -from collections.abc import Mapping -from typing import Any, Optional -import warnings - -from rich.console import JustifyMethod - -from . import box -from .highlighter import ReprHighlighter -from .pretty import Pretty -from .table import Table - - -def tabulate_mapping( - mapping: "Mapping[Any, Any]", - title: Optional[str] = None, - caption: Optional[str] = None, - title_justify: Optional[JustifyMethod] = None, - caption_justify: Optional[JustifyMethod] = None, -) -> Table: - """Generate a simple table from a mapping. - - Args: - mapping (Mapping): A mapping object (e.g. a dict); - title (str, optional): Optional title to be displayed over the table. - caption (str, optional): Optional caption to be displayed below the table. - title_justify (str, optional): Justify method for title. Defaults to None. - caption_justify (str, optional): Justify method for caption. Defaults to None. - - Returns: - Table: A table instance which may be rendered by the Console. - """ - warnings.warn("tabulate_mapping will be deprecated in Rich v11", DeprecationWarning) - table = Table( - show_header=False, - title=title, - caption=caption, - box=box.ROUNDED, - border_style="blue", - ) - table.title = title - table.caption = caption - if title_justify is not None: - table.title_justify = title_justify - if caption_justify is not None: - table.caption_justify = caption_justify - highlighter = ReprHighlighter() - for key, value in mapping.items(): - table.add_row( - Pretty(key, highlighter=highlighter), Pretty(value, highlighter=highlighter) - ) - return table diff --git a/rich/terminal_theme.py b/rich/terminal_theme.py index 801ac0b7b8..565e9d960f 100644 --- a/rich/terminal_theme.py +++ b/rich/terminal_theme.py @@ -53,3 +53,101 @@ def __init__( (255, 255, 255), ], ) + +MONOKAI = TerminalTheme( + (12, 12, 12), + (217, 217, 217), + [ + (26, 26, 26), + (244, 0, 95), + (152, 224, 36), + (253, 151, 31), + (157, 101, 255), + (244, 0, 95), + (88, 209, 235), + (196, 197, 181), + (98, 94, 76), + ], + [ + (244, 0, 95), + (152, 224, 36), + (224, 213, 97), + (157, 101, 255), + (244, 0, 95), + (88, 209, 235), + (246, 246, 239), + ], +) +DIMMED_MONOKAI = TerminalTheme( + (25, 25, 25), + (185, 188, 186), + [ + (58, 61, 67), + (190, 63, 72), + (135, 154, 59), + (197, 166, 53), + (79, 118, 161), + (133, 92, 141), + (87, 143, 164), + (185, 188, 186), + (136, 137, 135), + ], + [ + (251, 0, 31), + (15, 114, 47), + (196, 112, 51), + (24, 109, 227), + (251, 0, 103), + (46, 112, 109), + (253, 255, 185), + ], +) +NIGHT_OWLISH = TerminalTheme( + (255, 255, 255), + (64, 63, 83), + [ + (1, 22, 39), + (211, 66, 62), + (42, 162, 152), + (218, 170, 1), + (72, 118, 214), + (64, 63, 83), + (8, 145, 106), + (122, 129, 129), + (122, 129, 129), + ], + [ + (247, 110, 110), + (73, 208, 197), + (218, 194, 107), + (92, 167, 228), + (105, 112, 152), + (0, 201, 144), + (152, 159, 177), + ], +) + +SVG_EXPORT_THEME = TerminalTheme( + (41, 41, 41), + (197, 200, 198), + [ + (75, 78, 85), + (204, 85, 90), + (152, 168, 75), + (208, 179, 68), + (96, 138, 177), + (152, 114, 159), + (104, 160, 179), + (197, 200, 198), + (154, 155, 153), + ], + [ + (255, 38, 39), + (0, 130, 61), + (208, 132, 66), + (25, 132, 233), + (255, 44, 122), + (57, 130, 128), + (253, 253, 197), + ], +) diff --git a/rich/text.py b/rich/text.py index cce93274e3..f6b349d6a2 100644 --- a/rich/text.py +++ b/rich/text.py @@ -1,7 +1,7 @@ import re from functools import partial, reduce from math import gcd -from operator import attrgetter, itemgetter +from operator import itemgetter from rich.emoji import EmojiVariant from typing import ( TYPE_CHECKING, @@ -14,7 +14,6 @@ Optional, Tuple, Union, - cast, ) from ._loop import loop_last @@ -58,7 +57,7 @@ def __repr__(self) -> str: return ( f"Span({self.start}, {self.end}, {self.style!r})" if (isinstance(self.style, Style) and self.style._meta) - else f"Span({self.start}, {self.end}, {str(self.style)!r})" + else f"Span({self.start}, {self.end}, {repr(self.style)})" ) def __bool__(self) -> bool: @@ -144,8 +143,8 @@ def __init__( ) -> None: self._text = [strip_control_codes(text)] self.style = style - self.justify = justify - self.overflow = overflow + self.justify: Optional["JustifyMethod"] = justify + self.overflow: Optional["OverflowMethod"] = overflow self.no_wrap = no_wrap self.end = end self.tab_size = tab_size @@ -214,6 +213,36 @@ def cell_len(self) -> int: """Get the number of cells required to render this text.""" return cell_len(self.plain) + @property + def markup(self) -> str: + """Get console markup to render this Text. + + Returns: + str: A string potentially creating markup tags. + """ + from .markup import escape + + output: List[str] = [] + + plain = self.plain + markup_spans = [ + (0, False, self.style), + *((span.start, False, span.style) for span in self._spans), + *((span.end, True, span.style) for span in self._spans), + (len(plain), True, self.style), + ] + markup_spans.sort(key=itemgetter(0, 1)) + position = 0 + append = output.append + for offset, closing, style in markup_spans: + if offset > position: + append(escape(plain[position:offset])) + position = offset + if style: + append(f"[/{style}]" if closing else f"[{style}]") + markup = "".join(output) + return markup + @classmethod def from_markup( cls, @@ -224,6 +253,7 @@ def from_markup( emoji_variant: Optional[EmojiVariant] = None, justify: Optional["JustifyMethod"] = None, overflow: Optional["OverflowMethod"] = None, + end: str = "\n", ) -> "Text": """Create Text instance from markup. @@ -232,6 +262,7 @@ def from_markup( emoji (bool, optional): Also render emoji code. Defaults to True. justify (str, optional): Justify method: "left", "center", "full", "right". Defaults to None. overflow (str, optional): Overflow method: "crop", "fold", "ellipsis". Defaults to None. + end (str, optional): Character to end text with. Defaults to "\\\\n". Returns: Text: A Text instance with markup rendered. @@ -241,8 +272,47 @@ def from_markup( rendered_text = render(text, style, emoji=emoji, emoji_variant=emoji_variant) rendered_text.justify = justify rendered_text.overflow = overflow + rendered_text.end = end return rendered_text + @classmethod + def from_ansi( + cls, + text: str, + *, + style: Union[str, Style] = "", + justify: Optional["JustifyMethod"] = None, + overflow: Optional["OverflowMethod"] = None, + no_wrap: Optional[bool] = None, + end: str = "\n", + tab_size: Optional[int] = 8, + ) -> "Text": + """Create a Text object from a string containing ANSI escape codes. + + Args: + text (str): A string containing escape codes. + style (Union[str, Style], optional): Base style for text. Defaults to "". + justify (str, optional): Justify method: "left", "center", "full", "right". Defaults to None. + overflow (str, optional): Overflow method: "crop", "fold", "ellipsis". Defaults to None. + no_wrap (bool, optional): Disable text wrapping, or None for default. Defaults to None. + end (str, optional): Character to end text with. Defaults to "\\\\n". + tab_size (int): Number of spaces per tab, or ``None`` to use ``console.tab_size``. Defaults to 8. + """ + from .ansi import AnsiDecoder + + joiner = Text( + "\n", + justify=justify, + overflow=overflow, + no_wrap=no_wrap, + end=end, + tab_size=tab_size, + style=style, + ) + decoder = AnsiDecoder() + result = joiner.join(line for line in decoder.decode(text)) + return result + @classmethod def styled( cls, @@ -555,15 +625,9 @@ def __rich_console__( self, console: "Console", options: "ConsoleOptions" ) -> Iterable[Segment]: tab_size: int = console.tab_size or self.tab_size or 8 - justify = ( - cast("JustifyMethod", self.justify) or options.justify or DEFAULT_OVERFLOW - ) + justify = self.justify or options.justify or DEFAULT_JUSTIFY - overflow = ( - cast("OverflowMethod", self.overflow) - or options.overflow - or DEFAULT_OVERFLOW - ) + overflow = self.overflow or options.overflow or DEFAULT_OVERFLOW lines = self.wrap( console, @@ -972,6 +1036,7 @@ def divide(self, offsets: Iterable[int]) -> Lines: Lines: New RichText instances between offsets. """ _offsets = list(offsets) + if not _offsets: return Lines([self.copy()]) @@ -995,33 +1060,49 @@ def divide(self, offsets: Iterable[int]) -> Lines: ) if not self._spans: return new_lines - order = {span: span_index for span_index, span in enumerate(self._spans)} - span_stack = sorted(self._spans, key=attrgetter("start"), reverse=True) - pop = span_stack.pop - push = span_stack.append + _line_appends = [line._spans.append for line in new_lines._lines] + line_count = len(line_ranges) _Span = Span - get_order = order.__getitem__ - - for line, (start, end) in zip(new_lines, line_ranges): - if not span_stack: - break - append_span = line._spans.append - position = len(span_stack) - 1 - while span_stack[position].start < end: - span = pop(position) - add_span, remaining_span = span.split(end) - if remaining_span: - push(remaining_span) - order[remaining_span] = order[span] - span_start, span_end, span_style = add_span - line_span = _Span(span_start - start, span_end - start, span_style) - order[line_span] = order[span] - append_span(line_span) - position -= 1 - if position < 0 or not span_stack: - break # pragma: no cover - line._spans.sort(key=get_order) + + for span_start, span_end, style in self._spans: + + lower_bound = 0 + upper_bound = line_count + start_line_no = (lower_bound + upper_bound) // 2 + + while True: + line_start, line_end = line_ranges[start_line_no] + if span_start < line_start: + upper_bound = start_line_no - 1 + elif span_start > line_end: + lower_bound = start_line_no + 1 + else: + break + start_line_no = (lower_bound + upper_bound) // 2 + + if span_end < line_end: + end_line_no = start_line_no + else: + end_line_no = lower_bound = start_line_no + upper_bound = line_count + + while True: + line_start, line_end = line_ranges[end_line_no] + if span_end < line_start: + upper_bound = end_line_no - 1 + elif span_end > line_end: + lower_bound = end_line_no + 1 + else: + break + end_line_no = (lower_bound + upper_bound) // 2 + + for line_no in range(start_line_no, end_line_no + 1): + line_start, line_end = line_ranges[line_no] + new_start = max(0, span_start - line_start) + new_end = min(span_end - line_start, line_end - line_start) + if new_end > new_start: + _line_appends[line_no](_Span(new_start, new_end, style)) return new_lines @@ -1065,10 +1146,8 @@ def wrap( Returns: Lines: Number of lines. """ - wrap_justify = cast("JustifyMethod", justify or self.justify) or DEFAULT_JUSTIFY - wrap_overflow = ( - cast("OverflowMethod", overflow or self.overflow) or DEFAULT_OVERFLOW - ) + wrap_justify = justify or self.justify or DEFAULT_JUSTIFY + wrap_overflow = overflow or self.overflow or DEFAULT_OVERFLOW no_wrap = pick_bool(no_wrap, self.no_wrap, False) or overflow == "ignore" @@ -1188,6 +1267,7 @@ def with_indent_guides( text.highlight_words(["ipsum"], "italic") console = Console() + console.rule("justify='left'") console.print(text, style="red") console.print() diff --git a/rich/traceback.py b/rich/traceback.py index 4315fe0539..55acaf0708 100644 --- a/rich/traceback.py +++ b/rich/traceback.py @@ -12,17 +12,12 @@ from pygments.token import Comment, Keyword, Name, Number, Operator, String from pygments.token import Text as TextToken from pygments.token import Token +from pygments.util import ClassNotFound from . import pretty -from ._loop import loop_first, loop_last +from ._loop import loop_last from .columns import Columns -from .console import ( - Console, - ConsoleOptions, - ConsoleRenderable, - RenderResult, - group, -) +from .console import Console, ConsoleOptions, ConsoleRenderable, RenderResult, group from .constrain import Constrain from .highlighter import RegexHighlighter, ReprHighlighter from .panel import Panel @@ -135,15 +130,15 @@ def ipy_display_traceback( ) try: # pragma: no cover - # if wihin ipython, use customized traceback - ip = get_ipython() # type: ignore + # if within ipython, use customized traceback + ip = get_ipython() # type: ignore[name-defined] ipy_excepthook_closure(ip) - return sys.excepthook # type: ignore # more strict signature that mypy can't interpret + return sys.excepthook except Exception: # otherwise use default system hook old_excepthook = sys.excepthook sys.excepthook = excepthook - return old_excepthook # type: ignore # more strict signature that mypy can't interpret + return old_excepthook @dataclass @@ -246,6 +241,9 @@ def __init__( self.suppress: Sequence[str] = [] for suppress_entity in suppress: if not isinstance(suppress_entity, str): + assert ( + suppress_entity.__file__ is not None + ), f"{suppress_entity!r} must be a module with '__file__' attribute" path = os.path.dirname(suppress_entity.__file__) else: path = suppress_entity @@ -369,6 +367,8 @@ def safe_str(_object: Any) -> str: if filename and not filename.startswith("<"): if not os.path.isabs(filename): filename = os.path.join(_IMPORT_CWD, filename) + if frame_summary.f_locals.get("_rich_traceback_omit", False): + continue frame = Frame( filename=filename or "?", lineno=line_no, @@ -385,7 +385,7 @@ def safe_str(_object: Any) -> str: else None, ) append(frame) - if "_rich_traceback_guard" in frame_summary.f_locals: + if frame_summary.f_locals.get("_rich_traceback_guard", False): del stack.frames[:] cause = getattr(exc_value, "__cause__", None) @@ -393,9 +393,8 @@ def safe_str(_object: Any) -> str: exc_type = cause.__class__ exc_value = cause traceback = cause.__traceback__ - if traceback: - is_cause = True - continue + is_cause = True + continue cause = exc_value.__context__ if ( @@ -406,9 +405,8 @@ def safe_str(_object: Any) -> str: exc_type = cause.__class__ exc_value = cause traceback = cause.__traceback__ - if traceback: - is_cause = False - continue + is_cause = False + continue # No cover, code is reached but coverage doesn't recognize it. break # pragma: no cover @@ -440,7 +438,8 @@ def __rich_console__( "scope.equals": token_style(Operator), "scope.key": token_style(Name), "scope.key.special": token_style(Name.Constant) + Style(dim=True), - } + }, + inherit=False, ) highlighter = ReprHighlighter() @@ -450,7 +449,7 @@ def __rich_console__( self._render_stack(stack), title="[traceback.title]Traceback [dim](most recent call last)", style=background_style, - border_style="traceback.border.syntax_error", + border_style="traceback.border", expand=True, padding=(0, 1), ) @@ -463,7 +462,7 @@ def __rich_console__( Panel( self._render_syntax_error(stack.syntax_error), style=background_style, - border_style="traceback.border", + border_style="traceback.border.syntax_error", expand=True, padding=(0, 1), width=self.width, @@ -525,10 +524,10 @@ def _guess_lexer(cls, filename: str, code: str) -> str: first_line = code[:new_line_index] if new_line_index != -1 else code if first_line.startswith("#!") and "python" in first_line.lower(): return "python" - lexer_name = ( - cls.LEXERS.get(ext) or guess_lexer_for_filename(filename, code).name - ) - return lexer_name + try: + return cls.LEXERS.get(ext) or guess_lexer_for_filename(filename, code).name + except ClassNotFound: + return "text" @group() def _render_stack(self, stack: Stack) -> RenderResult: @@ -587,7 +586,7 @@ def render_locals(frame: Frame) -> Iterable[ConsoleRenderable]: ) excluded = False - first = frame_index == 1 + first = frame_index == 0 frame_filename = frame.filename suppressed = any(frame_filename.startswith(path) for path in self.suppress) @@ -673,7 +672,7 @@ def error() -> None: try: foo(0) except: - slfkjsldkfj # type: ignore + slfkjsldkfj # type: ignore[name-defined] except: console.print_exception(show_locals=True) diff --git a/rich/tree.py b/rich/tree.py index 5fd46fd46b..b9b7bbe541 100644 --- a/rich/tree.py +++ b/rich/tree.py @@ -28,6 +28,7 @@ def __init__( guide_style: StyleType = "tree.line", expanded: bool = True, highlight: bool = False, + hide_root: bool = False, ) -> None: self.label = label self.style = style @@ -35,6 +36,7 @@ def __init__( self.children: List[Tree] = [] self.expanded = expanded self.highlight = highlight + self.hide_root = hide_root def add( self, @@ -43,7 +45,7 @@ def add( style: Optional[StyleType] = None, guide_style: Optional[StyleType] = None, expanded: bool = True, - highlight: bool = False, + highlight: Optional[bool] = False, ) -> "Tree": """Add a child tree. @@ -105,6 +107,8 @@ def make_guide(index: int, style: Style) -> Segment: style_stack = StyleStack(get_style(self.style)) remove_guide_styles = Style(bold=False, underline2=False) + depth = 0 + while stack: stack_node = pop() try: @@ -123,7 +127,7 @@ def make_guide(index: int, style: Style) -> Segment: guide_style = guide_style_stack.current + get_style(node.guide_style) style = style_stack.current + get_style(node.style) - prefix = levels[1:] + prefix = levels[(2 if self.hide_root else 1) :] renderable_lines = console.render_lines( Styled(node.label, style), options.update( @@ -132,20 +136,23 @@ def make_guide(index: int, style: Style) -> Segment: highlight=self.highlight, height=None, ), + pad=options.justify is not None, ) - for first, line in loop_first(renderable_lines): - if prefix: - yield from _Segment.apply_style( - prefix, - style.background_style, - post_style=remove_guide_styles, - ) - yield from line - yield new_line - if first and prefix: - prefix[-1] = make_guide( - SPACE if last else CONTINUE, prefix[-1].style or null_style - ) + + if not (depth == 0 and self.hide_root): + for first, line in loop_first(renderable_lines): + if prefix: + yield from _Segment.apply_style( + prefix, + style.background_style, + post_style=remove_guide_styles, + ) + yield from line + yield new_line + if first and prefix: + prefix[-1] = make_guide( + SPACE if last else CONTINUE, prefix[-1].style or null_style + ) if node.expanded and node.children: levels[-1] = make_guide( @@ -157,6 +164,7 @@ def make_guide(index: int, style: Style) -> Segment: style_stack.push(get_style(node.style)) guide_style_stack.push(get_style(node.guide_style)) push(iter(loop_last(node.children))) + depth += 1 def __rich_measure__( self, console: "Console", options: "ConsoleOptions" @@ -207,9 +215,9 @@ def __rich_measure__( code = """\ class Segment(NamedTuple): - text: str = "" - style: Optional[Style] = None - is_control: bool = False + text: str = "" + style: Optional[Style] = None + is_control: bool = False """ syntax = Syntax(code, "python", theme="monokai", line_numbers=True) @@ -217,12 +225,12 @@ class Segment(NamedTuple): """\ ### example.md > Hello, World! -> +> > Markdown _all_ the things """ ) - root = Tree("🌲 [b green]Rich Tree", highlight=True) + root = Tree("🌲 [b green]Rich Tree", highlight=True, hide_root=True) node = root.add(":file_folder: Renderables", guide_style="red") simple_node = node.add(":file_folder: [bold yellow]Atomic", guide_style="uu green") @@ -239,4 +247,5 @@ class Segment(NamedTuple): containers_node.add(Group("📄 [b magenta]Table", table)) console = Console() + console.print(root) diff --git a/tests/_card_render.py b/tests/_card_render.py index 232191da0f..ac8d7d42df 100644 --- a/tests/_card_render.py +++ b/tests/_card_render.py @@ -1 +1 @@ -expected = """\x1b[3m Rich features \x1b[0m\n\x1b[1;31m \x1b[0m \n\x1b[1;31m \x1b[0m\x1b[1;31m Colors \x1b[0m\x1b[1;31m \x1b[0m✓ \x1b[1;32m4-bit color\x1b[0m \x1b[38;2;86;0;0;48;2;51;0;0m▄\x1b[0m\x1b[38;2;86;9;0;48;2;51;5;0m▄\x1b[0m\x1b[38;2;86;18;0;48;2;51;11;0m▄\x1b[0m\x1b[38;2;86;28;0;48;2;51;16;0m▄\x1b[0m\x1b[38;2;86;37;0;48;2;51;22;0m▄\x1b[0m\x1b[38;2;86;47;0;48;2;51;27;0m▄\x1b[0m\x1b[38;2;86;56;0;48;2;51;33;0m▄\x1b[0m\x1b[38;2;86;66;0;48;2;51;38;0m▄\x1b[0m\x1b[38;2;86;75;0;48;2;51;44;0m▄\x1b[0m\x1b[38;2;86;85;0;48;2;51;50;0m▄\x1b[0m\x1b[38;2;78;86;0;48;2;46;51;0m▄\x1b[0m\x1b[38;2;69;86;0;48;2;40;51;0m▄\x1b[0m\x1b[38;2;59;86;0;48;2;35;51;0m▄\x1b[0m\x1b[38;2;50;86;0;48;2;29;51;0m▄\x1b[0m\x1b[38;2;40;86;0;48;2;24;51;0m▄\x1b[0m\x1b[38;2;31;86;0;48;2;18;51;0m▄\x1b[0m\x1b[38;2;22;86;0;48;2;12;51;0m▄\x1b[0m\x1b[38;2;12;86;0;48;2;7;51;0m▄\x1b[0m\x1b[38;2;3;86;0;48;2;1;51;0m▄\x1b[0m\x1b[38;2;0;86;6;48;2;0;51;3m▄\x1b[0m\x1b[38;2;0;86;15;48;2;0;51;9m▄\x1b[0m\x1b[38;2;0;86;25;48;2;0;51;14m▄\x1b[0m\x1b[38;2;0;86;34;48;2;0;51;20m▄\x1b[0m\x1b[38;2;0;86;44;48;2;0;51;25m▄\x1b[0m\x1b[38;2;0;86;53;48;2;0;51;31m▄\x1b[0m\x1b[38;2;0;86;63;48;2;0;51;37m▄\x1b[0m\x1b[38;2;0;86;72;48;2;0;51;42m▄\x1b[0m\x1b[38;2;0;86;81;48;2;0;51;48m▄\x1b[0m\x1b[38;2;0;81;86;48;2;0;48;51m▄\x1b[0m\x1b[38;2;0;72;86;48;2;0;42;51m▄\x1b[0m\x1b[38;2;0;63;86;48;2;0;37;51m▄\x1b[0m\x1b[38;2;0;53;86;48;2;0;31;51m▄\x1b[0m\x1b[38;2;0;44;86;48;2;0;25;51m▄\x1b[0m\x1b[38;2;0;34;86;48;2;0;20;51m▄\x1b[0m\x1b[38;2;0;25;86;48;2;0;14;51m▄\x1b[0m\x1b[38;2;0;15;86;48;2;0;9;51m▄\x1b[0m\x1b[38;2;0;6;86;48;2;0;3;51m▄\x1b[0m\x1b[38;2;3;0;86;48;2;1;0;51m▄\x1b[0m\x1b[38;2;12;0;86;48;2;7;0;51m▄\x1b[0m\x1b[38;2;22;0;86;48;2;12;0;51m▄\x1b[0m\x1b[38;2;31;0;86;48;2;18;0;51m▄\x1b[0m\x1b[38;2;40;0;86;48;2;24;0;51m▄\x1b[0m\x1b[38;2;50;0;86;48;2;29;0;51m▄\x1b[0m\x1b[38;2;59;0;86;48;2;35;0;51m▄\x1b[0m\x1b[38;2;69;0;86;48;2;40;0;51m▄\x1b[0m\x1b[38;2;78;0;86;48;2;46;0;51m▄\x1b[0m\x1b[38;2;86;0;85;48;2;51;0;50m▄\x1b[0m\x1b[38;2;86;0;75;48;2;51;0;44m▄\x1b[0m\x1b[38;2;86;0;66;48;2;51;0;38m▄\x1b[0m\x1b[38;2;86;0;56;48;2;51;0;33m▄\x1b[0m\x1b[38;2;86;0;47;48;2;51;0;27m▄\x1b[0m\x1b[38;2;86;0;37;48;2;51;0;22m▄\x1b[0m\x1b[38;2;86;0;28;48;2;51;0;16m▄\x1b[0m\x1b[38;2;86;0;18;48;2;51;0;11m▄\x1b[0m\x1b[38;2;86;0;9;48;2;51;0;5m▄\x1b[0m \n ✓ \x1b[1;34m8-bit color\x1b[0m \x1b[38;2;158;0;0;48;2;122;0;0m▄\x1b[0m\x1b[38;2;158;17;0;48;2;122;13;0m▄\x1b[0m\x1b[38;2;158;34;0;48;2;122;26;0m▄\x1b[0m\x1b[38;2;158;51;0;48;2;122;40;0m▄\x1b[0m\x1b[38;2;158;68;0;48;2;122;53;0m▄\x1b[0m\x1b[38;2;158;86;0;48;2;122;66;0m▄\x1b[0m\x1b[38;2;158;103;0;48;2;122;80;0m▄\x1b[0m\x1b[38;2;158;120;0;48;2;122;93;0m▄\x1b[0m\x1b[38;2;158;137;0;48;2;122;106;0m▄\x1b[0m\x1b[38;2;158;155;0;48;2;122;120;0m▄\x1b[0m\x1b[38;2;143;158;0;48;2;111;122;0m▄\x1b[0m\x1b[38;2;126;158;0;48;2;97;122;0m▄\x1b[0m\x1b[38;2;109;158;0;48;2;84;122;0m▄\x1b[0m\x1b[38;2;91;158;0;48;2;71;122;0m▄\x1b[0m\x1b[38;2;74;158;0;48;2;57;122;0m▄\x1b[0m\x1b[38;2;57;158;0;48;2;44;122;0m▄\x1b[0m\x1b[38;2;40;158;0;48;2;31;122;0m▄\x1b[0m\x1b[38;2;22;158;0;48;2;17;122;0m▄\x1b[0m\x1b[38;2;5;158;0;48;2;4;122;0m▄\x1b[0m\x1b[38;2;0;158;11;48;2;0;122;8m▄\x1b[0m\x1b[38;2;0;158;28;48;2;0;122;22m▄\x1b[0m\x1b[38;2;0;158;45;48;2;0;122;35m▄\x1b[0m\x1b[38;2;0;158;63;48;2;0;122;48m▄\x1b[0m\x1b[38;2;0;158;80;48;2;0;122;62m▄\x1b[0m\x1b[38;2;0;158;97;48;2;0;122;75m▄\x1b[0m\x1b[38;2;0;158;114;48;2;0;122;89m▄\x1b[0m\x1b[38;2;0;158;132;48;2;0;122;102m▄\x1b[0m\x1b[38;2;0;158;149;48;2;0;122;115m▄\x1b[0m\x1b[38;2;0;149;158;48;2;0;115;122m▄\x1b[0m\x1b[38;2;0;132;158;48;2;0;102;122m▄\x1b[0m\x1b[38;2;0;114;158;48;2;0;89;122m▄\x1b[0m\x1b[38;2;0;97;158;48;2;0;75;122m▄\x1b[0m\x1b[38;2;0;80;158;48;2;0;62;122m▄\x1b[0m\x1b[38;2;0;63;158;48;2;0;48;122m▄\x1b[0m\x1b[38;2;0;45;158;48;2;0;35;122m▄\x1b[0m\x1b[38;2;0;28;158;48;2;0;22;122m▄\x1b[0m\x1b[38;2;0;11;158;48;2;0;8;122m▄\x1b[0m\x1b[38;2;5;0;158;48;2;4;0;122m▄\x1b[0m\x1b[38;2;22;0;158;48;2;17;0;122m▄\x1b[0m\x1b[38;2;40;0;158;48;2;31;0;122m▄\x1b[0m\x1b[38;2;57;0;158;48;2;44;0;122m▄\x1b[0m\x1b[38;2;74;0;158;48;2;57;0;122m▄\x1b[0m\x1b[38;2;91;0;158;48;2;71;0;122m▄\x1b[0m\x1b[38;2;109;0;158;48;2;84;0;122m▄\x1b[0m\x1b[38;2;126;0;158;48;2;97;0;122m▄\x1b[0m\x1b[38;2;143;0;158;48;2;111;0;122m▄\x1b[0m\x1b[38;2;158;0;155;48;2;122;0;120m▄\x1b[0m\x1b[38;2;158;0;137;48;2;122;0;106m▄\x1b[0m\x1b[38;2;158;0;120;48;2;122;0;93m▄\x1b[0m\x1b[38;2;158;0;103;48;2;122;0;80m▄\x1b[0m\x1b[38;2;158;0;86;48;2;122;0;66m▄\x1b[0m\x1b[38;2;158;0;68;48;2;122;0;53m▄\x1b[0m\x1b[38;2;158;0;51;48;2;122;0;40m▄\x1b[0m\x1b[38;2;158;0;34;48;2;122;0;26m▄\x1b[0m\x1b[38;2;158;0;17;48;2;122;0;13m▄\x1b[0m \n ✓ \x1b[1;35mTruecolor (16.7 million)\x1b[0m \x1b[38;2;229;0;0;48;2;193;0;0m▄\x1b[0m\x1b[38;2;229;25;0;48;2;193;21;0m▄\x1b[0m\x1b[38;2;229;50;0;48;2;193;42;0m▄\x1b[0m\x1b[38;2;229;75;0;48;2;193;63;0m▄\x1b[0m\x1b[38;2;229;100;0;48;2;193;84;0m▄\x1b[0m\x1b[38;2;229;125;0;48;2;193;105;0m▄\x1b[0m\x1b[38;2;229;150;0;48;2;193;126;0m▄\x1b[0m\x1b[38;2;229;175;0;48;2;193;147;0m▄\x1b[0m\x1b[38;2;229;200;0;48;2;193;169;0m▄\x1b[0m\x1b[38;2;229;225;0;48;2;193;190;0m▄\x1b[0m\x1b[38;2;208;229;0;48;2;176;193;0m▄\x1b[0m\x1b[38;2;183;229;0;48;2;155;193;0m▄\x1b[0m\x1b[38;2;158;229;0;48;2;133;193;0m▄\x1b[0m\x1b[38;2;133;229;0;48;2;112;193;0m▄\x1b[0m\x1b[38;2;108;229;0;48;2;91;193;0m▄\x1b[0m\x1b[38;2;83;229;0;48;2;70;193;0m▄\x1b[0m\x1b[38;2;58;229;0;48;2;49;193;0m▄\x1b[0m\x1b[38;2;33;229;0;48;2;28;193;0m▄\x1b[0m\x1b[38;2;8;229;0;48;2;7;193;0m▄\x1b[0m\x1b[38;2;0;229;16;48;2;0;193;14m▄\x1b[0m\x1b[38;2;0;229;41;48;2;0;193;35m▄\x1b[0m\x1b[38;2;0;229;66;48;2;0;193;56m▄\x1b[0m\x1b[38;2;0;229;91;48;2;0;193;77m▄\x1b[0m\x1b[38;2;0;229;116;48;2;0;193;98m▄\x1b[0m\x1b[38;2;0;229;141;48;2;0;193;119m▄\x1b[0m\x1b[38;2;0;229;166;48;2;0;193;140m▄\x1b[0m\x1b[38;2;0;229;191;48;2;0;193;162m▄\x1b[0m\x1b[38;2;0;229;216;48;2;0;193;183m▄\x1b[0m\x1b[38;2;0;216;229;48;2;0;183;193m▄\x1b[0m\x1b[38;2;0;191;229;48;2;0;162;193m▄\x1b[0m\x1b[38;2;0;166;229;48;2;0;140;193m▄\x1b[0m\x1b[38;2;0;141;229;48;2;0;119;193m▄\x1b[0m\x1b[38;2;0;116;229;48;2;0;98;193m▄\x1b[0m\x1b[38;2;0;91;229;48;2;0;77;193m▄\x1b[0m\x1b[38;2;0;66;229;48;2;0;56;193m▄\x1b[0m\x1b[38;2;0;41;229;48;2;0;35;193m▄\x1b[0m\x1b[38;2;0;16;229;48;2;0;14;193m▄\x1b[0m\x1b[38;2;8;0;229;48;2;7;0;193m▄\x1b[0m\x1b[38;2;33;0;229;48;2;28;0;193m▄\x1b[0m\x1b[38;2;58;0;229;48;2;49;0;193m▄\x1b[0m\x1b[38;2;83;0;229;48;2;70;0;193m▄\x1b[0m\x1b[38;2;108;0;229;48;2;91;0;193m▄\x1b[0m\x1b[38;2;133;0;229;48;2;112;0;193m▄\x1b[0m\x1b[38;2;158;0;229;48;2;133;0;193m▄\x1b[0m\x1b[38;2;183;0;229;48;2;155;0;193m▄\x1b[0m\x1b[38;2;208;0;229;48;2;176;0;193m▄\x1b[0m\x1b[38;2;229;0;225;48;2;193;0;190m▄\x1b[0m\x1b[38;2;229;0;200;48;2;193;0;169m▄\x1b[0m\x1b[38;2;229;0;175;48;2;193;0;147m▄\x1b[0m\x1b[38;2;229;0;150;48;2;193;0;126m▄\x1b[0m\x1b[38;2;229;0;125;48;2;193;0;105m▄\x1b[0m\x1b[38;2;229;0;100;48;2;193;0;84m▄\x1b[0m\x1b[38;2;229;0;75;48;2;193;0;63m▄\x1b[0m\x1b[38;2;229;0;50;48;2;193;0;42m▄\x1b[0m\x1b[38;2;229;0;25;48;2;193;0;21m▄\x1b[0m \n ✓ \x1b[1;33mDumb terminals\x1b[0m \x1b[38;2;254;45;45;48;2;255;10;10m▄\x1b[0m\x1b[38;2;254;68;45;48;2;255;36;10m▄\x1b[0m\x1b[38;2;254;91;45;48;2;255;63;10m▄\x1b[0m\x1b[38;2;254;114;45;48;2;255;90;10m▄\x1b[0m\x1b[38;2;254;137;45;48;2;255;117;10m▄\x1b[0m\x1b[38;2;254;159;45;48;2;255;143;10m▄\x1b[0m\x1b[38;2;254;182;45;48;2;255;170;10m▄\x1b[0m\x1b[38;2;254;205;45;48;2;255;197;10m▄\x1b[0m\x1b[38;2;254;228;45;48;2;255;223;10m▄\x1b[0m\x1b[38;2;254;251;45;48;2;255;250;10m▄\x1b[0m\x1b[38;2;235;254;45;48;2;232;255;10m▄\x1b[0m\x1b[38;2;213;254;45;48;2;206;255;10m▄\x1b[0m\x1b[38;2;190;254;45;48;2;179;255;10m▄\x1b[0m\x1b[38;2;167;254;45;48;2;152;255;10m▄\x1b[0m\x1b[38;2;144;254;45;48;2;125;255;10m▄\x1b[0m\x1b[38;2;121;254;45;48;2;99;255;10m▄\x1b[0m\x1b[38;2;99;254;45;48;2;72;255;10m▄\x1b[0m\x1b[38;2;76;254;45;48;2;45;255;10m▄\x1b[0m\x1b[38;2;53;254;45;48;2;19;255;10m▄\x1b[0m\x1b[38;2;45;254;61;48;2;10;255;28m▄\x1b[0m\x1b[38;2;45;254;83;48;2;10;255;54m▄\x1b[0m\x1b[38;2;45;254;106;48;2;10;255;81m▄\x1b[0m\x1b[38;2;45;254;129;48;2;10;255;108m▄\x1b[0m\x1b[38;2;45;254;152;48;2;10;255;134m▄\x1b[0m\x1b[38;2;45;254;175;48;2;10;255;161m▄\x1b[0m\x1b[38;2;45;254;197;48;2;10;255;188m▄\x1b[0m\x1b[38;2;45;254;220;48;2;10;255;214m▄\x1b[0m\x1b[38;2;45;254;243;48;2;10;255;241m▄\x1b[0m\x1b[38;2;45;243;254;48;2;10;241;255m▄\x1b[0m\x1b[38;2;45;220;254;48;2;10;214;255m▄\x1b[0m\x1b[38;2;45;197;254;48;2;10;188;255m▄\x1b[0m\x1b[38;2;45;175;254;48;2;10;161;255m▄\x1b[0m\x1b[38;2;45;152;254;48;2;10;134;255m▄\x1b[0m\x1b[38;2;45;129;254;48;2;10;108;255m▄\x1b[0m\x1b[38;2;45;106;254;48;2;10;81;255m▄\x1b[0m\x1b[38;2;45;83;254;48;2;10;54;255m▄\x1b[0m\x1b[38;2;45;61;254;48;2;10;28;255m▄\x1b[0m\x1b[38;2;53;45;254;48;2;19;10;255m▄\x1b[0m\x1b[38;2;76;45;254;48;2;45;10;255m▄\x1b[0m\x1b[38;2;99;45;254;48;2;72;10;255m▄\x1b[0m\x1b[38;2;121;45;254;48;2;99;10;255m▄\x1b[0m\x1b[38;2;144;45;254;48;2;125;10;255m▄\x1b[0m\x1b[38;2;167;45;254;48;2;152;10;255m▄\x1b[0m\x1b[38;2;190;45;254;48;2;179;10;255m▄\x1b[0m\x1b[38;2;213;45;254;48;2;206;10;255m▄\x1b[0m\x1b[38;2;235;45;254;48;2;232;10;255m▄\x1b[0m\x1b[38;2;254;45;251;48;2;255;10;250m▄\x1b[0m\x1b[38;2;254;45;228;48;2;255;10;223m▄\x1b[0m\x1b[38;2;254;45;205;48;2;255;10;197m▄\x1b[0m\x1b[38;2;254;45;182;48;2;255;10;170m▄\x1b[0m\x1b[38;2;254;45;159;48;2;255;10;143m▄\x1b[0m\x1b[38;2;254;45;137;48;2;255;10;117m▄\x1b[0m\x1b[38;2;254;45;114;48;2;255;10;90m▄\x1b[0m\x1b[38;2;254;45;91;48;2;255;10;63m▄\x1b[0m\x1b[38;2;254;45;68;48;2;255;10;36m▄\x1b[0m \n ✓ \x1b[1;36mAutomatic color conversion\x1b[0m \x1b[38;2;255;117;117;48;2;255;81;81m▄\x1b[0m\x1b[38;2;255;132;117;48;2;255;100;81m▄\x1b[0m\x1b[38;2;255;147;117;48;2;255;119;81m▄\x1b[0m\x1b[38;2;255;162;117;48;2;255;138;81m▄\x1b[0m\x1b[38;2;255;177;117;48;2;255;157;81m▄\x1b[0m\x1b[38;2;255;192;117;48;2;255;176;81m▄\x1b[0m\x1b[38;2;255;207;117;48;2;255;195;81m▄\x1b[0m\x1b[38;2;255;222;117;48;2;255;214;81m▄\x1b[0m\x1b[38;2;255;237;117;48;2;255;232;81m▄\x1b[0m\x1b[38;2;255;252;117;48;2;255;251;81m▄\x1b[0m\x1b[38;2;242;255;117;48;2;239;255;81m▄\x1b[0m\x1b[38;2;227;255;117;48;2;220;255;81m▄\x1b[0m\x1b[38;2;212;255;117;48;2;201;255;81m▄\x1b[0m\x1b[38;2;197;255;117;48;2;182;255;81m▄\x1b[0m\x1b[38;2;182;255;117;48;2;163;255;81m▄\x1b[0m\x1b[38;2;167;255;117;48;2;144;255;81m▄\x1b[0m\x1b[38;2;152;255;117;48;2;125;255;81m▄\x1b[0m\x1b[38;2;137;255;117;48;2;106;255;81m▄\x1b[0m\x1b[38;2;122;255;117;48;2;87;255;81m▄\x1b[0m\x1b[38;2;117;255;127;48;2;81;255;94m▄\x1b[0m\x1b[38;2;117;255;142;48;2;81;255;113m▄\x1b[0m\x1b[38;2;117;255;157;48;2;81;255;132m▄\x1b[0m\x1b[38;2;117;255;172;48;2;81;255;150m▄\x1b[0m\x1b[38;2;117;255;187;48;2;81;255;169m▄\x1b[0m\x1b[38;2;117;255;202;48;2;81;255;188m▄\x1b[0m\x1b[38;2;117;255;217;48;2;81;255;207m▄\x1b[0m\x1b[38;2;117;255;232;48;2;81;255;226m▄\x1b[0m\x1b[38;2;117;255;247;48;2;81;255;245m▄\x1b[0m\x1b[38;2;117;247;255;48;2;81;245;255m▄\x1b[0m\x1b[38;2;117;232;255;48;2;81;226;255m▄\x1b[0m\x1b[38;2;117;217;255;48;2;81;207;255m▄\x1b[0m\x1b[38;2;117;202;255;48;2;81;188;255m▄\x1b[0m\x1b[38;2;117;187;255;48;2;81;169;255m▄\x1b[0m\x1b[38;2;117;172;255;48;2;81;150;255m▄\x1b[0m\x1b[38;2;117;157;255;48;2;81;132;255m▄\x1b[0m\x1b[38;2;117;142;255;48;2;81;113;255m▄\x1b[0m\x1b[38;2;117;127;255;48;2;81;94;255m▄\x1b[0m\x1b[38;2;122;117;255;48;2;87;81;255m▄\x1b[0m\x1b[38;2;137;117;255;48;2;106;81;255m▄\x1b[0m\x1b[38;2;152;117;255;48;2;125;81;255m▄\x1b[0m\x1b[38;2;167;117;255;48;2;144;81;255m▄\x1b[0m\x1b[38;2;182;117;255;48;2;163;81;255m▄\x1b[0m\x1b[38;2;197;117;255;48;2;182;81;255m▄\x1b[0m\x1b[38;2;212;117;255;48;2;201;81;255m▄\x1b[0m\x1b[38;2;227;117;255;48;2;220;81;255m▄\x1b[0m\x1b[38;2;242;117;255;48;2;239;81;255m▄\x1b[0m\x1b[38;2;255;117;252;48;2;255;81;251m▄\x1b[0m\x1b[38;2;255;117;237;48;2;255;81;232m▄\x1b[0m\x1b[38;2;255;117;222;48;2;255;81;214m▄\x1b[0m\x1b[38;2;255;117;207;48;2;255;81;195m▄\x1b[0m\x1b[38;2;255;117;192;48;2;255;81;176m▄\x1b[0m\x1b[38;2;255;117;177;48;2;255;81;157m▄\x1b[0m\x1b[38;2;255;117;162;48;2;255;81;138m▄\x1b[0m\x1b[38;2;255;117;147;48;2;255;81;119m▄\x1b[0m\x1b[38;2;255;117;132;48;2;255;81;100m▄\x1b[0m \n\x1b[1;31m \x1b[0m \n\x1b[1;31m \x1b[0m\x1b[1;31m Styles \x1b[0m\x1b[1;31m \x1b[0mAll ansi styles: \x1b[1mbold\x1b[0m, \x1b[2mdim\x1b[0m, \x1b[3mitalic\x1b[0m, \x1b[4munderline\x1b[0m, \x1b[9mstrikethrough\x1b[0m, \x1b[7mreverse\x1b[0m, and even \n \x1b[5mblink\x1b[0m. \n\x1b[1;31m \x1b[0m \n\x1b[1;31m \x1b[0m\x1b[1;31m Text \x1b[0m\x1b[1;31m \x1b[0mWord wrap text. Justify \x1b[32mleft\x1b[0m, \x1b[33mcenter\x1b[0m, \x1b[34mright\x1b[0m or \x1b[31mfull\x1b[0m. \n \n \x1b[32mLorem ipsum dolor \x1b[0m \x1b[33m Lorem ipsum dolor \x1b[0m \x1b[34m Lorem ipsum dolor\x1b[0m \x1b[31mLorem\x1b[0m\x1b[31m \x1b[0m\x1b[31mipsum\x1b[0m\x1b[31m \x1b[0m\x1b[31mdolor\x1b[0m\x1b[31m \x1b[0m\x1b[31msit\x1b[0m \n \x1b[32msit amet, \x1b[0m \x1b[33m sit amet, \x1b[0m \x1b[34m sit amet,\x1b[0m \x1b[31mamet,\x1b[0m\x1b[31m \x1b[0m\x1b[31mconsectetur\x1b[0m \n \x1b[32mconsectetur \x1b[0m \x1b[33m consectetur \x1b[0m \x1b[34m consectetur\x1b[0m \x1b[31madipiscing\x1b[0m\x1b[31m \x1b[0m\x1b[31melit.\x1b[0m \n \x1b[32madipiscing elit. \x1b[0m \x1b[33m adipiscing elit. \x1b[0m \x1b[34m adipiscing elit.\x1b[0m \x1b[31mQuisque\x1b[0m\x1b[31m \x1b[0m\x1b[31min\x1b[0m\x1b[31m \x1b[0m\x1b[31mmetus\x1b[0m\x1b[31m \x1b[0m\x1b[31msed\x1b[0m \n \x1b[32mQuisque in metus sed\x1b[0m \x1b[33mQuisque in metus sed\x1b[0m \x1b[34mQuisque in metus sed\x1b[0m \x1b[31msapien\x1b[0m\x1b[31m \x1b[0m\x1b[31multricies\x1b[0m \n \x1b[32msapien ultricies \x1b[0m \x1b[33m sapien ultricies \x1b[0m \x1b[34m sapien ultricies\x1b[0m \x1b[31mpretium\x1b[0m\x1b[31m \x1b[0m\x1b[31ma\x1b[0m\x1b[31m \x1b[0m\x1b[31mat\x1b[0m\x1b[31m \x1b[0m\x1b[31mjusto.\x1b[0m \n \x1b[32mpretium a at justo. \x1b[0m \x1b[33mpretium a at justo. \x1b[0m \x1b[34m pretium a at justo.\x1b[0m \x1b[31mMaecenas\x1b[0m\x1b[31m \x1b[0m\x1b[31mluctus\x1b[0m\x1b[31m \x1b[0m\x1b[31mvelit\x1b[0m \n \x1b[32mMaecenas luctus \x1b[0m \x1b[33m Maecenas luctus \x1b[0m \x1b[34m Maecenas luctus\x1b[0m \x1b[31met auctor maximus.\x1b[0m \n \x1b[32mvelit et auctor \x1b[0m \x1b[33m velit et auctor \x1b[0m \x1b[34m velit et auctor\x1b[0m \n \x1b[32mmaximus. \x1b[0m \x1b[33m maximus. \x1b[0m \x1b[34m maximus.\x1b[0m \n\x1b[1;31m \x1b[0m \n\x1b[1;31m \x1b[0m\x1b[1;31m Asian \x1b[0m\x1b[1;31m \x1b[0m🇨🇳 该库支持中文,日文和韩文文本! \n\x1b[1;31m \x1b[0m\x1b[1;31m language \x1b[0m\x1b[1;31m \x1b[0m🇯🇵 ライブラリは中国語、日本語、韓国語のテキストをサポートしています \n\x1b[1;31m \x1b[0m\x1b[1;31m support \x1b[0m\x1b[1;31m \x1b[0m🇰🇷 이 라이브러리는 중국어, 일본어 및 한국어 텍스트를 지원합니다 \n\x1b[1;31m \x1b[0m \n\x1b[1;31m \x1b[0m\x1b[1;31m Markup \x1b[0m\x1b[1;31m \x1b[0m\x1b[1;35mRich\x1b[0m supports a simple \x1b[3mbbcode\x1b[0m-like \x1b[1mmarkup\x1b[0m for \x1b[33mcolor\x1b[0m, \x1b[4mstyle\x1b[0m, and emoji! 👍 🍎 🐜 🐻 … \n 🚌 \n\x1b[1;31m \x1b[0m \n\x1b[1;31m \x1b[0m\x1b[1;31m Tables \x1b[0m\x1b[1;31m \x1b[0m\x1b[1m \x1b[0m\x1b[1;32mDate\x1b[0m\x1b[1m \x1b[0m\x1b[1m \x1b[0m \x1b[1m \x1b[0m\x1b[1;34mTitle\x1b[0m\x1b[1m \x1b[0m\x1b[1m \x1b[0m \x1b[1m \x1b[0m\x1b[1;36mProduction Budget\x1b[0m\x1b[1m \x1b[0m \x1b[1m \x1b[0m\x1b[1m \x1b[0m\x1b[1;35mBox Office\x1b[0m\x1b[1m \x1b[0m \n ───────────────────────────────────────────────────────────────────────────────────── \n \x1b[32m \x1b[0m\x1b[32mDec 20, 2019\x1b[0m\x1b[32m \x1b[0m \x1b[34m \x1b[0m\x1b[34mStar Wars: The Rise of \x1b[0m\x1b[34m \x1b[0m \x1b[36m \x1b[0m\x1b[36m $275,000,000\x1b[0m\x1b[36m \x1b[0m \x1b[35m \x1b[0m\x1b[35m $375,126,118\x1b[0m\x1b[35m \x1b[0m \n \x1b[34m \x1b[0m\x1b[34mSkywalker \x1b[0m\x1b[34m \x1b[0m \n \x1b[2;32m \x1b[0m\x1b[2;32mMay 25, 2018\x1b[0m\x1b[2;32m \x1b[0m \x1b[2;34m \x1b[0m\x1b[1;2;34mSolo\x1b[0m\x1b[2;34m: A Star Wars Story \x1b[0m\x1b[2;34m \x1b[0m \x1b[2;36m \x1b[0m\x1b[2;36m $275,000,000\x1b[0m\x1b[2;36m \x1b[0m \x1b[2;35m \x1b[0m\x1b[2;35m $393,151,347\x1b[0m\x1b[2;35m \x1b[0m \n \x1b[32m \x1b[0m\x1b[32mDec 15, 2017\x1b[0m\x1b[32m \x1b[0m \x1b[34m \x1b[0m\x1b[34mStar Wars Ep. VIII: The Last \x1b[0m\x1b[34m \x1b[0m \x1b[36m \x1b[0m\x1b[36m $262,000,000\x1b[0m\x1b[36m \x1b[0m \x1b[35m \x1b[0m\x1b[1;35m$1,332,539,889\x1b[0m\x1b[35m \x1b[0m \n \x1b[34m \x1b[0m\x1b[34mJedi \x1b[0m\x1b[34m \x1b[0m \n \x1b[2;32m \x1b[0m\x1b[2;32mMay 19, 1999\x1b[0m\x1b[2;32m \x1b[0m \x1b[2;34m \x1b[0m\x1b[2;34mStar Wars Ep. \x1b[0m\x1b[1;2;34mI\x1b[0m\x1b[2;34m: \x1b[0m\x1b[2;3;34mThe phantom \x1b[0m\x1b[2;34m \x1b[0m\x1b[2;34m \x1b[0m \x1b[2;36m \x1b[0m\x1b[2;36m $115,000,000\x1b[0m\x1b[2;36m \x1b[0m \x1b[2;35m \x1b[0m\x1b[2;35m$1,027,044,677\x1b[0m\x1b[2;35m \x1b[0m \n \x1b[2m \x1b[0m \x1b[2;34m \x1b[0m\x1b[2;3;34mMenace\x1b[0m\x1b[2;34m \x1b[0m\x1b[2;34m \x1b[0m \x1b[2m \x1b[0m \x1b[2m \x1b[0m \n\x1b[1;31m \x1b[0m \n\x1b[1;31m \x1b[0m\x1b[1;31m Syntax \x1b[0m\x1b[1;31m \x1b[0m\x1b[1;38;2;227;227;221;48;2;39;40;34m \x1b[0m\x1b[38;2;101;102;96;48;2;39;40;34m 1 \x1b[0m\x1b[38;2;102;217;239;48;2;39;40;34mdef\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;166;226;46;48;2;39;40;34miter_last\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m(\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34mvalues\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m:\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34mIterable\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m[\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34mT\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m]\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m)\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;249;38;114;48;2;39;40;34m-\x1b[0m\x1b[38;2;249;38;114;48;2;39;40;34m>\x1b[0m \x1b[1m{\x1b[0m \n\x1b[1;31m \x1b[0m\x1b[1;31mhighlighting\x1b[0m\x1b[1;31m \x1b[0m\x1b[1;38;2;227;227;221;48;2;39;40;34m \x1b[0m\x1b[38;2;101;102;96;48;2;39;40;34m 2 \x1b[0m\x1b[2;38;2;117;113;94;48;2;39;40;34m│ \x1b[0m\x1b[38;2;230;219;116;48;2;39;40;34m\"""Iterate and generate a tuple w\x1b[0m \x1b[2;32m│ \x1b[0m\x1b[32m\'foo\'\x1b[0m: \x1b[1m[\x1b[0m \n\x1b[1;31m \x1b[0m\x1b[1;31m & \x1b[0m\x1b[1;31m \x1b[0m\x1b[1;38;2;227;227;221;48;2;39;40;34m \x1b[0m\x1b[38;2;101;102;96;48;2;39;40;34m 3 \x1b[0m\x1b[2;38;2;117;113;94;48;2;39;40;34m│ \x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34miter_values\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;249;38;114;48;2;39;40;34m=\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34miter\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m(\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34mvalues\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m)\x1b[0m\x1b[48;2;39;40;34m \x1b[0m \x1b[2;32m│ │ \x1b[0m\x1b[1;36m3.1427\x1b[0m, \n\x1b[1;31m \x1b[0m\x1b[1;31m pretty \x1b[0m\x1b[1;31m \x1b[0m\x1b[1;38;2;227;227;221;48;2;39;40;34m \x1b[0m\x1b[38;2;101;102;96;48;2;39;40;34m 4 \x1b[0m\x1b[2;38;2;117;113;94;48;2;39;40;34m│ \x1b[0m\x1b[38;2;102;217;239;48;2;39;40;34mtry\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m:\x1b[0m\x1b[48;2;39;40;34m \x1b[0m \x1b[2;32m│ │ \x1b[0m\x1b[1m(\x1b[0m \n\x1b[1;31m \x1b[0m\x1b[1;31m printing \x1b[0m\x1b[1;31m \x1b[0m\x1b[1;38;2;227;227;221;48;2;39;40;34m \x1b[0m\x1b[38;2;101;102;96;48;2;39;40;34m 5 \x1b[0m\x1b[2;38;2;117;113;94;48;2;39;40;34m│ │ \x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34mprevious_value\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;249;38;114;48;2;39;40;34m=\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34mnext\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m(\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34miter_va\x1b[0m \x1b[2;32m│ │ │ \x1b[0m\x1b[32m\'Paul Atreides\'\x1b[0m, \n \x1b[1;38;2;227;227;221;48;2;39;40;34m \x1b[0m\x1b[38;2;101;102;96;48;2;39;40;34m 6 \x1b[0m\x1b[2;38;2;117;113;94;48;2;39;40;34m│ \x1b[0m\x1b[38;2;102;217;239;48;2;39;40;34mexcept\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;166;226;46;48;2;39;40;34mStopIteration\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m:\x1b[0m\x1b[48;2;39;40;34m \x1b[0m \x1b[2;32m│ │ │ \x1b[0m\x1b[32m\'Vladimir Harkonnen\'\x1b[0m, \n \x1b[1;38;2;227;227;221;48;2;39;40;34m \x1b[0m\x1b[38;2;101;102;96;48;2;39;40;34m 7 \x1b[0m\x1b[2;38;2;117;113;94;48;2;39;40;34m│ │ \x1b[0m\x1b[38;2;102;217;239;48;2;39;40;34mreturn\x1b[0m\x1b[48;2;39;40;34m \x1b[0m \x1b[2;32m│ │ │ \x1b[0m\x1b[32m\'Thufir Hawat\'\x1b[0m \n \x1b[1;38;2;227;227;221;48;2;39;40;34m \x1b[0m\x1b[38;2;101;102;96;48;2;39;40;34m 8 \x1b[0m\x1b[2;38;2;117;113;94;48;2;39;40;34m│ \x1b[0m\x1b[38;2;102;217;239;48;2;39;40;34mfor\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34mvalue\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;249;38;114;48;2;39;40;34min\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34miter_values\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m:\x1b[0m\x1b[48;2;39;40;34m \x1b[0m \x1b[2;32m│ │ \x1b[0m\x1b[1m)\x1b[0m \n \x1b[1;38;2;227;227;221;48;2;39;40;34m \x1b[0m\x1b[38;2;101;102;96;48;2;39;40;34m 9 \x1b[0m\x1b[2;38;2;117;113;94;48;2;39;40;34m│ │ \x1b[0m\x1b[38;2;102;217;239;48;2;39;40;34myield\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;102;217;239;48;2;39;40;34mFalse\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m,\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34mprevious_value\x1b[0m\x1b[48;2;39;40;34m \x1b[0m \x1b[2;32m│ \x1b[0m\x1b[1m]\x1b[0m, \n \x1b[1;38;2;227;227;221;48;2;39;40;34m \x1b[0m\x1b[38;2;101;102;96;48;2;39;40;34m10 \x1b[0m\x1b[2;38;2;117;113;94;48;2;39;40;34m│ │ \x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34mprevious_value\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;249;38;114;48;2;39;40;34m=\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34mvalue\x1b[0m\x1b[48;2;39;40;34m \x1b[0m \x1b[2;32m│ \x1b[0m\x1b[32m\'atomic\'\x1b[0m: \x1b[1m(\x1b[0m\x1b[3;91mFalse\x1b[0m, \x1b[3;92mTrue\x1b[0m, \x1b[3;35mNone\x1b[0m\x1b[1m)\x1b[0m \n \x1b[1;38;2;227;227;221;48;2;39;40;34m \x1b[0m\x1b[38;2;101;102;96;48;2;39;40;34m11 \x1b[0m\x1b[2;38;2;117;113;94;48;2;39;40;34m│ \x1b[0m\x1b[38;2;102;217;239;48;2;39;40;34myield\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;102;217;239;48;2;39;40;34mTrue\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m,\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34mprevious_value\x1b[0m\x1b[48;2;39;40;34m \x1b[0m \x1b[1m}\x1b[0m \n\x1b[1;31m \x1b[0m \n\x1b[1;31m \x1b[0m\x1b[1;31m Markdown \x1b[0m\x1b[1;31m \x1b[0m\x1b[36m# Markdown\x1b[0m ╔═══════════════════════════════════════╗ \n ║ \x1b[1mMarkdown\x1b[0m ║ \n \x1b[36mSupports much of the *markdown* \x1b[0m ╚═══════════════════════════════════════╝ \n \x1b[36m__syntax__!\x1b[0m \n Supports much of the \x1b[3mmarkdown\x1b[0m \x1b[1msyntax\x1b[0m! \n \x1b[36m- Headers\x1b[0m \n \x1b[36m- Basic formatting: **bold**, *italic*, \x1b[0m \x1b[1;33m • \x1b[0mHeaders \n \x1b[36m`code`\x1b[0m \x1b[1;33m • \x1b[0mBasic formatting: \x1b[1mbold\x1b[0m, \x1b[3mitalic\x1b[0m, \x1b[97;40mcode\x1b[0m \n \x1b[36m- Block quotes\x1b[0m \x1b[1;33m • \x1b[0mBlock quotes \n \x1b[36m- Lists, and more...\x1b[0m \x1b[1;33m • \x1b[0mLists, and more... \n \x1b[36m \x1b[0m \n\x1b[1;31m \x1b[0m \n\x1b[1;31m \x1b[0m\x1b[1;31m +more! \x1b[0m\x1b[1;31m \x1b[0mProgress bars, columns, styled logging handler, tracebacks, etc... \n\x1b[1;31m \x1b[0m \n""" +expected = "\x1b[3m Rich features \x1b[0m\n\x1b[1;31m \x1b[0m \n\x1b[1;31m \x1b[0m\x1b[1;31m Colors \x1b[0m\x1b[1;31m \x1b[0m✓ \x1b[1;32m4-bit color\x1b[0m \x1b[38;2;86;0;0;48;2;51;0;0m▄\x1b[0m\x1b[38;2;86;9;0;48;2;51;5;0m▄\x1b[0m\x1b[38;2;86;18;0;48;2;51;11;0m▄\x1b[0m\x1b[38;2;86;28;0;48;2;51;16;0m▄\x1b[0m\x1b[38;2;86;37;0;48;2;51;22;0m▄\x1b[0m\x1b[38;2;86;47;0;48;2;51;27;0m▄\x1b[0m\x1b[38;2;86;56;0;48;2;51;33;0m▄\x1b[0m\x1b[38;2;86;66;0;48;2;51;38;0m▄\x1b[0m\x1b[38;2;86;75;0;48;2;51;44;0m▄\x1b[0m\x1b[38;2;86;85;0;48;2;51;50;0m▄\x1b[0m\x1b[38;2;78;86;0;48;2;46;51;0m▄\x1b[0m\x1b[38;2;69;86;0;48;2;40;51;0m▄\x1b[0m\x1b[38;2;59;86;0;48;2;35;51;0m▄\x1b[0m\x1b[38;2;50;86;0;48;2;29;51;0m▄\x1b[0m\x1b[38;2;40;86;0;48;2;24;51;0m▄\x1b[0m\x1b[38;2;31;86;0;48;2;18;51;0m▄\x1b[0m\x1b[38;2;22;86;0;48;2;12;51;0m▄\x1b[0m\x1b[38;2;12;86;0;48;2;7;51;0m▄\x1b[0m\x1b[38;2;3;86;0;48;2;1;51;0m▄\x1b[0m\x1b[38;2;0;86;6;48;2;0;51;3m▄\x1b[0m\x1b[38;2;0;86;15;48;2;0;51;9m▄\x1b[0m\x1b[38;2;0;86;25;48;2;0;51;14m▄\x1b[0m\x1b[38;2;0;86;34;48;2;0;51;20m▄\x1b[0m\x1b[38;2;0;86;44;48;2;0;51;25m▄\x1b[0m\x1b[38;2;0;86;53;48;2;0;51;31m▄\x1b[0m\x1b[38;2;0;86;63;48;2;0;51;37m▄\x1b[0m\x1b[38;2;0;86;72;48;2;0;51;42m▄\x1b[0m\x1b[38;2;0;86;81;48;2;0;51;48m▄\x1b[0m\x1b[38;2;0;81;86;48;2;0;48;51m▄\x1b[0m\x1b[38;2;0;72;86;48;2;0;42;51m▄\x1b[0m\x1b[38;2;0;63;86;48;2;0;37;51m▄\x1b[0m\x1b[38;2;0;53;86;48;2;0;31;51m▄\x1b[0m\x1b[38;2;0;44;86;48;2;0;25;51m▄\x1b[0m\x1b[38;2;0;34;86;48;2;0;20;51m▄\x1b[0m\x1b[38;2;0;25;86;48;2;0;14;51m▄\x1b[0m\x1b[38;2;0;15;86;48;2;0;9;51m▄\x1b[0m\x1b[38;2;0;6;86;48;2;0;3;51m▄\x1b[0m\x1b[38;2;3;0;86;48;2;1;0;51m▄\x1b[0m\x1b[38;2;12;0;86;48;2;7;0;51m▄\x1b[0m\x1b[38;2;22;0;86;48;2;12;0;51m▄\x1b[0m\x1b[38;2;31;0;86;48;2;18;0;51m▄\x1b[0m\x1b[38;2;40;0;86;48;2;24;0;51m▄\x1b[0m\x1b[38;2;50;0;86;48;2;29;0;51m▄\x1b[0m\x1b[38;2;59;0;86;48;2;35;0;51m▄\x1b[0m\x1b[38;2;69;0;86;48;2;40;0;51m▄\x1b[0m\x1b[38;2;78;0;86;48;2;46;0;51m▄\x1b[0m\x1b[38;2;86;0;85;48;2;51;0;50m▄\x1b[0m\x1b[38;2;86;0;75;48;2;51;0;44m▄\x1b[0m\x1b[38;2;86;0;66;48;2;51;0;38m▄\x1b[0m\x1b[38;2;86;0;56;48;2;51;0;33m▄\x1b[0m\x1b[38;2;86;0;47;48;2;51;0;27m▄\x1b[0m\x1b[38;2;86;0;37;48;2;51;0;22m▄\x1b[0m\x1b[38;2;86;0;28;48;2;51;0;16m▄\x1b[0m\x1b[38;2;86;0;18;48;2;51;0;11m▄\x1b[0m\x1b[38;2;86;0;9;48;2;51;0;5m▄\x1b[0m \n\x1b[1;31m \x1b[0m✓ \x1b[1;34m8-bit color\x1b[0m \x1b[38;2;158;0;0;48;2;122;0;0m▄\x1b[0m\x1b[38;2;158;17;0;48;2;122;13;0m▄\x1b[0m\x1b[38;2;158;34;0;48;2;122;26;0m▄\x1b[0m\x1b[38;2;158;51;0;48;2;122;40;0m▄\x1b[0m\x1b[38;2;158;68;0;48;2;122;53;0m▄\x1b[0m\x1b[38;2;158;86;0;48;2;122;66;0m▄\x1b[0m\x1b[38;2;158;103;0;48;2;122;80;0m▄\x1b[0m\x1b[38;2;158;120;0;48;2;122;93;0m▄\x1b[0m\x1b[38;2;158;137;0;48;2;122;106;0m▄\x1b[0m\x1b[38;2;158;155;0;48;2;122;120;0m▄\x1b[0m\x1b[38;2;143;158;0;48;2;111;122;0m▄\x1b[0m\x1b[38;2;126;158;0;48;2;97;122;0m▄\x1b[0m\x1b[38;2;109;158;0;48;2;84;122;0m▄\x1b[0m\x1b[38;2;91;158;0;48;2;71;122;0m▄\x1b[0m\x1b[38;2;74;158;0;48;2;57;122;0m▄\x1b[0m\x1b[38;2;57;158;0;48;2;44;122;0m▄\x1b[0m\x1b[38;2;40;158;0;48;2;31;122;0m▄\x1b[0m\x1b[38;2;22;158;0;48;2;17;122;0m▄\x1b[0m\x1b[38;2;5;158;0;48;2;4;122;0m▄\x1b[0m\x1b[38;2;0;158;11;48;2;0;122;8m▄\x1b[0m\x1b[38;2;0;158;28;48;2;0;122;22m▄\x1b[0m\x1b[38;2;0;158;45;48;2;0;122;35m▄\x1b[0m\x1b[38;2;0;158;63;48;2;0;122;48m▄\x1b[0m\x1b[38;2;0;158;80;48;2;0;122;62m▄\x1b[0m\x1b[38;2;0;158;97;48;2;0;122;75m▄\x1b[0m\x1b[38;2;0;158;114;48;2;0;122;89m▄\x1b[0m\x1b[38;2;0;158;132;48;2;0;122;102m▄\x1b[0m\x1b[38;2;0;158;149;48;2;0;122;115m▄\x1b[0m\x1b[38;2;0;149;158;48;2;0;115;122m▄\x1b[0m\x1b[38;2;0;132;158;48;2;0;102;122m▄\x1b[0m\x1b[38;2;0;114;158;48;2;0;89;122m▄\x1b[0m\x1b[38;2;0;97;158;48;2;0;75;122m▄\x1b[0m\x1b[38;2;0;80;158;48;2;0;62;122m▄\x1b[0m\x1b[38;2;0;63;158;48;2;0;48;122m▄\x1b[0m\x1b[38;2;0;45;158;48;2;0;35;122m▄\x1b[0m\x1b[38;2;0;28;158;48;2;0;22;122m▄\x1b[0m\x1b[38;2;0;11;158;48;2;0;8;122m▄\x1b[0m\x1b[38;2;5;0;158;48;2;4;0;122m▄\x1b[0m\x1b[38;2;22;0;158;48;2;17;0;122m▄\x1b[0m\x1b[38;2;40;0;158;48;2;31;0;122m▄\x1b[0m\x1b[38;2;57;0;158;48;2;44;0;122m▄\x1b[0m\x1b[38;2;74;0;158;48;2;57;0;122m▄\x1b[0m\x1b[38;2;91;0;158;48;2;71;0;122m▄\x1b[0m\x1b[38;2;109;0;158;48;2;84;0;122m▄\x1b[0m\x1b[38;2;126;0;158;48;2;97;0;122m▄\x1b[0m\x1b[38;2;143;0;158;48;2;111;0;122m▄\x1b[0m\x1b[38;2;158;0;155;48;2;122;0;120m▄\x1b[0m\x1b[38;2;158;0;137;48;2;122;0;106m▄\x1b[0m\x1b[38;2;158;0;120;48;2;122;0;93m▄\x1b[0m\x1b[38;2;158;0;103;48;2;122;0;80m▄\x1b[0m\x1b[38;2;158;0;86;48;2;122;0;66m▄\x1b[0m\x1b[38;2;158;0;68;48;2;122;0;53m▄\x1b[0m\x1b[38;2;158;0;51;48;2;122;0;40m▄\x1b[0m\x1b[38;2;158;0;34;48;2;122;0;26m▄\x1b[0m\x1b[38;2;158;0;17;48;2;122;0;13m▄\x1b[0m \n\x1b[1;31m \x1b[0m✓ \x1b[1;35mTruecolor (16.7 million)\x1b[0m \x1b[38;2;229;0;0;48;2;193;0;0m▄\x1b[0m\x1b[38;2;229;25;0;48;2;193;21;0m▄\x1b[0m\x1b[38;2;229;50;0;48;2;193;42;0m▄\x1b[0m\x1b[38;2;229;75;0;48;2;193;63;0m▄\x1b[0m\x1b[38;2;229;100;0;48;2;193;84;0m▄\x1b[0m\x1b[38;2;229;125;0;48;2;193;105;0m▄\x1b[0m\x1b[38;2;229;150;0;48;2;193;126;0m▄\x1b[0m\x1b[38;2;229;175;0;48;2;193;147;0m▄\x1b[0m\x1b[38;2;229;200;0;48;2;193;169;0m▄\x1b[0m\x1b[38;2;229;225;0;48;2;193;190;0m▄\x1b[0m\x1b[38;2;208;229;0;48;2;176;193;0m▄\x1b[0m\x1b[38;2;183;229;0;48;2;155;193;0m▄\x1b[0m\x1b[38;2;158;229;0;48;2;133;193;0m▄\x1b[0m\x1b[38;2;133;229;0;48;2;112;193;0m▄\x1b[0m\x1b[38;2;108;229;0;48;2;91;193;0m▄\x1b[0m\x1b[38;2;83;229;0;48;2;70;193;0m▄\x1b[0m\x1b[38;2;58;229;0;48;2;49;193;0m▄\x1b[0m\x1b[38;2;33;229;0;48;2;28;193;0m▄\x1b[0m\x1b[38;2;8;229;0;48;2;7;193;0m▄\x1b[0m\x1b[38;2;0;229;16;48;2;0;193;14m▄\x1b[0m\x1b[38;2;0;229;41;48;2;0;193;35m▄\x1b[0m\x1b[38;2;0;229;66;48;2;0;193;56m▄\x1b[0m\x1b[38;2;0;229;91;48;2;0;193;77m▄\x1b[0m\x1b[38;2;0;229;116;48;2;0;193;98m▄\x1b[0m\x1b[38;2;0;229;141;48;2;0;193;119m▄\x1b[0m\x1b[38;2;0;229;166;48;2;0;193;140m▄\x1b[0m\x1b[38;2;0;229;191;48;2;0;193;162m▄\x1b[0m\x1b[38;2;0;229;216;48;2;0;193;183m▄\x1b[0m\x1b[38;2;0;216;229;48;2;0;183;193m▄\x1b[0m\x1b[38;2;0;191;229;48;2;0;162;193m▄\x1b[0m\x1b[38;2;0;166;229;48;2;0;140;193m▄\x1b[0m\x1b[38;2;0;141;229;48;2;0;119;193m▄\x1b[0m\x1b[38;2;0;116;229;48;2;0;98;193m▄\x1b[0m\x1b[38;2;0;91;229;48;2;0;77;193m▄\x1b[0m\x1b[38;2;0;66;229;48;2;0;56;193m▄\x1b[0m\x1b[38;2;0;41;229;48;2;0;35;193m▄\x1b[0m\x1b[38;2;0;16;229;48;2;0;14;193m▄\x1b[0m\x1b[38;2;8;0;229;48;2;7;0;193m▄\x1b[0m\x1b[38;2;33;0;229;48;2;28;0;193m▄\x1b[0m\x1b[38;2;58;0;229;48;2;49;0;193m▄\x1b[0m\x1b[38;2;83;0;229;48;2;70;0;193m▄\x1b[0m\x1b[38;2;108;0;229;48;2;91;0;193m▄\x1b[0m\x1b[38;2;133;0;229;48;2;112;0;193m▄\x1b[0m\x1b[38;2;158;0;229;48;2;133;0;193m▄\x1b[0m\x1b[38;2;183;0;229;48;2;155;0;193m▄\x1b[0m\x1b[38;2;208;0;229;48;2;176;0;193m▄\x1b[0m\x1b[38;2;229;0;225;48;2;193;0;190m▄\x1b[0m\x1b[38;2;229;0;200;48;2;193;0;169m▄\x1b[0m\x1b[38;2;229;0;175;48;2;193;0;147m▄\x1b[0m\x1b[38;2;229;0;150;48;2;193;0;126m▄\x1b[0m\x1b[38;2;229;0;125;48;2;193;0;105m▄\x1b[0m\x1b[38;2;229;0;100;48;2;193;0;84m▄\x1b[0m\x1b[38;2;229;0;75;48;2;193;0;63m▄\x1b[0m\x1b[38;2;229;0;50;48;2;193;0;42m▄\x1b[0m\x1b[38;2;229;0;25;48;2;193;0;21m▄\x1b[0m \n\x1b[1;31m \x1b[0m✓ \x1b[1;33mDumb terminals\x1b[0m \x1b[38;2;254;45;45;48;2;255;10;10m▄\x1b[0m\x1b[38;2;254;68;45;48;2;255;36;10m▄\x1b[0m\x1b[38;2;254;91;45;48;2;255;63;10m▄\x1b[0m\x1b[38;2;254;114;45;48;2;255;90;10m▄\x1b[0m\x1b[38;2;254;137;45;48;2;255;117;10m▄\x1b[0m\x1b[38;2;254;159;45;48;2;255;143;10m▄\x1b[0m\x1b[38;2;254;182;45;48;2;255;170;10m▄\x1b[0m\x1b[38;2;254;205;45;48;2;255;197;10m▄\x1b[0m\x1b[38;2;254;228;45;48;2;255;223;10m▄\x1b[0m\x1b[38;2;254;251;45;48;2;255;250;10m▄\x1b[0m\x1b[38;2;235;254;45;48;2;232;255;10m▄\x1b[0m\x1b[38;2;213;254;45;48;2;206;255;10m▄\x1b[0m\x1b[38;2;190;254;45;48;2;179;255;10m▄\x1b[0m\x1b[38;2;167;254;45;48;2;152;255;10m▄\x1b[0m\x1b[38;2;144;254;45;48;2;125;255;10m▄\x1b[0m\x1b[38;2;121;254;45;48;2;99;255;10m▄\x1b[0m\x1b[38;2;99;254;45;48;2;72;255;10m▄\x1b[0m\x1b[38;2;76;254;45;48;2;45;255;10m▄\x1b[0m\x1b[38;2;53;254;45;48;2;19;255;10m▄\x1b[0m\x1b[38;2;45;254;61;48;2;10;255;28m▄\x1b[0m\x1b[38;2;45;254;83;48;2;10;255;54m▄\x1b[0m\x1b[38;2;45;254;106;48;2;10;255;81m▄\x1b[0m\x1b[38;2;45;254;129;48;2;10;255;108m▄\x1b[0m\x1b[38;2;45;254;152;48;2;10;255;134m▄\x1b[0m\x1b[38;2;45;254;175;48;2;10;255;161m▄\x1b[0m\x1b[38;2;45;254;197;48;2;10;255;188m▄\x1b[0m\x1b[38;2;45;254;220;48;2;10;255;214m▄\x1b[0m\x1b[38;2;45;254;243;48;2;10;255;241m▄\x1b[0m\x1b[38;2;45;243;254;48;2;10;241;255m▄\x1b[0m\x1b[38;2;45;220;254;48;2;10;214;255m▄\x1b[0m\x1b[38;2;45;197;254;48;2;10;188;255m▄\x1b[0m\x1b[38;2;45;175;254;48;2;10;161;255m▄\x1b[0m\x1b[38;2;45;152;254;48;2;10;134;255m▄\x1b[0m\x1b[38;2;45;129;254;48;2;10;108;255m▄\x1b[0m\x1b[38;2;45;106;254;48;2;10;81;255m▄\x1b[0m\x1b[38;2;45;83;254;48;2;10;54;255m▄\x1b[0m\x1b[38;2;45;61;254;48;2;10;28;255m▄\x1b[0m\x1b[38;2;53;45;254;48;2;19;10;255m▄\x1b[0m\x1b[38;2;76;45;254;48;2;45;10;255m▄\x1b[0m\x1b[38;2;99;45;254;48;2;72;10;255m▄\x1b[0m\x1b[38;2;121;45;254;48;2;99;10;255m▄\x1b[0m\x1b[38;2;144;45;254;48;2;125;10;255m▄\x1b[0m\x1b[38;2;167;45;254;48;2;152;10;255m▄\x1b[0m\x1b[38;2;190;45;254;48;2;179;10;255m▄\x1b[0m\x1b[38;2;213;45;254;48;2;206;10;255m▄\x1b[0m\x1b[38;2;235;45;254;48;2;232;10;255m▄\x1b[0m\x1b[38;2;254;45;251;48;2;255;10;250m▄\x1b[0m\x1b[38;2;254;45;228;48;2;255;10;223m▄\x1b[0m\x1b[38;2;254;45;205;48;2;255;10;197m▄\x1b[0m\x1b[38;2;254;45;182;48;2;255;10;170m▄\x1b[0m\x1b[38;2;254;45;159;48;2;255;10;143m▄\x1b[0m\x1b[38;2;254;45;137;48;2;255;10;117m▄\x1b[0m\x1b[38;2;254;45;114;48;2;255;10;90m▄\x1b[0m\x1b[38;2;254;45;91;48;2;255;10;63m▄\x1b[0m\x1b[38;2;254;45;68;48;2;255;10;36m▄\x1b[0m \n\x1b[1;31m \x1b[0m✓ \x1b[1;36mAutomatic color conversion\x1b[0m \x1b[38;2;255;117;117;48;2;255;81;81m▄\x1b[0m\x1b[38;2;255;132;117;48;2;255;100;81m▄\x1b[0m\x1b[38;2;255;147;117;48;2;255;119;81m▄\x1b[0m\x1b[38;2;255;162;117;48;2;255;138;81m▄\x1b[0m\x1b[38;2;255;177;117;48;2;255;157;81m▄\x1b[0m\x1b[38;2;255;192;117;48;2;255;176;81m▄\x1b[0m\x1b[38;2;255;207;117;48;2;255;195;81m▄\x1b[0m\x1b[38;2;255;222;117;48;2;255;214;81m▄\x1b[0m\x1b[38;2;255;237;117;48;2;255;232;81m▄\x1b[0m\x1b[38;2;255;252;117;48;2;255;251;81m▄\x1b[0m\x1b[38;2;242;255;117;48;2;239;255;81m▄\x1b[0m\x1b[38;2;227;255;117;48;2;220;255;81m▄\x1b[0m\x1b[38;2;212;255;117;48;2;201;255;81m▄\x1b[0m\x1b[38;2;197;255;117;48;2;182;255;81m▄\x1b[0m\x1b[38;2;182;255;117;48;2;163;255;81m▄\x1b[0m\x1b[38;2;167;255;117;48;2;144;255;81m▄\x1b[0m\x1b[38;2;152;255;117;48;2;125;255;81m▄\x1b[0m\x1b[38;2;137;255;117;48;2;106;255;81m▄\x1b[0m\x1b[38;2;122;255;117;48;2;87;255;81m▄\x1b[0m\x1b[38;2;117;255;127;48;2;81;255;94m▄\x1b[0m\x1b[38;2;117;255;142;48;2;81;255;113m▄\x1b[0m\x1b[38;2;117;255;157;48;2;81;255;132m▄\x1b[0m\x1b[38;2;117;255;172;48;2;81;255;150m▄\x1b[0m\x1b[38;2;117;255;187;48;2;81;255;169m▄\x1b[0m\x1b[38;2;117;255;202;48;2;81;255;188m▄\x1b[0m\x1b[38;2;117;255;217;48;2;81;255;207m▄\x1b[0m\x1b[38;2;117;255;232;48;2;81;255;226m▄\x1b[0m\x1b[38;2;117;255;247;48;2;81;255;245m▄\x1b[0m\x1b[38;2;117;247;255;48;2;81;245;255m▄\x1b[0m\x1b[38;2;117;232;255;48;2;81;226;255m▄\x1b[0m\x1b[38;2;117;217;255;48;2;81;207;255m▄\x1b[0m\x1b[38;2;117;202;255;48;2;81;188;255m▄\x1b[0m\x1b[38;2;117;187;255;48;2;81;169;255m▄\x1b[0m\x1b[38;2;117;172;255;48;2;81;150;255m▄\x1b[0m\x1b[38;2;117;157;255;48;2;81;132;255m▄\x1b[0m\x1b[38;2;117;142;255;48;2;81;113;255m▄\x1b[0m\x1b[38;2;117;127;255;48;2;81;94;255m▄\x1b[0m\x1b[38;2;122;117;255;48;2;87;81;255m▄\x1b[0m\x1b[38;2;137;117;255;48;2;106;81;255m▄\x1b[0m\x1b[38;2;152;117;255;48;2;125;81;255m▄\x1b[0m\x1b[38;2;167;117;255;48;2;144;81;255m▄\x1b[0m\x1b[38;2;182;117;255;48;2;163;81;255m▄\x1b[0m\x1b[38;2;197;117;255;48;2;182;81;255m▄\x1b[0m\x1b[38;2;212;117;255;48;2;201;81;255m▄\x1b[0m\x1b[38;2;227;117;255;48;2;220;81;255m▄\x1b[0m\x1b[38;2;242;117;255;48;2;239;81;255m▄\x1b[0m\x1b[38;2;255;117;252;48;2;255;81;251m▄\x1b[0m\x1b[38;2;255;117;237;48;2;255;81;232m▄\x1b[0m\x1b[38;2;255;117;222;48;2;255;81;214m▄\x1b[0m\x1b[38;2;255;117;207;48;2;255;81;195m▄\x1b[0m\x1b[38;2;255;117;192;48;2;255;81;176m▄\x1b[0m\x1b[38;2;255;117;177;48;2;255;81;157m▄\x1b[0m\x1b[38;2;255;117;162;48;2;255;81;138m▄\x1b[0m\x1b[38;2;255;117;147;48;2;255;81;119m▄\x1b[0m\x1b[38;2;255;117;132;48;2;255;81;100m▄\x1b[0m \n\x1b[1;31m \x1b[0m \n\x1b[1;31m \x1b[0m\x1b[1;31m Styles \x1b[0m\x1b[1;31m \x1b[0mAll ansi styles: \x1b[1mbold\x1b[0m, \x1b[2mdim\x1b[0m, \x1b[3mitalic\x1b[0m, \x1b[4munderline\x1b[0m, \x1b[9mstrikethrough\x1b[0m, \x1b[7mreverse\x1b[0m, and even \n\x1b[1;31m \x1b[0m\x1b[5mblink\x1b[0m. \n\x1b[1;31m \x1b[0m \n\x1b[1;31m \x1b[0m\x1b[1;31m Text \x1b[0m\x1b[1;31m \x1b[0mWord wrap text. Justify \x1b[32mleft\x1b[0m, \x1b[33mcenter\x1b[0m, \x1b[34mright\x1b[0m or \x1b[31mfull\x1b[0m. \n\x1b[1;31m \x1b[0m \n\x1b[1;31m \x1b[0m\x1b[32mLorem ipsum dolor \x1b[0m \x1b[33m Lorem ipsum dolor \x1b[0m \x1b[34m Lorem ipsum dolor\x1b[0m \x1b[31mLorem\x1b[0m\x1b[31m \x1b[0m\x1b[31mipsum\x1b[0m\x1b[31m \x1b[0m\x1b[31mdolor\x1b[0m\x1b[31m \x1b[0m\x1b[31msit\x1b[0m \n\x1b[1;31m \x1b[0m\x1b[32msit amet, \x1b[0m \x1b[33m sit amet, \x1b[0m \x1b[34m sit amet,\x1b[0m \x1b[31mamet,\x1b[0m\x1b[31m \x1b[0m\x1b[31mconsectetur\x1b[0m \n\x1b[1;31m \x1b[0m\x1b[32mconsectetur \x1b[0m \x1b[33m consectetur \x1b[0m \x1b[34m consectetur\x1b[0m \x1b[31madipiscing\x1b[0m\x1b[31m \x1b[0m\x1b[31melit.\x1b[0m \n\x1b[1;31m \x1b[0m\x1b[32madipiscing elit. \x1b[0m \x1b[33m adipiscing elit. \x1b[0m \x1b[34m adipiscing elit.\x1b[0m \x1b[31mQuisque\x1b[0m\x1b[31m \x1b[0m\x1b[31min\x1b[0m\x1b[31m \x1b[0m\x1b[31mmetus\x1b[0m\x1b[31m \x1b[0m\x1b[31msed\x1b[0m \n\x1b[1;31m \x1b[0m\x1b[32mQuisque in metus sed\x1b[0m \x1b[33mQuisque in metus sed\x1b[0m \x1b[34mQuisque in metus sed\x1b[0m \x1b[31msapien\x1b[0m\x1b[31m \x1b[0m\x1b[31multricies\x1b[0m \n\x1b[1;31m \x1b[0m\x1b[32msapien ultricies \x1b[0m \x1b[33m sapien ultricies \x1b[0m \x1b[34m sapien ultricies\x1b[0m \x1b[31mpretium\x1b[0m\x1b[31m \x1b[0m\x1b[31ma\x1b[0m\x1b[31m \x1b[0m\x1b[31mat\x1b[0m\x1b[31m \x1b[0m\x1b[31mjusto.\x1b[0m \n\x1b[1;31m \x1b[0m\x1b[32mpretium a at justo. \x1b[0m \x1b[33mpretium a at justo. \x1b[0m \x1b[34m pretium a at justo.\x1b[0m \x1b[31mMaecenas\x1b[0m\x1b[31m \x1b[0m\x1b[31mluctus\x1b[0m\x1b[31m \x1b[0m\x1b[31mvelit\x1b[0m \n\x1b[1;31m \x1b[0m\x1b[32mMaecenas luctus \x1b[0m \x1b[33m Maecenas luctus \x1b[0m \x1b[34m Maecenas luctus\x1b[0m \x1b[31met auctor maximus.\x1b[0m \n\x1b[1;31m \x1b[0m\x1b[32mvelit et auctor \x1b[0m \x1b[33m velit et auctor \x1b[0m \x1b[34m velit et auctor\x1b[0m \n\x1b[1;31m \x1b[0m\x1b[32mmaximus. \x1b[0m \x1b[33m maximus. \x1b[0m \x1b[34m maximus.\x1b[0m \n\x1b[1;31m \x1b[0m \n\x1b[1;31m \x1b[0m\x1b[1;31m Asian \x1b[0m\x1b[1;31m \x1b[0m🇨🇳 该库支持中文,日文和韩文文本! \n\x1b[1;31m \x1b[0m\x1b[1;31m language \x1b[0m\x1b[1;31m \x1b[0m🇯🇵 ライブラリは中国語、日本語、韓国語のテキストをサポートしています \n\x1b[1;31m \x1b[0m\x1b[1;31m support \x1b[0m\x1b[1;31m \x1b[0m🇰🇷 이 라이브러리는 중국어, 일본어 및 한국어 텍스트를 지원합니다 \n\x1b[1;31m \x1b[0m \n\x1b[1;31m \x1b[0m\x1b[1;31m Markup \x1b[0m\x1b[1;31m \x1b[0m\x1b[1;35mRich\x1b[0m supports a simple \x1b[3mbbcode\x1b[0m-like \x1b[1mmarkup\x1b[0m for \x1b[33mcolor\x1b[0m, \x1b[4mstyle\x1b[0m, and emoji! 👍 🍎 🐜 🐻 … \n\x1b[1;31m \x1b[0m🚌 \n\x1b[1;31m \x1b[0m \n\x1b[1;31m \x1b[0m\x1b[1;31m Tables \x1b[0m\x1b[1;31m \x1b[0m\x1b[1m \x1b[0m\x1b[1;32mDate\x1b[0m\x1b[1m \x1b[0m\x1b[1m \x1b[0m \x1b[1m \x1b[0m\x1b[1;34mTitle\x1b[0m\x1b[1m \x1b[0m\x1b[1m \x1b[0m \x1b[1m \x1b[0m\x1b[1;36mProduction Budget\x1b[0m\x1b[1m \x1b[0m \x1b[1m \x1b[0m\x1b[1m \x1b[0m\x1b[1;35mBox Office\x1b[0m\x1b[1m \x1b[0m \n\x1b[1;31m \x1b[0m───────────────────────────────────────────────────────────────────────────────────── \n\x1b[1;31m \x1b[0m\x1b[32m \x1b[0m\x1b[32mDec 20, 2019\x1b[0m\x1b[32m \x1b[0m \x1b[34m \x1b[0m\x1b[34mStar Wars: The Rise of \x1b[0m\x1b[34m \x1b[0m \x1b[36m \x1b[0m\x1b[36m $275,000,000\x1b[0m\x1b[36m \x1b[0m \x1b[35m \x1b[0m\x1b[35m $375,126,118\x1b[0m\x1b[35m \x1b[0m \n\x1b[1;31m \x1b[0m\x1b[32m \x1b[0m \x1b[34m \x1b[0m\x1b[34mSkywalker \x1b[0m\x1b[34m \x1b[0m \x1b[36m \x1b[0m \x1b[35m \x1b[0m \n\x1b[1;31m \x1b[0m\x1b[2;32m \x1b[0m\x1b[2;32mMay 25, 2018\x1b[0m\x1b[2;32m \x1b[0m \x1b[2;34m \x1b[0m\x1b[1;2;34mSolo\x1b[0m\x1b[2;34m: A Star Wars Story \x1b[0m\x1b[2;34m \x1b[0m \x1b[2;36m \x1b[0m\x1b[2;36m $275,000,000\x1b[0m\x1b[2;36m \x1b[0m \x1b[2;35m \x1b[0m\x1b[2;35m $393,151,347\x1b[0m\x1b[2;35m \x1b[0m \n\x1b[1;31m \x1b[0m\x1b[32m \x1b[0m\x1b[32mDec 15, 2017\x1b[0m\x1b[32m \x1b[0m \x1b[34m \x1b[0m\x1b[34mStar Wars Ep. VIII: The Last \x1b[0m\x1b[34m \x1b[0m \x1b[36m \x1b[0m\x1b[36m $262,000,000\x1b[0m\x1b[36m \x1b[0m \x1b[35m \x1b[0m\x1b[1;35m$1,332,539,889\x1b[0m\x1b[35m \x1b[0m \n\x1b[1;31m \x1b[0m\x1b[32m \x1b[0m \x1b[34m \x1b[0m\x1b[34mJedi \x1b[0m\x1b[34m \x1b[0m \x1b[36m \x1b[0m \x1b[35m \x1b[0m \n\x1b[1;31m \x1b[0m\x1b[2;32m \x1b[0m\x1b[2;32mMay 19, 1999\x1b[0m\x1b[2;32m \x1b[0m \x1b[2;34m \x1b[0m\x1b[2;34mStar Wars Ep. \x1b[0m\x1b[1;2;34mI\x1b[0m\x1b[2;34m: \x1b[0m\x1b[2;3;34mThe phantom \x1b[0m\x1b[2;34m \x1b[0m\x1b[2;34m \x1b[0m \x1b[2;36m \x1b[0m\x1b[2;36m $115,000,000\x1b[0m\x1b[2;36m \x1b[0m \x1b[2;35m \x1b[0m\x1b[2;35m$1,027,044,677\x1b[0m\x1b[2;35m \x1b[0m \n\x1b[1;31m \x1b[0m\x1b[2;32m \x1b[0m \x1b[2;34m \x1b[0m\x1b[2;3;34mMenace\x1b[0m\x1b[2;34m \x1b[0m\x1b[2;34m \x1b[0m \x1b[2;36m \x1b[0m \x1b[2;35m \x1b[0m \n\x1b[1;31m \x1b[0m \n\x1b[1;31m \x1b[0m\x1b[1;31m Syntax \x1b[0m\x1b[1;31m \x1b[0m\x1b[1;38;2;227;227;221;48;2;39;40;34m \x1b[0m\x1b[38;2;101;102;96;48;2;39;40;34m 1 \x1b[0m\x1b[38;2;102;217;239;48;2;39;40;34mdef\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;166;226;46;48;2;39;40;34miter_last\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m(\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34mvalues\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m:\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34mIterable\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m[\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34mT\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m]\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m)\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;249;38;114;48;2;39;40;34m-\x1b[0m\x1b[38;2;249;38;114;48;2;39;40;34m>\x1b[0m \x1b[1m{\x1b[0m \n\x1b[1;31m \x1b[0m\x1b[1;31mhighlighting\x1b[0m\x1b[1;31m \x1b[0m\x1b[1;38;2;227;227;221;48;2;39;40;34m \x1b[0m\x1b[38;2;101;102;96;48;2;39;40;34m 2 \x1b[0m\x1b[2;38;2;117;113;94;48;2;39;40;34m│ \x1b[0m\x1b[38;2;230;219;116;48;2;39;40;34m\"\"\"Iterate and generate a tuple w\x1b[0m \x1b[2;32m│ \x1b[0m\x1b[32m'foo'\x1b[0m: \x1b[1m[\x1b[0m \n\x1b[1;31m \x1b[0m\x1b[1;31m & \x1b[0m\x1b[1;31m \x1b[0m\x1b[1;38;2;227;227;221;48;2;39;40;34m \x1b[0m\x1b[38;2;101;102;96;48;2;39;40;34m 3 \x1b[0m\x1b[2;38;2;117;113;94;48;2;39;40;34m│ \x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34miter_values\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;249;38;114;48;2;39;40;34m=\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34miter\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m(\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34mvalues\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m)\x1b[0m\x1b[48;2;39;40;34m \x1b[0m \x1b[2;32m│ │ \x1b[0m\x1b[1;36m3.1427\x1b[0m, \n\x1b[1;31m \x1b[0m\x1b[1;31m pretty \x1b[0m\x1b[1;31m \x1b[0m\x1b[1;38;2;227;227;221;48;2;39;40;34m \x1b[0m\x1b[38;2;101;102;96;48;2;39;40;34m 4 \x1b[0m\x1b[2;38;2;117;113;94;48;2;39;40;34m│ \x1b[0m\x1b[38;2;102;217;239;48;2;39;40;34mtry\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m:\x1b[0m\x1b[48;2;39;40;34m \x1b[0m \x1b[2;32m│ │ \x1b[0m\x1b[1m(\x1b[0m \n\x1b[1;31m \x1b[0m\x1b[1;31m printing \x1b[0m\x1b[1;31m \x1b[0m\x1b[1;38;2;227;227;221;48;2;39;40;34m \x1b[0m\x1b[38;2;101;102;96;48;2;39;40;34m 5 \x1b[0m\x1b[2;38;2;117;113;94;48;2;39;40;34m│ │ \x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34mprevious_value\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;249;38;114;48;2;39;40;34m=\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34mnext\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m(\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34miter_va\x1b[0m \x1b[2;32m│ │ │ \x1b[0m\x1b[32m'Paul Atreides'\x1b[0m, \n\x1b[1;31m \x1b[0m\x1b[1;38;2;227;227;221;48;2;39;40;34m \x1b[0m\x1b[38;2;101;102;96;48;2;39;40;34m 6 \x1b[0m\x1b[2;38;2;117;113;94;48;2;39;40;34m│ \x1b[0m\x1b[38;2;102;217;239;48;2;39;40;34mexcept\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;166;226;46;48;2;39;40;34mStopIteration\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m:\x1b[0m\x1b[48;2;39;40;34m \x1b[0m \x1b[2;32m│ │ │ \x1b[0m\x1b[32m'Vladimir Harkonnen'\x1b[0m, \n\x1b[1;31m \x1b[0m\x1b[1;38;2;227;227;221;48;2;39;40;34m \x1b[0m\x1b[38;2;101;102;96;48;2;39;40;34m 7 \x1b[0m\x1b[2;38;2;117;113;94;48;2;39;40;34m│ │ \x1b[0m\x1b[38;2;102;217;239;48;2;39;40;34mreturn\x1b[0m\x1b[48;2;39;40;34m \x1b[0m \x1b[2;32m│ │ │ \x1b[0m\x1b[32m'Thufir Hawat'\x1b[0m \n\x1b[1;31m \x1b[0m\x1b[1;38;2;227;227;221;48;2;39;40;34m \x1b[0m\x1b[38;2;101;102;96;48;2;39;40;34m 8 \x1b[0m\x1b[2;38;2;117;113;94;48;2;39;40;34m│ \x1b[0m\x1b[38;2;102;217;239;48;2;39;40;34mfor\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34mvalue\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;249;38;114;48;2;39;40;34min\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34miter_values\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m:\x1b[0m\x1b[48;2;39;40;34m \x1b[0m \x1b[2;32m│ │ \x1b[0m\x1b[1m)\x1b[0m \n\x1b[1;31m \x1b[0m\x1b[1;38;2;227;227;221;48;2;39;40;34m \x1b[0m\x1b[38;2;101;102;96;48;2;39;40;34m 9 \x1b[0m\x1b[2;38;2;117;113;94;48;2;39;40;34m│ │ \x1b[0m\x1b[38;2;102;217;239;48;2;39;40;34myield\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;102;217;239;48;2;39;40;34mFalse\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m,\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34mprevious_value\x1b[0m\x1b[48;2;39;40;34m \x1b[0m \x1b[2;32m│ \x1b[0m\x1b[1m]\x1b[0m, \n\x1b[1;31m \x1b[0m\x1b[1;38;2;227;227;221;48;2;39;40;34m \x1b[0m\x1b[38;2;101;102;96;48;2;39;40;34m10 \x1b[0m\x1b[2;38;2;117;113;94;48;2;39;40;34m│ │ \x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34mprevious_value\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;249;38;114;48;2;39;40;34m=\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34mvalue\x1b[0m\x1b[48;2;39;40;34m \x1b[0m \x1b[2;32m│ \x1b[0m\x1b[32m'atomic'\x1b[0m: \x1b[1m(\x1b[0m\x1b[3;91mFalse\x1b[0m, \x1b[3;92mTrue\x1b[0m, \x1b[3;35mNone\x1b[0m\x1b[1m)\x1b[0m \n\x1b[1;31m \x1b[0m\x1b[1;38;2;227;227;221;48;2;39;40;34m \x1b[0m\x1b[38;2;101;102;96;48;2;39;40;34m11 \x1b[0m\x1b[2;38;2;117;113;94;48;2;39;40;34m│ \x1b[0m\x1b[38;2;102;217;239;48;2;39;40;34myield\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;102;217;239;48;2;39;40;34mTrue\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m,\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34mprevious_value\x1b[0m\x1b[48;2;39;40;34m \x1b[0m \x1b[1m}\x1b[0m \n\x1b[1;31m \x1b[0m \n\x1b[1;31m \x1b[0m\x1b[1;31m Markdown \x1b[0m\x1b[1;31m \x1b[0m\x1b[36m# Markdown\x1b[0m ╔═══════════════════════════════════════╗ \n\x1b[1;31m \x1b[0m ║ \x1b[1mMarkdown\x1b[0m ║ \n\x1b[1;31m \x1b[0m\x1b[36mSupports much of the *markdown* \x1b[0m ╚═══════════════════════════════════════╝ \n\x1b[1;31m \x1b[0m\x1b[36m__syntax__!\x1b[0m \n\x1b[1;31m \x1b[0m Supports much of the \x1b[3mmarkdown\x1b[0m \x1b[1msyntax\x1b[0m! \n\x1b[1;31m \x1b[0m\x1b[36m- Headers\x1b[0m \n\x1b[1;31m \x1b[0m\x1b[36m- Basic formatting: **bold**, *italic*, \x1b[0m \x1b[1;33m • \x1b[0mHeaders \n\x1b[1;31m \x1b[0m\x1b[36m`code`\x1b[0m \x1b[1;33m • \x1b[0mBasic formatting: \x1b[1mbold\x1b[0m, \x1b[3mitalic\x1b[0m, \x1b[97;40mcode\x1b[0m \n\x1b[1;31m \x1b[0m\x1b[36m- Block quotes\x1b[0m \x1b[1;33m • \x1b[0mBlock quotes \n\x1b[1;31m \x1b[0m\x1b[36m- Lists, and more...\x1b[0m \x1b[1;33m • \x1b[0mLists, and more... \n\x1b[1;31m \x1b[0m\x1b[36m \x1b[0m \n\x1b[1;31m \x1b[0m \n\x1b[1;31m \x1b[0m\x1b[1;31m +more! \x1b[0m\x1b[1;31m \x1b[0mProgress bars, columns, styled logging handler, tracebacks, etc... \n\x1b[1;31m \x1b[0m \n" diff --git a/tests/test_ansi.py b/tests/test_ansi.py index 898286cfab..1a21765c24 100644 --- a/tests/test_ansi.py +++ b/tests/test_ansi.py @@ -1,5 +1,3 @@ -import io - from rich.ansi import AnsiDecoder from rich.console import Console from rich.style import Style @@ -30,3 +28,20 @@ def test_decode(): ] assert lines == expected + + +def test_decode_example(): + ansi_bytes = b"\x1b[01m\x1b[KC:\\Users\\stefa\\AppData\\Local\\Temp\\tmp3ydingba:\x1b[m\x1b[K In function '\x1b[01m\x1b[Kmain\x1b[m\x1b[K':\n\x1b[01m\x1b[KC:\\Users\\stefa\\AppData\\Local\\Temp\\tmp3ydingba:3:5:\x1b[m\x1b[K \x1b[01;35m\x1b[Kwarning: \x1b[m\x1b[Kunused variable '\x1b[01m\x1b[Ka\x1b[m\x1b[K' [\x1b[01;35m\x1b[K-Wunused-variable\x1b[m\x1b[K]\n 3 | int \x1b[01;35m\x1b[Ka\x1b[m\x1b[K=1;\n | \x1b[01;35m\x1b[K^\x1b[m\x1b[K\n" + ansi_text = ansi_bytes.decode("utf-8") + + text = Text.from_ansi(ansi_text) + + console = Console( + force_terminal=True, legacy_windows=False, color_system="truecolor" + ) + with console.capture() as capture: + console.print(text) + result = capture.get() + print(repr(result)) + expected = "\x1b[1mC:\\Users\\stefa\\AppData\\Local\\Temp\\tmp3ydingba:\x1b[0m In function '\x1b[1mmain\x1b[0m':\n\x1b[1mC:\\Users\\stefa\\AppData\\Local\\Temp\\tmp3ydingba:3:5:\x1b[0m \x1b[1;35mwarning: \x1b[0munused variable '\x1b[1ma\x1b[0m' \n[\x1b[1;35m-Wunused-variable\x1b[0m]\n 3 | int \x1b[1;35ma\x1b[0m=1;\n | \x1b[1;35m^\x1b[0m\n" + assert result == expected diff --git a/tests/test_cells.py b/tests/test_cells.py index 06de437202..d64317f3ba 100644 --- a/tests/test_cells.py +++ b/tests/test_cells.py @@ -2,6 +2,10 @@ def test_set_cell_size(): + assert cells.set_cell_size("foo", 0) == "" + assert cells.set_cell_size("f", 0) == "" + assert cells.set_cell_size("", 0) == "" + assert cells.set_cell_size("😽😽", 0) == "" assert cells.set_cell_size("foo", 2) == "fo" assert cells.set_cell_size("foo", 3) == "foo" assert cells.set_cell_size("foo", 4) == "foo " @@ -9,3 +13,16 @@ def test_set_cell_size(): assert cells.set_cell_size("😽😽", 3) == "😽 " assert cells.set_cell_size("😽😽", 2) == "😽" assert cells.set_cell_size("😽😽", 1) == " " + assert cells.set_cell_size("😽😽", 5) == "😽😽 " + + +def test_set_cell_size_infinite(): + for size in range(38): + assert ( + cells.cell_len( + cells.set_cell_size( + "เป็นเกมที่ต้องมีความอดทนมากที่สุดตั้งเเต่เคยเล่นมา", size + ) + ) + == size + ) diff --git a/tests/test_columns.py b/tests/test_columns.py index 927aba2116..1b167f4acb 100644 --- a/tests/test_columns.py +++ b/tests/test_columns.py @@ -41,7 +41,7 @@ def render(): console.rule("optimal, expand") columns.expand = True console.print(columns) - console.rule("columm first, optimal") + console.rule("column first, optimal") columns.column_first = True columns.expand = False console.print(columns) @@ -62,7 +62,7 @@ def render(): def test_render(): - expected = "────────────────────────────────────────────── empty ───────────────────────────────────────────────\n───────────────────────────────────────────── optimal ──────────────────────────────────────────────\nUrsus americanus American buffalo Bison bison American crow \nCorvus brachyrhynchos American marten Martes americana American racer \nColuber constrictor American woodcock Scolopax minor Anaconda (unidentified)\nEunectes sp. Andean goose Chloephaga melanoptera Ant \nAnteater, australian spiny Tachyglossus aculeatus Anteater, giant Myrmecophaga tridactyla\n───────────────────────────────────────── optimal, expand ──────────────────────────────────────────\nUrsus americanus American buffalo Bison bison American crow \nCorvus brachyrhynchos American marten Martes americana American racer \nColuber constrictor American woodcock Scolopax minor Anaconda (unidentified)\nEunectes sp. Andean goose Chloephaga melanoptera Ant \nAnteater, australian spiny Tachyglossus aculeatus Anteater, giant Myrmecophaga tridactyla\n────────────────────────────────────── columm first, optimal ───────────────────────────────────────\nUrsus americanus American marten Scolopax minor Ant \nAmerican buffalo Martes americana Anaconda (unidentified) Anteater, australian spiny\nBison bison American racer Eunectes sp. Tachyglossus aculeatus \nAmerican crow Coluber constrictor Andean goose Anteater, giant \nCorvus brachyrhynchos American woodcock Chloephaga melanoptera Myrmecophaga tridactyla \n─────────────────────────────────── column first, right to left ────────────────────────────────────\nAnt Scolopax minor American marten Ursus americanus \nAnteater, australian spiny Anaconda (unidentified) Martes americana American buffalo \nTachyglossus aculeatus Eunectes sp. American racer Bison bison \nAnteater, giant Andean goose Coluber constrictor American crow \nMyrmecophaga tridactyla Chloephaga melanoptera American woodcock Corvus brachyrhynchos\n────────────────────────────────────── equal columns, expand ───────────────────────────────────────\nChloephaga melanoptera American racer Ursus americanus \nAnt Coluber constrictor American buffalo \nAnteater, australian spiny American woodcock Bison bison \nTachyglossus aculeatus Scolopax minor American crow \nAnteater, giant Anaconda (unidentified) Corvus brachyrhynchos \nMyrmecophaga tridactyla Eunectes sp. American marten \n Andean goose Martes americana \n─────────────────────────────────────────── fixed width ────────────────────────────────────────────\nAnteater, Eunectes sp. Coluber Corvus Ursus americanus \naustralian spiny constrictor brachyrhynchos \nTachyglossus Andean goose American American marten American buffalo \naculeatus woodcock \nAnteater, giant Chloephaga Scolopax minor Martes americana Bison bison \n melanoptera \nMyrmecophaga Ant Anaconda American racer American crow \ntridactyla (unidentified) \n\n" + expected = "────────────────────────────────────────────── empty ───────────────────────────────────────────────\n───────────────────────────────────────────── optimal ──────────────────────────────────────────────\nUrsus americanus American buffalo Bison bison American crow \nCorvus brachyrhynchos American marten Martes americana American racer \nColuber constrictor American woodcock Scolopax minor Anaconda (unidentified)\nEunectes sp. Andean goose Chloephaga melanoptera Ant \nAnteater, australian spiny Tachyglossus aculeatus Anteater, giant Myrmecophaga tridactyla\n───────────────────────────────────────── optimal, expand ──────────────────────────────────────────\nUrsus americanus American buffalo Bison bison American crow \nCorvus brachyrhynchos American marten Martes americana American racer \nColuber constrictor American woodcock Scolopax minor Anaconda (unidentified)\nEunectes sp. Andean goose Chloephaga melanoptera Ant \nAnteater, australian spiny Tachyglossus aculeatus Anteater, giant Myrmecophaga tridactyla\n────────────────────────────────────── column first, optimal ───────────────────────────────────────\nUrsus americanus American marten Scolopax minor Ant \nAmerican buffalo Martes americana Anaconda (unidentified) Anteater, australian spiny\nBison bison American racer Eunectes sp. Tachyglossus aculeatus \nAmerican crow Coluber constrictor Andean goose Anteater, giant \nCorvus brachyrhynchos American woodcock Chloephaga melanoptera Myrmecophaga tridactyla \n─────────────────────────────────── column first, right to left ────────────────────────────────────\nAnt Scolopax minor American marten Ursus americanus \nAnteater, australian spiny Anaconda (unidentified) Martes americana American buffalo \nTachyglossus aculeatus Eunectes sp. American racer Bison bison \nAnteater, giant Andean goose Coluber constrictor American crow \nMyrmecophaga tridactyla Chloephaga melanoptera American woodcock Corvus brachyrhynchos\n────────────────────────────────────── equal columns, expand ───────────────────────────────────────\nChloephaga melanoptera American racer Ursus americanus \nAnt Coluber constrictor American buffalo \nAnteater, australian spiny American woodcock Bison bison \nTachyglossus aculeatus Scolopax minor American crow \nAnteater, giant Anaconda (unidentified) Corvus brachyrhynchos \nMyrmecophaga tridactyla Eunectes sp. American marten \n Andean goose Martes americana \n─────────────────────────────────────────── fixed width ────────────────────────────────────────────\nAnteater, Eunectes sp. Coluber Corvus Ursus americanus \naustralian spiny constrictor brachyrhynchos \nTachyglossus Andean goose American American marten American buffalo \naculeatus woodcock \nAnteater, giant Chloephaga Scolopax minor Martes americana Bison bison \n melanoptera \nMyrmecophaga Ant Anaconda American racer American crow \ntridactyla (unidentified) \n\n" assert render() == expected diff --git a/tests/test_console.py b/tests/test_console.py index 061cbd7faf..e09b238591 100644 --- a/tests/test_console.py +++ b/tests/test_console.py @@ -3,7 +3,8 @@ import os import sys import tempfile -from typing import Optional +from typing import Optional, Tuple, Type, Union +from unittest import mock import pytest @@ -14,11 +15,12 @@ Console, ConsoleDimensions, ConsoleOptions, - group, ScreenUpdate, + group, ) from rich.control import Control from rich.measure import measure_renderables +from rich.padding import Padding from rich.pager import SystemPager from rich.panel import Panel from rich.region import Region @@ -87,6 +89,23 @@ def test_console_options_update(): assert options_copy == options and options_copy is not options +def test_console_options_update_height(): + options = ConsoleOptions( + ConsoleDimensions(80, 25), + max_height=25, + legacy_windows=False, + min_width=10, + max_width=20, + is_terminal=False, + encoding="utf-8", + ) + assert options.height is None + render_options = options.update_height(12) + assert options.height is None + assert render_options.height == 12 + assert render_options.max_height == 12 + + def test_init(): console = Console(color_system=None) assert console._color_system == None @@ -100,11 +119,53 @@ def test_size(): w, h = console.size assert console.width == w - console = Console(width=99, height=101) + console = Console(width=99, height=101, legacy_windows=False) w, h = console.size assert w == 99 and h == 101 +@pytest.mark.parametrize( + "is_windows,no_descriptor_size,stdin_size,stdout_size,stderr_size,expected_size", + [ + # on Windows we'll use `os.get_terminal_size()` without arguments... + (True, (133, 24), ValueError, ValueError, ValueError, (133, 24)), + (False, (133, 24), ValueError, ValueError, ValueError, (80, 25)), + # ...while on other OS we'll try to pass stdin, then stdout, then stderr to it: + (False, ValueError, (133, 24), ValueError, ValueError, (133, 24)), + (False, ValueError, ValueError, (133, 24), ValueError, (133, 24)), + (False, ValueError, ValueError, ValueError, (133, 24), (133, 24)), + (False, ValueError, ValueError, ValueError, ValueError, (80, 25)), + ], +) +@mock.patch("rich.console.os.get_terminal_size") +def test_size_can_fall_back_to_std_descriptors( + get_terminal_size_mock: mock.MagicMock, + is_windows: bool, + no_descriptor_size: Union[Tuple[int, int], Type[ValueError]], + stdin_size: Union[Tuple[int, int], Type[ValueError]], + stdout_size: Union[Tuple[int, int], Type[ValueError]], + stderr_size: Union[Tuple[int, int], Type[ValueError]], + expected_size, +): + def get_terminal_size_mock_impl(fileno: int = None) -> Tuple[int, int]: + value = { + None: no_descriptor_size, + sys.__stdin__.fileno(): stdin_size, + sys.__stdout__.fileno(): stdout_size, + sys.__stderr__.fileno(): stderr_size, + }[fileno] + if value is ValueError: + raise value + return value + + get_terminal_size_mock.side_effect = get_terminal_size_mock_impl + + console = Console(legacy_windows=False) + with mock.patch("rich.console.WINDOWS", new=is_windows): + w, h = console.size + assert (w, h) == expected_size + + def test_repr(): console = Console() assert isinstance(repr(console), str) @@ -117,6 +178,24 @@ def test_print(): assert console.file.getvalue() == "foo\n" +def test_print_multiple(): + console = Console(file=io.StringIO(), color_system="truecolor") + console.print("foo", "bar") + assert console.file.getvalue() == "foo bar\n" + + +def test_print_text(): + console = Console(file=io.StringIO(), color_system="truecolor") + console.print(Text("foo", style="bold")) + assert console.file.getvalue() == "\x1B[1mfoo\x1B[0m\n" + + +def test_print_text_multiple(): + console = Console(file=io.StringIO(), color_system="truecolor") + console.print(Text("foo", style="bold"), Text("bar"), "baz") + assert console.file.getvalue() == "\x1B[1mfoo\x1B[0m bar baz\n" + + def test_print_json(): console = Console(file=io.StringIO(), color_system="truecolor") console.print_json('[false, true, null, "foo"]', indent=4) @@ -141,6 +220,24 @@ def test_print_json_data(): assert result == expected +def test_print_json_ensure_ascii(): + console = Console(file=io.StringIO(), color_system="truecolor") + console.print_json(data={"foo": "💩"}, ensure_ascii=False) + result = console.file.getvalue() + print(repr(result)) + expected = '\x1b[1m{\x1b[0m\n \x1b[1;34m"foo"\x1b[0m: \x1b[32m"💩"\x1b[0m\n\x1b[1m}\x1b[0m\n' + assert result == expected + + +def test_print_json_indent_none(): + console = Console(file=io.StringIO(), color_system="truecolor") + data = {"name": "apple", "count": 1} + console.print_json(data=data, indent=None) + result = console.file.getvalue() + expected = '\x1b[1m{\x1b[0m\x1b[1;34m"name"\x1b[0m: \x1b[32m"apple"\x1b[0m, \x1b[1;34m"count"\x1b[0m: \x1b[1;36m1\x1b[0m\x1b[1m}\x1b[0m\n' + assert result == expected + + def test_log(): console = Console( file=io.StringIO(), @@ -255,7 +352,7 @@ def test_capture(): def test_input(monkeypatch, capsys): - def fake_input(prompt): + def fake_input(prompt=""): console.file.write(prompt) return "bar" @@ -266,18 +363,6 @@ def fake_input(prompt): assert user_input == "bar" -def test_input_legacy_windows(monkeypatch, capsys): - def fake_input(prompt): - console.file.write(prompt) - return "bar" - - monkeypatch.setattr("builtins.input", fake_input) - console = Console(legacy_windows=True) - user_input = console.input(prompt="foo:") - assert capsys.readouterr().out == "foo:" - assert user_input == "bar" - - def test_input_password(monkeypatch, capsys): def fake_input(prompt, stream=None): console.file.write(prompt) @@ -409,6 +494,32 @@ def test_export_html_inline(): assert html == expected +EXPECTED_SVG = '\n \n \n\n \n \n \n \n \n\n Rich\n \n \n \n \n \n \n \n \n \n fooClick\n\n \n \n\n' + + +def test_export_svg(): + console = Console(record=True, width=100) + console.print( + "[b red on blue reverse]foo[/] [blink][link=https://example.org]Click[/link]" + ) + svg = console.export_svg() + print(repr(svg)) + + assert svg == EXPECTED_SVG + + +def test_save_svg(): + console = Console(record=True, width=100) + console.print( + "[b red on blue reverse]foo[/] [blink][link=https://example.org]Click[/link]" + ) + with tempfile.TemporaryDirectory() as path: + export_path = os.path.join(path, "example.svg") + console.save_svg(export_path) + with open(export_path, "rt", encoding="utf-8") as svg_file: + assert svg_file.read() == EXPECTED_SVG + + def test_save_text(): console = Console(record=True, width=100) console.print("foo") @@ -598,13 +709,13 @@ def test_height(): def test_columns_env(): - console = Console(_environ={"COLUMNS": "314"}) + console = Console(_environ={"COLUMNS": "314"}, legacy_windows=False) assert console.width == 314 # width take precedence - console = Console(width=40, _environ={"COLUMNS": "314"}) + console = Console(width=40, _environ={"COLUMNS": "314"}, legacy_windows=False) assert console.width == 40 # Should not fail - console = Console(width=40, _environ={"COLUMNS": "broken"}) + console = Console(width=40, _environ={"COLUMNS": "broken"}, legacy_windows=False) def test_lines_env(): @@ -641,8 +752,20 @@ def test_is_alt_screen(): assert not console.is_alt_screen +def test_set_console_title(): + console = Console(force_terminal=True, _environ={}) + if console.legacy_windows: + return + + with console.capture() as captured: + console.set_window_title("hello") + + result = captured.get() + assert result == "\x1b]0;hello\x07" + + def test_update_screen(): - console = Console(force_terminal=True, width=20, height=5) + console = Console(force_terminal=True, width=20, height=5, _environ={}) if console.legacy_windows: return with pytest.raises(errors.NoAltScreen): @@ -680,7 +803,7 @@ def test_print_width_zero(): def test_size_properties(): - console = Console(width=80, height=25) + console = Console(width=80, height=25, legacy_windows=False) assert console.size == ConsoleDimensions(80, 25) console.size = (10, 20) assert console.size == ConsoleDimensions(10, 20) @@ -698,3 +821,60 @@ def test_print_newline_start(): result = console.end_capture() assert result == "Foo\n\nFoo\nbar\n\n" + + +def test_is_terminal_broken_file(): + console = Console() + + def _mock_isatty(): + raise ValueError() + + console.file.isatty = _mock_isatty + + assert console.is_terminal == False + + +@pytest.mark.skipif(sys.platform == "win32", reason="not relevant on Windows") +def test_detect_color_system(): + console = Console(_environ={"TERM": "rxvt-unicode-256color"}, force_terminal=True) + assert console._detect_color_system() == ColorSystem.EIGHT_BIT + + +def test_reset_height(): + """Test height is reset when rendering complex renderables.""" + # https://github.com/Textualize/rich/issues/2042 + class Panels: + def __rich_console__(self, console, options): + yield Panel("foo") + yield Panel("bar") + + console = Console( + force_terminal=True, + color_system="truecolor", + width=20, + height=40, + legacy_windows=False, + ) + + with console.capture() as capture: + console.print(Panel(Panels()), height=12) + result = capture.get() + print(repr(result)) + expected = "╭──────────────────╮\n│ ╭──────────────╮ │\n│ │ foo │ │\n│ ╰──────────────╯ │\n│ ╭──────────────╮ │\n│ │ bar │ │\n│ ╰──────────────╯ │\n│ │\n│ │\n│ │\n│ │\n╰──────────────────╯\n" + + assert result == expected + + +def test_render_lines_height_minus_vertical_pad_is_negative(): + # https://github.com/Textualize/textual/issues/389 + console = Console( + force_terminal=True, + color_system="truecolor", + width=20, + height=40, + legacy_windows=False, + ) + options = console.options.update_height(1) + + # Ensuring that no exception is raised... + console.render_lines(Padding("hello", pad=(1, 0)), options=options) diff --git a/tests/test_control.py b/tests/test_control.py index dbd21fe115..987206d82e 100644 --- a/tests/test_control.py +++ b/tests/test_control.py @@ -1,5 +1,5 @@ from rich.control import Control, strip_control_codes -from rich.segment import Segment, ControlType +from rich.segment import ControlType, Segment def test_control(): @@ -45,3 +45,12 @@ def test_move_to_column(): None, [(ControlType.CURSOR_MOVE_TO_COLUMN, 10), (ControlType.CURSOR_UP, 20)], ) + + +def test_title(): + control_segment = Control.title("hello").segment + assert control_segment == Segment( + "\x1b]0;hello\x07", + None, + [(ControlType.SET_WINDOW_TITLE, "hello")], + ) diff --git a/tests/test_file_proxy.py b/tests/test_file_proxy.py index 2218d03b76..51c530aa31 100644 --- a/tests/test_file_proxy.py +++ b/tests/test_file_proxy.py @@ -25,3 +25,14 @@ def test_flush(): assert file.getvalue() == "" file_proxy.flush() assert file.getvalue() == "foo\n" + + +def test_new_lines(): + + file = io.StringIO() + console = Console(file=file) + file_proxy = FileProxy(console, file) + file_proxy.write("-\n-") + assert file.getvalue() == "-\n" + file_proxy.flush() + assert file.getvalue() == "-\n-\n" diff --git a/tests/test_highlighter.py b/tests/test_highlighter.py index b683312d1e..0a036b72f8 100644 --- a/tests/test_highlighter.py +++ b/tests/test_highlighter.py @@ -1,8 +1,10 @@ -"""Tests for the higlighter classes.""" -import pytest +"""Tests for the highlighter classes.""" +import json from typing import List -from rich.highlighter import NullHighlighter, ReprHighlighter +import pytest + +from rich.highlighter import JSONHighlighter, NullHighlighter, ReprHighlighter from rich.text import Span, Text @@ -40,6 +42,16 @@ def test_wrong_type(): Span(4, 9, "repr.str"), ], ), + ( + "", + [ + Span(0, 1, "repr.tag_start"), + Span(1, 23, "repr.tag_name"), + Span(23, 25, "repr.tag_contents"), + Span(25, 26, "repr.tag_end"), + Span(24, 25, "repr.number"), + ], + ), ("( )", [Span(0, 1, "repr.brace"), Span(2, 3, "repr.brace")]), ("[ ]", [Span(0, 1, "repr.brace"), Span(2, 3, "repr.brace")]), ("{ }", [Span(0, 1, "repr.brace"), Span(2, 3, "repr.brace")]), @@ -47,6 +59,40 @@ def test_wrong_type(): (" 1.2 ", [Span(1, 4, "repr.number")]), (" 0xff ", [Span(1, 5, "repr.number")]), (" 1e10 ", [Span(1, 5, "repr.number")]), + (" 1j ", [Span(1, 3, "repr.number_complex")]), + (" 3.14j ", [Span(1, 6, "repr.number_complex")]), + ( + " (3.14+2.06j) ", + [ + Span(1, 2, "repr.brace"), + Span(12, 13, "repr.brace"), + Span(2, 12, "repr.number_complex"), + ], + ), + ( + " (3+2j) ", + [ + Span(1, 2, "repr.brace"), + Span(6, 7, "repr.brace"), + Span(2, 6, "repr.number_complex"), + ], + ), + ( + " (123456.4321-1234.5678j) ", + [ + Span(1, 2, "repr.brace"), + Span(24, 25, "repr.brace"), + Span(2, 24, "repr.number_complex"), + ], + ), + ( + " (-123123-2.1312342342423422e+25j) ", + [ + Span(1, 2, "repr.brace"), + Span(33, 34, "repr.brace"), + Span(2, 33, "repr.number_complex"), + ], + ), (" /foo ", [Span(1, 2, "repr.path"), Span(2, 5, "repr.filename")]), (" /foo/bar.html ", [Span(1, 6, "repr.path"), Span(6, 14, "repr.filename")]), ("01-23-45-67-89-AB", [Span(0, 17, "repr.eui48")]), # 6x2 hyphen @@ -71,6 +117,7 @@ def test_wrong_type(): ('"""hello"""', [Span(0, 11, "repr.str")]), ("\\'foo'", []), ("it's no 'string'", [Span(8, 16, "repr.str")]), + ("78351748-9b32-4e08-ad3e-7e9ff124d541", [Span(0, 36, "repr.uuid")]), ] @@ -82,3 +129,53 @@ def test_highlight_regex(test: str, spans: List[Span]): highlighter.highlight(text) print(text.spans) assert text.spans == spans + + +def test_highlight_json_with_indent(): + json_string = json.dumps({"name": "apple", "count": 1}, indent=4) + text = Text(json_string) + highlighter = JSONHighlighter() + highlighter.highlight(text) + assert text.spans == [ + Span(0, 1, "json.brace"), + Span(6, 12, "json.str"), + Span(14, 21, "json.str"), + Span(27, 34, "json.str"), + Span(36, 37, "json.number"), + Span(38, 39, "json.brace"), + Span(6, 12, "json.key"), + Span(27, 34, "json.key"), + ] + + +def test_highlight_json_string_only(): + json_string = '"abc"' + text = Text(json_string) + highlighter = JSONHighlighter() + highlighter.highlight(text) + assert text.spans == [Span(0, 5, "json.str")] + + +def test_highlight_json_empty_string_only(): + json_string = '""' + text = Text(json_string) + highlighter = JSONHighlighter() + highlighter.highlight(text) + assert text.spans == [Span(0, 2, "json.str")] + + +def test_highlight_json_no_indent(): + json_string = json.dumps({"name": "apple", "count": 1}, indent=None) + text = Text(json_string) + highlighter = JSONHighlighter() + highlighter.highlight(text) + assert text.spans == [ + Span(0, 1, "json.brace"), + Span(1, 7, "json.str"), + Span(9, 16, "json.str"), + Span(18, 25, "json.str"), + Span(27, 28, "json.number"), + Span(28, 29, "json.brace"), + Span(1, 7, "json.key"), + Span(18, 25, "json.key"), + ] diff --git a/tests/test_inspect.py b/tests/test_inspect.py index 0ffc313acf..b4c1d2a709 100644 --- a/tests/test_inspect.py +++ b/tests/test_inspect.py @@ -1,23 +1,42 @@ import io import sys +from types import ModuleType import pytest from rich import inspect from rich.console import Console - skip_py36 = pytest.mark.skipif( sys.version_info.minor == 6 and sys.version_info.major == 3, reason="rendered differently on py3.6", ) - skip_py37 = pytest.mark.skipif( sys.version_info.minor == 7 and sys.version_info.major == 3, reason="rendered differently on py3.7", ) +skip_py38 = pytest.mark.skipif( + sys.version_info.minor == 8 and sys.version_info.major == 3, + reason="rendered differently on py3.8", +) + +skip_py39 = pytest.mark.skipif( + sys.version_info.minor == 9 and sys.version_info.major == 3, + reason="rendered differently on py3.9", +) + +skip_py310 = pytest.mark.skipif( + sys.version_info.minor == 10 and sys.version_info.major == 3, + reason="rendered differently on py3.10", +) + +skip_pypy3 = pytest.mark.skipif( + hasattr(sys, "pypy_version_info"), + reason="rendered differently on pypy3", +) + def render(obj, methods=False, value=False, width=50) -> str: console = Console(file=io.StringIO(), width=width, legacy_windows=False) @@ -67,8 +86,8 @@ def test_render(): assert expected == result +@skip_pypy3 def test_inspect_text(): - expected = ( "╭──────────────── ─────────────────╮\n" "│ str(object='') -> str │\n" @@ -85,8 +104,8 @@ def test_inspect_text(): @skip_py36 @skip_py37 +@skip_pypy3 def test_inspect_empty_dict(): - expected = ( "╭──────────────── ────────────────╮\n" "│ dict() -> new empty dictionary │\n" @@ -107,8 +126,8 @@ def test_inspect_empty_dict(): assert render({}).startswith(expected) +@skip_pypy3 def test_inspect_builtin_function(): - expected = ( "╭────────── ───────────╮\n" "│ def print(...) │\n" @@ -125,7 +144,6 @@ def test_inspect_builtin_function(): @skip_py36 def test_inspect_integer(): - expected = ( "╭────── ───────╮\n" "│ int([x]) -> integer │\n" @@ -142,7 +160,6 @@ def test_inspect_integer(): @skip_py36 def test_inspect_integer_with_value(): - expected = "╭────── ───────╮\n│ int([x]) -> integer │\n│ int(x, base=10) -> integer │\n│ │\n│ ╭────────────────────────╮ │\n│ │ 1 │ │\n│ ╰────────────────────────╯ │\n│ │\n│ denominator = 1 │\n│ imag = 0 │\n│ numerator = 1 │\n│ real = 1 │\n╰────────────────────────────╯\n" value = render(1, value=True) print(repr(value)) @@ -151,8 +168,45 @@ def test_inspect_integer_with_value(): @skip_py36 @skip_py37 +@skip_py310 def test_inspect_integer_with_methods(): + expected = ( + "╭──────────────── ─────────────────╮\n" + "│ int([x]) -> integer │\n" + "│ int(x, base=10) -> integer │\n" + "│ │\n" + "│ denominator = 1 │\n" + "│ imag = 0 │\n" + "│ numerator = 1 │\n" + "│ real = 1 │\n" + "│ as_integer_ratio = def as_integer_ratio(): │\n" + "│ Return integer ratio. │\n" + "│ bit_length = def bit_length(): Number of │\n" + "│ bits necessary to represent │\n" + "│ self in binary. │\n" + "│ conjugate = def conjugate(...) Returns │\n" + "│ self, the complex conjugate │\n" + "│ of any int. │\n" + "│ from_bytes = def from_bytes(bytes, │\n" + "│ byteorder, *, │\n" + "│ signed=False): Return the │\n" + "│ integer represented by the │\n" + "│ given array of bytes. │\n" + "│ to_bytes = def to_bytes(length, │\n" + "│ byteorder, *, │\n" + "│ signed=False): Return an │\n" + "│ array of bytes representing │\n" + "│ an integer. │\n" + "╰────────────────────────────────────────────────╯\n" + ) + assert expected == render(1, methods=True) + +@skip_py36 +@skip_py37 +@skip_py38 +@skip_py39 +def test_inspect_integer_with_methods(): expected = ( "╭──────────────── ─────────────────╮\n" "│ int([x]) -> integer │\n" @@ -164,6 +218,10 @@ def test_inspect_integer_with_methods(): "│ real = 1 │\n" "│ as_integer_ratio = def as_integer_ratio(): │\n" "│ Return integer ratio. │\n" + "│ bit_count = def bit_count(): Number of │\n" + "│ ones in the binary │\n" + "│ representation of the │\n" + "│ absolute value of self. │\n" "│ bit_length = def bit_length(): Number of │\n" "│ bits necessary to represent │\n" "│ self in binary. │\n" @@ -187,6 +245,7 @@ def test_inspect_integer_with_methods(): @skip_py36 @skip_py37 +@skip_pypy3 def test_broken_call_attr(): class NotCallable: __call__ = 5 # Passes callable() but isn't really callable @@ -203,3 +262,40 @@ class Foo: result = render(foo, methods=True, width=100) print(repr(result)) assert expected == result + + +def test_inspect_swig_edge_case(): + """Issue #1838 - Edge case with Faiss library - object with empty dir()""" + + class Thing: + @property + def __class__(self): + raise AttributeError + + thing = Thing() + try: + inspect(thing) + except Exception as e: + assert False, f"Object with no __class__ shouldn't raise {e}" + + +def test_inspect_module_with_class(): + def function(): + pass + + class Thing: + """Docstring""" + + pass + + module = ModuleType("my_module") + module.SomeClass = Thing + module.function = function + + expected = ( + "╭────────── ──────────╮\n" + "│ function = def function(): │\n" + "│ SomeClass = class SomeClass(): Docstring │\n" + "╰──────────────────────────────────────────╯\n" + ) + assert render(module, methods=True) == expected diff --git a/tests/test_json.py b/tests/test_json.py new file mode 100644 index 0000000000..7571b0a393 --- /dev/null +++ b/tests/test_json.py @@ -0,0 +1,8 @@ +from rich.json import JSON +import datetime + + +def test_print_json_data_with_default(): + date = datetime.date(2021, 1, 1) + json = JSON.from_data({"date": date}, default=lambda d: d.isoformat()) + assert str(json.text) == '{\n "date": "2021-01-01"\n}' diff --git a/tests/test_layout.py b/tests/test_layout.py index 21d30d27f6..46f496b0c7 100644 --- a/tests/test_layout.py +++ b/tests/test_layout.py @@ -1,4 +1,5 @@ import sys + import pytest from rich.console import Console @@ -77,7 +78,7 @@ def test_tree(): console.print(layout.tree, height=10) result = capture.get() print(repr(result)) - expected = "⬍ Layout(name='root') \n├── ⬍ Layout(size=2) \n└── ⬌ Layout(name='bar') \n ├── ⬍ Layout() \n └── ⬍ Layout() \n" + expected = "⬍ Layout(name='root')\n├── ⬍ Layout(size=2)\n└── ⬌ Layout(name='bar')\n ├── ⬍ Layout()\n └── ⬍ Layout()\n" print(result, "\n", expected) assert result == expected @@ -86,7 +87,7 @@ def test_tree(): def test_refresh_screen(): layout = Layout() layout.split_row(Layout(name="foo"), Layout(name="bar")) - console = Console(force_terminal=True, width=20, height=5) + console = Console(force_terminal=True, width=20, height=5, _environ={}) with console.capture(): console.print(layout) with console.screen(): diff --git a/tests/test_live.py b/tests/test_live.py index 0c732f63ba..8e3d58928c 100644 --- a/tests/test_live.py +++ b/tests/test_live.py @@ -1,12 +1,11 @@ # encoding=utf-8 -import io import time from typing import Optional # import pytest from rich.console import Console -from rich.text import Text from rich.live import Live +from rich.text import Text def create_capture_console( @@ -117,8 +116,6 @@ def test_growing_display_overflow_visible() -> None: def test_growing_display_autorefresh() -> None: """Test generating a table but using auto-refresh from threading""" - console = create_capture_console() - console = create_capture_console(height=5) console.begin_capture() with Live(console=console, auto_refresh=True, vertical_overflow="visible") as live: diff --git a/tests/test_log.py b/tests/test_log.py index 84da7a4458..22bb8b7b83 100644 --- a/tests/test_log.py +++ b/tests/test_log.py @@ -6,7 +6,6 @@ from rich.console import Console - re_link_ids = re.compile(r"id=[\d\.\-]*?;.*?\x1b") @@ -33,12 +32,12 @@ def render_log(): console.log() console.log("Hello from", console, "!") console.log(test_data, log_locals=True) - return replace_link_ids(console.file.getvalue()) + return replace_link_ids(console.file.getvalue()).replace("test_log.py", "source.py") def test_log(): expected = replace_link_ids( - "\x1b[2;36m[TIME]\x1b[0m\x1b[2;36m \x1b[0m \x1b]8;id=0;foo\x1b\\\x1b[2mtest_log.py\x1b[0m\x1b]8;;\x1b\\\x1b[2m:33\x1b[0m\n\x1b[2;36m \x1b[0m\x1b[2;36m \x1b[0mHello from \x1b[1m<\x1b[0m\x1b[1;95mconsole\x1b[0m\x1b[39m \x1b[0m\x1b[33mwidth\x1b[0m\x1b[39m=\x1b[0m\x1b[1;36m80\x1b[0m\x1b[39m ColorSystem.TRUECOLOR\x1b[0m\x1b[1m>\x1b[0m ! \x1b]8;id=0;foo\x1b\\\x1b[2mtest_log.py\x1b[0m\x1b]8;;\x1b\\\x1b[2m:34\x1b[0m\n\x1b[2;36m \x1b[0m\x1b[2;36m \x1b[0m\x1b[1m[\x1b[0m\x1b[1;36m1\x1b[0m, \x1b[1;36m2\x1b[0m, \x1b[1;36m3\x1b[0m\x1b[1m]\x1b[0m \x1b]8;id=0;foo\x1b\\\x1b[2mtest_log.py\x1b[0m\x1b]8;;\x1b\\\x1b[2m:35\x1b[0m\n \x1b[34m╭─\x1b[0m\x1b[34m───────────────────── \x1b[0m\x1b[3;34mlocals\x1b[0m\x1b[34m ─────────────────────\x1b[0m\x1b[34m─╮\x1b[0m \n \x1b[34m│\x1b[0m \x1b[3;33mconsole\x1b[0m\x1b[31m =\x1b[0m \x1b[1m<\x1b[0m\x1b[1;95mconsole\x1b[0m\x1b[39m \x1b[0m\x1b[33mwidth\x1b[0m\x1b[39m=\x1b[0m\x1b[1;36m80\x1b[0m\x1b[39m ColorSystem.TRUECOLOR\x1b[0m\x1b[1m>\x1b[0m \x1b[34m│\x1b[0m \n \x1b[34m╰────────────────────────────────────────────────────╯\x1b[0m \n" + "\x1b[2;36m[TIME]\x1b[0m\x1b[2;36m \x1b[0m \x1b]8;id=0;foo\x1b\\\x1b[2msource.py\x1b[0m\x1b]8;;\x1b\\\x1b[2m:\x1b[0m\x1b]8;id=0;foo\x1b\\\x1b[2m32\x1b[0m\x1b]8;;\x1b\\\n\x1b[2;36m \x1b[0m\x1b[2;36m \x1b[0mHello from \x1b[1m<\x1b[0m\x1b[1;95mconsole\x1b[0m\x1b[39m \x1b[0m\x1b[33mwidth\x1b[0m\x1b[39m=\x1b[0m\x1b[1;36m80\x1b[0m\x1b[39m ColorSystem.TRUECOLOR\x1b[0m\x1b[1m>\x1b[0m ! \x1b]8;id=0;foo\x1b\\\x1b[2msource.py\x1b[0m\x1b]8;;\x1b\\\x1b[2m:\x1b[0m\x1b]8;id=0;foo\x1b\\\x1b[2m33\x1b[0m\x1b]8;;\x1b\\\n\x1b[2;36m \x1b[0m\x1b[2;36m \x1b[0m\x1b[1m[\x1b[0m\x1b[1;36m1\x1b[0m, \x1b[1;36m2\x1b[0m, \x1b[1;36m3\x1b[0m\x1b[1m]\x1b[0m \x1b]8;id=0;foo\x1b\\\x1b[2msource.py\x1b[0m\x1b]8;;\x1b\\\x1b[2m:\x1b[0m\x1b]8;id=0;foo\x1b\\\x1b[2m34\x1b[0m\x1b]8;;\x1b\\\n\x1b[2;36m \x1b[0m\x1b[34m╭─\x1b[0m\x1b[34m───────────────────── \x1b[0m\x1b[3;34mlocals\x1b[0m\x1b[34m ─────────────────────\x1b[0m\x1b[34m─╮\x1b[0m \x1b[2m \x1b[0m\n\x1b[2;36m \x1b[0m\x1b[34m│\x1b[0m \x1b[3;33mconsole\x1b[0m\x1b[31m =\x1b[0m \x1b[1m<\x1b[0m\x1b[1;95mconsole\x1b[0m\x1b[39m \x1b[0m\x1b[33mwidth\x1b[0m\x1b[39m=\x1b[0m\x1b[1;36m80\x1b[0m\x1b[39m ColorSystem.TRUECOLOR\x1b[0m\x1b[1m>\x1b[0m \x1b[34m│\x1b[0m \x1b[2m \x1b[0m\n\x1b[2;36m \x1b[0m\x1b[34m╰────────────────────────────────────────────────────╯\x1b[0m \x1b[2m \x1b[0m\n" ) rendered = render_log() print(repr(rendered)) diff --git a/tests/test_logging.py b/tests/test_logging.py index 59d2ecb25f..ce3ac25af9 100644 --- a/tests/test_logging.py +++ b/tests/test_logging.py @@ -1,6 +1,8 @@ import io import os import logging +from typing import Optional + import pytest from rich.console import Console @@ -89,6 +91,77 @@ def test_exception_with_extra_lines(): assert "division by zero" in render +def test_stderr_and_stdout_are_none(monkeypatch): + # This test is specifically to handle cases when using pythonw on + # windows and stderr and stdout are set to None. + # See https://bugs.python.org/issue13807 + + monkeypatch.setattr("sys.stdout", None) + monkeypatch.setattr("sys.stderr", None) + + console = Console(_environ={}) + target_handler = RichHandler(console=console) + actual_record: Optional[logging.LogRecord] = None + + def mock_handle_error(record): + nonlocal actual_record + actual_record = record + + target_handler.handleError = mock_handle_error + log.addHandler(target_handler) + + try: + 1 / 0 + except ZeroDivisionError: + log.exception("message") + + finally: + log.removeHandler(target_handler) + + assert actual_record is not None + assert "message" in actual_record.msg + + +def test_markup_and_highlight(): + console = Console( + file=io.StringIO(), + force_terminal=True, + width=140, + color_system="truecolor", + _environ={}, + ) + handler = RichHandler(console=console) + + # Check defaults are as expected + assert handler.highlighter + assert not handler.markup + + formatter = logging.Formatter("FORMATTER %(message)s %(asctime)s") + handler.setFormatter(formatter) + log.addHandler(handler) + + log_message = "foo 3.141 127.0.0.1 [red]alert[/red]" + + log.error(log_message) + render_fancy = handler.console.file.getvalue() + assert "FORMATTER" in render_fancy + assert log_message not in render_fancy + assert "red" in render_fancy + + handler.console.file = io.StringIO() + log.error(log_message, extra={"markup": True}) + render_markup = handler.console.file.getvalue() + assert "FORMATTER" in render_markup + assert log_message not in render_markup + assert "red" not in render_markup + + handler.console.file = io.StringIO() + log.error(log_message, extra={"highlighter": None}) + render_plain = handler.console.file.getvalue() + assert "FORMATTER" in render_plain + assert log_message in render_plain + + if __name__ == "__main__": render = make_log() print(render) diff --git a/tests/test_lrucache.py b/tests/test_lrucache.py index 9a1d7d10b5..3cb1e29816 100644 --- a/tests/test_lrucache.py +++ b/tests/test_lrucache.py @@ -1,6 +1,5 @@ from __future__ import unicode_literals -import unittest from rich._lru_cache import LRUCache diff --git a/tests/test_markup.py b/tests/test_markup.py index 24b0c4417b..765b832683 100644 --- a/tests/test_markup.py +++ b/tests/test_markup.py @@ -1,7 +1,8 @@ import pytest from rich.console import Console -from rich.markup import escape, MarkupError, _parse, render, Tag, RE_TAGS +from rich.errors import MarkupError +from rich.markup import RE_TAGS, Tag, _parse, escape, render from rich.text import Span @@ -21,6 +22,9 @@ def test_re_match(): assert RE_TAGS.match("[color(1)]") assert RE_TAGS.match("[#ff00ff]") assert RE_TAGS.match("[/]") + assert RE_TAGS.match("[@]") + assert RE_TAGS.match("[@foo]") + assert RE_TAGS.match("[@foo=bar]") def test_escape(): @@ -32,6 +36,13 @@ def test_escape(): assert escape("[5]") == "[5]" assert escape("\\[5]") == "\\[5]" + # Test @ escape + assert escape("[@foo]") == "\\[@foo]" + assert escape("[@]") == "\\[@]" + + # https://github.com/Textualize/rich/issues/2187 + assert escape("[nil, [nil]]") == r"[nil, \[nil]]" + def test_render_escape(): console = Console(width=80, color_system=None) @@ -132,6 +143,11 @@ def test_markup_error(): assert render("[foo]hello[/bar]") +def test_markup_escape(): + result = str(render("[dim white]\[url=[/]")) + assert result == "[url=" + + def test_escape_escape(): # Escaped escapes (i.e. double backslash)should be treated as literal result = render(r"\\[bold]FOO") @@ -158,7 +174,6 @@ def test_escape_escape(): def test_events(): - result = render("[@click]Hello[/@click] [@click='view.toggle', 'left']World[/]") assert str(result) == "Hello World" diff --git a/tests/test_panel.py b/tests/test_panel.py index 877715fa9f..040288cfef 100644 --- a/tests/test_panel.py +++ b/tests/test_panel.py @@ -1,10 +1,12 @@ import io -from rich.console import Console -from rich.measure import Measurement -from rich.panel import Panel import pytest +from rich.console import Console +from rich.panel import Panel +from rich.segment import Segment +from rich.style import Style + tests = [ Panel("Hello, World", padding=0), Panel("Hello, World", expand=False, padding=0), @@ -53,6 +55,49 @@ def test_fixed_width(): assert max_width == 20 +def test_render_size(): + console = Console(width=63, height=46, legacy_windows=False) + options = console.options.update_dimensions(80, 4) + lines = console.render_lines(Panel("foo", title="Hello"), options=options) + print(repr(lines)) + expected = [ + [ + Segment("╭─", Style()), + Segment( + "────────────────────────────────── Hello ───────────────────────────────────" + ), + Segment("─╮", Style()), + ], + [ + Segment("│", Style()), + Segment(" ", Style()), + Segment("foo"), + Segment( + " " + ), + Segment(" ", Style()), + Segment("│", Style()), + ], + [ + Segment("│", Style()), + Segment(" ", Style()), + Segment( + " ", + Style(), + ), + Segment(" ", Style()), + Segment("│", Style()), + ], + [ + Segment( + "╰──────────────────────────────────────────────────────────────────────────────╯", + Style(), + ) + ], + ] + assert lines == expected + + if __name__ == "__main__": expected = [] for panel in tests: diff --git a/tests/test_pretty.py b/tests/test_pretty.py index 938f216bb0..d45b0c22db 100644 --- a/tests/test_pretty.py +++ b/tests/test_pretty.py @@ -1,22 +1,41 @@ -from array import array -from collections import defaultdict, UserDict, UserList -from dataclasses import dataclass, field +import collections import io import sys -from typing import List +from array import array +from collections import UserDict, defaultdict +from dataclasses import dataclass, field +from typing import List, NamedTuple import attr import pytest from rich.console import Console -from rich.pretty import install, Pretty, pprint, pretty_repr, Node - +from rich.measure import Measurement +from rich.pretty import Node, Pretty, _ipy_display_hook, install, pprint, pretty_repr +from rich.text import Text skip_py36 = pytest.mark.skipif( sys.version_info.minor == 6 and sys.version_info.major == 3, reason="rendered differently on py3.6", ) +skip_py37 = pytest.mark.skipif( + sys.version_info.minor == 7 and sys.version_info.major == 3, + reason="rendered differently on py3.7", +) +skip_py38 = pytest.mark.skipif( + sys.version_info.minor == 8 and sys.version_info.major == 3, + reason="rendered differently on py3.8", +) +skip_py39 = pytest.mark.skipif( + sys.version_info.minor == 9 and sys.version_info.major == 3, + reason="rendered differently on py3.9", +) +skip_py310 = pytest.mark.skipif( + sys.version_info.minor == 10 and sys.version_info.major == 3, + reason="rendered differently on py3.10", +) + def test_install(): console = Console(file=io.StringIO()) @@ -27,6 +46,85 @@ def test_install(): assert sys.displayhook is not dh +def test_ipy_display_hook__repr_html(): + console = Console(file=io.StringIO(), force_jupyter=True) + + class Thing: + def _repr_html_(self): + return "hello" + + console.begin_capture() + _ipy_display_hook(Thing(), console=console) + + # Rendering delegated to notebook because _repr_html_ method exists + assert console.end_capture() == "" + + +def test_ipy_display_hook__multiple_special_reprs(): + """ + The case where there are multiple IPython special _repr_*_ + methods on the object, and one of them returns None but another + one does not. + """ + console = Console(file=io.StringIO(), force_jupyter=True) + + class Thing: + def _repr_latex_(self): + return None + + def _repr_html_(self): + return "hello" + + console.begin_capture() + _ipy_display_hook(Thing(), console=console) + + assert console.end_capture() == "" + + +def test_ipy_display_hook__no_special_repr_methods(): + console = Console(file=io.StringIO(), force_jupyter=True) + + class Thing: + def __repr__(self) -> str: + return "hello" + + console.begin_capture() + _ipy_display_hook(Thing(), console=console) + + # No IPython special repr methods, so printed by Rich + assert console.end_capture() == "hello\n" + + +def test_ipy_display_hook__special_repr_raises_exception(): + """ + When an IPython special repr method raises an exception, + we treat it as if it doesn't exist and look for the next. + """ + console = Console(file=io.StringIO(), force_jupyter=True) + + class Thing: + def _repr_markdown_(self): + raise Exception() + + def _repr_latex_(self): + return None + + def _repr_html_(self): + return "hello" + + console.begin_capture() + _ipy_display_hook(Thing(), console=console) + + assert console.end_capture() == "" + + +def test_ipy_display_hook__console_renderables_on_newline(): + console = Console(file=io.StringIO(), force_jupyter=True) + console.begin_capture() + _ipy_display_hook(Text("hello"), console=console) + assert console.end_capture() == "\nhello\n" + + def test_pretty(): test = { "foo": [1, 2, 3, (4, 5, {6}, 7, 8, {9}), {}], @@ -38,7 +136,6 @@ def test_pretty(): result = pretty_repr(test, max_width=80) print(result) - # print(repr(result)) expected = "{\n 'foo': [1, 2, 3, (4, 5, {6}, 7, 8, {9}), {}],\n 'bar': {\n 'egg': 'baz',\n 'words': [\n 'Hello World',\n 'Hello World',\n 'Hello World',\n 'Hello World',\n 'Hello World',\n 'Hello World',\n 'Hello World',\n 'Hello World',\n 'Hello World',\n 'Hello World'\n ]\n },\n False: 'foo',\n True: '',\n 'text': ('Hello World', 'foo bar baz egg')\n}" print(expected) assert result == expected @@ -50,6 +147,7 @@ class ExampleDataclass: bar: str ignore: int = field(repr=False) baz: List[str] = field(default_factory=list) + last: int = field(default=1, repr=False) def test_pretty_dataclass(): @@ -72,6 +170,74 @@ def test_pretty_dataclass(): assert result == "ExampleDataclass(foo=1000, bar=..., baz=['foo', 'bar', 'baz'])" +class StockKeepingUnit(NamedTuple): + name: str + description: str + price: float + category: str + reviews: List[str] + + +def test_pretty_namedtuple(): + console = Console(color_system=None) + console.begin_capture() + + example_namedtuple = StockKeepingUnit( + "Sparkling British Spring Water", + "Carbonated spring water", + 0.9, + "water", + ["its amazing!", "its terrible!"], + ) + + result = pretty_repr(example_namedtuple) + + print(result) + assert ( + result + == """StockKeepingUnit( + name='Sparkling British Spring Water', + description='Carbonated spring water', + price=0.9, + category='water', + reviews=['its amazing!', 'its terrible!'] +)""" + ) + + +def test_pretty_namedtuple_length_one_no_trailing_comma(): + instance = collections.namedtuple("Thing", ["name"])(name="Bob") + assert pretty_repr(instance) == "Thing(name='Bob')" + + +def test_pretty_namedtuple_empty(): + instance = collections.namedtuple("Thing", [])() + assert pretty_repr(instance) == "Thing()" + + +def test_pretty_namedtuple_custom_repr(): + class Thing(NamedTuple): + def __repr__(self): + return "XX" + + assert pretty_repr(Thing()) == "XX" + + +def test_pretty_namedtuple_fields_invalid_type(): + class LooksLikeANamedTupleButIsnt(tuple): + _fields = "blah" + + instance = LooksLikeANamedTupleButIsnt() + result = pretty_repr(instance) + assert result == "()" # Treated as tuple + + +def test_pretty_namedtuple_max_depth(): + instance = {"unit": StockKeepingUnit("a", "b", 1.0, "c", ["d", "e"])} + result = pretty_repr(instance, max_depth=1) + assert result == "{'unit': ...}" + + def test_small_width(): test = ["Hello world! 12345"] result = pretty_repr(test, max_width=10) @@ -79,6 +245,7 @@ def test_small_width(): assert result == expected +@skip_py36 def test_broken_repr(): class BrokenRepr: def __repr__(self): @@ -90,6 +257,20 @@ def __repr__(self): assert result == expected +@skip_py36 +def test_broken_getattr(): + class BrokenAttr: + def __getattr__(self, name): + 1 / 0 + + def __repr__(self): + return "BrokenAttr()" + + test = BrokenAttr() + result = pretty_repr(test) + assert result == "BrokenAttr()" + + def test_recursive(): test = [] test.append(test) @@ -98,6 +279,79 @@ def test_recursive(): assert result == expected +def test_max_depth(): + d = {} + d["foo"] = {"fob": {"a": [1, 2, 3], "b": {"z": "x", "y": ["a", "b", "c"]}}} + + assert pretty_repr(d, max_depth=0) == "..." + assert pretty_repr(d, max_depth=1) == "{'foo': ...}" + assert pretty_repr(d, max_depth=2) == "{'foo': {'fob': ...}}" + assert pretty_repr(d, max_depth=3) == "{'foo': {'fob': {'a': ..., 'b': ...}}}" + assert ( + pretty_repr(d, max_width=100, max_depth=4) + == "{'foo': {'fob': {'a': [1, 2, 3], 'b': {'z': 'x', 'y': ...}}}}" + ) + assert ( + pretty_repr(d, max_width=100, max_depth=5) + == "{'foo': {'fob': {'a': [1, 2, 3], 'b': {'z': 'x', 'y': ['a', 'b', 'c']}}}}" + ) + assert ( + pretty_repr(d, max_width=100, max_depth=None) + == "{'foo': {'fob': {'a': [1, 2, 3], 'b': {'z': 'x', 'y': ['a', 'b', 'c']}}}}" + ) + + +def test_max_depth_rich_repr(): + class Foo: + def __init__(self, foo): + self.foo = foo + + def __rich_repr__(self): + yield "foo", self.foo + + class Bar: + def __init__(self, bar): + self.bar = bar + + def __rich_repr__(self): + yield "bar", self.bar + + assert ( + pretty_repr(Foo(foo=Bar(bar=Foo(foo=[]))), max_depth=2) + == "Foo(foo=Bar(bar=...))" + ) + + +def test_max_depth_attrs(): + @attr.define + class Foo: + foo = attr.field() + + @attr.define + class Bar: + bar = attr.field() + + assert ( + pretty_repr(Foo(foo=Bar(bar=Foo(foo=[]))), max_depth=2) + == "Foo(foo=Bar(bar=...))" + ) + + +def test_max_depth_dataclass(): + @dataclass + class Foo: + foo: object + + @dataclass + class Bar: + bar: object + + assert ( + pretty_repr(Foo(foo=Bar(bar=Foo(foo=[]))), max_depth=2) + == "Foo(foo=Bar(bar=...))" + ) + + def test_defaultdict(): test_dict = defaultdict(int, {"foo": 2}) result = pretty_repr(test_dict) @@ -221,6 +475,7 @@ class Nada: @skip_py36 +@skip_py310 def test_attrs_broken(): @attr.define class Foo: @@ -234,6 +489,23 @@ class Foo: assert result == expected +@skip_py36 +@skip_py37 +@skip_py38 +@skip_py39 +def test_attrs_broken_310(): + @attr.define + class Foo: + bar: int + + foo = Foo(1) + del foo.bar + result = pretty_repr(foo) + print(repr(result)) + expected = "Foo(bar=AttributeError(\"'Foo' object has no attribute 'bar'\"))" + assert result == expected + + def test_user_dict(): class D1(UserDict): pass @@ -262,3 +534,13 @@ def __getattr__(self, attr): foo = Foo() result = pretty_repr(foo) assert "Foo" in result + + +def test_measure_pretty(): + """Test measure respects expand_all""" + # https://github.com/Textualize/rich/issues/1998 + console = Console() + pretty = Pretty(["alpha", "beta", "delta", "gamma"], expand_all=True) + + measurement = console.measure(pretty) + assert measurement == Measurement(12, 12) diff --git a/tests/test_progress.py b/tests/test_progress.py index 303c2e0871..8a90ad80fd 100644 --- a/tests/test_progress.py +++ b/tests/test_progress.py @@ -1,30 +1,35 @@ # encoding=utf-8 import io -from time import sleep +import os +import tempfile +from types import SimpleNamespace import pytest -from rich.progress_bar import ProgressBar +import rich.progress from rich.console import Console from rich.highlighter import NullHighlighter from rich.progress import ( BarColumn, - FileSizeColumn, - TotalFileSizeColumn, DownloadColumn, - TransferSpeedColumn, + FileSizeColumn, + MofNCompleteColumn, + Progress, RenderableColumn, SpinnerColumn, - Progress, Task, + TaskID, + TaskProgressColumn, TextColumn, TimeElapsedColumn, TimeRemainingColumn, - track, + TotalFileSizeColumn, + TransferSpeedColumn, _TrackThread, - TaskID, + track, ) +from rich.progress_bar import ProgressBar from rich.text import Text @@ -68,6 +73,13 @@ def test_text_column(): assert text == Text("[b]bar") +def test_time_elapsed_column(): + column = TimeElapsedColumn() + task = Task(1, "test", 100, 20, _get_time=lambda: 1.0) + text = column.render(task) + assert str(text) == "-:--:--" + + def test_time_remaining_column(): class FakeTask(Task): time_remaining = 60 @@ -81,6 +93,33 @@ class FakeTask(Task): assert str(text) == "0:01:00" +@pytest.mark.parametrize( + "task_time, formatted", + [ + (None, "--:--"), + (0, "00:00"), + (59, "00:59"), + (71, "01:11"), + (4210, "1:10:10"), + ], +) +def test_compact_time_remaining_column(task_time, formatted): + task = SimpleNamespace(finished=False, time_remaining=task_time, total=100) + column = TimeRemainingColumn(compact=True) + + assert str(column.render(task)) == formatted + + +def test_time_remaining_column_elapsed_when_finished(): + task_time = 71 + formatted = "0:01:11" + + task = SimpleNamespace(finished=True, finished_time=task_time, total=100) + column = TimeRemainingColumn(elapsed_when_finished=True) + + assert str(column.render(task)) == formatted + + def test_renderable_column(): column = RenderableColumn("foo") task = Task(1, "test", 100, 20, _get_time=lambda: 1.0) @@ -115,7 +154,7 @@ def test_download_progress_uses_decimal_units() -> None: column = DownloadColumn() test_task = Task(1, "test", 1000, 500, _get_time=lambda: 1.0) rendered_progress = str(column.render(test_task)) - expected = "0.5/1.0 KB" + expected = "0.5/1.0 kB" assert rendered_progress == expected @@ -208,6 +247,31 @@ def test_expand_bar() -> None: assert render_result == expected +def test_progress_with_none_total_renders_a_pulsing_bar() -> None: + console = Console( + file=io.StringIO(), + force_terminal=True, + width=10, + color_system="truecolor", + legacy_windows=False, + _environ={}, + ) + progress = Progress( + BarColumn(bar_width=None), + console=console, + get_time=lambda: 1.0, + auto_refresh=False, + ) + progress.add_task("foo", total=None) + with progress: + pass + expected = "\x1b[?25l\x1b[38;2;153;48;86m━\x1b[0m\x1b[38;2;183;44;94m━\x1b[0m\x1b[38;2;209;42;102m━\x1b[0m\x1b[38;2;230;39;108m━\x1b[0m\x1b[38;2;244;38;112m━\x1b[0m\x1b[38;2;249;38;114m━\x1b[0m\x1b[38;2;244;38;112m━\x1b[0m\x1b[38;2;230;39;108m━\x1b[0m\x1b[38;2;209;42;102m━\x1b[0m\x1b[38;2;183;44;94m━\x1b[0m\r\x1b[2K\x1b[38;2;153;48;86m━\x1b[0m\x1b[38;2;183;44;94m━\x1b[0m\x1b[38;2;209;42;102m━\x1b[0m\x1b[38;2;230;39;108m━\x1b[0m\x1b[38;2;244;38;112m━\x1b[0m\x1b[38;2;249;38;114m━\x1b[0m\x1b[38;2;244;38;112m━\x1b[0m\x1b[38;2;230;39;108m━\x1b[0m\x1b[38;2;209;42;102m━\x1b[0m\x1b[38;2;183;44;94m━\x1b[0m\n\x1b[?25h" + render_result = console.file.getvalue() + print("RESULT\n", repr(render_result)) + print("EXPECTED\n", repr(expected)) + assert render_result == expected + + def test_render() -> None: expected = "\x1b[?25lfoo \x1b[38;5;237m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\x1b[0m \x1b[35m 0%\x1b[0m \x1b[36m-:--:--\x1b[0m\nbar \x1b[38;2;249;38;114m━━━━━━━━━━━━━━━━━━━━━\x1b[0m\x1b[38;5;237m╺\x1b[0m\x1b[38;5;237m━━━━━━━━━━━━━━━━━━\x1b[0m \x1b[35m 53%\x1b[0m \x1b[36m-:--:--\x1b[0m\nfoo2 \x1b[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\x1b[0m \x1b[35m100%\x1b[0m \x1b[36m0:00:00\x1b[0m\r\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2Kfoo \x1b[38;5;237m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\x1b[0m \x1b[35m 0%\x1b[0m \x1b[36m-:--:--\x1b[0m\nbar \x1b[38;2;249;38;114m━━━━━━━━━━━━━━━━━━━━━\x1b[0m\x1b[38;5;237m╺\x1b[0m\x1b[38;5;237m━━━━━━━━━━━━━━━━━━\x1b[0m \x1b[35m 53%\x1b[0m \x1b[36m-:--:--\x1b[0m\nfoo2 \x1b[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\x1b[0m \x1b[35m100%\x1b[0m \x1b[36m0:00:00\x1b[0m\n\x1b[?25h" render_result = render_progress() @@ -244,10 +308,6 @@ def test_track() -> None: assert result == expected - with pytest.raises(ValueError): - for n in track(5): - pass - def test_progress_track() -> None: console = Console( @@ -277,10 +337,6 @@ def test_progress_track() -> None: assert result == expected - with pytest.raises(ValueError): - for n in progress.track(5): - pass - def test_columns() -> None: @@ -304,6 +360,8 @@ def test_columns() -> None: TotalFileSizeColumn(), DownloadColumn(), TransferSpeedColumn(), + MofNCompleteColumn(), + MofNCompleteColumn(separator=" of "), transient=True, console=console, auto_refresh=False, @@ -323,10 +381,37 @@ def test_columns() -> None: result = replace_link_ids(console.file.getvalue()) print(repr(result)) - expected = "\x1b[?25ltest foo \x1b[38;5;237m━━━━━━━━━━━━━━━━━━━━━━━━━\x1b[0m \x1b[36m-:--:--\x1b[0m \x1b[33m0:00:07\x1b[0m \x1b[32m0 bytes\x1b[0m \x1b[32m10 bytes\x1b[0m \x1b[32m0/10 bytes\x1b[0m \x1b[31m?\x1b[0m\ntest bar \x1b[38;5;237m━━━━━━━━━━━━━━━━━━━━━━━━━\x1b[0m \x1b[36m-:--:--\x1b[0m \x1b[33m0:00:16\x1b[0m \x1b[32m0 bytes\x1b[0m \x1b[32m7 bytes \x1b[0m \x1b[32m0/7 bytes \x1b[0m \x1b[31m?\x1b[0m\r\x1b[2K\x1b[1A\x1b[2Kfoo\ntest foo \x1b[38;5;237m━━━━━━━━━━━━━━━━━━━━━━━━━\x1b[0m \x1b[36m-:--:--\x1b[0m \x1b[33m0:00:07\x1b[0m \x1b[32m0 bytes\x1b[0m \x1b[32m10 bytes\x1b[0m \x1b[32m0/10 bytes\x1b[0m \x1b[31m?\x1b[0m\ntest bar \x1b[38;5;237m━━━━━━━━━━━━━━━━━━━━━━━━━\x1b[0m \x1b[36m-:--:--\x1b[0m \x1b[33m0:00:16\x1b[0m \x1b[32m0 bytes\x1b[0m \x1b[32m7 bytes \x1b[0m \x1b[32m0/7 bytes \x1b[0m \x1b[31m?\x1b[0m\r\x1b[2K\x1b[1A\x1b[2K\x1b[2;36m[TIME]\x1b[0m\x1b[2;36m \x1b[0mhello \ntest foo \x1b[38;5;237m━━━━━━━━━━━━━━━━━━━━━━━━━\x1b[0m \x1b[36m-:--:--\x1b[0m \x1b[33m0:00:07\x1b[0m \x1b[32m0 bytes\x1b[0m \x1b[32m10 bytes\x1b[0m \x1b[32m0/10 bytes\x1b[0m \x1b[31m?\x1b[0m\ntest bar \x1b[38;5;237m━━━━━━━━━━━━━━━━━━━━━━━━━\x1b[0m \x1b[36m-:--:--\x1b[0m \x1b[33m0:00:16\x1b[0m \x1b[32m0 bytes\x1b[0m \x1b[32m7 bytes \x1b[0m \x1b[32m0/7 bytes \x1b[0m \x1b[31m?\x1b[0m\r\x1b[2K\x1b[1A\x1b[2Kworld\ntest foo \x1b[38;5;237m━━━━━━━━━━━━━━━━━━━━━━━━━\x1b[0m \x1b[36m-:--:--\x1b[0m \x1b[33m0:00:07\x1b[0m \x1b[32m0 bytes\x1b[0m \x1b[32m10 bytes\x1b[0m \x1b[32m0/10 bytes\x1b[0m \x1b[31m?\x1b[0m\ntest bar \x1b[38;5;237m━━━━━━━━━━━━━━━━━━━━━━━━━\x1b[0m \x1b[36m-:--:--\x1b[0m \x1b[33m0:00:16\x1b[0m \x1b[32m0 bytes\x1b[0m \x1b[32m7 bytes \x1b[0m \x1b[32m0/7 bytes \x1b[0m \x1b[31m?\x1b[0m\r\x1b[2K\x1b[1A\x1b[2Ktest foo \x1b[38;2;114;156;31m━━━━━━━━━━━━━━━\x1b[0m \x1b[36m0:00:00\x1b[0m \x1b[33m0:00:30\x1b[0m \x1b[32m12 bytes\x1b[0m \x1b[32m10 bytes\x1b[0m \x1b[32m12/10 bytes\x1b[0m \x1b[31m1 byte/s \x1b[0m\ntest bar \x1b[38;2;114;156;31m━━━━━━━━━━━━━━━\x1b[0m \x1b[36m0:00:00\x1b[0m \x1b[33m0:00:25\x1b[0m \x1b[32m16 bytes\x1b[0m \x1b[32m7 bytes \x1b[0m \x1b[32m16/7 bytes \x1b[0m \x1b[31m2 bytes/s\x1b[0m\r\x1b[2K\x1b[1A\x1b[2Ktest foo \x1b[38;2;114;156;31m━━━━━━━━━━━━━━━\x1b[0m \x1b[36m0:00:00\x1b[0m \x1b[33m0:00:30\x1b[0m \x1b[32m12 bytes\x1b[0m \x1b[32m10 bytes\x1b[0m \x1b[32m12/10 bytes\x1b[0m \x1b[31m1 byte/s \x1b[0m\ntest bar \x1b[38;2;114;156;31m━━━━━━━━━━━━━━━\x1b[0m \x1b[36m0:00:00\x1b[0m \x1b[33m0:00:25\x1b[0m \x1b[32m16 bytes\x1b[0m \x1b[32m7 bytes \x1b[0m \x1b[32m16/7 bytes \x1b[0m \x1b[31m2 bytes/s\x1b[0m\n\x1b[?25h\r\x1b[1A\x1b[2K\x1b[1A\x1b[2K" + expected = "\x1b[?25ltest foo \x1b[38;5;237m━━━━━━━━━━\x1b[0m \x1b[36m-:--:--\x1b[0m \x1b[33m0:00:07\x1b[0m \x1b[32m0 bytes\x1b[0m \x1b[32m10 bytes\x1b[0m \x1b[32m0/10 bytes\x1b[0m \x1b[31m?\x1b[0m \x1b[32m 0/10\x1b[0m \x1b[32m 0 of 10\x1b[0m\ntest bar \x1b[38;5;237m━━━━━━━━━━\x1b[0m \x1b[36m-:--:--\x1b[0m \x1b[33m0:00:18\x1b[0m \x1b[32m0 bytes\x1b[0m \x1b[32m7 bytes \x1b[0m \x1b[32m0/7 bytes \x1b[0m \x1b[31m?\x1b[0m \x1b[32m0/7 \x1b[0m \x1b[32m0 of 7 \x1b[0m\r\x1b[2K\x1b[1A\x1b[2Kfoo\ntest foo \x1b[38;5;237m━━━━━━━━━━\x1b[0m \x1b[36m-:--:--\x1b[0m \x1b[33m0:00:07\x1b[0m \x1b[32m0 bytes\x1b[0m \x1b[32m10 bytes\x1b[0m \x1b[32m0/10 bytes\x1b[0m \x1b[31m?\x1b[0m \x1b[32m 0/10\x1b[0m \x1b[32m 0 of 10\x1b[0m\ntest bar \x1b[38;5;237m━━━━━━━━━━\x1b[0m \x1b[36m-:--:--\x1b[0m \x1b[33m0:00:18\x1b[0m \x1b[32m0 bytes\x1b[0m \x1b[32m7 bytes \x1b[0m \x1b[32m0/7 bytes \x1b[0m \x1b[31m?\x1b[0m \x1b[32m0/7 \x1b[0m \x1b[32m0 of 7 \x1b[0m\r\x1b[2K\x1b[1A\x1b[2K\x1b[2;36m[TIME]\x1b[0m\x1b[2;36m \x1b[0mhello \ntest foo \x1b[38;5;237m━━━━━━━━━━\x1b[0m \x1b[36m-:--:--\x1b[0m \x1b[33m0:00:07\x1b[0m \x1b[32m0 bytes\x1b[0m \x1b[32m10 bytes\x1b[0m \x1b[32m0/10 bytes\x1b[0m \x1b[31m?\x1b[0m \x1b[32m 0/10\x1b[0m \x1b[32m 0 of 10\x1b[0m\ntest bar \x1b[38;5;237m━━━━━━━━━━\x1b[0m \x1b[36m-:--:--\x1b[0m \x1b[33m0:00:18\x1b[0m \x1b[32m0 bytes\x1b[0m \x1b[32m7 bytes \x1b[0m \x1b[32m0/7 bytes \x1b[0m \x1b[31m?\x1b[0m \x1b[32m0/7 \x1b[0m \x1b[32m0 of 7 \x1b[0m\r\x1b[2K\x1b[1A\x1b[2Kworld\ntest foo \x1b[38;5;237m━━━━━━━━━━\x1b[0m \x1b[36m-:--:--\x1b[0m \x1b[33m0:00:07\x1b[0m \x1b[32m0 bytes\x1b[0m \x1b[32m10 bytes\x1b[0m \x1b[32m0/10 bytes\x1b[0m \x1b[31m?\x1b[0m \x1b[32m 0/10\x1b[0m \x1b[32m 0 of 10\x1b[0m\ntest bar \x1b[38;5;237m━━━━━━━━━━\x1b[0m \x1b[36m-:--:--\x1b[0m \x1b[33m0:00:18\x1b[0m \x1b[32m0 bytes\x1b[0m \x1b[32m7 bytes \x1b[0m \x1b[32m0/7 bytes \x1b[0m \x1b[31m?\x1b[0m \x1b[32m0/7 \x1b[0m \x1b[32m0 of 7 \x1b[0m\r\x1b[2K\x1b[1A\x1b[2Ktest foo \x1b[38;2;114;156;31m━━━━━━━\x1b[0m \x1b[36m0:00:00\x1b[0m \x1b[33m0:00:34\x1b[0m \x1b[32m12 \x1b[0m \x1b[32m10 \x1b[0m \x1b[32m12/10 \x1b[0m \x1b[31m1 \x1b[0m \x1b[32m12/10\x1b[0m \x1b[32m12 of 10\x1b[0m\n \x1b[32mbytes \x1b[0m \x1b[32mbytes \x1b[0m \x1b[32mbytes \x1b[0m \x1b[31mbyte/s \x1b[0m \ntest bar \x1b[38;2;114;156;31m━━━━━━━\x1b[0m \x1b[36m0:00:00\x1b[0m \x1b[33m0:00:29\x1b[0m \x1b[32m16 \x1b[0m \x1b[32m7 bytes\x1b[0m \x1b[32m16/7 \x1b[0m \x1b[31m2 \x1b[0m \x1b[32m16/7 \x1b[0m \x1b[32m16 of 7 \x1b[0m\n \x1b[32mbytes \x1b[0m \x1b[32mbytes \x1b[0m \x1b[31mbytes/s\x1b[0m \r\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2Ktest foo \x1b[38;2;114;156;31m━━━━━━━\x1b[0m \x1b[36m0:00:00\x1b[0m \x1b[33m0:00:34\x1b[0m \x1b[32m12 \x1b[0m \x1b[32m10 \x1b[0m \x1b[32m12/10 \x1b[0m \x1b[31m1 \x1b[0m \x1b[32m12/10\x1b[0m \x1b[32m12 of 10\x1b[0m\n \x1b[32mbytes \x1b[0m \x1b[32mbytes \x1b[0m \x1b[32mbytes \x1b[0m \x1b[31mbyte/s \x1b[0m \ntest bar \x1b[38;2;114;156;31m━━━━━━━\x1b[0m \x1b[36m0:00:00\x1b[0m \x1b[33m0:00:29\x1b[0m \x1b[32m16 \x1b[0m \x1b[32m7 bytes\x1b[0m \x1b[32m16/7 \x1b[0m \x1b[31m2 \x1b[0m \x1b[32m16/7 \x1b[0m \x1b[32m16 of 7 \x1b[0m\n \x1b[32mbytes \x1b[0m \x1b[32mbytes \x1b[0m \x1b[31mbytes/s\x1b[0m \n\x1b[?25h\r\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K" + assert result == expected +def test_using_default_columns() -> None: + # can only check types, as the instances do not '==' each other + expected_default_types = [ + TextColumn, + BarColumn, + TaskProgressColumn, + TimeRemainingColumn, + ] + + progress = Progress() + assert [type(c) for c in progress.columns] == expected_default_types + + progress = Progress( + SpinnerColumn(), + *Progress.get_default_columns(), + "Elapsed:", + TimeElapsedColumn(), + ) + assert [type(c) for c in progress.columns] == [ + SpinnerColumn, + *expected_default_types, + str, + TimeElapsedColumn, + ] + + def test_task_create() -> None: task = Task(TaskID(1), "foo", 100, 0, _get_time=lambda: 1) assert task.elapsed is None @@ -484,6 +569,98 @@ def test_no_output_if_progress_is_disabled() -> None: assert result == expected +def test_open() -> None: + console = Console( + file=io.StringIO(), + force_terminal=True, + width=60, + color_system="truecolor", + legacy_windows=False, + _environ={}, + ) + progress = Progress( + console=console, + ) + + fd, filename = tempfile.mkstemp() + with os.fdopen(fd, "wb") as f: + f.write(b"Hello, World!") + try: + with rich.progress.open(filename) as f: + assert f.read() == "Hello, World!" + assert f.closed + finally: + os.remove(filename) + + +def test_open_text_mode() -> None: + fd, filename = tempfile.mkstemp() + with os.fdopen(fd, "wb") as f: + f.write(b"Hello, World!") + try: + with rich.progress.open(filename, "r") as f: + assert f.read() == "Hello, World!" + assert f.closed + finally: + os.remove(filename) + + +def test_wrap_file() -> None: + fd, filename = tempfile.mkstemp() + with os.fdopen(fd, "wb") as f: + total = f.write(b"Hello, World!") + try: + with open(filename, "rb") as file: + with rich.progress.wrap_file(file, total=total) as f: + assert f.read() == b"Hello, World!" + assert f.closed + assert not f.handle.closed + assert not file.closed + assert file.closed + finally: + os.remove(filename) + + +def test_wrap_file_task_total() -> None: + console = Console( + file=io.StringIO(), + force_terminal=True, + width=60, + color_system="truecolor", + legacy_windows=False, + _environ={}, + ) + progress = Progress( + console=console, + ) + + fd, filename = tempfile.mkstemp() + with os.fdopen(fd, "wb") as f: + total = f.write(b"Hello, World!") + try: + with progress: + with open(filename, "rb") as file: + task_id = progress.add_task("Reading", total=total) + with progress.wrap_file(file, task_id=task_id) as f: + assert f.read() == b"Hello, World!" + finally: + os.remove(filename) + + +def test_task_progress_column_speed(): + speed_text = TaskProgressColumn.render_speed(None) + assert speed_text.plain == "" + + speed_text = TaskProgressColumn.render_speed(5) + assert speed_text.plain == "5.0 it/s" + + speed_text = TaskProgressColumn.render_speed(5000) + assert speed_text.plain == "5.0×10³ it/s" + + speed_text = TaskProgressColumn.render_speed(8888888) + assert speed_text.plain == "8.9×10⁶ it/s" + + if __name__ == "__main__": _render = render_progress() print(_render) diff --git a/tests/test_protocol.py b/tests/test_protocol.py index 310b994d3a..6337ef5df6 100644 --- a/tests/test_protocol.py +++ b/tests/test_protocol.py @@ -18,6 +18,21 @@ def test_rich_cast(): assert console.file.getvalue() == "Foo\n" +class Fake: + def __getattr__(self, name): + return 12 + + def __repr__(self) -> str: + return "Fake()" + + +def test_rich_cast_fake(): + fake = Fake() + console = Console(file=io.StringIO()) + console.print(fake) + assert console.file.getvalue() == "Fake()\n" + + def test_rich_cast_container(): foo = Foo() console = Console(file=io.StringIO(), legacy_windows=False) @@ -33,3 +48,37 @@ def test_abc(): assert not isinstance(foo, str) assert not isinstance("foo", RichRenderable) assert not isinstance([], RichRenderable) + + +def test_cast_deep(): + class B: + def __rich__(self) -> Foo: + return Foo() + + class A: + def __rich__(self) -> B: + return B() + + console = Console(file=io.StringIO()) + console.print(A()) + assert console.file.getvalue() == "Foo\n" + + +def test_cast_recursive(): + class B: + def __rich__(self) -> "A": + return A() + + def __repr__(self) -> str: + return "" + + class A: + def __rich__(self) -> B: + return B() + + def __repr__(self) -> str: + return "" + + console = Console(file=io.StringIO()) + console.print(A()) + assert console.file.getvalue() == "\n" diff --git a/tests/test_repr.py b/tests/test_repr.py index c4f8bd09aa..3c2f48a462 100644 --- a/tests/test_repr.py +++ b/tests/test_repr.py @@ -1,10 +1,22 @@ import pytest +import sys from typing import Optional from rich.console import Console import rich.repr +skip_py36 = pytest.mark.skipif( + sys.version_info.minor == 6 and sys.version_info.major == 3, + reason="rendered differently on py3.6", +) + +skip_py37 = pytest.mark.skipif( + sys.version_info.minor == 7 and sys.version_info.major == 3, + reason="rendered differently on py3.7", +) + + @rich.repr.auto class Foo: def __init__(self, foo: str, bar: Optional[int] = None, egg: int = 1): @@ -59,6 +71,24 @@ def test_rich_repr() -> None: assert (repr(Foo("hello", bar=3))) == "Foo('hello', 'hello', bar=3, egg=1)" +@skip_py36 +@skip_py37 +def test_rich_repr_positional_only() -> None: + _locals = locals().copy() + exec( + """\ +@rich.repr.auto +class PosOnly: + def __init__(self, foo, /): + self.foo = 1 + """, + globals(), + _locals, + ) + p = _locals["PosOnly"](1) + assert repr(p) == "PosOnly(1)" + + def test_rich_angular() -> None: assert (repr(Bar("hello"))) == "" assert (repr(Bar("hello", bar=3))) == "" diff --git a/tests/test_rich_print.py b/tests/test_rich_print.py index f6ea5110d8..a92b800022 100644 --- a/tests/test_rich_print.py +++ b/tests/test_rich_print.py @@ -1,4 +1,5 @@ import io +import json import rich from rich.console import Console @@ -38,6 +39,27 @@ def test_rich_print_json(): assert result == expected +def test_rich_print_json_round_trip(): + data = ["x" * 100, 2e128] + console = rich.get_console() + with console.capture() as capture: + rich.print_json(data=data, indent=4) + result = capture.get() + print(repr(result)) + result_data = json.loads(result) + assert result_data == data + + +def test_rich_print_json_no_truncation(): + console = rich.get_console() + with console.capture() as capture: + rich.print_json(f'["{"x" * 100}", {int(2e128)}]', indent=4) + result = capture.get() + print(repr(result)) + assert ("x" * 100) in result + assert str(int(2e128)) in result + + def test_rich_print_X(): console = rich.get_console() output = io.StringIO() diff --git a/tests/test_screen.py b/tests/test_screen.py index 7596c3a385..c571e037e0 100644 --- a/tests/test_screen.py +++ b/tests/test_screen.py @@ -3,7 +3,7 @@ def test_screen(): - console = Console(color_system=None, width=20, height=5) + console = Console(color_system=None, width=20, height=5, legacy_windows=False) with console.capture() as capture: console.print(Screen("foo\nbar\nbaz\nfoo\nbar\nbaz\foo")) result = capture.get() diff --git a/tests/test_segment.py b/tests/test_segment.py index c3cb222c35..9adf103299 100644 --- a/tests/test_segment.py +++ b/tests/test_segment.py @@ -1,9 +1,8 @@ -import sys +from io import StringIO import pytest -from rich.segment import ControlType -from rich.segment import Segment, Segments, SegmentLines +from rich.segment import ControlType, Segment, SegmentLines, Segments from rich.style import Style @@ -166,6 +165,34 @@ def test_divide(): ] +# https://github.com/willmcgugan/rich/issues/1755 +def test_divide_complex(): + MAP = ( + "[on orange4] [on green]XX[on orange4] \n" + " \n" + " \n" + " \n" + " [bright_red on black]Y[on orange4] \n" + "[on green]X[on orange4] [on green]X[on orange4] \n" + " [on green]X[on orange4] [on green]X\n" + "[on orange4] \n" + " [on green]XX[on orange4] \n" + ) + from rich.console import Console + from rich.text import Text + + text = Text.from_markup(MAP) + console = Console( + color_system="truecolor", width=30, force_terminal=True, file=StringIO() + ) + console.print(text) + result = console.file.getvalue() + + print(repr(result)) + expected = "\x1b[48;5;94m \x1b[0m\x1b[42mXX\x1b[0m\x1b[48;5;94m \x1b[0m\n\x1b[48;5;94m \x1b[0m\n\x1b[48;5;94m \x1b[0m\n\x1b[48;5;94m \x1b[0m\n\x1b[48;5;94m \x1b[0m\x1b[91;40mY\x1b[0m\x1b[91;48;5;94m \x1b[0m\n\x1b[91;42mX\x1b[0m\x1b[91;48;5;94m \x1b[0m\x1b[91;42mX\x1b[0m\x1b[91;48;5;94m \x1b[0m\n\x1b[91;48;5;94m \x1b[0m\x1b[91;42mX\x1b[0m\x1b[91;48;5;94m \x1b[0m\x1b[91;42mX\x1b[0m\n\x1b[91;48;5;94m \x1b[0m\n\x1b[91;48;5;94m \x1b[0m\x1b[91;42mXX\x1b[0m\x1b[91;48;5;94m \x1b[0m\n\n" + assert result == expected + + def test_divide_emoji(): bold = Style(bold=True) italic = Style(italic=True) @@ -223,6 +250,7 @@ def test_divide_edge_2(): @pytest.mark.parametrize( "text,split,result", [ + ("XX", 4, (Segment("XX"), Segment(""))), ("X", 1, (Segment("X"), Segment(""))), ("💩", 1, (Segment(" "), Segment(" "))), ("XY", 1, (Segment("X"), Segment("Y"))), @@ -270,3 +298,33 @@ def test_segment_lines_renderable(): Segment("foo"), Segment("\n"), ] + + +def test_align_top(): + lines = [[Segment("X")]] + assert Segment.align_top(lines, 3, 1, Style()) == lines + assert Segment.align_top(lines, 3, 3, Style()) == [ + [Segment("X")], + [Segment(" ", Style())], + [Segment(" ", Style())], + ] + + +def test_align_middle(): + lines = [[Segment("X")]] + assert Segment.align_middle(lines, 3, 1, Style()) == lines + assert Segment.align_middle(lines, 3, 3, Style()) == [ + [Segment(" ", Style())], + [Segment("X")], + [Segment(" ", Style())], + ] + + +def test_align_bottom(): + lines = [[Segment("X")]] + assert Segment.align_bottom(lines, 3, 1, Style()) == lines + assert Segment.align_bottom(lines, 3, 3, Style()) == [ + [Segment(" ", Style())], + [Segment(" ", Style())], + [Segment("X")], + ] diff --git a/tests/test_spinner.py b/tests/test_spinner.py index 5560f1daf6..98e3d9d66a 100644 --- a/tests/test_spinner.py +++ b/tests/test_spinner.py @@ -41,7 +41,7 @@ def get_time(): nonlocal time return time - console = Console(width=20, force_terminal=True, get_time=get_time) + console = Console(width=20, force_terminal=True, get_time=get_time, _environ={}) console.begin_capture() spinner = Spinner("dots") console.print(spinner) diff --git a/tests/test_syntax.py b/tests/test_syntax.py index 090d08d250..a88ce0a330 100644 --- a/tests/test_syntax.py +++ b/tests/test_syntax.py @@ -1,15 +1,17 @@ # coding=utf-8 - +import io +import os import sys -import os, tempfile +import tempfile import pytest -from .render import render +from pygments.lexers import PythonLexer from rich.panel import Panel from rich.style import Style -from rich.syntax import Syntax, ANSISyntaxTheme, PygmentsSyntaxTheme, Color, Console +from rich.syntax import ANSISyntaxTheme, Color, Console, PygmentsSyntaxTheme, Syntax +from .render import render CODE = '''\ def loop_first_last(values: Iterable[T]) -> Iterable[Tuple[bool, bool, T]]: @@ -30,7 +32,7 @@ def loop_first_last(values: Iterable[T]) -> Iterable[Tuple[bool, bool, T]]: def test_blank_lines(): code = "\n\nimport this\n\n" syntax = Syntax( - code, lexer_name="python", theme="ascii_light", code_width=30, line_numbers=True + code, lexer="python", theme="ascii_light", code_width=30, line_numbers=True ) result = render(syntax) print(repr(result)) @@ -44,10 +46,10 @@ def test_python_render(): syntax = Panel.fit( Syntax( CODE, - lexer_name="python", + lexer="python", line_numbers=True, line_range=(2, 10), - theme="foo", + theme="monokai", code_width=60, word_wrap=True, ), @@ -55,29 +57,44 @@ def test_python_render(): ) rendered_syntax = render(syntax) print(repr(rendered_syntax)) - expected = '╭────────────────────────────────────────────────────────────────╮\n│\x1b[1;38;2;24;24;24;48;2;248;248;248m \x1b[0m\x1b[38;2;173;173;173;48;2;248;248;248m 2 \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m \x1b[0m\x1b[3;38;2;186;33;33;48;2;248;248;248m"""Iterate and generate a tuple with a flag for first \x1b[0m\x1b[48;2;248;248;248m \x1b[0m│\n│\x1b[48;2;248;248;248m \x1b[0m\x1b[3;38;2;186;33;33;48;2;248;248;248mand last value."""\x1b[0m\x1b[48;2;248;248;248m \x1b[0m│\n│\x1b[1;38;2;24;24;24;48;2;248;248;248m \x1b[0m\x1b[38;2;173;173;173;48;2;248;248;248m 3 \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248miter_values\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m \x1b[0m\x1b[38;2;102;102;102;48;2;248;248;248m=\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m \x1b[0m\x1b[38;2;0;128;0;48;2;248;248;248miter\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m(\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mvalues\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m)\x1b[0m\x1b[48;2;248;248;248m \x1b[0m│\n│\x1b[1;38;2;24;24;24;48;2;248;248;248m \x1b[0m\x1b[38;2;173;173;173;48;2;248;248;248m 4 \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m \x1b[0m\x1b[1;38;2;0;128;0;48;2;248;248;248mtry\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m:\x1b[0m\x1b[48;2;248;248;248m \x1b[0m│\n│\x1b[1;38;2;24;24;24;48;2;248;248;248m \x1b[0m\x1b[38;2;173;173;173;48;2;248;248;248m 5 \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mprevious_value\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m \x1b[0m\x1b[38;2;102;102;102;48;2;248;248;248m=\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m \x1b[0m\x1b[38;2;0;128;0;48;2;248;248;248mnext\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m(\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248miter_values\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m)\x1b[0m\x1b[48;2;248;248;248m \x1b[0m│\n│\x1b[1;38;2;24;24;24;48;2;248;248;248m \x1b[0m\x1b[38;2;173;173;173;48;2;248;248;248m 6 \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m \x1b[0m\x1b[1;38;2;0;128;0;48;2;248;248;248mexcept\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m \x1b[0m\x1b[1;38;2;210;65;58;48;2;248;248;248mStopIteration\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m:\x1b[0m\x1b[48;2;248;248;248m \x1b[0m│\n│\x1b[1;38;2;24;24;24;48;2;248;248;248m \x1b[0m\x1b[38;2;173;173;173;48;2;248;248;248m 7 \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m \x1b[0m\x1b[1;38;2;0;128;0;48;2;248;248;248mreturn\x1b[0m\x1b[48;2;248;248;248m \x1b[0m│\n│\x1b[1;38;2;24;24;24;48;2;248;248;248m \x1b[0m\x1b[38;2;173;173;173;48;2;248;248;248m 8 \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mfirst\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m \x1b[0m\x1b[38;2;102;102;102;48;2;248;248;248m=\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m \x1b[0m\x1b[1;38;2;0;128;0;48;2;248;248;248mTrue\x1b[0m\x1b[48;2;248;248;248m \x1b[0m│\n│\x1b[1;38;2;24;24;24;48;2;248;248;248m \x1b[0m\x1b[38;2;173;173;173;48;2;248;248;248m 9 \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m \x1b[0m\x1b[1;38;2;0;128;0;48;2;248;248;248mfor\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mvalue\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m \x1b[0m\x1b[1;38;2;170;34;255;48;2;248;248;248min\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248miter_values\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m:\x1b[0m\x1b[48;2;248;248;248m \x1b[0m│\n│\x1b[1;38;2;24;24;24;48;2;248;248;248m \x1b[0m\x1b[38;2;173;173;173;48;2;248;248;248m10 \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m \x1b[0m\x1b[1;38;2;0;128;0;48;2;248;248;248myield\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mfirst\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m,\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m \x1b[0m\x1b[1;38;2;0;128;0;48;2;248;248;248mFalse\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m,\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mprevious_value\x1b[0m\x1b[48;2;248;248;248m \x1b[0m│\n╰────────────────────────────────────────────────────────────────╯\n' + expected = '╭────────────────────────────────────────────────────────────────╮\n│\x1b[1;38;2;227;227;221;48;2;39;40;34m \x1b[0m\x1b[38;2;101;102;96;48;2;39;40;34m 2 \x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;230;219;116;48;2;39;40;34m"""Iterate and generate a tuple with a flag for first \x1b[0m\x1b[48;2;39;40;34m \x1b[0m│\n│\x1b[48;2;39;40;34m \x1b[0m\x1b[38;2;230;219;116;48;2;39;40;34mand last value."""\x1b[0m\x1b[48;2;39;40;34m \x1b[0m│\n│\x1b[1;38;2;227;227;221;48;2;39;40;34m \x1b[0m\x1b[38;2;101;102;96;48;2;39;40;34m 3 \x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34miter_values\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;249;38;114;48;2;39;40;34m=\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34miter\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m(\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34mvalues\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m)\x1b[0m\x1b[48;2;39;40;34m \x1b[0m│\n│\x1b[1;38;2;227;227;221;48;2;39;40;34m \x1b[0m\x1b[38;2;101;102;96;48;2;39;40;34m 4 \x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;102;217;239;48;2;39;40;34mtry\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m:\x1b[0m\x1b[48;2;39;40;34m \x1b[0m│\n│\x1b[1;38;2;227;227;221;48;2;39;40;34m \x1b[0m\x1b[38;2;101;102;96;48;2;39;40;34m 5 \x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34mprevious_value\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;249;38;114;48;2;39;40;34m=\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34mnext\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m(\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34miter_values\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m)\x1b[0m\x1b[48;2;39;40;34m \x1b[0m│\n│\x1b[1;38;2;227;227;221;48;2;39;40;34m \x1b[0m\x1b[38;2;101;102;96;48;2;39;40;34m 6 \x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;102;217;239;48;2;39;40;34mexcept\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;166;226;46;48;2;39;40;34mStopIteration\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m:\x1b[0m\x1b[48;2;39;40;34m \x1b[0m│\n│\x1b[1;38;2;227;227;221;48;2;39;40;34m \x1b[0m\x1b[38;2;101;102;96;48;2;39;40;34m 7 \x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;102;217;239;48;2;39;40;34mreturn\x1b[0m\x1b[48;2;39;40;34m \x1b[0m│\n│\x1b[1;38;2;227;227;221;48;2;39;40;34m \x1b[0m\x1b[38;2;101;102;96;48;2;39;40;34m 8 \x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34mfirst\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;249;38;114;48;2;39;40;34m=\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;102;217;239;48;2;39;40;34mTrue\x1b[0m\x1b[48;2;39;40;34m \x1b[0m│\n│\x1b[1;38;2;227;227;221;48;2;39;40;34m \x1b[0m\x1b[38;2;101;102;96;48;2;39;40;34m 9 \x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;102;217;239;48;2;39;40;34mfor\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34mvalue\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;249;38;114;48;2;39;40;34min\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34miter_values\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m:\x1b[0m\x1b[48;2;39;40;34m \x1b[0m│\n│\x1b[1;38;2;227;227;221;48;2;39;40;34m \x1b[0m\x1b[38;2;101;102;96;48;2;39;40;34m10 \x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;102;217;239;48;2;39;40;34myield\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34mfirst\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m,\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;102;217;239;48;2;39;40;34mFalse\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m,\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34mprevious_value\x1b[0m\x1b[48;2;39;40;34m \x1b[0m│\n╰────────────────────────────────────────────────────────────────╯\n' assert rendered_syntax == expected def test_python_render_simple(): syntax = Syntax( CODE, - lexer_name="python", + lexer="python", line_numbers=False, - theme="foo", + theme="monokai", code_width=60, word_wrap=False, ) rendered_syntax = render(syntax) print(repr(rendered_syntax)) - expected = '\x1b[1;38;2;0;128;0;48;2;248;248;248mdef\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m \x1b[0m\x1b[38;2;0;0;255;48;2;248;248;248mloop_first_last\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m(\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mvalues\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m:\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mIterable\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m[\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mT\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m]\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m)\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m \x1b[0m\x1b[38;2;102;102;102;48;2;248;248;248m-\x1b[0m\x1b[38;2;102;102;102;48;2;248;248;248m>\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mIterable\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m[\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mTuple\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m[\x1b[0m\x1b[38;2;0;128;0;48;2;248;248;248mb\x1b[0m\n\x1b[38;2;0;0;0;48;2;248;248;248m \x1b[0m\x1b[3;38;2;186;33;33;48;2;248;248;248m"""Iterate and generate a tuple with a flag for first an\x1b[0m\n\x1b[38;2;0;0;0;48;2;248;248;248m \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248miter_values\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m \x1b[0m\x1b[38;2;102;102;102;48;2;248;248;248m=\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m \x1b[0m\x1b[38;2;0;128;0;48;2;248;248;248miter\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m(\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mvalues\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m)\x1b[0m\x1b[48;2;248;248;248m \x1b[0m\n\x1b[38;2;0;0;0;48;2;248;248;248m \x1b[0m\x1b[1;38;2;0;128;0;48;2;248;248;248mtry\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m:\x1b[0m\x1b[48;2;248;248;248m \x1b[0m\n\x1b[38;2;0;0;0;48;2;248;248;248m \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mprevious_value\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m \x1b[0m\x1b[38;2;102;102;102;48;2;248;248;248m=\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m \x1b[0m\x1b[38;2;0;128;0;48;2;248;248;248mnext\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m(\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248miter_values\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m)\x1b[0m\x1b[48;2;248;248;248m \x1b[0m\n\x1b[38;2;0;0;0;48;2;248;248;248m \x1b[0m\x1b[1;38;2;0;128;0;48;2;248;248;248mexcept\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m \x1b[0m\x1b[1;38;2;210;65;58;48;2;248;248;248mStopIteration\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m:\x1b[0m\x1b[48;2;248;248;248m \x1b[0m\n\x1b[38;2;0;0;0;48;2;248;248;248m \x1b[0m\x1b[1;38;2;0;128;0;48;2;248;248;248mreturn\x1b[0m\x1b[48;2;248;248;248m \x1b[0m\n\x1b[38;2;0;0;0;48;2;248;248;248m \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mfirst\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m \x1b[0m\x1b[38;2;102;102;102;48;2;248;248;248m=\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m \x1b[0m\x1b[1;38;2;0;128;0;48;2;248;248;248mTrue\x1b[0m\x1b[48;2;248;248;248m \x1b[0m\n\x1b[38;2;0;0;0;48;2;248;248;248m \x1b[0m\x1b[1;38;2;0;128;0;48;2;248;248;248mfor\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mvalue\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m \x1b[0m\x1b[1;38;2;170;34;255;48;2;248;248;248min\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248miter_values\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m:\x1b[0m\x1b[48;2;248;248;248m \x1b[0m\n\x1b[38;2;0;0;0;48;2;248;248;248m \x1b[0m\x1b[1;38;2;0;128;0;48;2;248;248;248myield\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mfirst\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m,\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m \x1b[0m\x1b[1;38;2;0;128;0;48;2;248;248;248mFalse\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m,\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mprevious_value\x1b[0m\x1b[48;2;248;248;248m \x1b[0m\n\x1b[38;2;0;0;0;48;2;248;248;248m \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mfirst\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m \x1b[0m\x1b[38;2;102;102;102;48;2;248;248;248m=\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m \x1b[0m\x1b[1;38;2;0;128;0;48;2;248;248;248mFalse\x1b[0m\x1b[48;2;248;248;248m \x1b[0m\n\x1b[38;2;0;0;0;48;2;248;248;248m \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mprevious_value\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m \x1b[0m\x1b[38;2;102;102;102;48;2;248;248;248m=\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mvalue\x1b[0m\x1b[48;2;248;248;248m \x1b[0m\n\x1b[38;2;0;0;0;48;2;248;248;248m \x1b[0m\x1b[1;38;2;0;128;0;48;2;248;248;248myield\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mfirst\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m,\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m \x1b[0m\x1b[1;38;2;0;128;0;48;2;248;248;248mTrue\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m,\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mprevious_value\x1b[0m\x1b[48;2;248;248;248m \x1b[0m\n' + expected = '\x1b[38;2;102;217;239;48;2;39;40;34mdef\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;166;226;46;48;2;39;40;34mloop_first_last\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m(\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34mvalues\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m:\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34mIterable\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m[\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34mT\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m]\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m)\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;249;38;114;48;2;39;40;34m-\x1b[0m\x1b[38;2;249;38;114;48;2;39;40;34m>\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34mIterable\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m[\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34mTuple\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m[\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34mb\x1b[0m\n\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;230;219;116;48;2;39;40;34m"""Iterate and generate a tuple with a flag for first an\x1b[0m\n\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34miter_values\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;249;38;114;48;2;39;40;34m=\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34miter\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m(\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34mvalues\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m)\x1b[0m\x1b[48;2;39;40;34m \x1b[0m\n\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;102;217;239;48;2;39;40;34mtry\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m:\x1b[0m\x1b[48;2;39;40;34m \x1b[0m\n\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34mprevious_value\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;249;38;114;48;2;39;40;34m=\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34mnext\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m(\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34miter_values\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m)\x1b[0m\x1b[48;2;39;40;34m \x1b[0m\n\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;102;217;239;48;2;39;40;34mexcept\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;166;226;46;48;2;39;40;34mStopIteration\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m:\x1b[0m\x1b[48;2;39;40;34m \x1b[0m\n\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;102;217;239;48;2;39;40;34mreturn\x1b[0m\x1b[48;2;39;40;34m \x1b[0m\n\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34mfirst\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;249;38;114;48;2;39;40;34m=\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;102;217;239;48;2;39;40;34mTrue\x1b[0m\x1b[48;2;39;40;34m \x1b[0m\n\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;102;217;239;48;2;39;40;34mfor\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34mvalue\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;249;38;114;48;2;39;40;34min\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34miter_values\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m:\x1b[0m\x1b[48;2;39;40;34m \x1b[0m\n\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;102;217;239;48;2;39;40;34myield\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34mfirst\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m,\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;102;217;239;48;2;39;40;34mFalse\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m,\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34mprevious_value\x1b[0m\x1b[48;2;39;40;34m \x1b[0m\n\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34mfirst\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;249;38;114;48;2;39;40;34m=\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;102;217;239;48;2;39;40;34mFalse\x1b[0m\x1b[48;2;39;40;34m \x1b[0m\n\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34mprevious_value\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;249;38;114;48;2;39;40;34m=\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34mvalue\x1b[0m\x1b[48;2;39;40;34m \x1b[0m\n\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;102;217;239;48;2;39;40;34myield\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34mfirst\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m,\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;102;217;239;48;2;39;40;34mTrue\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m,\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34mprevious_value\x1b[0m\x1b[48;2;39;40;34m \x1b[0m\n' + assert rendered_syntax == expected + + +def test_python_render_simple_passing_lexer_instance(): + syntax = Syntax( + CODE, + lexer=PythonLexer(), + line_numbers=False, + theme="monokai", + code_width=60, + word_wrap=False, + ) + rendered_syntax = render(syntax) + print(repr(rendered_syntax)) + expected = '\x1b[38;2;102;217;239;48;2;39;40;34mdef\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;166;226;46;48;2;39;40;34mloop_first_last\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m(\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34mvalues\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m:\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34mIterable\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m[\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34mT\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m]\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m)\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;249;38;114;48;2;39;40;34m-\x1b[0m\x1b[38;2;249;38;114;48;2;39;40;34m>\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34mIterable\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m[\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34mTuple\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m[\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34mb\x1b[0m\n\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;230;219;116;48;2;39;40;34m"""Iterate and generate a tuple with a flag for first an\x1b[0m\n\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34miter_values\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;249;38;114;48;2;39;40;34m=\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34miter\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m(\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34mvalues\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m)\x1b[0m\x1b[48;2;39;40;34m \x1b[0m\n\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;102;217;239;48;2;39;40;34mtry\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m:\x1b[0m\x1b[48;2;39;40;34m \x1b[0m\n\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34mprevious_value\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;249;38;114;48;2;39;40;34m=\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34mnext\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m(\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34miter_values\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m)\x1b[0m\x1b[48;2;39;40;34m \x1b[0m\n\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;102;217;239;48;2;39;40;34mexcept\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;166;226;46;48;2;39;40;34mStopIteration\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m:\x1b[0m\x1b[48;2;39;40;34m \x1b[0m\n\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;102;217;239;48;2;39;40;34mreturn\x1b[0m\x1b[48;2;39;40;34m \x1b[0m\n\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34mfirst\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;249;38;114;48;2;39;40;34m=\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;102;217;239;48;2;39;40;34mTrue\x1b[0m\x1b[48;2;39;40;34m \x1b[0m\n\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;102;217;239;48;2;39;40;34mfor\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34mvalue\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;249;38;114;48;2;39;40;34min\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34miter_values\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m:\x1b[0m\x1b[48;2;39;40;34m \x1b[0m\n\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;102;217;239;48;2;39;40;34myield\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34mfirst\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m,\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;102;217;239;48;2;39;40;34mFalse\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m,\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34mprevious_value\x1b[0m\x1b[48;2;39;40;34m \x1b[0m\n\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34mfirst\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;249;38;114;48;2;39;40;34m=\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;102;217;239;48;2;39;40;34mFalse\x1b[0m\x1b[48;2;39;40;34m \x1b[0m\n\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34mprevious_value\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;249;38;114;48;2;39;40;34m=\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34mvalue\x1b[0m\x1b[48;2;39;40;34m \x1b[0m\n\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;102;217;239;48;2;39;40;34myield\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34mfirst\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m,\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;102;217;239;48;2;39;40;34mTrue\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m,\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34mprevious_value\x1b[0m\x1b[48;2;39;40;34m \x1b[0m\n' assert rendered_syntax == expected def test_python_render_simple_indent_guides(): syntax = Syntax( CODE, - lexer_name="python", + lexer="python", line_numbers=False, theme="ansi_light", code_width=60, @@ -93,7 +110,7 @@ def test_python_render_simple_indent_guides(): def test_python_render_line_range_indent_guides(): syntax = Syntax( CODE, - lexer_name="python", + lexer="python", line_numbers=False, theme="ansi_light", code_width=60, @@ -111,10 +128,10 @@ def test_python_render_indent_guides(): syntax = Panel.fit( Syntax( CODE, - lexer_name="python", + lexer="python", line_numbers=True, line_range=(2, 10), - theme="foo", + theme="monokai", code_width=60, word_wrap=True, indent_guides=True, @@ -123,7 +140,7 @@ def test_python_render_indent_guides(): ) rendered_syntax = render(syntax) print(repr(rendered_syntax)) - expected = '╭────────────────────────────────────────────────────────────────╮\n│\x1b[1;38;2;24;24;24;48;2;248;248;248m \x1b[0m\x1b[38;2;173;173;173;48;2;248;248;248m 2 \x1b[0m\x1b[2;3;38;2;64;128;128;48;2;248;248;248m│ \x1b[0m\x1b[3;38;2;186;33;33;48;2;248;248;248m"""Iterate and generate a tuple with a flag for first \x1b[0m\x1b[48;2;248;248;248m \x1b[0m│\n│\x1b[48;2;248;248;248m \x1b[0m\x1b[3;38;2;186;33;33;48;2;248;248;248mand last value."""\x1b[0m\x1b[48;2;248;248;248m \x1b[0m│\n│\x1b[1;38;2;24;24;24;48;2;248;248;248m \x1b[0m\x1b[38;2;173;173;173;48;2;248;248;248m 3 \x1b[0m\x1b[2;3;38;2;64;128;128;48;2;248;248;248m│ \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248miter_values\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m \x1b[0m\x1b[38;2;102;102;102;48;2;248;248;248m=\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m \x1b[0m\x1b[38;2;0;128;0;48;2;248;248;248miter\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m(\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mvalues\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m)\x1b[0m\x1b[48;2;248;248;248m \x1b[0m│\n│\x1b[1;38;2;24;24;24;48;2;248;248;248m \x1b[0m\x1b[38;2;173;173;173;48;2;248;248;248m 4 \x1b[0m\x1b[2;3;38;2;64;128;128;48;2;248;248;248m│ \x1b[0m\x1b[1;38;2;0;128;0;48;2;248;248;248mtry\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m:\x1b[0m\x1b[48;2;248;248;248m \x1b[0m│\n│\x1b[1;38;2;24;24;24;48;2;248;248;248m \x1b[0m\x1b[38;2;173;173;173;48;2;248;248;248m 5 \x1b[0m\x1b[2;3;38;2;64;128;128;48;2;248;248;248m│ │ \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mprevious_value\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m \x1b[0m\x1b[38;2;102;102;102;48;2;248;248;248m=\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m \x1b[0m\x1b[38;2;0;128;0;48;2;248;248;248mnext\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m(\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248miter_values\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m)\x1b[0m\x1b[48;2;248;248;248m \x1b[0m│\n│\x1b[1;38;2;24;24;24;48;2;248;248;248m \x1b[0m\x1b[38;2;173;173;173;48;2;248;248;248m 6 \x1b[0m\x1b[2;3;38;2;64;128;128;48;2;248;248;248m│ \x1b[0m\x1b[1;38;2;0;128;0;48;2;248;248;248mexcept\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m \x1b[0m\x1b[1;38;2;210;65;58;48;2;248;248;248mStopIteration\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m:\x1b[0m\x1b[48;2;248;248;248m \x1b[0m│\n│\x1b[1;38;2;24;24;24;48;2;248;248;248m \x1b[0m\x1b[38;2;173;173;173;48;2;248;248;248m 7 \x1b[0m\x1b[2;3;38;2;64;128;128;48;2;248;248;248m│ │ \x1b[0m\x1b[1;38;2;0;128;0;48;2;248;248;248mreturn\x1b[0m\x1b[48;2;248;248;248m \x1b[0m│\n│\x1b[1;38;2;24;24;24;48;2;248;248;248m \x1b[0m\x1b[38;2;173;173;173;48;2;248;248;248m 8 \x1b[0m\x1b[2;3;38;2;64;128;128;48;2;248;248;248m│ \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mfirst\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m \x1b[0m\x1b[38;2;102;102;102;48;2;248;248;248m=\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m \x1b[0m\x1b[1;38;2;0;128;0;48;2;248;248;248mTrue\x1b[0m\x1b[48;2;248;248;248m \x1b[0m│\n│\x1b[1;38;2;24;24;24;48;2;248;248;248m \x1b[0m\x1b[38;2;173;173;173;48;2;248;248;248m 9 \x1b[0m\x1b[2;3;38;2;64;128;128;48;2;248;248;248m│ \x1b[0m\x1b[1;38;2;0;128;0;48;2;248;248;248mfor\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mvalue\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m \x1b[0m\x1b[1;38;2;170;34;255;48;2;248;248;248min\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248miter_values\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m:\x1b[0m\x1b[48;2;248;248;248m \x1b[0m│\n│\x1b[1;38;2;24;24;24;48;2;248;248;248m \x1b[0m\x1b[38;2;173;173;173;48;2;248;248;248m10 \x1b[0m\x1b[2;3;38;2;64;128;128;48;2;248;248;248m│ │ \x1b[0m\x1b[1;38;2;0;128;0;48;2;248;248;248myield\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mfirst\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m,\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m \x1b[0m\x1b[1;38;2;0;128;0;48;2;248;248;248mFalse\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m,\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mprevious_value\x1b[0m\x1b[48;2;248;248;248m \x1b[0m│\n╰────────────────────────────────────────────────────────────────╯\n' + expected = '╭────────────────────────────────────────────────────────────────╮\n│\x1b[1;38;2;227;227;221;48;2;39;40;34m \x1b[0m\x1b[38;2;101;102;96;48;2;39;40;34m 2 \x1b[0m\x1b[2;38;2;117;113;94;48;2;39;40;34m│ \x1b[0m\x1b[38;2;230;219;116;48;2;39;40;34m"""Iterate and generate a tuple with a flag for first \x1b[0m\x1b[48;2;39;40;34m \x1b[0m│\n│\x1b[48;2;39;40;34m \x1b[0m\x1b[38;2;230;219;116;48;2;39;40;34mand last value."""\x1b[0m\x1b[48;2;39;40;34m \x1b[0m│\n│\x1b[1;38;2;227;227;221;48;2;39;40;34m \x1b[0m\x1b[38;2;101;102;96;48;2;39;40;34m 3 \x1b[0m\x1b[2;38;2;117;113;94;48;2;39;40;34m│ \x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34miter_values\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;249;38;114;48;2;39;40;34m=\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34miter\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m(\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34mvalues\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m)\x1b[0m\x1b[48;2;39;40;34m \x1b[0m│\n│\x1b[1;38;2;227;227;221;48;2;39;40;34m \x1b[0m\x1b[38;2;101;102;96;48;2;39;40;34m 4 \x1b[0m\x1b[2;38;2;117;113;94;48;2;39;40;34m│ \x1b[0m\x1b[38;2;102;217;239;48;2;39;40;34mtry\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m:\x1b[0m\x1b[48;2;39;40;34m \x1b[0m│\n│\x1b[1;38;2;227;227;221;48;2;39;40;34m \x1b[0m\x1b[38;2;101;102;96;48;2;39;40;34m 5 \x1b[0m\x1b[2;38;2;117;113;94;48;2;39;40;34m│ │ \x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34mprevious_value\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;249;38;114;48;2;39;40;34m=\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34mnext\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m(\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34miter_values\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m)\x1b[0m\x1b[48;2;39;40;34m \x1b[0m│\n│\x1b[1;38;2;227;227;221;48;2;39;40;34m \x1b[0m\x1b[38;2;101;102;96;48;2;39;40;34m 6 \x1b[0m\x1b[2;38;2;117;113;94;48;2;39;40;34m│ \x1b[0m\x1b[38;2;102;217;239;48;2;39;40;34mexcept\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;166;226;46;48;2;39;40;34mStopIteration\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m:\x1b[0m\x1b[48;2;39;40;34m \x1b[0m│\n│\x1b[1;38;2;227;227;221;48;2;39;40;34m \x1b[0m\x1b[38;2;101;102;96;48;2;39;40;34m 7 \x1b[0m\x1b[2;38;2;117;113;94;48;2;39;40;34m│ │ \x1b[0m\x1b[38;2;102;217;239;48;2;39;40;34mreturn\x1b[0m\x1b[48;2;39;40;34m \x1b[0m│\n│\x1b[1;38;2;227;227;221;48;2;39;40;34m \x1b[0m\x1b[38;2;101;102;96;48;2;39;40;34m 8 \x1b[0m\x1b[2;38;2;117;113;94;48;2;39;40;34m│ \x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34mfirst\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;249;38;114;48;2;39;40;34m=\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;102;217;239;48;2;39;40;34mTrue\x1b[0m\x1b[48;2;39;40;34m \x1b[0m│\n│\x1b[1;38;2;227;227;221;48;2;39;40;34m \x1b[0m\x1b[38;2;101;102;96;48;2;39;40;34m 9 \x1b[0m\x1b[2;38;2;117;113;94;48;2;39;40;34m│ \x1b[0m\x1b[38;2;102;217;239;48;2;39;40;34mfor\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34mvalue\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;249;38;114;48;2;39;40;34min\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34miter_values\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m:\x1b[0m\x1b[48;2;39;40;34m \x1b[0m│\n│\x1b[1;38;2;227;227;221;48;2;39;40;34m \x1b[0m\x1b[38;2;101;102;96;48;2;39;40;34m10 \x1b[0m\x1b[2;38;2;117;113;94;48;2;39;40;34m│ │ \x1b[0m\x1b[38;2;102;217;239;48;2;39;40;34myield\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34mfirst\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m,\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;102;217;239;48;2;39;40;34mFalse\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m,\x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34m \x1b[0m\x1b[38;2;248;248;242;48;2;39;40;34mprevious_value\x1b[0m\x1b[48;2;39;40;34m \x1b[0m│\n╰────────────────────────────────────────────────────────────────╯\n' assert rendered_syntax == expected @@ -144,7 +161,7 @@ def test_get_line_color_none(): style._background_style = Style(bgcolor=None) syntax = Syntax( CODE, - lexer_name="python", + lexer="python", line_numbers=True, line_range=(2, 10), theme=style, @@ -158,7 +175,7 @@ def test_get_line_color_none(): def test_highlight_background_color(): syntax = Syntax( CODE, - lexer_name="python", + lexer="python", line_numbers=True, line_range=(2, 10), theme="foo", @@ -189,7 +206,7 @@ def test_get_style_for_token(): style._style_cache = style_dict syntax = Syntax( CODE, - lexer_name="python", + lexer="python", line_numbers=True, line_range=(2, 10), theme=style, @@ -203,7 +220,7 @@ def test_get_style_for_token(): def test_option_no_wrap(): syntax = Syntax( CODE, - lexer_name="python", + lexer="python", line_numbers=True, line_range=(2, 10), code_width=60, @@ -224,35 +241,89 @@ def test_ansi_theme(): assert theme.get_background_style() == Style() -@pytest.mark.skipif(sys.platform == "win32", reason="permissions error on Windows") -def test_from_file(): +skip_windows_permission_error = pytest.mark.skipif( + sys.platform == "win32", reason="permissions error on Windows" +) + + +@skip_windows_permission_error +def test_from_path(): fh, path = tempfile.mkstemp("example.py") try: os.write(fh, b"import this\n") syntax = Syntax.from_path(path) - assert syntax.lexer_name == "Python" + assert syntax.lexer + assert syntax.lexer.name == "Python" assert syntax.code == "import this\n" finally: os.remove(path) -@pytest.mark.skipif(sys.platform == "win32", reason="permissions error on Windows") -def test_from_file_unknown_lexer(): +@skip_windows_permission_error +def test_from_path_unknown_lexer(): fh, path = tempfile.mkstemp("example.nosuchtype") try: os.write(fh, b"import this\n") syntax = Syntax.from_path(path) - assert syntax.lexer_name == "default" + assert syntax.lexer is None + assert syntax.code == "import this\n" + finally: + os.remove(path) + + +@skip_windows_permission_error +def test_from_path_lexer_override(): + fh, path = tempfile.mkstemp("example.nosuchtype") + try: + os.write(fh, b"import this\n") + syntax = Syntax.from_path(path, lexer="rust") + assert syntax.lexer.name == "Rust" assert syntax.code == "import this\n" finally: os.remove(path) +@skip_windows_permission_error +def test_from_path_lexer_override_invalid_lexer(): + fh, path = tempfile.mkstemp("example.nosuchtype") + try: + os.write(fh, b"import this\n") + syntax = Syntax.from_path(path, lexer="blah") + assert syntax.lexer is None + assert syntax.code == "import this\n" + finally: + os.remove(path) + + +def test_syntax_guess_lexer(): + assert Syntax.guess_lexer("banana.py") == "python" + assert Syntax.guess_lexer("banana.py", "import this") == "python" + assert Syntax.guess_lexer("banana.html", "hello") == "html" + assert Syntax.guess_lexer("banana.html", "<%= @foo %>") == "rhtml" + assert Syntax.guess_lexer("banana.html", "{{something|filter:3}}") == "html+django" + + +def test_syntax_padding(): + syntax = Syntax("x = 1", lexer="python", padding=(1, 3)) + console = Console( + width=20, + file=io.StringIO(), + color_system="truecolor", + legacy_windows=False, + record=True, + ) + console.print(syntax) + output = console.export_text() + assert ( + output == " \n x = 1 \n \n" + ) + + if __name__ == "__main__": syntax = Panel.fit( Syntax( CODE, - lexer_name="python", + lexer="python", line_numbers=True, line_range=(2, 10), theme="foo", diff --git a/tests/test_table.py b/tests/test_table.py index 29826e1182..040f9614a2 100644 --- a/tests/test_table.py +++ b/tests/test_table.py @@ -4,11 +4,11 @@ import pytest -from rich import errors +from rich import box, errors from rich.console import Console from rich.measure import Measurement from rich.style import Style -from rich.table import Table, Column +from rich.table import Column, Table from rich.text import Text @@ -158,6 +158,29 @@ def test_get_row_style(): assert table.get_row_style(console, 1) == Style.parse("on red") +def test_vertical_align_top(): + console = Console(_environ={}) + + def make_table(vertical_align): + table = Table(show_header=False, box=box.SQUARE) + table.add_column(vertical=vertical_align) + table.add_row("foo", "\n".join(["bar"] * 5)) + + return table + + with console.capture() as capture: + console.print(make_table("top")) + console.print() + console.print(make_table("middle")) + console.print() + console.print(make_table("bottom")) + console.print() + result = capture.get() + print(repr(result)) + expected = "┌─────┬─────┐\n│ foo │ bar │\n│ │ bar │\n│ │ bar │\n│ │ bar │\n│ │ bar │\n└─────┴─────┘\n\n┌─────┬─────┐\n│ │ bar │\n│ │ bar │\n│ foo │ bar │\n│ │ bar │\n│ │ bar │\n└─────┴─────┘\n\n┌─────┬─────┐\n│ │ bar │\n│ │ bar │\n│ │ bar │\n│ │ bar │\n│ foo │ bar │\n└─────┴─────┘\n\n" + assert result == expected + + if __name__ == "__main__": render = render_tables() print(render) diff --git a/tests/test_tabulate.py b/tests/test_tabulate.py deleted file mode 100644 index 37e86bfe2b..0000000000 --- a/tests/test_tabulate.py +++ /dev/null @@ -1,34 +0,0 @@ -import itertools -from rich.style import Style -from rich.table import _Cell -from rich.tabulate import tabulate_mapping - - -def test_tabulate_mapping(): - # TODO: tabulate_mapping may not be needed shortly - table = tabulate_mapping({"foo": "1", "bar": "2"}) - assert len(table.columns) == 2 - assert len(table.columns[0]._cells) == 2 - assert len(table.columns[1]._cells) == 2 - - # add tests for title and caption justification - test_title = "Foo v. Bar" - test_caption = "approximate results" - for title_justify, caption_justify in itertools.product( - [None, "left", "center", "right"], repeat=2 - ): - table = tabulate_mapping( - {"foo": "1", "bar": "2"}, - title=test_title, - caption=test_caption, - title_justify=title_justify, - caption_justify=caption_justify, - ) - expected_title_justify = ( - title_justify if title_justify is not None else "center" - ) - expected_caption_justify = ( - caption_justify if caption_justify is not None else "center" - ) - assert expected_title_justify == table.title_justify - assert expected_caption_justify == table.caption_justify diff --git a/tests/test_text.py b/tests/test_text.py index 3727d1602c..4f02fd41ec 100644 --- a/tests/test_text.py +++ b/tests/test_text.py @@ -1,10 +1,11 @@ from io import StringIO + import pytest -from rich.console import Console -from rich.text import Span, Text +from rich.console import Console, Group from rich.measure import Measurement from rich.style import Style +from rich.text import Span, Text def test_span(): @@ -95,6 +96,24 @@ def test_from_markup(): assert text._spans == [Span(7, 13, "bold")] +def test_from_ansi(): + text = Text.from_ansi("Hello, \033[1mWorld!\033[0m") + assert str(text) == "Hello, World!" + assert text._spans == [Span(7, 13, Style(bold=True))] + + text = Text.from_ansi("Hello, \033[1m\nWorld!\033[0m") + assert str(text) == "Hello, \nWorld!" + assert text._spans == [Span(8, 14, Style(bold=True))] + + text = Text.from_ansi("\033[1mBOLD\033[m not bold") + assert str(text) == "BOLD not bold" + assert text._spans == [Span(0, 4, Style(bold=True))] + + text = Text.from_ansi("\033[1m\033[Kfoo barmbaz") + assert str(text) == "foo barmbaz" + assert text._spans == [Span(0, 11, Style(bold=True))] + + def test_copy(): test = Text() test.append("Hello", "bold") @@ -288,6 +307,13 @@ def test_append_text(): assert test._spans == [Span(3, 6, "bold")] +def test_end(): + console = Console(width=20, file=StringIO()) + test = Group(Text.from_markup("foo", end=" "), Text.from_markup("bar")) + console.print(test) + assert console.file.getvalue() == "foo bar\n" + + def test_split(): test = Text() test.append("foo", "red") @@ -705,3 +731,19 @@ def test_on(): assert text.get_style_at_offset(console, 0).meta == expected assert text.get_style_at_offset(console, 1).meta == expected assert text.get_style_at_offset(console, 2).meta == expected + + +def test_markup_property(): + assert Text("").markup == "" + assert Text("foo").markup == "foo" + assert Text("foo", style="bold").markup == "[bold]foo[/bold]" + assert Text.from_markup("foo [red]bar[/red]").markup == "foo [red]bar[/red]" + assert ( + Text.from_markup("foo [red]bar[/red]", style="bold").markup + == "[bold]foo [red]bar[/red][/bold]" + ) + assert ( + Text.from_markup("[bold]foo [italic]bar[/bold] baz[/italic]").markup + == "[bold]foo [italic]bar[/bold] baz[/italic]" + ) + assert Text("[bold]foo").markup == "\\[bold]foo" diff --git a/tests/test_traceback.py b/tests/test_traceback.py index 3b3e8de65d..03705f99c4 100644 --- a/tests/test_traceback.py +++ b/tests/test_traceback.py @@ -1,10 +1,13 @@ import io +import re import sys +from typing import List import pytest from rich.console import Console -from rich.traceback import install, Traceback +from rich.theme import Theme +from rich.traceback import Traceback, install # from .render import render @@ -20,10 +23,17 @@ def test_handler(): console = Console(file=io.StringIO(), width=100, color_system=None) expected_old_handler = sys.excepthook + + def level1(): + level2() + + def level2(): + return 1 / 0 + try: old_handler = install(console=console) try: - 1 / 0 + level1() except Exception: exc_type, exc_value, traceback = sys.exc_info() sys.excepthook(exc_type, exc_value, traceback) @@ -31,6 +41,30 @@ def test_handler(): print(repr(rendered_exception)) assert "Traceback" in rendered_exception assert "ZeroDivisionError" in rendered_exception + + frame_blank_line_possible_preambles = ( + # Start of the stack rendering: + "╭─────────────────────────────── Traceback (most recent call last) ────────────────────────────────╮", + # Each subsequent frame (starting with the file name) should then be preceded with a blank line: + "│" + (" " * 98) + "│", + ) + for frame_start in re.finditer( + "^│ .+rich/tests/test_traceback\.py:", + rendered_exception, + flags=re.MULTILINE, + ): + frame_start_index = frame_start.start() + for preamble in frame_blank_line_possible_preambles: + preamble_start, preamble_end = ( + frame_start_index - len(preamble) - 1, + frame_start_index - 1, + ) + if rendered_exception[preamble_start:preamble_end] == preamble: + break + else: + pytest.fail( + f"Frame {frame_start[0]} doesn't have the expected preamble" + ) finally: sys.excepthook = old_handler assert old_handler == expected_old_handler @@ -109,8 +143,8 @@ def test_syntax_error(): console = Console(width=100, file=io.StringIO()) try: # raises SyntaxError: unexpected EOF while parsing - eval("(2 + 2") - except Exception: + eval("(2+2") + except SyntaxError: console.print_exception() exception_text = console.file.getvalue() assert "SyntaxError" in exception_text @@ -190,6 +224,30 @@ def test_filename_not_a_file(): assert "string" in exception_text +@pytest.mark.skipif(sys.platform == "win32", reason="renders different on windows") +def test_traceback_console_theme_applies(): + """ + Ensure that themes supplied via Console init work on Tracebacks. + Regression test for https://github.com/Textualize/rich/issues/1786 + """ + r, g, b = 123, 234, 123 + console = Console( + force_terminal=True, + _environ={"COLORTERM": "truecolor"}, + theme=Theme({"traceback.title": f"rgb({r},{g},{b})"}), + ) + + console.begin_capture() + try: + 1 / 0 + except Exception: + console.print_exception() + + result = console.end_capture() + + assert f"\\x1b[38;2;{r};{g};{b}mTraceback \\x1b[0m" in repr(result) + + def test_broken_str(): class BrokenStr(Exception): def __str__(self): @@ -212,6 +270,16 @@ def test_guess_lexer(): assert Traceback._guess_lexer("foo", "foo\nbnar") == "text" +def test_guess_lexer_yaml_j2(): + # https://github.com/Textualize/rich/issues/2018 + code = """\ +foobar: + something: {{ raiser() }} + else: {{ 5 + 5 }} + """ + assert Traceback._guess_lexer("test.yaml.j2", code) in ("text", "YAML+Jinja") + + def test_recursive(): def foo(n): return bar(n) @@ -240,6 +308,42 @@ def test_suppress(): assert "foo" in traceback.suppress[1] +@pytest.mark.parametrize( + "rich_traceback_omit_for_level2,expected_frames_length,expected_frame_names", + ( + # fmt: off + [True, 3, ["test_rich_traceback_omit_optional_local_flag", "level1", "level3"]], + [False, 4, ["test_rich_traceback_omit_optional_local_flag", "level1", "level2", "level3"]], + # fmt: on + ), +) +def test_rich_traceback_omit_optional_local_flag( + rich_traceback_omit_for_level2: bool, + expected_frames_length: int, + expected_frame_names: List[str], +): + def level1(): + return level2() + + def level2(): + # true-ish values are enough to trigger the opt-out: + _rich_traceback_omit = 1 if rich_traceback_omit_for_level2 else 0 + return level3() + + def level3(): + return 1 / 0 + + try: + level1() + except Exception: + exc_type, exc_value, traceback = sys.exc_info() + trace = Traceback.from_exception(exc_type, exc_value, traceback).trace + frames = trace.stacks[0].frames + assert len(frames) == expected_frames_length + frame_names = [f.name for f in frames] + assert frame_names == expected_frame_names + + if __name__ == "__main__": # pragma: no cover expected = render(get_exception()) diff --git a/tests/test_tree.py b/tests/test_tree.py index babcc3cf27..c8465a97a9 100644 --- a/tests/test_tree.py +++ b/tests/test_tree.py @@ -12,7 +12,7 @@ def test_render_single_node(): console = Console(color_system=None, width=20) console.begin_capture() console.print(tree) - assert console.end_capture() == "foo \n" + assert console.end_capture() == "foo\n" def test_render_single_branch(): @@ -23,7 +23,7 @@ def test_render_single_branch(): console.print(tree) result = console.end_capture() print(repr(result)) - expected = "foo \n└── bar \n" + expected = "foo\n└── bar\n" assert result == expected @@ -36,7 +36,7 @@ def test_render_double_branch(): console.print(tree) result = console.end_capture() print(repr(result)) - expected = "foo \n├── bar \n└── baz \n" + expected = "foo\n├── bar\n└── baz\n" assert result == expected @@ -54,7 +54,7 @@ def encoding(self): console.begin_capture() console.print(tree) result = console.end_capture() - expected = "foo \n+-- bar \n`-- baz \n" + expected = "foo\n+-- bar\n`-- baz\n" assert result == expected @@ -67,12 +67,14 @@ def test_render_tree_non_win32(): baz_tree.add("2") tree.add("egg") - console = Console(width=20, force_terminal=True, color_system="standard") + console = Console( + width=20, force_terminal=True, color_system="standard", _environ={} + ) console.begin_capture() console.print(tree) result = console.end_capture() print(repr(result)) - expected = "foo \n├── \x1b[3mbar\x1b[0m\x1b[3m \x1b[0m\n\x1b[44m├── \x1b[0m\x1b[44mbaz\x1b[0m\x1b[44m \x1b[0m\n\x1b[44m│ \x1b[0m\x1b[31;44m┣━━ \x1b[0m\x1b[44m1\x1b[0m\x1b[44m \x1b[0m\n\x1b[44m│ \x1b[0m\x1b[31;44m┗━━ \x1b[0m\x1b[44m2\x1b[0m\x1b[44m \x1b[0m\n└── egg \n" + expected = "foo\n├── \x1b[3mbar\x1b[0m\n\x1b[44m├── \x1b[0m\x1b[44mbaz\x1b[0m\n\x1b[44m│ \x1b[0m\x1b[31;44m┣━━ \x1b[0m\x1b[44m1\x1b[0m\n\x1b[44m│ \x1b[0m\x1b[31;44m┗━━ \x1b[0m\x1b[44m2\x1b[0m\n└── egg\n" assert result == expected @@ -85,12 +87,52 @@ def test_render_tree_win32(): baz_tree.add("2") tree.add("egg") + console = Console( + width=20, force_terminal=True, color_system="standard", legacy_windows=True + ) + console.begin_capture() + console.print(tree) + result = console.end_capture() + print(repr(result)) + expected = "foo\n├── \x1b[3mbar\x1b[0m\n\x1b[44m├── \x1b[0m\x1b[44mbaz\x1b[0m\n\x1b[44m│ \x1b[0m\x1b[31;44m├── \x1b[0m\x1b[44m1\x1b[0m\n\x1b[44m│ \x1b[0m\x1b[31;44m└── \x1b[0m\x1b[44m2\x1b[0m\n└── egg\n" + assert result == expected + + +@pytest.mark.skipif(sys.platform == "win32", reason="different on Windows") +def test_render_tree_hide_root_non_win32(): + tree = Tree("foo", hide_root=True) + tree.add("bar", style="italic") + baz_tree = tree.add("baz", guide_style="bold red", style="on blue") + baz_tree.add("1") + baz_tree.add("2") + tree.add("egg") + + console = Console( + width=20, force_terminal=True, color_system="standard", _environ={} + ) + console.begin_capture() + console.print(tree) + result = console.end_capture() + print(repr(result)) + expected = "\x1b[3mbar\x1b[0m\n\x1b[44mbaz\x1b[0m\n\x1b[31;44m┣━━ \x1b[0m\x1b[44m1\x1b[0m\n\x1b[31;44m┗━━ \x1b[0m\x1b[44m2\x1b[0m\negg\n" + assert result == expected + + +@pytest.mark.skipif(sys.platform != "win32", reason="Windows specific") +def test_render_tree_hide_root_win32(): + tree = Tree("foo", hide_root=True) + tree.add("bar", style="italic") + baz_tree = tree.add("baz", guide_style="bold red", style="on blue") + baz_tree.add("1") + baz_tree.add("2") + tree.add("egg") + console = Console(width=20, force_terminal=True, color_system="standard") console.begin_capture() console.print(tree) result = console.end_capture() print(repr(result)) - expected = "foo \n├── \x1b[3mbar\x1b[0m\x1b[3m \x1b[0m\n\x1b[44m├── \x1b[0m\x1b[44mbaz\x1b[0m\x1b[44m \x1b[0m\n\x1b[44m│ \x1b[0m\x1b[31;44m├── \x1b[0m\x1b[44m1\x1b[0m\x1b[44m \x1b[0m\n\x1b[44m│ \x1b[0m\x1b[31;44m└── \x1b[0m\x1b[44m2\x1b[0m\x1b[44m \x1b[0m\n└── egg \n" + expected = "\x1b[3mbar\x1b[0m\n\x1b[44mbaz\x1b[0m\n\x1b[31;44m├── \x1b[0m\x1b[44m1\x1b[0m\n\x1b[31;44m└── \x1b[0m\x1b[44m2\x1b[0m\negg\n" assert result == expected diff --git a/tests/test_win32_console.py b/tests/test_win32_console.py new file mode 100644 index 0000000000..33d4fe48be --- /dev/null +++ b/tests/test_win32_console.py @@ -0,0 +1,425 @@ +import dataclasses +import sys +from unittest import mock +from unittest.mock import patch + +import pytest + +from rich.style import Style + +if sys.platform == "win32": + from rich import _win32_console + from rich._win32_console import COORD, LegacyWindowsTerm, WindowsCoordinates + + CURSOR_X = 1 + CURSOR_Y = 2 + CURSOR_POSITION = WindowsCoordinates(row=CURSOR_Y, col=CURSOR_X) + SCREEN_WIDTH = 20 + SCREEN_HEIGHT = 30 + DEFAULT_STYLE_ATTRIBUTE = 16 + + @dataclasses.dataclass + class StubScreenBufferInfo: + dwCursorPosition: COORD = COORD(CURSOR_X, CURSOR_Y) + dwSize: COORD = COORD(SCREEN_WIDTH, SCREEN_HEIGHT) + wAttributes: int = DEFAULT_STYLE_ATTRIBUTE + + pytestmark = pytest.mark.skipif(sys.platform != "win32", reason="windows only") + + def test_windows_coordinates_to_ctype(): + coord = WindowsCoordinates.from_param(WindowsCoordinates(row=1, col=2)) + assert coord.X == 2 + assert coord.Y == 1 + + @pytest.fixture + def win32_handle(): + handle = mock.sentinel + with mock.patch.object(_win32_console, "GetStdHandle", return_value=handle): + yield handle + + @patch.object( + _win32_console, "GetConsoleScreenBufferInfo", return_value=StubScreenBufferInfo + ) + def test_cursor_position(_): + term = LegacyWindowsTerm(sys.stdout) + assert term.cursor_position == WindowsCoordinates(row=CURSOR_Y, col=CURSOR_X) + + @patch.object( + _win32_console, "GetConsoleScreenBufferInfo", return_value=StubScreenBufferInfo + ) + def test_screen_size(_): + term = LegacyWindowsTerm(sys.stdout) + assert term.screen_size == WindowsCoordinates( + row=SCREEN_HEIGHT, col=SCREEN_WIDTH + ) + + @patch.object( + _win32_console, "GetConsoleScreenBufferInfo", return_value=StubScreenBufferInfo + ) + def test_write_text(_, win32_handle, capsys): + text = "Hello, world!" + term = LegacyWindowsTerm(sys.stdout) + + term.write_text(text) + + captured = capsys.readouterr() + assert captured.out == text + + @patch.object(_win32_console, "SetConsoleTextAttribute") + @patch.object( + _win32_console, "GetConsoleScreenBufferInfo", return_value=StubScreenBufferInfo + ) + def test_write_styled(_, SetConsoleTextAttribute, win32_handle, capsys): + style = Style.parse("black on red") + text = "Hello, world!" + term = LegacyWindowsTerm(sys.stdout) + + term.write_styled(text, style) + + captured = capsys.readouterr() + assert captured.out == text + + # Ensure we set the text attributes and then reset them after writing styled text + call_args = SetConsoleTextAttribute.call_args_list + assert len(call_args) == 2 + first_args, first_kwargs = call_args[0] + second_args, second_kwargs = call_args[1] + + assert first_args == (win32_handle,) + assert first_kwargs["attributes"].value == 64 + assert second_args == (win32_handle,) + assert second_kwargs["attributes"] == DEFAULT_STYLE_ATTRIBUTE + + @patch.object(_win32_console, "SetConsoleTextAttribute") + @patch.object( + _win32_console, "GetConsoleScreenBufferInfo", return_value=StubScreenBufferInfo + ) + def test_write_styled_bold(_, SetConsoleTextAttribute, win32_handle): + style = Style.parse("bold black on red") + text = "Hello, world!" + term = LegacyWindowsTerm(sys.stdout) + + term.write_styled(text, style) + + call_args = SetConsoleTextAttribute.call_args_list + first_args, first_kwargs = call_args[0] + + expected_attr = 64 + 8 # 64 for red bg, +8 for bright black + assert first_args == (win32_handle,) + assert first_kwargs["attributes"].value == expected_attr + + @patch.object(_win32_console, "SetConsoleTextAttribute") + @patch.object( + _win32_console, "GetConsoleScreenBufferInfo", return_value=StubScreenBufferInfo + ) + def test_write_styled_reverse(_, SetConsoleTextAttribute, win32_handle): + style = Style.parse("reverse red on blue") + text = "Hello, world!" + term = LegacyWindowsTerm(sys.stdout) + + term.write_styled(text, style) + + call_args = SetConsoleTextAttribute.call_args_list + first_args, first_kwargs = call_args[0] + + expected_attr = 64 + 1 # 64 for red bg (after reverse), +1 for blue fg + assert first_args == (win32_handle,) + assert first_kwargs["attributes"].value == expected_attr + + @patch.object(_win32_console, "SetConsoleTextAttribute") + @patch.object( + _win32_console, "GetConsoleScreenBufferInfo", return_value=StubScreenBufferInfo + ) + def test_write_styled_reverse(_, SetConsoleTextAttribute, win32_handle): + style = Style.parse("dim bright_red on blue") + text = "Hello, world!" + term = LegacyWindowsTerm(sys.stdout) + + term.write_styled(text, style) + + call_args = SetConsoleTextAttribute.call_args_list + first_args, first_kwargs = call_args[0] + + expected_attr = 4 + 16 # 4 for red text (after dim), +16 for blue bg + assert first_args == (win32_handle,) + assert first_kwargs["attributes"].value == expected_attr + + @patch.object(_win32_console, "SetConsoleTextAttribute") + @patch.object( + _win32_console, "GetConsoleScreenBufferInfo", return_value=StubScreenBufferInfo + ) + def test_write_styled_no_foreground_color(_, SetConsoleTextAttribute, win32_handle): + style = Style.parse("on blue") + text = "Hello, world!" + term = LegacyWindowsTerm(sys.stdout) + + term.write_styled(text, style) + + call_args = SetConsoleTextAttribute.call_args_list + first_args, first_kwargs = call_args[0] + + expected_attr = 16 | term._default_fore # 16 for blue bg, plus default fg color + assert first_args == (win32_handle,) + assert first_kwargs["attributes"].value == expected_attr + + @patch.object(_win32_console, "SetConsoleTextAttribute") + @patch.object( + _win32_console, "GetConsoleScreenBufferInfo", return_value=StubScreenBufferInfo + ) + def test_write_styled_no_background_color(_, SetConsoleTextAttribute, win32_handle): + style = Style.parse("blue") + text = "Hello, world!" + term = LegacyWindowsTerm(sys.stdout) + + term.write_styled(text, style) + + call_args = SetConsoleTextAttribute.call_args_list + first_args, first_kwargs = call_args[0] + + expected_attr = ( + 16 | term._default_back + ) # 16 for blue foreground, plus default bg color + assert first_args == (win32_handle,) + assert first_kwargs["attributes"].value == expected_attr + + @patch.object(_win32_console, "FillConsoleOutputCharacter", return_value=None) + @patch.object(_win32_console, "FillConsoleOutputAttribute", return_value=None) + @patch.object( + _win32_console, "GetConsoleScreenBufferInfo", return_value=StubScreenBufferInfo + ) + def test_erase_line( + _, FillConsoleOutputAttribute, FillConsoleOutputCharacter, win32_handle + ): + term = LegacyWindowsTerm(sys.stdout) + term.erase_line() + start = WindowsCoordinates(row=CURSOR_Y, col=0) + FillConsoleOutputCharacter.assert_called_once_with( + win32_handle, " ", length=SCREEN_WIDTH, start=start + ) + FillConsoleOutputAttribute.assert_called_once_with( + win32_handle, DEFAULT_STYLE_ATTRIBUTE, length=SCREEN_WIDTH, start=start + ) + + @patch.object(_win32_console, "FillConsoleOutputCharacter", return_value=None) + @patch.object(_win32_console, "FillConsoleOutputAttribute", return_value=None) + @patch.object( + _win32_console, "GetConsoleScreenBufferInfo", return_value=StubScreenBufferInfo + ) + def test_erase_end_of_line( + _, FillConsoleOutputAttribute, FillConsoleOutputCharacter, win32_handle + ): + term = LegacyWindowsTerm(sys.stdout) + term.erase_end_of_line() + + FillConsoleOutputCharacter.assert_called_once_with( + win32_handle, " ", length=SCREEN_WIDTH - CURSOR_X, start=CURSOR_POSITION + ) + FillConsoleOutputAttribute.assert_called_once_with( + win32_handle, + DEFAULT_STYLE_ATTRIBUTE, + length=SCREEN_WIDTH - CURSOR_X, + start=CURSOR_POSITION, + ) + + @patch.object(_win32_console, "FillConsoleOutputCharacter", return_value=None) + @patch.object(_win32_console, "FillConsoleOutputAttribute", return_value=None) + @patch.object( + _win32_console, "GetConsoleScreenBufferInfo", return_value=StubScreenBufferInfo + ) + def test_erase_start_of_line( + _, FillConsoleOutputAttribute, FillConsoleOutputCharacter, win32_handle + ): + term = LegacyWindowsTerm(sys.stdout) + term.erase_start_of_line() + + start = WindowsCoordinates(CURSOR_Y, 0) + + FillConsoleOutputCharacter.assert_called_once_with( + win32_handle, " ", length=CURSOR_X, start=start + ) + FillConsoleOutputAttribute.assert_called_once_with( + win32_handle, DEFAULT_STYLE_ATTRIBUTE, length=CURSOR_X, start=start + ) + + @patch.object(_win32_console, "SetConsoleCursorPosition", return_value=None) + @patch.object( + _win32_console, "GetConsoleScreenBufferInfo", return_value=StubScreenBufferInfo + ) + def test_move_cursor_to(_, SetConsoleCursorPosition, win32_handle): + coords = WindowsCoordinates(row=4, col=5) + term = LegacyWindowsTerm(sys.stdout) + + term.move_cursor_to(coords) + + SetConsoleCursorPosition.assert_called_once_with(win32_handle, coords=coords) + + @patch.object(_win32_console, "SetConsoleCursorPosition", return_value=None) + @patch.object( + _win32_console, "GetConsoleScreenBufferInfo", return_value=StubScreenBufferInfo + ) + def test_move_cursor_to_out_of_bounds_row( + _, SetConsoleCursorPosition, win32_handle + ): + coords = WindowsCoordinates(row=-1, col=4) + term = LegacyWindowsTerm(sys.stdout) + + term.move_cursor_to(coords) + + assert not SetConsoleCursorPosition.called + + @patch.object(_win32_console, "SetConsoleCursorPosition", return_value=None) + @patch.object( + _win32_console, "GetConsoleScreenBufferInfo", return_value=StubScreenBufferInfo + ) + def test_move_cursor_to_out_of_bounds_col( + _, SetConsoleCursorPosition, win32_handle + ): + coords = WindowsCoordinates(row=10, col=-4) + term = LegacyWindowsTerm(sys.stdout) + + term.move_cursor_to(coords) + + assert not SetConsoleCursorPosition.called + + @patch.object(_win32_console, "SetConsoleCursorPosition", return_value=None) + @patch.object( + _win32_console, "GetConsoleScreenBufferInfo", return_value=StubScreenBufferInfo + ) + def test_move_cursor_up(_, SetConsoleCursorPosition, win32_handle): + term = LegacyWindowsTerm(sys.stdout) + + term.move_cursor_up() + + SetConsoleCursorPosition.assert_called_once_with( + win32_handle, coords=WindowsCoordinates(row=CURSOR_Y - 1, col=CURSOR_X) + ) + + @patch.object(_win32_console, "SetConsoleCursorPosition", return_value=None) + @patch.object( + _win32_console, "GetConsoleScreenBufferInfo", return_value=StubScreenBufferInfo + ) + def test_move_cursor_down(_, SetConsoleCursorPosition, win32_handle): + term = LegacyWindowsTerm(sys.stdout) + + term.move_cursor_down() + + SetConsoleCursorPosition.assert_called_once_with( + win32_handle, coords=WindowsCoordinates(row=CURSOR_Y + 1, col=CURSOR_X) + ) + + @patch.object(_win32_console, "SetConsoleCursorPosition", return_value=None) + @patch.object( + _win32_console, "GetConsoleScreenBufferInfo", return_value=StubScreenBufferInfo + ) + def test_move_cursor_forward(_, SetConsoleCursorPosition, win32_handle): + term = LegacyWindowsTerm(sys.stdout) + + term.move_cursor_forward() + + SetConsoleCursorPosition.assert_called_once_with( + win32_handle, coords=WindowsCoordinates(row=CURSOR_Y, col=CURSOR_X + 1) + ) + + @patch.object(_win32_console, "SetConsoleCursorPosition", return_value=None) + def test_move_cursor_forward_newline_wrap(SetConsoleCursorPosition, win32_handle): + cursor_at_end_of_line = StubScreenBufferInfo( + dwCursorPosition=COORD(SCREEN_WIDTH - 1, CURSOR_Y) + ) + with patch.object( + _win32_console, + "GetConsoleScreenBufferInfo", + return_value=cursor_at_end_of_line, + ): + term = LegacyWindowsTerm(sys.stdout) + term.move_cursor_forward() + + SetConsoleCursorPosition.assert_called_once_with( + win32_handle, coords=WindowsCoordinates(row=CURSOR_Y + 1, col=0) + ) + + @patch.object(_win32_console, "SetConsoleCursorPosition", return_value=None) + @patch.object( + _win32_console, "GetConsoleScreenBufferInfo", return_value=StubScreenBufferInfo + ) + def test_move_cursor_to_column(_, SetConsoleCursorPosition, win32_handle): + term = LegacyWindowsTerm(sys.stdout) + term.move_cursor_to_column(5) + SetConsoleCursorPosition.assert_called_once_with( + win32_handle, coords=WindowsCoordinates(CURSOR_Y, 5) + ) + + @patch.object(_win32_console, "SetConsoleCursorPosition", return_value=None) + @patch.object( + _win32_console, "GetConsoleScreenBufferInfo", return_value=StubScreenBufferInfo + ) + def test_move_cursor_backward(_, SetConsoleCursorPosition, win32_handle): + term = LegacyWindowsTerm(sys.stdout) + term.move_cursor_backward() + SetConsoleCursorPosition.assert_called_once_with( + win32_handle, coords=WindowsCoordinates(row=CURSOR_Y, col=CURSOR_X - 1) + ) + + @patch.object(_win32_console, "SetConsoleCursorPosition", return_value=None) + def test_move_cursor_backward_prev_line_wrap( + SetConsoleCursorPosition, win32_handle + ): + cursor_at_start_of_line = StubScreenBufferInfo( + dwCursorPosition=COORD(0, CURSOR_Y) + ) + with patch.object( + _win32_console, + "GetConsoleScreenBufferInfo", + return_value=cursor_at_start_of_line, + ): + term = LegacyWindowsTerm(sys.stdout) + term.move_cursor_backward() + SetConsoleCursorPosition.assert_called_once_with( + win32_handle, + coords=WindowsCoordinates(row=CURSOR_Y - 1, col=SCREEN_WIDTH - 1), + ) + + @patch.object(_win32_console, "SetConsoleCursorInfo", return_value=None) + @patch.object( + _win32_console, "GetConsoleScreenBufferInfo", return_value=StubScreenBufferInfo + ) + def test_hide_cursor(_, SetConsoleCursorInfo, win32_handle): + term = LegacyWindowsTerm(sys.stdout) + term.hide_cursor() + + call_args = SetConsoleCursorInfo.call_args_list + + assert len(call_args) == 1 + + args, kwargs = call_args[0] + assert kwargs["cursor_info"].bVisible == 0 + assert kwargs["cursor_info"].dwSize == 100 + + @patch.object(_win32_console, "SetConsoleCursorInfo", return_value=None) + @patch.object( + _win32_console, "GetConsoleScreenBufferInfo", return_value=StubScreenBufferInfo + ) + def test_show_cursor(_, SetConsoleCursorInfo, win32_handle): + term = LegacyWindowsTerm(sys.stdout) + term.show_cursor() + + call_args = SetConsoleCursorInfo.call_args_list + + assert len(call_args) == 1 + + args, kwargs = call_args[0] + assert kwargs["cursor_info"].bVisible == 1 + assert kwargs["cursor_info"].dwSize == 100 + + @patch.object(_win32_console, "SetConsoleTitle", return_value=None) + def test_set_title(SetConsoleTitle): + term = LegacyWindowsTerm(sys.stdout) + term.set_title("title") + + SetConsoleTitle.assert_called_once_with("title") + + @patch.object(_win32_console, "SetConsoleTitle", return_value=None) + def test_set_title_too_long(_): + term = LegacyWindowsTerm(sys.stdout) + + with pytest.raises(AssertionError): + term.set_title("a" * 255) diff --git a/tests/test_windows_renderer.py b/tests/test_windows_renderer.py new file mode 100644 index 0000000000..bc24ae95ec --- /dev/null +++ b/tests/test_windows_renderer.py @@ -0,0 +1,141 @@ +import sys +from unittest.mock import call, create_autospec + +import pytest + +try: + from rich._win32_console import LegacyWindowsTerm, WindowsCoordinates + from rich._windows_renderer import legacy_windows_render +except: + # These modules can only be imported on Windows + pass +from rich.segment import ControlType, Segment +from rich.style import Style + +pytestmark = pytest.mark.skipif(sys.platform != "win32", reason="windows only") + + +@pytest.fixture +def legacy_term_mock(): + return create_autospec(LegacyWindowsTerm) + + +def test_text_only(legacy_term_mock): + text = "Hello, world!" + buffer = [Segment(text)] + legacy_windows_render(buffer, legacy_term_mock) + + legacy_term_mock.write_text.assert_called_once_with(text) + + +def test_text_multiple_segments(legacy_term_mock): + buffer = [Segment("Hello, "), Segment("world!")] + legacy_windows_render(buffer, legacy_term_mock) + + assert legacy_term_mock.write_text.call_args_list == [ + call("Hello, "), + call("world!"), + ] + + +def test_text_with_style(legacy_term_mock): + text = "Hello, world!" + style = Style.parse("black on red") + buffer = [Segment(text, style)] + + legacy_windows_render(buffer, legacy_term_mock) + + legacy_term_mock.write_styled.assert_called_once_with(text, style) + + +def test_control_cursor_move_to(legacy_term_mock): + buffer = [Segment("", None, [(ControlType.CURSOR_MOVE_TO, 20, 30)])] + + legacy_windows_render(buffer, legacy_term_mock) + + legacy_term_mock.move_cursor_to.assert_called_once_with( + WindowsCoordinates(row=29, col=19) + ) + + +def test_control_carriage_return(legacy_term_mock): + buffer = [Segment("", None, [(ControlType.CARRIAGE_RETURN,)])] + + legacy_windows_render(buffer, legacy_term_mock) + + legacy_term_mock.write_text.assert_called_once_with("\r") + + +def test_control_home(legacy_term_mock): + buffer = [Segment("", None, [(ControlType.HOME,)])] + + legacy_windows_render(buffer, legacy_term_mock) + + legacy_term_mock.move_cursor_to.assert_called_once_with(WindowsCoordinates(0, 0)) + + +@pytest.mark.parametrize( + "control_type, method_name", + [ + (ControlType.CURSOR_UP, "move_cursor_up"), + (ControlType.CURSOR_DOWN, "move_cursor_down"), + (ControlType.CURSOR_FORWARD, "move_cursor_forward"), + (ControlType.CURSOR_BACKWARD, "move_cursor_backward"), + ], +) +def test_control_cursor_single_cell_movement( + legacy_term_mock, control_type, method_name +): + buffer = [Segment("", None, [(control_type,)])] + + legacy_windows_render(buffer, legacy_term_mock) + + getattr(legacy_term_mock, method_name).assert_called_once_with() + + +@pytest.mark.parametrize( + "erase_mode, method_name", + [ + (0, "erase_end_of_line"), + (1, "erase_start_of_line"), + (2, "erase_line"), + ], +) +def test_control_erase_line(legacy_term_mock, erase_mode, method_name): + buffer = [Segment("", None, [(ControlType.ERASE_IN_LINE, erase_mode)])] + + legacy_windows_render(buffer, legacy_term_mock) + + getattr(legacy_term_mock, method_name).assert_called_once_with() + + +def test_control_show_cursor(legacy_term_mock): + buffer = [Segment("", None, [(ControlType.SHOW_CURSOR,)])] + + legacy_windows_render(buffer, legacy_term_mock) + + legacy_term_mock.show_cursor.assert_called_once_with() + + +def test_control_hide_cursor(legacy_term_mock): + buffer = [Segment("", None, [(ControlType.HIDE_CURSOR,)])] + + legacy_windows_render(buffer, legacy_term_mock) + + legacy_term_mock.hide_cursor.assert_called_once_with() + + +def test_control_cursor_move_to_column(legacy_term_mock): + buffer = [Segment("", None, [(ControlType.CURSOR_MOVE_TO_COLUMN, 3)])] + + legacy_windows_render(buffer, legacy_term_mock) + + legacy_term_mock.move_cursor_to_column.assert_called_once_with(2) + + +def test_control_set_terminal_window_title(legacy_term_mock): + buffer = [Segment("", None, [(ControlType.SET_WINDOW_TITLE, "Hello, world!")])] + + legacy_windows_render(buffer, legacy_term_mock) + + legacy_term_mock.set_title.assert_called_once_with("Hello, world!") diff --git a/tools/make_emoji.py b/tools/make_emoji.py index b23803d501..3a5f2d7979 100644 --- a/tools/make_emoji.py +++ b/tools/make_emoji.py @@ -1,5 +1,3 @@ -from unicodedata import normalize - try: import emoji except ImportError: diff --git a/tools/profile_divide.py b/tools/profile_divide.py new file mode 100644 index 0000000000..73c20294c2 --- /dev/null +++ b/tools/profile_divide.py @@ -0,0 +1,14 @@ +from rich.segment import Segment + +text = """Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.""" + + +segments = [Segment(text[n : n + 7]) for n in range(0, len(text), 7)] + + +from time import perf_counter + +start = perf_counter() +for _ in range(10000): + list(Segment.divide(segments, [0, 1, 20, 24, 65, len(text)])) +print(perf_counter() - start) diff --git a/tools/stress_test_pretty.py b/tools/stress_test_pretty.py index 4a945d1114..334f9cf544 100644 --- a/tools/stress_test_pretty.py +++ b/tools/stress_test_pretty.py @@ -1,6 +1,7 @@ from rich.console import Console from rich.panel import Panel from rich.pretty import Pretty +from rich._timer import timer DATA = { "foo": [1, 2, 3, (), {}, (1, 2, 3), {4, 5, 6, (7, 8, 9)}, "Hello, World"], @@ -15,5 +16,6 @@ }, } console = Console() -for w in range(130): - console.print(Panel(Pretty(DATA, indent_guides=True), width=w)) +with timer("Stress test"): + for w in range(130): + console.print(Panel(Pretty(DATA, indent_guides=True), width=w))