This Package provides BeautifulTable class for easily printing tabular data in a visually appealing ASCII format to a terminal.
Features included but not limited to:
- Full customization of the look and feel of the table
- Build the Table as you wish, By adding rows, or by columns or even mixing both these approaches.
- Full support for colors using ANSI sequences or any library of your choice. It just works.
- Plenty of predefined styles for multiple use cases and option to create custom ones.
- Support for Unicode characters.
Here is an example of how you can use beautifultable:
>>> from beautifultable import BeautifulTable >>> table = BeautifulTable() >>> table.column_headers = ["name", "rank", "gender"] >>> table.append_row(["Jacob", 1, "boy"]) >>> table.append_row(["Isabella", 1, "girl"]) >>> table.append_row(["Ethan", 2, "boy"]) >>> table.append_row(["Sophia", 2, "girl"]) >>> table.append_row(["Michael", 3, "boy"]) >>> print(table) +----------+------+--------+ | name | rank | gender | +----------+------+--------+ | Jacob | 1 | boy | +----------+------+--------+ | Isabella | 1 | girl | +----------+------+--------+ | Ethan | 2 | boy | +----------+------+--------+ | Sophia | 2 | girl | +----------+------+--------+ | Michael | 3 | boy | +----------+------+--------+
You can learn more about beautifultable at this Tutorial
pip install beautifultable
- Added 4 new styles, STYLE_BOX, STYLE_BOX_DOUBLED, STYLE_BOX_ROUNDED, STYLE_GRID.
- Renamed STYLE_RESTRUCTURED_TEXT to STYLE_RST
- wcwidth is now an optional dependency
- Updated the algorithm for calculating width of columns(better division of space among columns)
- Added support for Paragraphs(using
\n
character) - Added finer control for intersection characters using 12 new
attributes
intersect_{top|header|row|bottom}_{left|mid|right}
- Added the ability to also accept bytestrings instead of unicode
- Deprecated attribute
intersection_char
- Deprecated methods
get_top_border()
,get_bottom_border()
,get_header_separator()
,get_row_separator()
,auto_calculate_width()
- Fixed an issue with WEP_ELLIPSIS and WEP_STRIP when using multibyte characters
- Fixed an issue where table would not be in proper form if
column_width
is too low
- Added support for handling Multi byte strings
- Added support for colored strings using ANSI escape sequences
- Added constraint where all strings must be unicode
- Fixed an issue where sometimes width was calculated as higher than intended
- Added support for handing color codes using ANSI escape sequences(experimental)
- Fixed collections ABCs deprecation warning
- Added new style STYLE_NONE
- Fixed issue regarding improper conversion of non-string floats
- Added
detect_numerics
boolean for toggling automatic numeric conversion
- Added new property
serialno_header
- Deprecated methods with misspelled "seperator" in their name.
- Fixed an issue where table was corrupted when
column_count
was too high
- Added predefined styles for easier customization
- Added reverse argument to
sort()
method - Fixed enum34 dependency for python versions prior to 3.4
- Added property
serialno
for auto printing serial number - Fixed an issue with
sign_mode
related to str conversion - Fixed bugs related to python version prior to 3.3
- Fixed exception on WEP_ELLIPSIS and token length less than 3
- Fixed printing issues with empty table
- Added python 2 support
- Fixed minor issues
- Added new property
default_padding
- Added new method
update_row
- Fixed an issue in
auto_calculate_width()
- Initial release on PyPI
If you have any suggestions or bug reports, Please create a Issue. Pull Requests are always welcome.
This project is licensed under the MIT License - see the LICENSE.txt file for details.
Love beautifultable? Consider supporting the development :)