Changelog¶
All notable changes to the master 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.
Unreleased¶
- Date:
2025-08-06
Added
Merged pull request templates to create new one
Added a ‘closed issue log’
Requirements and installation steps to README
Pre-commit hooks
Changed
a11ytables renamed to aftables throughout
Updated README
Updated pull request template
Released (PyPI)¶
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-pythonDataclasses 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
gptablesValidation for tables with null or whitespace rows, cells or column names
Support for note references in
GPTable.instructionsattributeAccessibility 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 headersProviding
table_noteswill no longer break additional formattingRich text in
instructionsproperty will no longer raise an errorNote order now takes into account custom
description_orderinThemeSpecial 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 uniquelinks 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 displayeddepreciation 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 filesminor 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 GPWorkbookadditional
Themeattributes forCovertext elementsdocumentation 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 onceduplication of
missing_valuein legend when multiple missing values were presentrst 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 functionsability to disable addition of parenetheses to footer element text
Changed
removed
num_formatproperty fromdataelement of default themeUpdated 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