Skip to content

v0.1.2

Compare
Choose a tag to compare
@github-actions github-actions released this 25 Jun 12:54
· 77 commits to master since this release

This release introduces a major refactor of the core, while keeping most of the low-level functions untouched.

Breaking Changes

  • core class significantly redesigned to make components less coupled and data location easier to track (#24)

    • v0.1.1 used a service based approach:
    async with FR24() as fr24:
        fl = fr24.flight_list("id")
        fl.data.load() # read flight_list/{id}.parquet
        response = await fl.api.fetch() # optional parameters goes here, e.g. page, limit
        fl.data.add_api_response(response) # json -> pyarrow
        fl.data.save() # write flight_list/{id}.parquet
    • v0.1.2 uses an approach which implement a series of type-transformations:
    async with FR24() as fr24:
        response = await fr24.flight_list.fetch(reg="id") # FlightListAPIResp { ctx: {"id": "{id}", ...}, response: json }
        data = response.to_arrow()  # FlightListArrow { ctx: ..., table: pyarrow.Table }
        print(data.df) # pd.DataFrame
        data.save()
  • protobuf definitions now adhere to official naming and structure (f9e2421)

  • library now makes a clear distinction between heading and track: LiveFeedRecord, TrackData, PlaybackTrackEMSRecord, FlightListRecord are updated (345b8cd)

  • flight_list_df and playback_df now calls their proxy *_arrow functions to ensure consistent data types (3edf447)

    • flight_list_df timestamp are now milliseconds, flight_id and icao24 no longer floats.
    • playback_df now serialises ems and metadata.
  • find now accepts optional httpx.AsyncClient parameter

New Features

  • HTTP/2 is enabled by default to avoid 464 errors (3ce6da6)
  • live feed now supports modifying the fields parameter
  • updated CLI (e19e5ba):
    • all three services are now implemented
    • -o, --output: supports saving to specific directory or stdout (-)
    • -f, --format: supports saving to parquet or csv

Full Changelog: v0.1.1...v0.1.2