You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airflow.apache.org by po...@apache.org on 2023/10/29 20:03:57 UTC
(airflow) 01/02: Fix bulding and publishing of the documentation (Breeze merge conflicts)
This is an automated email from the ASF dual-hosted git repository.
potiuk pushed a commit to branch v2-7-test
in repository https://gitbox.apache.org/repos/asf/airflow.git
commit 65310cba9e4f093f28372d5cd2ae2ecb2d8d10a0
Author: Jarek Potiuk <ja...@potiuk.com>
AuthorDate: Sun Oct 29 20:52:33 2023 +0100
Fix bulding and publishing of the documentation (Breeze merge conflicts)
---
.../airflow_breeze/utils/publish_docs_builder.py | 49 ++++++++++++----------
1 file changed, 28 insertions(+), 21 deletions(-)
diff --git a/dev/breeze/src/airflow_breeze/utils/publish_docs_builder.py b/dev/breeze/src/airflow_breeze/utils/publish_docs_builder.py
index cb0fba3d81..e5dcc1be22 100644
--- a/dev/breeze/src/airflow_breeze/utils/publish_docs_builder.py
+++ b/dev/breeze/src/airflow_breeze/utils/publish_docs_builder.py
@@ -24,12 +24,11 @@ from glob import glob
from pathlib import Path
from subprocess import run
-from rich.console import Console
-
from airflow_breeze.global_constants import get_airflow_version
+from airflow_breeze.utils.console import Output, get_console
from airflow_breeze.utils.docs_errors import DocBuildError, parse_sphinx_warnings
from airflow_breeze.utils.helm_chart_utils import chart_version
-from airflow_breeze.utils.publish_docs_helpers import CONSOLE_WIDTH, load_package_data, pretty_format_path
+from airflow_breeze.utils.publish_docs_helpers import load_package_data, pretty_format_path
from airflow_breeze.utils.spelling_checks import SpellingError, parse_spelling_warnings
PROCESS_TIMEOUT = 15 * 60
@@ -37,14 +36,14 @@ PROCESS_TIMEOUT = 15 * 60
ROOT_PROJECT_DIR = Path(__file__).parents[5].resolve()
DOCS_DIR = os.path.join(ROOT_PROJECT_DIR, "docs")
-console = Console(force_terminal=True, color_system="standard", width=CONSOLE_WIDTH)
-
class PublishDocsBuilder:
"""Documentation builder for Airflow Docs Publishing."""
- def __init__(self, package_name: str):
+ def __init__(self, package_name: str, output: Output | None, verbose: bool):
self.package_name = package_name
+ self.output = output
+ self.verbose = verbose
@property
def _doctree_dir(self) -> str:
@@ -153,11 +152,13 @@ class PublishDocsBuilder:
env = os.environ.copy()
env["AIRFLOW_PACKAGE_NAME"] = self.package_name
if verbose:
- console.print(
+ get_console(output=self.output).print(
f"[info]{self.package_name:60}:[/] Executing cmd: ",
" ".join(shlex.quote(c) for c in build_cmd),
)
- console.print(f"[info]{self.package_name:60}:[/] The output is hidden until an error occurs.")
+ get_console(output=self.output).print(
+ f"[info]{self.package_name:60}:[/] The output is hidden until an error occurs."
+ )
with open(self.log_spelling_filename, "w") as output:
completed_proc = run(
build_cmd,
@@ -186,14 +187,16 @@ class PublishDocsBuilder:
warning_text += spelling_file.read()
spelling_errors.extend(parse_spelling_warnings(warning_text, self._src_dir))
- console.print(f"[info]{self.package_name:60}:[/] [red]Finished spell-checking with errors[/]")
+ get_console(output=self.output).print(
+ f"[info]{self.package_name:60}:[/] [red]Finished spell-checking with errors[/]"
+ )
else:
if spelling_errors:
- console.print(
+ get_console(output=self.output).print(
f"[info]{self.package_name:60}:[/] [yellow]Finished spell-checking with warnings[/]"
)
else:
- console.print(
+ get_console(output=self.output).print(
f"[info]{self.package_name:60}:[/] [green]Finished spell-checking successfully[/]"
)
return spelling_errors
@@ -226,12 +229,12 @@ class PublishDocsBuilder:
env = os.environ.copy()
env["AIRFLOW_PACKAGE_NAME"] = self.package_name
if verbose:
- console.print(
+ get_console(output=self.output).print(
f"[info]{self.package_name:60}:[/] Executing cmd: ",
" ".join(shlex.quote(c) for c in build_cmd),
)
else:
- console.print(
+ get_console(output=self.output).print(
f"[info]{self.package_name:60}:[/] Running sphinx. "
f"The output is hidden until an error occurs."
)
@@ -259,32 +262,36 @@ class PublishDocsBuilder:
warning_text = re.sub(r"\x1B[@-_][0-?]*[ -/]*[@-~]", "", warning_text)
build_errors.extend(parse_sphinx_warnings(warning_text, self._src_dir))
if build_errors:
- console.print(f"[info]{self.package_name:60}:[/] [red]Finished docs building with errors[/]")
+ get_console(output=self.output).print(
+ f"[info]{self.package_name:60}:[/] [red]Finished docs building with errors[/]"
+ )
else:
- console.print(f"[info]{self.package_name:60}:[/] [green]Finished docs building successfully[/]")
+ get_console(output=self.output).print(
+ f"[info]{self.package_name:60}:[/] [green]Finished docs building successfully[/]"
+ )
return build_errors
def publish(self, override_versioned: bool, airflow_site_dir: str):
"""Copy documentation packages files to airflow-site repository."""
- console.print(f"Publishing docs for {self.package_name}")
+ get_console(output=self.output).print(f"Publishing docs for {self.package_name}")
output_dir = os.path.join(airflow_site_dir, self._publish_dir)
pretty_source = pretty_format_path(self._build_dir, os.getcwd())
pretty_target = pretty_format_path(output_dir, airflow_site_dir)
- console.print(f"Copy directory: {pretty_source} => {pretty_target}")
+ get_console(output=self.output).print(f"Copy directory: {pretty_source} => {pretty_target}")
if os.path.exists(output_dir):
if self.is_versioned:
if override_versioned:
- console.print(f"Overriding previously existing {output_dir}! ")
+ get_console(output=self.output).print(f"Overriding previously existing {output_dir}! ")
else:
- console.print(
+ get_console(output=self.output).print(
f"Skipping previously existing {output_dir}! "
f"Delete it manually if you want to regenerate it!"
)
- console.print()
+ get_console(output=self.output).print()
return
shutil.rmtree(output_dir)
shutil.copytree(self._build_dir, output_dir)
if self.is_versioned:
with open(os.path.join(output_dir, "..", "stable.txt"), "w") as stable_file:
stable_file.write(self._current_version)
- console.print()
+ get_console(output=self.output).print()