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)

Reply via email to