Skip to content

Commit

Permalink
Refactor: lists and paths in dev (#33626)
Browse files Browse the repository at this point in the history
  • Loading branch information
eumiro authored Aug 24, 2023
1 parent e0c40c5 commit 1953648
Show file tree
Hide file tree
Showing 13 changed files with 41 additions and 69 deletions.
2 changes: 1 addition & 1 deletion airflow/providers/google/cloud/operators/spanner.py
Original file line number Diff line number Diff line change
Expand Up @@ -302,7 +302,7 @@ def sanitize_queries(queries: list[str]) -> None:
:param queries: queries
"""
if queries and queries[-1] == "":
del queries[-1]
queries.pop()


class SpannerDeployDatabaseInstanceOperator(GoogleCloudBaseOperator):
Expand Down
2 changes: 1 addition & 1 deletion dev/assign_cherry_picked_prs_with_milestone.py
Original file line number Diff line number Diff line change
Expand Up @@ -381,7 +381,7 @@ def assign_prs(
if output_folder:

def write_commits(type: str, path: Path, changes_to_write: list[Change]):
path.write_text("\n".join(change.short_hash for change in changes_to_write) + "\n")
path.write_text("".join(f"{change.short_hash}\n" for change in changes_to_write))
console.print(f"\n{type} commits written in {path}")

write_commits("Changelog", Path(output_folder) / CHANGELOG_CHANGES_FILE, changelog_changes)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1323,7 +1323,7 @@ def update_comment(content: str, comment_file: Path) -> str:
updated_lines.extend(comment_lines)
updated = True
updated_lines.append(line)
return "\n".join(updated_lines) + "\n"
return "".join(f"{line}\n" for line in updated_lines)


def modify_single_file_constraints(
Expand Down
2 changes: 1 addition & 1 deletion dev/breeze/src/airflow_breeze/commands/setup_commands.py
Original file line number Diff line number Diff line change
Expand Up @@ -310,7 +310,7 @@ def get_command_hash_export() -> str:
hashes.append(f"{command}:{dict_hash(current_command_hash_dict)}")
else:
hashes.append(f"{command}:{dict_hash(current_command_hash_dict)}")
return "\n".join(hashes) + "\n"
return "".join(f"{h}\n" for h in hashes)


def write_to_shell(command_to_execute: str, script_path: str, force_setup: bool) -> bool:
Expand Down
45 changes: 14 additions & 31 deletions dev/breeze/src/airflow_breeze/utils/add_back_references.py
Original file line number Diff line number Diff line change
Expand Up @@ -39,8 +39,7 @@ def download_file(url):
file_name = temp_dir / "redirects.txt"
filedata = urlopen(url)
data = filedata.read()
with open(file_name, "wb") as f:
f.write(data)
file_name.write_bytes(data)
return True, file_name
except URLError as e:
if e.reason == "Not Found":
Expand All @@ -52,27 +51,14 @@ def download_file(url):

def construct_old_to_new_tuple_mapping(file_name: Path) -> list[tuple[str, str]]:
old_to_new_tuples: list[tuple[str, str]] = []
with open(file_name) as f:
file_content = []
lines = f.readlines()
# Skip empty line

for line in lines:
if not line.strip():
continue

# Skip comments
if line.startswith("#"):
continue

line = line.rstrip()
file_content.append(line)

old_path, new_path = line.split(" ")
old_path = old_path.replace(".rst", ".html")
new_path = new_path.replace(".rst", ".html")

old_to_new_tuples.append((old_path, new_path))
with file_name.open() as f:
for line in f:
line = line.strip()
if line and not line.startswith("#"):
old_path, new_path = line.split(" ")
old_path = old_path.replace(".rst", ".html")
new_path = new_path.replace(".rst", ".html")
old_to_new_tuples.append((old_path, new_path))
return old_to_new_tuples


Expand Down Expand Up @@ -119,17 +105,14 @@ def generate_back_references(link: str, base_path: Path):
old_to_new.append(("index.html", "security.html"))
old_to_new.append(("security.html", "security/security-model.html"))

versions = [f.path.split("/")[-1] for f in os.scandir(base_path) if f.is_dir()]
for version in versions:
print(f"Processing {base_path}, version: {version}")
versioned_provider_path = base_path / version
for versioned_provider_path in (p for p in base_path.iterdir() if p.is_dir()):
print(f"Processing {base_path}, version: {versioned_provider_path.name}")

for old, new in old_to_new:
# only if old file exists, add the back reference
if os.path.exists(versioned_provider_path / old):
split_new_path = new.split("/")
file_name = new.split("/")[-1]
dest_dir = versioned_provider_path.joinpath(*split_new_path[: len(split_new_path) - 1])
if (versioned_provider_path / old).exists():
split_new_path, file_name = new.rsplit("/", 1)
dest_dir = versioned_provider_path / split_new_path

# finds relative path of old file with respect to new and handles case of different file
# names also
Expand Down
2 changes: 1 addition & 1 deletion dev/breeze/src/airflow_breeze/utils/cdxgen.py
Original file line number Diff line number Diff line change
Expand Up @@ -205,7 +205,7 @@ def get_requirements_for_provider(
)
get_console().print(provider_packages)
provider_file = target_dir / provider_file_name
provider_file.write_text("\n".join(provider_packages) + "\n")
provider_file.write_text("".join(f"{p}\n" for p in provider_packages))
get_console().print(
f"[success]Generated {provider_id}:{provider_version} requirements in {provider_file}"
)
Expand Down
4 changes: 2 additions & 2 deletions dev/breeze/src/airflow_breeze/utils/docs_errors.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,9 +25,9 @@

from airflow_breeze.utils.publish_docs_helpers import CONSOLE_WIDTH, prepare_code_snippet

CURRENT_DIR = os.path.abspath(os.path.join(os.path.dirname(__file__)))
CURRENT_DIR = Path(__file__).resolve().parent
ROOT_PROJECT_DIR = Path(__file__).parents[5].resolve()
DOCS_DIR = os.path.join(ROOT_PROJECT_DIR, "docs")
DOCS_DIR = ROOT_PROJECT_DIR / "docs"

console = Console(force_terminal=True, color_system="standard", width=CONSOLE_WIDTH)

Expand Down
6 changes: 2 additions & 4 deletions dev/breeze/src/airflow_breeze/utils/helm_chart_utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,17 +16,15 @@
# under the License.
from __future__ import annotations

import os
from pathlib import Path

import yaml

CHART_DIR = Path(__file__).resolve().parents[5] / "chart"
CHART_YAML_PATH = os.path.join(CHART_DIR, "Chart.yaml")
CHART_YAML_PATH = Path(__file__).resolve().parents[5] / "chart" / "Chart.yaml"


def chart_yaml() -> dict:
with open(CHART_YAML_PATH) as f:
with CHART_YAML_PATH.open() as f:
return yaml.safe_load(f)


Expand Down
2 changes: 1 addition & 1 deletion dev/breeze/src/airflow_breeze/utils/spelling_checks.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@

from airflow_breeze.utils.publish_docs_helpers import CONSOLE_WIDTH, prepare_code_snippet

CURRENT_DIR = os.path.abspath(os.path.join(os.path.dirname(__file__)))
CURRENT_DIR = Path(__file__).resolve().parent
ROOT_PROJECT_DIR = Path(__file__).parents[5].resolve()
DOCS_DIR = os.path.join(ROOT_PROJECT_DIR, "docs")

Expand Down
31 changes: 12 additions & 19 deletions dev/perf/scheduler_dag_execution_timing.py
Original file line number Diff line number Diff line change
Expand Up @@ -268,8 +268,7 @@ def main(num_runs, repeat, pre_create_dag_runs, executor_class, dag_ids):
if end_date != next_info.logical_date:
message = (
f"DAG {dag_id} has incorrect end_date ({end_date}) for number of runs! "
f"It should be "
f" {next_info.logical_date}"
f"It should be {next_info.logical_date}"
)
sys.exit(message)

Expand Down Expand Up @@ -297,35 +296,29 @@ def main(num_runs, repeat, pre_create_dag_runs, executor_class, dag_ids):
code_to_test = lambda: run_job(job=job_runner.job, execute_callable=job_runner._execute)

for count in range(repeat):
gc.disable()
start = time.perf_counter()

code_to_test()
times.append(time.perf_counter() - start)
gc.enable()
print("Run %d time: %.5f" % (count + 1, times[-1]))

if count + 1 != repeat:
if not count:
with db.create_session() as session:
for dag in dags:
reset_dag(dag, session)

executor.reset(dag_ids)
scheduler_job = Job(executor=executor)
job_runner = SchedulerJobRunner(job=scheduler_job, dag_ids=dag_ids, do_pickle=False)
executor.scheduler_job = scheduler_job

gc.disable()
start = time.perf_counter()
code_to_test()
times.append(time.perf_counter() - start)
gc.enable()
print(f"Run {count + 1} time: {times[-1]:.5f}")

print()
print()
msg = "Time for %d dag runs of %d dags with %d total tasks: %.4fs"

print(f"Time for {num_runs} dag runs of {len(dags)} dags with {total_tasks} total tasks: ", end="")
if len(times) > 1:
print(
(msg + " (±%.3fs)")
% (num_runs, len(dags), total_tasks, statistics.mean(times), statistics.stdev(times))
)
print(f"{statistics.mean(times):.4f}s (±{statistics.stdev(times):.3f}s)")
else:
print(msg % (num_runs, len(dags), total_tasks, times[0]))
print(f"{times[0]:.4f}s")

print()
print()
Expand Down
2 changes: 1 addition & 1 deletion dev/perf/sql_queries.py
Original file line number Diff line number Diff line change
Expand Up @@ -145,7 +145,7 @@ def make_report() -> list[Query]:
for query in raw_queries:
time, info, stack, sql = query.replace("@SQLALCHEMY ", "").split("|$")
func, file, loc = info.split(":")
file_name = file.rpartition("/")[-1] if "/" in file else file
file_name = file.rpartition("/")[-1]
queries.append(
Query(
function=func.strip(),
Expand Down
7 changes: 3 additions & 4 deletions dev/prepare_release_issue.py
Original file line number Diff line number Diff line change
Expand Up @@ -212,13 +212,12 @@ def print_issue_content(
if is_helm_chart:
link = f"https://dist.apache.org/repos/dist/dev/airflow/{current_release}"
link_text = f"Apache Airflow Helm Chart {current_release.split('/')[-1]}"
pr_list = list(pull_requests.keys())
pr_list.sort()
user_logins: dict[int, str] = {pr: "@" + " @".join(users[pr]) for pr in users}
pr_list = sorted(pull_requests.keys())
user_logins: dict[int, str] = {pr: " ".join(f"@{u}" for u in uu) for pr, uu in users.items()}
all_users: set[str] = set()
for user_list in users.values():
all_users.update(user_list)
all_user_logins = "@" + " @".join(all_users)
all_user_logins = " ".join(f"@{u}" for u in all_users)
content = render_template(
template_name="ISSUE",
context={
Expand Down
3 changes: 1 addition & 2 deletions dev/provider_packages/prepare_provider_packages.py
Original file line number Diff line number Diff line change
Expand Up @@ -353,8 +353,7 @@ def apply_version_suffix(install_clause: str) -> str:
install_requires = [
apply_version_suffix(clause) for clause in ALL_DEPENDENCIES[provider_package_id][DEPS]
]
prefix = "\n "
return prefix + prefix.join(install_requires)
return "".join(f"\n {ir}" for ir in install_requires)


def get_setup_requirements() -> str:
Expand Down

0 comments on commit 1953648

Please sign in to comment.