This is an automated email from the ASF dual-hosted git repository. potiuk pushed a commit to branch v1-10-test in repository https://gitbox.apache.org/repos/asf/airflow.git
commit eb7d914492d580dd06c05b5c114b9f9792b6de38 Author: Kaxil Naik <[email protected]> AuthorDate: Tue Nov 10 00:54:47 2020 +0000 Beautify Output of setup-installation pre-commit (#12218) (cherry picked from commit 08d67add52c293333f9f29f6e786e2f4e6591cdf) --- .pre-commit-config.yaml | 1 + .../pre_commit_check_setup_installation.py | 29 ++++++++++++++-------- 2 files changed, 19 insertions(+), 11 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index cb5c753..e626cd4 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -219,6 +219,7 @@ repos: files: ^setup.py$|^docs/installation.rst$ pass_filenames: false entry: ./scripts/ci/pre_commit/pre_commit_check_setup_installation.py + additional_dependencies: ['rich==9.2.0'] - id: update-breeze-file name: Update output of breeze command in BREEZE.rst entry: "./scripts/ci/pre_commit/pre_commit_breeze_cmd_line.sh" diff --git a/scripts/ci/pre_commit/pre_commit_check_setup_installation.py b/scripts/ci/pre_commit/pre_commit_check_setup_installation.py index b4f3281..e386461 100755 --- a/scripts/ci/pre_commit/pre_commit_check_setup_installation.py +++ b/scripts/ci/pre_commit/pre_commit_check_setup_installation.py @@ -26,6 +26,10 @@ import sys from os.path import dirname from typing import Dict, List +from rich import print as rprint +from rich.console import Console +from rich.table import Table + AIRFLOW_SOURCES_DIR = os.path.join(dirname(__file__), os.pardir, os.pardir, os.pardir) SETUP_PY_FILE = 'setup.py' DOCS_FILE = 'installation.rst' @@ -80,30 +84,33 @@ if __name__ == '__main__': setup_packages = get_extras_from_setup() docs_packages = get_extras_from_docs() - output_table = "" + table = Table() + table.add_column("NAME", justify="right", style="cyan") + table.add_column("SETUP", justify="center", style="magenta") + table.add_column("INSTALLATION", justify="center", style="green") for extras in sorted(setup_packages.keys()): if not set(setup_packages[extras]).intersection(docs_packages): - output_table += "| {:20} | {:^10} | {:^10} |\n".format(extras, "V", "") + table.add_row(extras, "V", "") setup_packages_str = str(setup_packages) for extras in sorted(docs_packages): if f"'{extras}'" not in setup_packages_str: - output_table += "| {:20} | {:^10} | {:^10} |\n".format(extras, "", "V") + table.add_row(extras, "", "V") - if output_table == "": + if table.row_count == 0: sys.exit(0) - print(f""" -ERROR + rprint(f"""\ +[red bold]ERROR!![/red bold] -"EXTRAS_REQUIREMENTS" section in {SETUP_PY_FILE} should be synchronized -with "Extra Packages" section in documentation file doc/{DOCS_FILE}. +"EXTRAS_REQUIREMENTS" section in [bold yellow]{SETUP_PY_FILE}[/bold yellow] should be synchronized +with "Extra Packages" section in documentation file [bold yellow]doc/{DOCS_FILE}[/bold yellow]. -here is a list of packages that are used but are not documented, or +Here is a list of packages that are used but are not documented, or documented although not used. """) - print(".{:_^22}.{:_^12}.{:_^12}.".format("NAME", "SETUP", "INSTALLATION")) - print(output_table) + console = Console() + console.print(table) sys.exit(1)
