Is your feature request related to a problem? Please describe.
#608 added support for reading BrightHub timeseries data as parquet and introduced a DeprecationWarning stating that the default file_extension in LoadBrightHub.get_data would change from .csv to .parquet in the next major release. The deprecation is currently mediated by a _FILE_EXTENSION_NOT_SET sentinel (load.py:34), and the default still resolves to .csv. Parquet downloads are faster and preserve dtypes, so users on the default are missing those benefits and continuing to see the warning.
Describe the solution you'd like
Complete the deprecation by switching the default to .parquet in the next major release (v3.0.0).
In brightwind/load/load.py:
- Change the default value of
file_extension in get_data from _FILE_EXTENSION_NOT_SET to '.parquet'
- Remove the
_FILE_EXTENSION_NOT_SET sentinel (load.py:34)
- Remove the
DeprecationWarning block (load.py:1567-1577)
- Keep the
('.csv', '.parquet') validation (load.py:1579-1582)
- Update the docstring (load.py:1521-1531) to state
.parquet is the new default, remove the .. deprecated:: note, and change the worked example (load.py:1560-1564) to show how to fall back to .csv
- Decide whether to make
pyarrow a hard install dependency (currently an extra via brightwind[parquet]) or to document clearly that users must install a parquet engine
- Update
CHANGELOG.md under the next major release entry, flagging this as a breaking change
Acceptance criteria:
bw.LoadBrightHub.get_data(uuid) returns parquet-sourced data with no warning
bw.LoadBrightHub.get_data(uuid, file_extension='.csv') still works
- Existing tests pass; tests added/updated to assert the new default
Describe alternatives you've considered
- Leave the default as
.csv indefinitely — rejected, because it permanently negates the speed and dtype benefits of parquet for users on the default path and leaves the deprecation warning unresolved.
- Switch the default in a minor release — rejected, because changing a default return-path is a breaking change for any caller that depends on the
.csv round-trip behaviour (e.g. dtype coercion differences).
Additional context
Follows up on #608 (Iss601 — read BrightHub timeseries as parquet). Must land in the next major release (v3.0.0), not a minor release.
Is your feature request related to a problem? Please describe.
#608 added support for reading BrightHub timeseries data as parquet and introduced a
DeprecationWarningstating that the defaultfile_extensioninLoadBrightHub.get_datawould change from.csvto.parquetin the next major release. The deprecation is currently mediated by a_FILE_EXTENSION_NOT_SETsentinel (load.py:34), and the default still resolves to.csv. Parquet downloads are faster and preserve dtypes, so users on the default are missing those benefits and continuing to see the warning.Describe the solution you'd like
Complete the deprecation by switching the default to
.parquetin the next major release (v3.0.0).In brightwind/load/load.py:
file_extensioninget_datafrom_FILE_EXTENSION_NOT_SETto'.parquet'_FILE_EXTENSION_NOT_SETsentinel (load.py:34)DeprecationWarningblock (load.py:1567-1577)('.csv', '.parquet')validation (load.py:1579-1582).parquetis the new default, remove the.. deprecated::note, and change the worked example (load.py:1560-1564) to show how to fall back to.csvpyarrowa hard install dependency (currently an extra viabrightwind[parquet]) or to document clearly that users must install a parquet engineCHANGELOG.mdunder the next major release entry, flagging this as a breaking changeAcceptance criteria:
bw.LoadBrightHub.get_data(uuid)returns parquet-sourced data with no warningbw.LoadBrightHub.get_data(uuid, file_extension='.csv')still worksDescribe alternatives you've considered
.csvindefinitely — rejected, because it permanently negates the speed and dtype benefits of parquet for users on the default path and leaves the deprecation warning unresolved..csvround-trip behaviour (e.g. dtype coercion differences).Additional context
Follows up on #608 (Iss601 — read BrightHub timeseries as parquet). Must land in the next major release (v3.0.0), not a minor release.