farepy.base#
Normalized data model for multi-source flight search.
Classes
|
A single bookable flight option, normalized across all sources. |
|
Protocol that all source adapters implement. |
|
One direction of travel (outbound or return). |
|
Normalized search parameters. |
|
Container for search results with metadata. |
|
A single flight leg (one takeoff-to-landing). |
- class farepy.base.FlightOffer(source, outbound, price, currency, airlines, inbound=None, booking_url=None, raw=None)[source]#
Bases:
objectA single bookable flight option, normalized across all sources.
- class farepy.base.FlightSource(*args, **kwargs)[source]#
Bases:
ProtocolProtocol that all source adapters implement.
- class farepy.base.Itinerary(segments, duration_minutes=None)[source]#
Bases:
objectOne direction of travel (outbound or return).
- class farepy.base.SearchRequest(origin, destination, departure_date, return_date=None, adults=1, currency='EUR', max_results=50, non_stop=None, outbound_departure_after=None, outbound_departure_before=None, outbound_arrival_after=None, outbound_arrival_before=None, inbound_departure_after=None, inbound_departure_before=None, inbound_arrival_after=None, inbound_arrival_before=None)[source]#
Bases:
objectNormalized search parameters.
- class farepy.base.SearchResult(request, offers, sources_queried, sources_failed, searched_at, cached=False)[source]#
Bases:
objectContainer for search results with metadata.
- class farepy.base.Segment(departure_airport, arrival_airport, departure_time, arrival_time, carrier, carrier_name=None, flight_number=None, duration_minutes=None, aircraft=None)[source]#
Bases:
objectA single flight leg (one takeoff-to-landing).
**Times are local wall-clock times at the airport they refer to, with no zone** (
departure_timeatdeparture_airport,arrival_timeatarrival_airport), which is how airlines and every source publish them. They are naive on purpose: attaching a zone would need an airport-to-zone table this package does not carry. So compare or sort them only against times at the same airport (e.g. filtering departures from one origin); a departure and an arrival in different zones cannot be subtracted to get a flight time – useduration_minutesfor that.SearchResult.searched_atis the one timestamp that is UTC (seefarepy.util.now_iso()). A source that does not report a time leaves it as"".