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 (https://github.com/cathaypacific8747/fr24/pull/24)
- `v0.1.1` used a service based approach:
py
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:
py
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 (https://github.com/cathaypacific8747/fr24/pull/24/commits/f9e2421bf9624ec7b0eabc7aada7d2e4ace496f7)
- library now makes a clear distinction between heading and track: `LiveFeedRecord`, `TrackData`, `PlaybackTrackEMSRecord`, `FlightListRecord` are updated (https://github.com/cathaypacific8747/fr24/pull/24/commits/345b8cdeb99e25e3410f80a9aeda255597e048ed)
- `flight_list_df` and `playback_df` now calls their proxy `*_arrow` functions to ensure consistent data types (https://github.com/cathaypacific8747/fr24/pull/24/commits/3edf4477455e432cc4ad89727912f63012cd16c3)
- `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 (https://github.com/cathaypacific8747/fr24/pull/24/commits/3ce6da60268a6273eec7534369dbf06c7ec52abb)
- live feed now supports modifying the `fields` parameter
- updated CLI (https://github.com/cathaypacific8747/fr24/pull/24/commits/e19e5ba1d0715f9670aa703227c71b6c1bfc0c4f):
- 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**: https://github.com/cathaypacific8747/fr24/compare/v0.1.1...v0.1.2