Skip to main content

A helper that interacts with low-cost air carrier's API and helps to find cheap flights.

Project description

Flight Finder App is a Python package for searching flights (only Ryanair at the moment). It provides Command-line interface (CLI) capabilities for aquick and simple search or could be used as a library in your code.

Installation

pip install FlightFinderApp-JG

Using command-line interface

Flight Finder App CLI provides two commands:

  • findFlights
  • findAirportCode
Usage: FlightFinderApp findflights [OPTIONS]

Options:
  -d, --departurecode TEXT       The starting point of your trip. Specify your
                                 departure airport code
  -a, --arrivalcode TEXT         The final point of your trip. Specify your
                                 arrival airport code
  -r, --includereturnflight      Includes return flights into search results
  -o, --outbounddatefrom TEXT    Start date of your trip. If not specified,
                                 then today date is set
  -p, --pricevalue INTEGER       Max price for one way / return flights. It
                                 does not apply to total price of connecting
                                 flights  [default: 999]
  -f, --dateflexibility INTEGER  Extends the search period by so many days
                                 (outbound date +/- date flexibility)
                                 [default: 2]
  -t, --tripduration INTEGER     Date of the return flight is set by adding
                                 the trip duration to outbound date  [default:
                                 7]

Usage: FlightFinderApp findairportcode [OPTIONS]

Options:
  --city TEXT     Returns a list of airport codes that are bases of Ryanair in
                  the specified city
  --country TEXT  Returns a list of cities and airport codes that are bases of
                  Ryanair in the specified country

Using as a library

Creating an instance:

from FlightFinderApp_JG.FlightManager import RyanairFlights

ryanairFlights = RyanairFlights()

All you need is the find_flights function. To search for a return flight between two airports which price is bellow 50Eur

ryanairFlights.find_flights(departure_airport_code="KUN",
                            arrival_airport_code="BER",
                            is_return_trip=True,
                            price_value_to=50)

Result:

{
  "outbound": {
    "departureCountry": "Lithuania",
    "departureCity": "Kaunas",
    "departureIATACode": "KUN",
    "arrivalCountry": "Germany",
    "arrivalCity": "Berlin",
    "arrivalIATACode": "BER",
    "departureDate": "2024-05-14T09:50:00",
    "arrivalDate": "2024-05-14T10:30:00",
    "price": 21.99,
    "currency": "EUR",
    "priceUpdatedOn": 1715243865000
  },
  "summary": {
    "price": 34.98,
    "currency": "EUR",
    "tripDuration": 7
  },
  "inbound": {
    "departureCountry": "Germany",
    "departureCity": "Berlin",
    "departureIATACode": "BER",
    "arrivalCountry": "Lithuania",
    "arrivalCity": "Kaunas",
    "arrivalIATACode": "KUN",
    "departureDate": "2024-05-21T06:35:00",
    "arrivalDate": "2024-05-21T09:10:00",
    "price": 12.99,
    "currency": "EUR",
    "priceUpdatedOn": 1715237050000
  }
}

If no results are returned, try to specify the following parameters:

  • date_flexibility_in_days
  • trip_duration_in_days
ryanairFlights.find_flights(departure_airport_code="KUN",
                            arrival_airport_code="BER",
                            is_return_trip=True,
                            price_value_to=50,
                            date_flexibility_in_days=5,
                            trip_duration_in_days=10)

If direct flight between two airports is not found, then a connecting flight could be suggested (if such exists, remember, we're operating only with Ryanair flights)

Searching for a flight between two airports, but we already know that direct flight does not exist. Also, we have defined our trip start date:

ryanairFlights.find_flights(departure_airport_code="KUN",
                            arrival_airport_code="OPO",
                            is_return_trip=True,
                            outbound_date="2024-06-10",
                            date_flexibility_in_days=10,
                            trip_duration_in_days=10)

Result:

{
  "outbound": {
    "toConnecting": {
      "departureCity": "Kaunas",
      "departureIataCode": "KUN",
      "arrivalCity": "Alicante",
      "arrivalIataCode": "ALC",
      "departureDate": "2024-06-04T06:00:00",
      "arrivalDate": "2024-06-04T09:00:00",
      "price": 97.81,
      "currency": "EUR",
      "priceUpdatedOn": 1715247806000
    },
    "fromConnecting": {
      "departureCity": "Alicante",
      "departureIataCode": "ALC",
      "arrivalCity": "Porto",
      "arrivalIataCode": "OPO",
      "departureDate": "2024-06-05T11:40:00",
      "arrivalDate": "2024-06-05T12:20:00",
      "price": 19.99,
      "currency": "EUR",
      "priceUpdatedOn": 1715236900000
    },
    "summary": {
      "timeBetweenFlights": "1 day, 2:40:00"
    }
  },
  "inbound": {
    "toConnecting": {
      "departureCity": "Porto",
      "departureIataCode": "OPO",
      "arrivalCity": "Alicante",
      "arrivalIataCode": "ALC",
      "departureDate": "2024-06-20T10:55:00",
      "arrivalDate": "2024-06-20T13:30:00",
      "price": 19.99,
      "currency": "EUR",
      "priceUpdatedOn": 1715236759000
    },
    "fromConnecting": {
      "departureCity": "Alicante",
      "departureIataCode": "ALC",
      "arrivalCity": "Kaunas",
      "arrivalIataCode": "KUN",
      "departureDate": "2024-06-22T07:10:00",
      "arrivalDate": "2024-06-22T12:00:00",
      "price": 162.99,
      "currency": "EUR",
      "priceUpdatedOn": 1715247391000
    },
    "summary": {
      "timeBetweenFlights": "1 day, 17:40:00"
    }
  },
  "tripSummary": {
    "totalPrice": "300.78",
    "tripDuration": "18 days, 6:00:00",
    "timeInDestination": "14 days, 22:35:00"
  }
}

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

flightfinderapp_jg-0.1.6.tar.gz (9.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

flightfinderapp_jg-0.1.6-py3-none-any.whl (11.4 kB view details)

Uploaded Python 3

File details

Details for the file flightfinderapp_jg-0.1.6.tar.gz.

File metadata

  • Download URL: flightfinderapp_jg-0.1.6.tar.gz
  • Upload date:
  • Size: 9.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.9.6

File hashes

Hashes for flightfinderapp_jg-0.1.6.tar.gz
Algorithm Hash digest
SHA256 7dea73fa31b75d148db73417c8a8961b5a33de3af1e71f284b971ec424f50c9d
MD5 ba3dead9402ed09d363b754e045ac241
BLAKE2b-256 3d05f4cc8a1f241d7fda15095286fbb403fc527f8b1be9ba998ff04c200ba31e

See more details on using hashes here.

File details

Details for the file flightfinderapp_jg-0.1.6-py3-none-any.whl.

File metadata

File hashes

Hashes for flightfinderapp_jg-0.1.6-py3-none-any.whl
Algorithm Hash digest
SHA256 882c298ee3d2e6457857546d969f42041a0b7360b699e5463cee30a17979e8f3
MD5 346cacc1114365737d65038b50976a79
BLAKE2b-256 31d37cf6e0ce531e67fecc83107356b8e508f93e7050413f8fd30af5757d23f1

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page