···14141515Usage:
1616 # Always parse HTML top1000.html, then fallback for missing offsets
1717- python generate_airport_tz_list.py --html top1000.html --out src/c/airport_tz_list.c --top 10 --max-bucket 3
1818-1919-Dependencies:
2020- pip install airportsdata beautifulsoup4 pandas requests
2121-2222-This script intentionally re-implements the DST-transition detection logic from
2323-`generate_tz_list.py` so it can remain self-contained.
1717+ python generate_airport_tz_list.py --html top1000.html --out src/c/airport_tz_list.c --top 10 --max-bucket 1000
2418"""
2519from __future__ import annotations
26202721import argparse
2822import sys
2923from pathlib import Path
3030-from datetime import datetime, timedelta, timezone
2424+from datetime import datetime, timezone
3125from typing import Dict, List, Tuple
3232-from tz_common import get_tz_details as _get_tz_details, find_dst_transitions as _find_dst_transitions
2626+from tz_common import find_dst_transitions as _find_dst_transitions
3327from bs4 import BeautifulSoup # type: ignore
3434-import airportsdata # pip install airportsdata
3535-import pandas as pd # pip install pandas pyarrow
3636-import requests
3737-import io
3838-import gzip
2828+import airportsdata
2929+import pandas as pd
39304031# ---------------------------------------------------------------------------
4132# Build ranked list of airports with route counts (fallback if HTML omitted)
···346337 parser = argparse.ArgumentParser(
347338 description="Generate airport_tz_list.c: hybrid grouping by standard offset, split DST buckets, fallback for missing offsets"
348339 )
340340+341341+ default_html_path = Path(__file__).parent / "top1000.html"
349342 parser.add_argument(
350343 "--html",
351344 type=Path,
352352- default=Path("top1000.html"),
345345+ default=default_html_path,
353346 help="Path to GetToCenter HTML file (top1000.html)",
354347 )
348348+355349 default_out_path = Path(__file__).parent / "../src/c/airport_tz_list.c"
356350 parser.add_argument(
357351 "--out",
+3-5
scripts/generate_tz_list.py
···11# Requires Python 3.9+ for zoneinfo
22import zoneinfo
33-from datetime import datetime, timedelta, timezone
33+from datetime import datetime
44from os import path
55-# No unused imports found (time is used for .timestamp())
66-77-# Removed local caching and DST logic imports; using shared tz_common instead
88-from tz_common import get_tz_details, find_dst_transitions as find_dst_transitions_accurate
55+# Use shared DST tools
66+from tz_common import find_dst_transitions as find_dst_transitions_accurate
97108def generate_tz_list_c_code():
119 """Generates C code for a static timezone list with DST transition timestamps."""