Module for converting 2D Python lists to fancy ASCII tables. Table2Ascii lets you display pretty tables in the terminal and on Discord.

Overview

table2ascii

build version license Discord

Module for converting 2D Python lists to a fancy ASCII/Unicode tables

๐Ÿ“ฅ Installation

pip install table2ascii

๐Ÿง‘โ€๐Ÿ’ป Usage

Convert lists to ASCII tables

from table2ascii import table2ascii

output = table2ascii(
    header=["#", "G", "H", "R", "S"],
    body=[["1", "30", "40", "35", "30"], ["2", "30", "40", "35", "30"]],
    footer=["SUM", "130", "140", "135", "130"],
)

print(output)

"""
โ•”โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•—
โ•‘  #     G     H     R     S  โ•‘
โ•Ÿโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ข
โ•‘  1    30    40    35    30  โ•‘
โ•‘  2    30    40    35    30  โ•‘
โ•Ÿโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ข
โ•‘ SUM   130   140   135   130 โ•‘
โ•šโ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
"""

Set first or last column headings

from table2ascii import table2ascii

output = table2ascii(
    body=[["Assignment", "30", "40", "35", "30"], ["Bonus", "10", "20", "5", "10"]],
    first_col_heading=True,
)

print(output)

"""
โ•”โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•ฆโ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•—
โ•‘ Assignment โ•‘ 30   40   35   30 โ•‘
โ•‘    Bonus   โ•‘ 10   20    5   10 โ•‘
โ•šโ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•ฉโ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
"""

Set column widths and alignments

from table2ascii import table2ascii, Alignment

output = table2ascii(
    header=["#", "G", "H", "R", "S"],
    body=[["1", "30", "40", "35", "30"], ["2", "30", "40", "35", "30"]],
    first_col_heading=True,
    column_widths=[5] * 5,  # [5, 5, 5, 5, 5]
    alignments=[Alignment.LEFT] + [Alignment.RIGHT] * 4, # First is left, remaining 4 are right
)

print(output)

"""
โ•”โ•โ•โ•โ•โ•โ•ฆโ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•—
โ•‘ #   โ•‘   G     H     R     S โ•‘
โ•Ÿโ”€โ”€โ”€โ”€โ”€โ•ซโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ข
โ•‘ 1   โ•‘  30    40    35    30 โ•‘
โ•‘ 2   โ•‘  30    40    35    30 โ•‘
โ•šโ•โ•โ•โ•โ•โ•ฉโ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
"""

Use a preset style

from table2ascii import table2ascii, PresetStyle

output = table2ascii(
    header=["First", "Second", "Third", "Fourth"],
    body=[["10", "30", "40", "35"], ["20", "10", "20", "5"]],
    column_widths=[10] * 4,
    style=PresetStyle.ascii_box
)

print(output)

"""
+----------+----------+----------+----------+
|  First   |  Second  |  Third   |  Fourth  |
+----------+----------+----------+----------+
|    10    |    30    |    40    |    35    |
+----------+----------+----------+----------+
|    20    |    10    |    20    |    5     |
+----------+----------+----------+----------+
"""

Define a custom style

Check TableStyle for more info and PresetStyle for examples.

from table2ascii import table2ascii, TableStyle

my_style = TableStyle.from_string("*-..*||:+-+:+     *''*")

output = table2ascii(
    header=["First", "Second", "Third"],
    body=[["10", "30", "40"], ["20", "10", "20"], ["30", "20", "30"]],
    style=my_style
)

print(output)

"""
*-------.--------.-------*
| First : Second : Third |
+-------:--------:-------+
|  10   :   30   :  40   |
|  20   :   10   :  20   |
|  30   :   20   :  30   |
*-------'--------'-------*
"""

๐ŸŽจ Preset styles

See a list of all preset styles here.

โš™๏ธ Options

All parameters are optional.

Soon table2ascii will support more options for customization.

Option Type Default Description
header List[str] None First row of table seperated by header row seperator
body List[List[str]] None List of rows for the main section of the table
footer List[str] None Last row of table seperated by header row seperator
column_widths List[int] automatic List of column widths in characters for each column
alignments List[int] all centered Alignments for each column
(ex. [Alignment.LEFT, Alignment.CENTER, Alignment.RIGHT])
first_col_heading bool False Whether to add a heading column seperator after the first column
last_col_heading bool False Whether to add a heading column seperator before the last column

๐Ÿ‘จโ€๐ŸŽจ Use cases

Discord messages and embeds

  • Display tables nicely inside markdown codeblocks on Discord
  • Useful for making Discord bots with Discord.py

image

Terminal outputs

  • Tables display nicely whenever monospace fonts are fully supported
  • Tables make terminal outputs look more professional

image

๐Ÿงฐ Development

To run tests (pytest)

python setup.py test

To lint (flake8):

python setup.py lint

Comments
  • Different languages cause layout changes.

    Different languages cause layout changes.

    There will be a layout offset problem when using different languages โ€‹โ€‹for output.

    Issues

    The complete code is as follows.

    from table2ascii import table2ascii as t2a
    from table2ascii import PresetStyle
    from table2ascii import Alignment
    
    output = t2a(
        header=["ๆ—ฅๆœŸ", "test"],
        body=[["2022/12/11", "test"], ["2022/1/1", "ๆธฌ่ฉฆ"]],
        cell_padding=5,
        style=PresetStyle.double_thin_compact,
        alignments=[Alignment.CENTER] * 2
    )
    
    print(output)
    

    Is there any solution?

    enhancement 
    opened by Neillife 10
  • ci: Added git auto commit to workflow

    ci: Added git auto commit to workflow

    Hi @DenverCoder1, In this PR I have updated the workflow script to update the docs automatically during the run after pushing the changes as per the mentioned issue 21.

    documentation 
    opened by sairamkiran9 6
  • [feature Request] Support for row with less columns

    [feature Request] Support for row with less columns

    if first row has 3 all rows have to have 3 columns. Is it possible to add a new row with 2 columns? currently not. in future? image

    Here the last row, has two columns: Description and i edited the text to show.

    enhancement 
    opened by ashroyxi 5
  • fix: make dependencies and other build arguments static

    fix: make dependencies and other build arguments static

    I tried to install version 1.0.3 with pip and it doesn't install the dependencies. Figured out that requirements.txt is not included in the source distribution, hence giving the install_requires an empty array. I assume this doesn't happen on 1.0.1 because it has a wheel file.

    So, I thought that making the dependencies explicit is better.

    References: same issue with wheel

    bug 
    opened by ohjunseung 4
  • Emojis don't affect the width of columns

    Emojis don't affect the width of columns

    If a unicode emoji is part of the longest text in a column, the width of the column will not account for its existence.

    Example: outputBoss = t2a( header=["","Crocodile ๐ŸŠ"], body=[["HP","100/100"], ["Atk","10"], ["Def","8"]], first_col_heading=True )

    Output: https://i.imgur.com/kacEMc6.png

    opened by sacooke 3
  • chore(deps-dev): bump tox from 3.24.5 to 4.0.8

    chore(deps-dev): bump tox from 3.24.5 to 4.0.8

    Bumps tox from 3.24.5 to 4.0.8.

    Release notes

    Sourced from tox's releases.

    4.0.8

    What's Changed

    Full Changelog: https://github.com/tox-dev/tox/compare/4.0.7...4.0.8

    4.0.7

    What's Changed

    Full Changelog: https://github.com/tox-dev/tox/compare/4.0.6...4.0.7

    4.0.6

    What's Changed

    New Contributors

    Full Changelog: https://github.com/tox-dev/tox/compare/4.0.5...4.0.6

    4.0.5

    What's Changed

    Full Changelog: https://github.com/tox-dev/tox/compare/4.0.4...4.0.5

    4.0.4

    What's Changed

    New Contributors

    Full Changelog: https://github.com/tox-dev/tox/compare/4.0.3...4.0.4

    4.0.3

    What's Changed

    ... (truncated)

    Changelog

    Sourced from tox's changelog.

    v4.0.8 (2022-12-11)

    Bugfixes - 4.0.8

    - Fix multiple substitution on factor filtering in ``tox.ini`` when multiple factor filters match
      - by :user:`gaborbernat`. (:issue:`2650`)
    - Fix regression in ``requirements.txt`` parsing - by :user:`gaborbernat`. (:issue:`2682`)
    

    v4.0.7 (2022-12-11)

    Bugfixes - 4.0.7

    • Support for --no-deps flag within the :ref:deps - by :user:gaborbernat. (:issue:2674)

    v4.0.6 (2022-12-10)

    Features - 4.0.6

    - Fail on :ref:`pass_env`/:ref:`passenv` entries containing whitespace - by :user:`ericzolf`. (:issue:`2658`)
    

    v4.0.5 (2022-12-09)

    Bugfixes - 4.0.5

    • Normalize extra names passed in (fixes extra groups not being picked up during installation) - by :user:gaborbernat. (:issue:2655)

    v4.0.4 (2022-12-09)

    Bugfixes - 4.0.4

    - Disable logging from ``distlib.util`` and ``filelock`` as these log messages are too verbose - by :user:`gaborbernat`. (:issue:`2655`)
    - Use ``!r`` and ``repr()`` to better display erroneous values in exception from ``StrConverter.to_bool()`` - by :user:`ptmcg`. (:issue:`2665`)
    

    Improved Documentation - 4.0.4

    • Document that running --showconfig or --help-ini with the -v flag will add interleaved debugging information, whereas tox v3 added extra lines at the start - by :user:jugmac00. (:issue:2622)
    • Document that tox v4 errors when using -U when defining dependencies via deps - by :user:jugmac00. (:issue:2631)

    v4.0.3 (2022-12-08)

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • chore(deps-dev): update flake8 requirement from <4,>=3.8 to >=3.8,<7

    chore(deps-dev): update flake8 requirement from <4,>=3.8 to >=3.8,<7

    Updates the requirements on flake8 to permit the latest version.

    Commits

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • chore(deps-dev): bump taskipy from 1.10.1 to 1.10.3

    chore(deps-dev): bump taskipy from 1.10.1 to 1.10.3

    Bumps taskipy from 1.10.1 to 1.10.3.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • Error on non-`len` compatible values in a cell

    Error on non-`len` compatible values in a cell

    Description On creating a table with a cell that's not compatible with the builtin len function, the library errors internally

    Expected Values are turned into strings before their length is checked

    Actual Values are evaluated for their length without first turning them into a string

    bug 
    opened by EthanZeigler 1
  • Support for newlines within cells

    Support for newlines within cells

    Ask Support newline characters within cells of a table

    Expected

    | header | header | header |
    |---------|---------|---------|
    | Cell      | cell       | multi    |
    |             |             | cell       |
    

    Actual

    | header | header | header |
    |---------|---------|---------|
    | Cell      | cell       | multi
    cell |
    
    enhancement 
    opened by EthanZeigler 1
  • docs: Fix unlinked references and updated docstrings

    docs: Fix unlinked references and updated docstrings

    • All exceptions, warnings, and SupportsStr are now importable directly through the table2ascii module
    • All class and data references in the docs were fixed to link to the proper documentation
    • Changed TableStyle.set() example to one that will not throw an exception
    documentation 
    opened by DenverCoder1 0
Releases(v1.1.0)
  • v1.1.0(Dec 29, 2022)

    Features

    • Added Alignment.DECIMAL for aligning numbers to a decimal point in https://github.com/DenverCoder1/table2ascii/pull/90
    • Added ability to align all columns with a single Alignment instead of a list in https://github.com/DenverCoder1/table2ascii/pull/91
    • Support for aligning numbers separately from other strings by passing number_alignments to table2ascii in https://github.com/DenverCoder1/table2ascii/pull/92

    Meta

    • Moved version number to pyproject.toml in https://github.com/DenverCoder1/table2ascii/pull/87

    Full Changelog: https://github.com/DenverCoder1/table2ascii/compare/v1.0.4...v1.1.0

    Source code(tar.gz)
    Source code(zip)
  • v1.0.4(Dec 19, 2022)

    Bug Fixes

    • Made dependencies and other build arguments static by @ohjunseung in https://github.com/DenverCoder1/table2ascii/pull/86

    New Contributors

    • @ohjunseung made their first contribution in https://github.com/DenverCoder1/table2ascii/pull/86

    Full Changelog: https://github.com/DenverCoder1/table2ascii/compare/v1.0.3...v1.0.4

    Source code(tar.gz)
    Source code(zip)
  • v1.0.3(Dec 19, 2022)

    Bug Fixes

    • Fix setup error occurring when installing on Windows by @DenverCoder1 in https://github.com/DenverCoder1/table2ascii/pull/85

    Meta

    • Added CI step for testing the project on Windows by @DenverCoder1 in https://github.com/DenverCoder1/table2ascii/pull/85

    Full Changelog: https://github.com/DenverCoder1/table2ascii/compare/v1.0.2...v1.0.3

    Source code(tar.gz)
    Source code(zip)
  • v1.0.2(Dec 18, 2022)

    What's Changed

    • Added invalid column width error for negative column widths by @DenverCoder1 in https://github.com/DenverCoder1/table2ascii/pull/83

    Meta

    • docs(readme): fixed action build badge by @DenverCoder1 in https://github.com/DenverCoder1/table2ascii/pull/81
    • docs: Updated build status badge by @DenverCoder1 in https://github.com/DenverCoder1/table2ascii/pull/84
    • ci: Updated publish script to use build module by @DenverCoder1 in https://github.com/DenverCoder1/table2ascii/pull/82

    Full Changelog: https://github.com/DenverCoder1/table2ascii/compare/1.0.1...v1.0.2

    Source code(tar.gz)
    Source code(zip)
  • 1.0.1(Dec 14, 2022)

    What's Changed

    • Resolved pyproject and setup.py conflicts by @DenverCoder1 in https://github.com/DenverCoder1/table2ascii/pull/80

    Full Changelog: https://github.com/DenverCoder1/table2ascii/compare/1.0.0...1.0.1

    Source code(tar.gz)
    Source code(zip)
  • 1.0.0(Dec 14, 2022)

    Features

    • Added use_wcwidth for wide and fullwidth character support by @DenverCoder1 in https://github.com/DenverCoder1/table2ascii/pull/63
    • Added the ability to merge cells with Merge.LEFT by @DenverCoder1 in https://github.com/DenverCoder1/table2ascii/pull/67
    • Alignment is now an IntEnum so numbers 0-2 can be passed to alignments by @DenverCoder1 in https://github.com/DenverCoder1/table2ascii/pull/75
    • Added custom exception classes by @DenverCoder1 in https://github.com/DenverCoder1/table2ascii/pull/74
    • Added PresetStyles.double_thin_box style (this is the style used in the TableStyle docs) by @DenverCoder1 in https://github.com/DenverCoder1/table2ascii/pull/67

    Breaking Changes

    • The library now uses wcwidth for determining the length of a cell instead of len().
      • The wcswidth() function takes into account double-width characters (East Asian Wide and East Asian Fullwidth) and zero-width characters (combining characters, zero-width space, etc.), whereas len() determines the width solely based on the number of characters in the string.
      • In most cases, this will not affect the output of table2ascii.
      • To revert to using len() instead of wcswidth() pass use_wcwidth=False to table2ascii.
      • Note: The width of East Asian Wide and East Asian Fullwidth characters is up to the platform and font used. If the font used to display the wide characters does not make them take up exactly 2 character width, it may still not display correctly.
    • table2ascii.options.Options has a new option use_wcwidth. All options are required when manually creating an Options object.
    • Eight new fields have been added to TableStyle. If you are manually creating a TableStyle object, you can now provide symbols for the edges of merged table cells. This is not a mandatory change, but a warning will be printed if you do not provide these fields.

    Meta

    • New annotation style from Python 3.9+ (backwards compatible) by @DenverCoder1 in https://github.com/DenverCoder1/table2ascii/pull/61
    • Only installs typing_extensions if not using Python 3.8+ by @DenverCoder1 in https://github.com/DenverCoder1/table2ascii/pull/61
    • Refactored comment style and reduced nesting complexity by @DenverCoder1 in https://github.com/DenverCoder1/table2ascii/pull/65
    • table2ascii now accepts all Sequence compatible objects instead of only list by @DenverCoder1 in https://github.com/DenverCoder1/table2ascii/pull/78
    • Use sphinx-book-theme for docs by @DenverCoder1 in https://github.com/DenverCoder1/table2ascii/pull/79

    Full Changelog: https://github.com/DenverCoder1/table2ascii/compare/0.5.0...1.0.0

    Source code(tar.gz)
    Source code(zip)
  • 0.5.0(Oct 31, 2022)

    Features

    • Added plain to preset table styles in https://github.com/DenverCoder1/table2ascii/pull/50
    >>> table2ascii(header=[1,2,3,4], body=[[5,6,7,8], [9,10,11,12]], style=PresetStyle.plain)
     1   2    3    4  
     5   6    7    8  
     9   10   11   12
    
    • Added cell_padding configurable option in https://github.com/DenverCoder1/table2ascii/pull/52
    >>> table2ascii(header=['A','B','C'], body=[[1,2,3]], footer=[5,6,7], first_col_heading=True, cell_padding=0)
    โ•”โ•โ•ฆโ•โ•โ•โ•—
    โ•‘Aโ•‘B Cโ•‘
    โ•Ÿโ”€โ•ซโ”€โ”€โ”€โ•ข
    โ•‘1โ•‘2 3โ•‘
    โ•Ÿโ”€โ•ซโ”€โ”€โ”€โ•ข
    โ•‘5โ•‘6 7โ•‘
    โ•šโ•โ•ฉโ•โ•โ•โ•
    

    Meta

    • refactor: Support for mypy linting in https://github.com/DenverCoder1/table2ascii/pull/51
    • ci: Add support for Python 3.11 (Pyright linting) in https://github.com/DenverCoder1/table2ascii/pull/56

    Full Changelog: https://github.com/DenverCoder1/table2ascii/compare/0.4.0...0.5.0

    Source code(tar.gz)
    Source code(zip)
  • 0.4.0(Oct 9, 2022)

    Features

    • Added ascii_rounded and ascii_rounded_box table styles by @DenverCoder1 in https://github.com/DenverCoder1/table2ascii/pull/45

    Typing and Documentation

    • Uses more_autodoc.typehints for docs and links for built-in types by @DenverCoder1 in https://github.com/DenverCoder1/table2ascii/pull/42
    • Annotate table value type with SupportsStr protocol by @DenverCoder1 in https://github.com/DenverCoder1/table2ascii/pull/44

    Full Changelog: https://github.com/DenverCoder1/table2ascii/compare/0.3.0...0.4.0

    Source code(tar.gz)
    Source code(zip)
  • 0.3.0(Jun 26, 2022)

    Features

    • Support for auto-sizing specific columns using None by @DenverCoder1 in https://github.com/DenverCoder1/table2ascii/pull/38

    Meta

    • Use explicit kwargs over **options, type fixes by @DenverCoder1 in https://github.com/DenverCoder1/table2ascii/pull/35
    • Meta og descriptions for docs links by @DenverCoder1 in https://github.com/DenverCoder1/table2ascii/pull/33
    • Add pre-commit hooks and pyright checks by @DenverCoder1 in https://github.com/DenverCoder1/table2ascii/pull/36
    • Add Pyright checks to tests, add contributing docs by @DenverCoder1 in https://github.com/DenverCoder1/table2ascii/pull/37
    • Add docs link, license, and keywords to Pypi setup by @DenverCoder1 in https://github.com/DenverCoder1/table2ascii/pull/34

    Full Changelog: https://github.com/DenverCoder1/table2ascii/compare/0.2.0...0.3.0

    Source code(tar.gz)
    Source code(zip)
  • 0.2.0(Feb 11, 2022)

    Features

    • Support for multiline cells by @DenverCoder1 in https://github.com/DenverCoder1/table2ascii/pull/30

    New Contributors

    • @sairamkiran9 made their first contribution in https://github.com/DenverCoder1/table2ascii/pull/27

    Full Changelog: https://github.com/DenverCoder1/table2ascii/compare/v0.1.4...0.2.0

    Source code(tar.gz)
    Source code(zip)
  • v0.1.4(Oct 14, 2021)

    Bug Fixes

    • allow integers and other stringifiable objects in tables by @DenverCoder1 in https://github.com/DenverCoder1/table2ascii/pull/23

    Full Changelog: https://github.com/DenverCoder1/table2ascii/compare/v0.1.3...v0.1.4

    Source code(tar.gz)
    Source code(zip)
  • v0.1.3(Oct 13, 2021)

    What's Changed

    • ci: update test command by @DenverCoder1 in https://github.com/DenverCoder1/table2ascii/pull/15, https://github.com/DenverCoder1/table2ascii/pull/16
    • Fix preset styles link by @strugee in https://github.com/DenverCoder1/table2ascii/pull/17
    • Added docs with readthedocs and minor type annotation changes by @DenverCoder1 in https://github.com/DenverCoder1/table2ascii/pull/18
    • docs: Change code block background color in dark mode by @DenverCoder1 in https://github.com/DenverCoder1/table2ascii/pull/19

    New Contributors

    • @strugee made their first contribution in https://github.com/DenverCoder1/table2ascii/pull/17

    Full Changelog: https://github.com/DenverCoder1/table2ascii/compare/v0.1.2...v0.1.3

    Source code(tar.gz)
    Source code(zip)
  • v0.1.2(Aug 1, 2021)

  • v0.1.1(Apr 29, 2021)

    • Split file structure into multiple parts
    • Added TableStyle class for storing info about a theme (all the different parts that make up the table)
    • Added PresetStyle class with pre-made styles to choose from
    • Made a list of styles in /style_list and a script for generating the list
    • Ensure that user-specified column widths are at least as large as cell contents
    • Made header, body, and footer positional arguments (can place with no label); all other options must be keyworded.
    Source code(tar.gz)
    Source code(zip)
  • v0.0.3(Apr 27, 2021)

  • 0.0.2(Apr 27, 2021)

    Added options:

    | Option | Type | Default | Description | | :-----------------: | :----: | :-----: | :--------------------------------------------------------------: | | first_col_heading | bool | False | Whether to add a heading column seperator after the first column | | last_col_heading | bool | False | Whether to add a heading column seperator before the last column |

    Source code(tar.gz)
    Source code(zip)
Owner
Jonah Lawrence
๐Ÿ“บ https://youtube.com/DevProTips ๐Ÿ’ป Full Stack Dev ๐ŸŽจ UI designer ๐ŸŽ“ Computer Science 2021 ๐Ÿ“š Always learning!
Jonah Lawrence
This is a command line program to play cricket made using Python.

SimpleCricketPython This is a command line program to play cricket made using Python How it works First you have the option of selecting whether you

Imira Randeniya 1 Sep 11, 2022
Ideas on how to quickly learn to build command-line tools

CLI-Bootcamp Ideas on how to quickly learn to build command-line tools Part 1-Bash Week1: Using Linux Lesson 1: Using Linux Shell Lab Lesson 2: How sh

Noah Gift 10 Apr 18, 2022
A minimal and ridiculously good looking command-line-interface toolkit.

Pyceo Pyceo is a Python package for creating beautiful, composable, and ridiculously good looking command-line-user-interfaces without having to write

Juan-Pablo Scaletti 21 Mar 25, 2022
A python library for parsing multiple types of config files, envvars & command line arguments that takes the headache out of setting app configurations.

parse_it A python library for parsing multiple types of config files, envvars and command line arguments that takes the headache out of setting app co

Naor Livne 97 Oct 22, 2022
MiShell is a multi-platform, multi-architecture project based on the first version (MiShell32)

MiShell is a multi-platform, multi-architecture project based on the first version (MiShell32), which offers super super small reverse shell payloads great for injection in buffer overflow vulnerabil

Kamyar Hatamnezhad 0 Oct 27, 2022
A multipurpose discord bot with more than 220 commands

Welcome WM Bot A advanced bot with more than 220 commands to fit your needs Explore the commands ยป View Demo ยท Report Bug ยท Request Feature Table of C

Wasi Master 12 Dec 16, 2022
Create animated ASCII-art for the command line almost instantly!

clippy Create and play colored ๐ŸŸฅ ๐ŸŸฉ ๐ŸŸฆ or colorless โฌ›๏ธ โฌœ๏ธ animated, or static, ASCII-art in the command line! clippy can help if you are wanting to;

Connor 10 Jun 26, 2022
Key-control - A tool for add keys to your Termux app

Key-Control Is a tool for add keys to your Termux app. Cara Penginstalan $ pkg u

Beereva.id 1 Feb 14, 2022
topalias - Linux alias generator from bash/zsh command history with statistics, written on Python.

topalias topalias - Linux alias generator from bash/zsh command history with statistics, written on Python. Features Generate short alias for popular

Sergey Chudakov 38 May 26, 2022
A CLI minesweeper application written in 60 LoC python

This is a CLI minesweeper application written in 60 LoC python. You can use d row,column to dig and f row,column to flag/unflag

1 Dec 21, 2021
้›ป้€šๅคงใฎCLIใƒ„ใƒผใƒซใงใ™

uecli ้›ป้€šๅคงใฎCLIใƒ„ใƒผใƒซใงใ™ใ€‚ใ‚ณใƒžใƒณใƒ‰ใƒฉใ‚คใƒณใ‹ใ‚‰ใ‚ทใƒฉใƒใ‚นๆคœ็ดขใ€ๆˆ็ธพๅ‚็…งใ€ๅ›ณๆ›ธ้คจใฎ่ฒธๅ‡บใƒชใ‚นใƒˆใชใฉใ‚’่ฆ‹ใ‚‹ใ“ใจใŒใงใใพใ™ ใ‚คใƒณใ‚นใƒˆใƒผใƒซ pip install uecli ไฝฟใ„ๆ–น ใ‚ทใƒฉใƒใ‚นใ‚’ๆคœ็ดข uecli syllabus search -s 'ใ‚ณใƒณใƒ”ใƒฅใƒผใ‚ฟใ‚ตใ‚คใ‚จใƒณใ‚น' ใ‚ทใƒฉใƒใ‚นใ‚’ๅ–ๅพ—ใ—ใ€Mar

UEC World Dominators 2 Oct 31, 2021
Display Images in your terminal with python

A python library to display images in the terminal

Pranav Baburaj 57 Dec 30, 2022
Simple Digital Ocean CLI by python.

Simple Digital Ocean CLI by python.

Chiro 2 Jan 01, 2023
A Telegram Bot Written In Python To Upload Medias To telegra.ph

Telegraph-Uploader A Telegram Bot Written In Python To Upload Medias To telegra.ph DEPLOY YOU CAN SIMPLY DEPLOY ON HEROKU BY CLICKING THE BUTTON BELOW

Rithunand 31 Dec 03, 2022
Tiny command-line utility for mapping broken keys to other positions.

brokenkey Tiny command-line utility for mapping broken keys to other positions. Installation Clone this repository using git: git clone https://github

0 Oct 04, 2021
Simple CLI interface for linear task manager

Linear CLI (Unmaintained) Simple CLI interface for linear task manager Usage Install: pip install linearcli Setup: Generate a pe

Mike Lyons 1 Jan 07, 2022
An interactive aquarium for your terminal.

sipedon An interactive aquarium for your terminal, written using pytermgui. The project got its name from the Common Watersnake, also known as Nerodia

17 Nov 07, 2022
Projeto Reverse Shell For Python

Use com sabedoria!!! Modo de uso: Linux (inclui Android e Mac): - apt-get update - apt install python3 (ou "python" apenas) - git clone https://github

1 Jan 03, 2022
Freaky fast fuzzy Denite/CtrlP matcher for vim/neovim

Freaky fast fuzzy Denite/CtrlP matcher for vim/neovim This is a matcher plugin for denite.nvim and CtrlP.

Raghu 113 Sep 29, 2022