this repo has no description
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

cleanup, reshuffle

alice d855d07a 86845fad

+12 -21
closest_noon_logic.md specs/closest_noon_logic.md
+9 -15
scripts/generate_airport_tz_list.py
··· 14 14 15 15 Usage: 16 16 # Always parse HTML top1000.html, then fallback for missing offsets 17 - python generate_airport_tz_list.py --html top1000.html --out src/c/airport_tz_list.c --top 10 --max-bucket 3 18 - 19 - Dependencies: 20 - pip install airportsdata beautifulsoup4 pandas requests 21 - 22 - This script intentionally re-implements the DST-transition detection logic from 23 - `generate_tz_list.py` so it can remain self-contained. 17 + python generate_airport_tz_list.py --html top1000.html --out src/c/airport_tz_list.c --top 10 --max-bucket 1000 24 18 """ 25 19 from __future__ import annotations 26 20 27 21 import argparse 28 22 import sys 29 23 from pathlib import Path 30 - from datetime import datetime, timedelta, timezone 24 + from datetime import datetime, timezone 31 25 from typing import Dict, List, Tuple 32 - from tz_common import get_tz_details as _get_tz_details, find_dst_transitions as _find_dst_transitions 26 + from tz_common import find_dst_transitions as _find_dst_transitions 33 27 from bs4 import BeautifulSoup # type: ignore 34 - import airportsdata # pip install airportsdata 35 - import pandas as pd # pip install pandas pyarrow 36 - import requests 37 - import io 38 - import gzip 28 + import airportsdata 29 + import pandas as pd 39 30 40 31 # --------------------------------------------------------------------------- 41 32 # Build ranked list of airports with route counts (fallback if HTML omitted) ··· 346 337 parser = argparse.ArgumentParser( 347 338 description="Generate airport_tz_list.c: hybrid grouping by standard offset, split DST buckets, fallback for missing offsets" 348 339 ) 340 + 341 + default_html_path = Path(__file__).parent / "top1000.html" 349 342 parser.add_argument( 350 343 "--html", 351 344 type=Path, 352 - default=Path("top1000.html"), 345 + default=default_html_path, 353 346 help="Path to GetToCenter HTML file (top1000.html)", 354 347 ) 348 + 355 349 default_out_path = Path(__file__).parent / "../src/c/airport_tz_list.c" 356 350 parser.add_argument( 357 351 "--out",
+3 -5
scripts/generate_tz_list.py
··· 1 1 # Requires Python 3.9+ for zoneinfo 2 2 import zoneinfo 3 - from datetime import datetime, timedelta, timezone 3 + from datetime import datetime 4 4 from os import path 5 - # No unused imports found (time is used for .timestamp()) 6 - 7 - # Removed local caching and DST logic imports; using shared tz_common instead 8 - from tz_common import get_tz_details, find_dst_transitions as find_dst_transitions_accurate 5 + # Use shared DST tools 6 + from tz_common import find_dst_transitions as find_dst_transitions_accurate 9 7 10 8 def generate_tz_list_c_code(): 11 9 """Generates C code for a static timezone list with DST transition timestamps."""
-1
scripts/tz_common.py
··· 1 1 # tz_common.py 2 2 """Common timezone utilities shared by both generators.""" 3 - from __future__ import annotations 4 3 from datetime import datetime, timedelta, timezone 5 4 import zoneinfo 6 5 from functools import lru_cache
top1000.html scripts/top1000.html