{"id":17162605,"url":"https://github.com/pri22296/beautifultable","last_synced_at":"2025-04-04T12:07:39.275Z","repository":{"id":15493649,"uuid":"78259586","full_name":"pri22296/beautifultable","owner":"pri22296","description":"Python package for printing visually appealing tables on a terminal.","archived":false,"fork":false,"pushed_at":"2022-05-13T19:35:03.000Z","size":273,"stargazers_count":149,"open_issues_count":29,"forks_count":18,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-03-28T11:07:55.109Z","etag":null,"topics":["ascii-table","python3","table","terminal","utility"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pri22296.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-01-07T05:01:03.000Z","updated_at":"2025-01-06T21:22:38.000Z","dependencies_parsed_at":"2022-08-02T22:00:36.666Z","dependency_job_id":null,"html_url":"https://github.com/pri22296/beautifultable","commit_stats":null,"previous_names":[],"tags_count":17,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pri22296%2Fbeautifultable","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pri22296%2Fbeautifultable/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pri22296%2Fbeautifultable/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pri22296%2Fbeautifultable/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pri22296","download_url":"https://codeload.github.com/pri22296/beautifultable/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247174418,"owners_count":20896078,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ascii-table","python3","table","terminal","utility"],"created_at":"2024-10-14T22:46:10.011Z","updated_at":"2025-04-04T12:07:39.253Z","avatar_url":"https://github.com/pri22296.png","language":"Python","funding_links":["https://paypal.me/beautifultable"],"categories":[],"sub_categories":[],"readme":"##########################################################################\nbeautifultable\n##########################################################################\n\n.. inclusion-marker-badges-start\n\n.. image:: https://badge.fury.io/py/beautifultable.svg\n    :target: https://badge.fury.io/py/beautifultable\n\n.. image:: https://img.shields.io/pypi/pyversions/beautifultable.svg\n    :target: https://pypi.python.org/pypi/beautifultable/\n\n.. image:: https://codecov.io/gh/pri22296/beautifultable/branch/master/graphs/badge.svg\n    :target: https://codecov.io/gh/pri22296/beautifultable/branch/master/\n\n.. image:: https://api.codacy.com/project/badge/Grade/7a76eb35ad4e450eaf00339e98381511\n    :target: https://www.codacy.com/app/pri22296/beautifultable?utm_source=github.com\u0026amp;utm_medium=referral\u0026amp;utm_content=pri22296/beautifultable\u0026amp;utm_campaign=Badge_Grade\n\n.. image:: https://github.com/pri22296/beautifultable/actions/workflows/build.yml/badge.svg?branch=master\n    :target: https://github.com/pri22296/beautifultable/actions/workflows/build.yml\n\n.. image:: https://readthedocs.org/projects/beautifultable/badge/?version=latest\n    :alt: Documentation Status\n    :target: http://beautifultable.readthedocs.io/en/latest/?badge=latest\n\n.. image:: https://img.shields.io/badge/Donate-PayPal-yellow.svg\n    :target: https://paypal.me/beautifultable\n\n.. inclusion-marker-badges-end\n\n\n.. inclusion-marker-introduction-start\n\n**************************************************************************\nIntroduction\n**************************************************************************\n\nThis Package provides BeautifulTable class for easily printing\ntabular data in a visually appealing format to a terminal. \n\nFeatures included but not limited to:\n\n* Full customization of the look and feel of the table\n* Build the Table as you wish, By adding rows, or by columns or even\n  mixing both these approaches.\n* Full support for *colors* using ANSI sequences or any library of your\n  choice. It just works.\n* Plenty of predefined *styles* for multiple use cases and option to\n  create custom ones.\n* Support for *Unicode* characters.\n* Supports streaming table when data is slow to retrieve.\n  \n.. inclusion-marker-introduction-end\n\n\n \n.. inclusion-marker-links-start\n\n**************************************************************************\nLinks\n**************************************************************************\n\n* `Documentation \u003chttp://beautifultable.readthedocs.io/en/latest/\u003e`_\n\n* `Source \u003chttps://github.com/pri22296/beautifultable\u003e`_\n\n* `API Reference \u003chttp://beautifultable.readthedocs.io/en/latest/source/beautifultable.html#module-beautifultable\u003e`_\n\n\n.. inclusion-marker-links-end\n\n\n\n.. inclusion-marker-usage-start\n\n**************************************************************************\nUsage\n**************************************************************************\n\nHere is an example of how you can use beautifultable::\n\n    \u003e\u003e\u003e from beautifultable import BeautifulTable\n    \u003e\u003e\u003e table = BeautifulTable()\n    \u003e\u003e\u003e table.rows.append([\"Jacob\", 1, \"boy\"])\n    \u003e\u003e\u003e table.rows.append([\"Isabella\", 1, \"girl\"])\n    \u003e\u003e\u003e table.rows.append([\"Ethan\", 2, \"boy\"])\n    \u003e\u003e\u003e table.rows.append([\"Sophia\", 2, \"girl\"])\n    \u003e\u003e\u003e table.rows.append([\"Michael\", 3, \"boy\"])\n    \u003e\u003e\u003e table.rows.header = [\"S1\", \"S2\", \"S3\", \"S4\", \"S5\"]\n    \u003e\u003e\u003e table.columns.header = [\"name\", \"rank\", \"gender\"]\n    \u003e\u003e\u003e print(table)\n    +----+----------+------+--------+\n    |    |   name   | rank | gender |\n    +----+----------+------+--------+\n    | S1 |  Jacob   |  1   |  boy   |\n    +----+----------+------+--------+\n    | S2 | Isabella |  1   |  girl  |\n    +----+----------+------+--------+\n    | S3 |  Ethan   |  2   |  boy   |\n    +----+----------+------+--------+\n    | S4 |  Sophia  |  2   |  girl  |\n    +----+----------+------+--------+\n    | S5 | Michael  |  3   |  boy   |\n    +----+----------+------+--------+\n\n\nYou can learn more about beautifultable at this `Tutorial \u003chttp://beautifultable.readthedocs.io/en/latest/quickstart.html\u003e`_\n\n.. inclusion-marker-usage-end\n\n\n\n.. inclusion-marker-install-start\n\n**************************************************************************\nInstallation\n**************************************************************************\n\n::\n\n    python3 -m pip install beautifultable\n\n.. inclusion-marker-install-end\n\n\n\n.. inclusion-marker-changelog-start\n\n**************************************************************************\nChangelog\n**************************************************************************\n\n===========\nDevelopment\n===========\n\n\n==========\nv1.1.0\n==========\n\n* Drop support for Python 3.4, 3.5 and 3.6\n* Add official support for python 3.9 and 3.10\n* Added `asdict` and `aslist` method on the row object. (Thanks to `@Agent-Hellboy \u003chttps://github.com/Agent-Hellboy\u003e`_)\n* Added `from_csv` and `to_csv` methods to export/import a csv file. (Thanks to `@Agent-Hellboy \u003chttps://github.com/Agent-Hellboy\u003e`_)\n* Added `from_df` and `to_df` methods to export/import a dataframe. (Thanks to `@Agent-Hellboy \u003chttps://github.com/Agent-Hellboy\u003e`_)\n\n==========\nv1.0.1\n==========\n\n* Fixed an issue where appending a column with a header to an empty table left the table instance in\n  an inconsistent state.\n\n==========\nv1.0.0\n==========\n\n* Added two new views ``rows`` and ``columns`` to the ``BeautifulTable`` class. Most of the existing\n  methods have been deprecated. Methods of the form ``{}_row`` and ``{}_column`` have been moved to\n  views ``rows.{}`` and ``columns.{}``(ex. ``append_row`` is now ``rows.append``). Calling older\n  deprecated methods will now raise a ``FutureWarning``. Special methods such as ``__len__``, ``__iter__``,\n  etc. have also been moved to the respective views. For details, refer the\n  API documentation and the Updated Tutorial\n* The existing styling attributes have also been deprecated. A new ``border`` property can be accessed\n  to control all styling attributes affecting the border. Rest of the attributes can be accessed from\n  it's respective view.\n* Added support for row headers. As a result rows can now be accessed by their keys similar\n  to columns\n* Added two new methods ``to_csv`` and ``from_csv`` to directly export/import to a\n  csv file. (Thanks to `@dinko-pehar \u003chttps://github.com/dinko-pehar\u003e`_)\n* Added ``BeautifulTable.rows.filter`` method to generate a new table with only certain rows\n* Added a new ``shape`` attribute to the ``BeautifulTable`` class which returns a tuple of form (nrow, ncol)\n* Added new attribute ``BeautifulTable.columns.header.alignment`` which can be used to have\n  a seperate header alignment. The default behaviour is to inherit ``BeautifulTable.columns.alignment``\n* Updated ``BeautifulTable.rows.sort`` (earlier ``BeautifulTable.sort``) method to now\n  also accept any callables as a key.\n* Updated behaviour of ``BeautifulTable.columns.width`` (earlier ``BeautifulTable.column_widths``).\n  It no longer overrides user specified widths by default. You can reset it to default\n  by setting it to **\"auto\"**\n* Deprecated attribute ``serialno`` and ``serialno_header``. User can now easily implement\n  this functionality by using row headers if required\n* Deprecated methods ``get_table_width()``, ``copy()`` and ``get_string()``.\n* Deprecated constructor arguments and class attributes named ``sign_mode``, ``numeric_precision``,\n  ``max_width`` and renamed to ``sign``, ``precision`` and ``maxwidth`` respectively\n* Fixed an issue where table was malformed if ``blessings`` module was used to generate colored strings.\n* Fixed issues with the existing implementation of ``__iter__``, ``__copy__`` and ``__deepcopy__`` which\n  should now work more reliably.\n* Fixed an issue where default padding could not be set to 0. (Thanks to `@furlongm \u003chttps://github.com/furlongm\u003e`_)\n* Fixed several memory leak issues by ensuring that all internal objects hold only a weak reference\n  to the table instance.\n* Dropped support for Python 2\n\n==========\nv0.8.0\n==========\n\n* Dropped support for Python 3.3\n* Added support for streaming tables using a generator for cases  where data retrieval is slow\n* Alignment, padding, width can now be set for all columns using a simplified syntax like\n  ``table.column_alignments = beautifultable.ALIGN_LEFT``\n\n==========\nv0.7.0\n==========\n\n* Added 4 new styles, **STYLE_BOX**, **STYLE_BOX_DOUBLED**, **STYLE_BOX_ROUNDED**,\n  **STYLE_GRID**.\n* Renamed **STYLE_RESTRUCTURED_TEXT** to **STYLE_RST**\n* **wcwidth** is now an optional dependency\n* Updated the algorithm for calculating width of columns(better division of space among columns)\n* Added support for Paragraphs(using ``\\n`` character)\n* Added finer control for intersection characters using 12 new\n  attributes ``intersect_{top|header|row|bottom}_{left|mid|right}``\n* Added the ability to also accept bytestrings instead of unicode\n* Deprecated attribute ``intersection_char``\n* Deprecated methods ``get_top_border()``, ``get_bottom_border()``, ``get_header_separator()``,\n  ``get_row_separator()``, ``auto_calculate_width()``\n* Fixed an issue with **WEP_ELLIPSIS** and **WEP_STRIP** when using multibyte characters\n* Fixed an issue where table would not be in proper form if ``column_width`` is too low\n\n==========\nv0.6.0\n==========\n\n* Added support for handling Multi byte strings\n* Added support for colored strings using ANSI escape sequences\n* Added constraint where all strings must be unicode\n* Fixed an issue where sometimes width was calculated as higher than intended\n\n==========\nv0.5.3\n==========\n\n* Added support for handing color codes using ANSI escape sequences(experimental)\n* Fixed collections ABCs deprecation warning\n\n==========\nv0.5.2\n==========\n\n* Added new style **STYLE_NONE**\n* Fixed issue regarding improper conversion of non-string floats\n\n==========\nv0.5.1\n==========\n\n* Added ``detect_numerics`` boolean for toggling automatic numeric conversion\n\n==========\nv0.5.0\n==========\n\n* Added new property ``serialno_header``\n* Deprecated methods with misspelled *\"seperator\"* in their name.\n* Fixed an issue where table was corrupted when ``column_count`` was too high\n\n\n==========\nv0.4.0\n==========\n\n* Added predefined styles for easier customization\n* Added *reverse* argument to ``sort()`` method\n* Fixed *enum34* dependency for python versions prior to 3.4\n\n==========\nv0.3.0\n==========\n\n* Added property ``serialno`` for auto printing serial number\n* Fixed an issue with ``sign_mode`` related to str conversion\n* Fixed bugs related to python version prior to 3.3\n* Fixed exception on **WEP_ELLIPSIS** and token length less than 3\n* Fixed printing issues with empty table\n\n==========\nv0.2.0\n==========\n\n* Added python 2 support\n\n==========\nv0.1.3\n==========\n\n* Fixed minor issues\n\n==========\nv0.1.2\n==========\n\n* Added new property ``default_padding``\n* Added new method ``update_row``\n* Fixed an issue in ``auto_calculate_width()``\n\n==========\nv0.1.1\n==========\n\n* Initial release on PyPI\n\n\n.. inclusion-marker-changelog-end\n\n\n.. inclusion-marker-contribution-start\n\n**************************************************************************\nContribute\n**************************************************************************\n\nIf you have any suggestions or bug reports, Please create a Issue. Pull\nRequests are always welcome.\n\n.. inclusion-marker-contribution-end\n\n\n\n.. inclusion-marker-license-start\n\n**************************************************************************\nLicense\n**************************************************************************\n\nThis project is licensed under the MIT License - see the `LICENSE.txt \u003chttps://github.com/pri22296/beautifultable/blob/master/LICENSE.txt\u003e`_ file for details.\n\n\n.. inclusion-marker-license-end\n\n\n\n.. inclusion-marker-donation-start\n\n**************************************************************************\nDonation\n**************************************************************************\n\nLove *beautifultable*? Consider supporting the development :)\n\n.. image:: https://www.paypalobjects.com/en_US/i/btn/btn_donateCC_LG.gif\n    :target: https://paypal.me/beautifultable\n\n\n.. inclusion-marker-donation-end\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpri22296%2Fbeautifultable","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpri22296%2Fbeautifultable","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpri22296%2Fbeautifultable/lists"}