Skip to content

flight-cli: bump fli (flights) 0.8.5 → 0.9.0#30

Merged
ak2k merged 2 commits into
mainfrom
worktree-flights-090-bump
Jun 15, 2026
Merged

flight-cli: bump fli (flights) 0.8.5 → 0.9.0#30
ak2k merged 2 commits into
mainfrom
worktree-flights-090-bump

Conversation

@ak2k

@ak2k ak2k commented Jun 15, 2026

Copy link
Copy Markdown
Owner

Summary

Bumps fli (PyPI flights) from 0.8.5 → 0.9.0 and adapts to the breaking changes in 0.9.0's "full Google Flights API parity" refactor.

What changed in 0.9.0 (and our fix)

  • The three response-row parsers moved off SearchFlights into fli.search._decoders (_parse_airline / _parse_airport / _parse_datetime) — same signatures, same AttributeError-on-unknown contract. Repointed _flight_leg (_gflight_ids.py) and apply_gf_native_filters (fli_bridge.py) to the new location.
    • These are a private module, so the imports carry annotated reportPrivateUsage ignores with a # DIVERGE rationale (no public equivalent — fli.core.parsers has no datetime parser). The carrier round-trip tests guard against a future relocation.
  • Airport / Airline became dynamic functional enums → static attribute access (Airport.JFK) no longer resolves. Switched the affected test to enum-subscript (Airport["JFK"]).
  • SearchFlights._parse_price_info and .BASE_URL are unchanged — kept as-is.

Diff is minimal: 5 files, +29/−15. Only flights moves in the lock (no transitive churn).

Why this also matters

0.9.0 fixes fli's SearchDates >61-day chunk filter-drop upstream (the bug we work around with our own ≤61-day chunking in _gf_dategrid). That workaround is now redundant — still correct, left for a follow-up cleanup.

Verification

  • make check green — ruff, ruff format --check, basedpyright strict, 501 tests.
  • Live smoke:
    • Pure GF search (--backend gflight) — non-empty, correct booking carriers, PointsPath flightId join intact.
    • LH+ routing — native Lufthansa filtering on the GF backend + award data.
    • GF throttle (code-13) detected and degraded to Matrix cleanly.
    • Date-grid --fast is covered by type + unit tests against 0.9.0's models (_parse_grid reads Google's raw wire format, which is fli-version-independent); a fresh live re-confirm was blocked only by the per-IP GF throttle.

ak2k added 2 commits June 14, 2026 22:43
0.9.0's GF API-parity refactor relocated three response-row parsers off SearchFlights into fli.search._decoders (same signatures, same AttributeError-on-unknown contract), and turned Airport/Airline into dynamic functional enums. Repoint _flight_leg and apply_gf_native_filters to the new decoder location; switch the affected test to enum-subscript access. SearchFlights._parse_price_info and .BASE_URL are unchanged.

0.9.0 also fixes fli's SearchDates >61-day chunk filter-drop upstream, so the local <=61-day chunking in _gf_dategrid is now redundant (still correct; left for a follow-up).

make check green (ruff, basedpyright strict, 501 tests). Live-smoked: pure GF search, LH+ native carrier routing, and throttle degrade-to-Matrix.
…-drop

Update the date-grid memory: the chunk filter-drop is fixed upstream in 0.9.0 (we now require flights>=0.9); the local <=61-day chunking is now redundant (work-orp1i tracks simplifying it).
@ak2k ak2k merged commit 7392b1c into main Jun 15, 2026
2 checks passed
@ak2k ak2k deleted the worktree-flights-090-bump branch June 15, 2026 02:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant