Changelog
All notable changes to the main branch of this project should be documented clearly in this file. In progress (or intended changes) can also be listed below under Unreleased.
The changelog format is based on Keep a Changelog, and this project tries its very best to adhere to Semantic Versioning.
Latest
- Date: 2025-11-11
Added
- Merged pull request templates to create new one
- Requirements and installation steps to README
- Pre-commit hooks
- Code owners file
- More examples
Removed
contentsheetnotices are removed (see this changelog for the notice in v1.1.0)
Changed
- a11ytables renamed to aftables throughout
- Updated README
- Updated pull request template
- Docs moved from readthedocs to mkdocs
- Docs are restructured
- Fixed auto column widths
v1.2.0
- Date: 2025-01-07
Added
- Column width customisation to cover sheet
- Incorporated rich text functionaliy into the cover page by using List[dict, str] to format text in the intro, about, and contact sections.
- Rich text format lists can now be of length 2.
- gptables now supports python 3.11
- Official disclaimer included at the bottom of the README and PyPI index
- pyproject.toml is now used to manage the packaging
- Bugfix to allow writing of tables containing only integers
- New examples to more simply explain things to new users
- Update documentation for additional formatting
Removed
- CI for Python 3.6 - 3.8 on Linux, as no longer supported by GitHub action
setup-python - Dataclasses as a dependency due to no longer supporting Python 3.6
- setup.py as this has been replaced by the more modern pyproject.toml
Changed
- Default theme now includes cover sheet text wrapping set to True
- CI changed for trusted publishing
v1.1.0
- Date: 2022-07-27
Added
- New tests for
gptables - Validation for tables with null or whitespace rows, cells or column names
- Support for note references in
GPTable.instructionsattribute - Accessibility checklist based on Analysis Function guidance and a11ytables documentation
- Contributers page in documentation
Changed
- Validation of GPTable text attributes. Error will be raised if
titleorinstructionsisNone, or if an entry in thesubtitleorlegendlists isNone. - Running package tests now requires pytest 6.2.5+, to support Python 3.10
- CI configuration to run tests on both Linux and Windows with Python 3.6-3.10 and calculate coverage based on core functionality and utilites
- Restructure and rewording of changelog
- Package author and maintainer information
Deprecated
contentsheetparameter ofwrite_workbookwill be removed in v2 of gptables. Please usecontentsheet_labelinstead.- Ability to reference notes within
GPTable.table.columnswill be removed in v2 of gptables. Please useGPTable.table_notesto ensure references are correctly placed and ordered.
Fixed
contentsheet_labelparameter added towrite_workbook. Previously parameter was included in documentation but was misnamed in function.auto_widthnow functions as expected for columns with links or rich text columns using Python 3.6 and 3.7, as well as for numeric columns using Python 3.6+- Trailing whitespace is no longer added when
unitsortable_notesare added to column headers - Providing
table_noteswill no longer break additional formatting - Rich text in
instructionsproperty will no longer raise an error - Note order now takes into account custom
description_orderinTheme - Special character only cell validation now includes underscores
- Image alt text appears when building user documentation
- CI deploys documentation in full
v1.0.0
- Date: 2022-06-04
Added
Cover:
- links formatted using the markdown format of
"[display text](link)"will be rendered with the display text showing and the link applying for the corresponding cell. Links must start withhttp://,https://,ftp://,mailto:,internal:orexternal:
Table of contents:
- contents page added to workbook by default. Can be disabled or customised by supplying
contentsheet_labelandcontentsheet_optionsparameters toproduce_workbookorwrite_workbook. - links can be used in text elements passed to
contentsheet_options, see above
Notes:
- notes page added to workbook if
notes_tableis provided. Can be customised by supplyingnotesheet_labelandnotesheet_optionsparameters toproduce_workbookorwrite_workbook. - links can be used in
notes_tableand text elements passed tonotesheet_options, see above
Data tables:
GPTable.tablewill be marked up as a worksheet table in Exceltable_nameproperty added toGPTableclass. This must be provided for accessibility.instructionsproperty added toGPTableclass. If this is not provided, a default value will be used.table_notesproperty added toGPTableclass. This allows note references to be added to the column header row. If used, they will be positioned below the column name and units.- validation for
GPTable.tablecolumn names - all columns must be named and the names must be unique - links can be used in
GPTable.tableand text elements
Theme:
instructions_formatadded toTheme. This can be used to customise the format of theGPTable.instructionselement.
Examples:
- example added to demonstrate the use of a custom theme YAML
Changed
API functions:
auto_widthproperty ofproduce_workbookandwrite_workbooknow defaults toTruerather thanFalse
Notes:
- notes are now numbered according to position in workbook, starting from cell A1 of the first data sheet. Previously, notes were ordered independently for each worksheet
- note references in text elements are moved to the end of the text. This is to make them more accessible and avoid disrupting the text.
Data tables:
unitsare now written on a new line with the the corresponding column heading cell, instead of above the tableunitsproperty ofGPTableis now optional, and should be provided asdict(strno longer supported)scopeproperty ofGPTableis now optional, as this information may be included in title or subtitlessourceproperty ofGPTableis now optional, as this information should be included in cover sheet if it is the same across sheetslegendproperty asGPTableis now optional
Theme:
- default theme changed to be more accessible, inparticular, font sizes increased to at least 12pt and font colour set to automatic. Note: compatibility issues with LibreOffice and automatic font colour
footer_orderproperty ofThemereplaced bydescription_order, as corresponding metadata have been moved from below to above table. Valid elements are nowinstructions,source,legendandscope.
Examples:
- examples updated to reflect new functionality
Removed
API functions:
quick_and_dirtyfunction removed, as it is inaccessible and does not demonstrate good practicedisable_footer_parenthesesremoved, as footer is inaccessible and parenetheses not good practice
Cover:
additional_elementsproperty removed fromCoverclass. This is because table of contents is now generated on contentsheet not cover.
Notes:
notesandannotationsproperties removed fromGPTableclass. Notes are no longer displayed on data worksheets
Data tables:
include_index_column_headingsproperty removed fromGPTableclass, index column headers now always written, for accessibility
Theme:
annotations_formatandnotes_formatoptions removed fromTheme, asannotationsandnotesno longer written to data worksheetsmissing_valueoption removed fromTheme. Unavailable or white-space table entries are now written as blank cells, and the user is invited to consider the GSS guidance on symbols and shorthand in spreadsheets
Fixed
- incorrect version numbers in changelog
- minor typos in docs
v0.4.0
- Date: 2021-01-30
Fixed
- bug where setting a GPTable’s scope to
Noneresulted in the units also not being displayed - depreciation warning when running tests
Added
include_index_column_headingsoption toGPTable, so that users can display index column headers if they wish. Defaults toFalsefor backwards compatibility.
v0.3.2
- Date: 2020-08-24
Fixed
- bug in Cover post_init where
additional_elementsis None (it’s default value…) - more minor typos in docs
- incorrect version numbers in changelog
v0.3.1
- Date: 2020-08-24
Fixed
- incorrect
if __name__ == "__main__"in example files - minor typos in docs
v0.3.0
- Date: 2020-08-24
Added
Coverdataclass, to provide text elements for cover pages. Provided viacoverparameter of API functions.write_coverand associatedGPWorksheetmethods, for writing a cover page as the first sheet in a GPWorkbook- additional
Themeattributes forCovertext elements - documentation for
Coverclass and example usage
Fixed
- loads of typos in documentation
- broken CI deployment of docs - code includes were not working
v0.2.0
- Date: 2020-07-10
Fixed
- stacking of parentheses around footer elements when a
GPTablewas used more than once - duplication of
missing_valuein legend when multiple missing values were present - rst syntax in docs and readme (some bits of Markdown were hanging around)
Added
- “quick and dirty” API function, for when you just want tables and you want them now
- functionality to automatically determine column widths - available via
auto_widthparameter in API functions - ability to disable addition of parenetheses to footer element text
Changed
- removed
num_formatproperty fromdataelement of default theme - Updated documentation of examples
- Completely updated online documentation, so that the package might actually be usable
v0.1.3
- Date: 2020-03-06
Fixed
- missing files in binary distribution. v0.1.1 and v0.1.2 will be deleted from PyPI to prevent use of broken distributions.
Added
- this changelog to the documentation!
Changed
- README to reflect description of package. Dropped developer install instructions.
v0.1.1
- Date: 2020-03-05
Added
- gptables package - see README and documentation for usage
- build and deployment of documentation
- deployment to PyPI