Changelog¶
0.6.0 (2025-11-13)¶
Changed¶
Upgrade to Python 3.12 to match Google Colab.
0.5.0 (2025-08-14)¶
Removed¶
Remove support for Jupyter Notebook 6 or earlier.
0.4.0 (2025-05-13)¶
Changed¶
Add
spreadsheet_nameas the first argument tosave_dataframe_to_sheet().
Removed¶
Remove
ocdskingfishercolab.set_spreadsheet_name.
0.3.14 (2024-11-25)¶
Fixed¶
Constrain the version of prettytable to be compatible with ipython-sql.
0.3.13 (2023-10-27)¶
Fixed¶
Restore support for Jupyter Notebook 6.
0.3.12 (2023-10-23)¶
Changed¶
Upgrade to Python 3.10 and other dependencies to match Google Colab.
0.3.11 (2023-07-04)¶
Added¶
set_dark_mode(), if Tools > Settings > Site > Theme is set to dark in Google Colab.set_light_mode(), for the default Seaborn theme.
0.3.10 (2023-02-03)¶
Fixed¶
Pin to SQLAlchemy 1.x.
0.3.9 (2022-06-30)¶
Changed¶
save_dataframe_to_sheet()andsave_dataframe_to_spreadsheet()do nothing if the data frame is empty. 9b83348calculate_coverage(): Rename keyword arguments fromsqltoprint_sqlandsql_onlytoreturn_sql. d706145calculate_coverage(): Simplify the query if"ALL "is prefixed to a field that is not within an array. 869a9d0calculate_coverage(): Raise an error if nofieldsare provided. 8896336
Fixed¶
calculate_coverage(): Use the correct parent table ifscopeis not set. Previously, Kingfisher Colab would not use: a7c0936award_documentsaward_itemsaward_supplierscontract_documentscontract_itemscontract_milestonescontract_implementation_documentscontract_implementation_milestonescontract_implementation_transactions
calculate_coverage(): Construct correct conditions and warnings if a field is within nested arrays. 3dced1acalculate_coverage(): Use therelatedprocesses_summarytable for fields starting withrelatedProcesses/, where appropriate. 9e6cdb7calculate_coverage(): Prefixall_to the column if"ALL "is prefixed to the field, to avoid duplicate columns. e9427b2calculate_coverage(): No longer warn aboutaddressfields. e2b8d72
0.3.8 (2022-04-27)¶
Changed¶
Removed dependency on libcoveocds (GPL).
0.3.7 (2022-03-11)¶
Added¶
Add
calculate_coverage()to calculate the co-occurence coverage of a group of fields.
0.3.6 (2021-09-15)¶
Changed¶
list_collections(): source_id is now an optional argument. If omitted, all collections are returned.
0.3.5 (2021-08-09)¶
Added¶
Add
render_json()to render JSON into collapsible HTML.
0.3.4 (2021-04-16)¶
Fixed¶
set_search_path()no longer outputs an error message.
0.3.3 (2021-04-10)¶
Added¶
Add Python wheels distribution.
0.3.2 (2021-02-16)¶
Fixed¶
Set the minimum version of ipython-sql.
0.3.1 (2021-02-16)¶
Fixed¶
Fixed dependencies to install cleanly both locally and on Google Colab.
0.3.0 (2020-12-15)¶
Changed¶
Refactor to build upon ipython-sql.
You must run
%load_ext sqlfirst, and%config SqlMagic.autopandas = Trueto get a pandasDataFrame.Remove functions that can be replaced by ipython-sql magics in the notebook.
create_connection,reset_connection: Use an ipython-sql connection string, e.g.%sql postgresql://user:pass@host/dbexecute_statement,get_dataframe_from_cursor,get_dataframe_from_query: Use ipython-sql’s%sqlmagic, e.g.%sql SELECT a FROM b
Replace SQL calls with ipython-sql calls in remaining functions.
get_list_from_query: Useget_ipython_sql_resultset_from_query(). This returns an ipython-sql ResultSet, the type returned by the%sql%magic whenautopandasis off. It behaves like a list, but with extra methods.ocdskingfishercolab.download_package_from_query()no longer takes aparamsargument, and instead uses variables from the local scope, to be consistent with the ipython-sql’s%sqlmagic.
There’s a shared (but not public) colab notebook of examples run against Kingfisher.
download_package_from_ocid()orders packaged releases in reverse date order.
Fixed¶
write_data_as_json()replaces path separators with underscores in filenames.
0.2.2 (2020-04-22)¶
Added¶
get_list_from_query
Fixed¶
execute_statement` no longer has a mutable default argument value.
0.2.1 (2020-04-21)¶
Fixed¶
execute_statementno longer errors if given apsycopg2.sql.Composable.
0.2.0 (2020-04-21)¶
Upgrade instructions:
Upgrade to 0.1.x if you have not already, and address any deprecation warnings. Then, upgrade to 0.2.x.
Install alembic and SQLAlchemy separately, if used in the notebook.
Added¶
execute_statementAdd a comment to all SQL queries with a link to the notebook, for database administrators.
Changed¶
Backwards-incompatible: The methods deprecated in 0.1.x are removed.
Backwards-incompatible: alembic and SQLAlchemy are no longer installed.
Fixed¶
download_package_from_ocid()returns structurally correct records. Previously, theocidfield was at the package-level instead of the record-level.download_package_from_ocid()anddownload_package_from_query()return structurally correct packages. Previously, required fields were omitted.
0.1.1 (2020-04-20)¶
Fixed¶
The deprecated methods
output_notebookandget_resultsreturn values again.
0.1.0 (2020-04-20)¶
Upgrade instructions:
Use
pip install 'ocdskingfishercolab<0.2'instead of any previouspip installcommand.Import
ocdskingfishercolabinstead ofkingfishercolab.
Added¶
Changed¶
Backwards-incompatible: Renamed package from kingfishercolab to ocdskingfishercolab.
Renamed methods for consistent style. Old-style methods are deprecated:
saveToSheetsis nowsave_dataframe_to_sheet()saveStraightToSheetsis nowsave_dataframe_to_sheet()withprompt=FalsesaveToCSVis nowdownload_dataframe_as_csv()downloadReleasesis nowdownload_package_from_ocid()output_notebookis nowget_dataframe_from_querygetResultsis nowget_dataframe_from_cursor
get_dataframe_from_queryraises an error instead of returning an error.download_package_from_ocid()raises an error instead of printing a message.
0.0.1 (2020-04-20)¶
Initial release.