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
spotifytools is a Python command line tool

spotifytools spotifytools is a Python command line tool Documentation The documentation is available on the following link Releases Instalation instru

0 Sep 28, 2021
A command line tool to hide and reveal information inside images (works for both PNGs and JPGs)

ImgReRite A command line tool to hide and reveal information inside images (work

Jigyasu 10 Jul 27, 2022
PyWordle: A Python-made wordle manual solver

PyWordle: A Python-made wordle manual solver How to use it Start the program with python3 pywordlesolver.py. How it works The program has a simple 5-l

Federico Torrielli 5 Nov 24, 2022
DShell, a tool that combines with discord.py and Jishaku to present to you, shell channels.

Discord shell or dshell for short is a Python package that combines with discord.py and Jishaku to transform an ordinary Discord channel into one capable of running bash commands using a Discord bot.

11 Nov 15, 2022
Wik is use to get information about anything on the shell using Wikipedia.

WIK wik is a tool to view wikipedia pages from your terminal. It also let you search for any wikipedia up to date article on one query from your termi

Yash Singh 340 Dec 18, 2022
Euporie is a text-based user interface for running and editing Jupyter notebooks

Euporie is a text-based user interface for running and editing Jupyter notebooks

781 Jan 01, 2023
ctree - command line christmas tree

ctree ctree - command line christmas tree It is small python script that prints a christmas tree in terminal. It is colourful and always gives you a d

15 Aug 15, 2022
EODAG is a command line tool and a plugin-oriented Python framework for searching, aggregating results and downloading remote sensed images while offering a unified API for data access regardless of the data provider

EODAG (Earth Observation Data Access Gateway) is a command line tool and a plugin-oriented Python framework for searching, aggregating results and downloading remote sensed images while offering a un

CS GROUP 205 Jan 03, 2023
Bear-Shell is a shell based in the terminal or command prompt.

Bear-Shell is a shell based in the terminal or command prompt. You can navigate files, run python files, create files via the BearUtils text editor, and a lot more coming up!

MichaelBear 6 Dec 25, 2021
πŸ—ƒοΈ Fileio-cli wrapper for fileioapi.py with fire.py, inspiration DOS

πŸ—ƒοΈ File.io File.io simply upload a file, share the link, and after it is downloaded, the file is completely deleted. An API wrapper for the file.io w

nkot56297 2 May 12, 2022
🦎 A NeoVim plugin for highlighting visual selections like in a normal document editor!

🦎 HighStr.nvim A NeoVim plugin for highlighting visual selections like in a normal document editor! Demo TL;DR HighStr.nvim is a NeoVim plugin writte

Pocco81 222 Jan 03, 2023
🐍 Python CLI tool to get public information from a GitHub account

🐍 Gitter 🐍 Python CLI tool to get public information from a GitHub account πŸ€” What's this? Gitter is a open-source project created to easily uses th

opp? 3 Oct 14, 2022
A CLI for advanced management of your notes with simple commands

PyNoteManager This is a CLI for advanced management of your notes with simple co

3 Dec 30, 2021
Make tree planting a part of your daily workflow. 🌳

Continuous Reforestation Make tree planting a part of your daily workflow. 🌳 A GitHub Action for planting trees within your development workflow usin

protontypes 168 Dec 22, 2022
A super simple wallet application for the NANO cryptocurrency that runs in the terminal

Nano Terminal Wallet A super simple wallet application for the NANO cryptocurrency that runs in the terminal Written in 2021 by NinjaSnail1080 (Discor

9 Jul 22, 2022
Project scoped command execution to just do your work

Judoka is a command line utility that lets you define project scoped commands and call them through their alias. It lets you just do (= judo) your work.

Eelke van den Bos 2 Dec 17, 2021
'rl_UK' is an open-source command-line tool in Python for calculating the shortest path between BUS stop sequences in the UK

'rl_UK' is an open-source command-line tool in Python for calculating the shortest path between BUS stop sequences in the UK. As input files, it uses an ATCO-CIF file and 'OS Open Roads' dataset from

Nesh P. 0 Feb 16, 2022
Python CLI utility and library for manipulating SQLite databases

sqlite-utils Python CLI utility and library for manipulating SQLite databases. Some feature highlights Pipe JSON (or CSV or TSV) directly into a new S

Simon Willison 1.1k Jan 04, 2023
CLTools provides various tools and command to use in the terminal.

CLTools provides various tools and command to use in the terminal. As of date, CLTools is only able to generate temporary email addresses and receive emails. There are plans to integrate more tools a

Ashwin Chugh 2 Feb 14, 2022
jrnl is a simple journal application for the command line.

jrnl To get help, submit an issue on Github. jrnl is a simple journal application for the command line. You can use it to easily create, search, and v

jrnl 5.7k Dec 31, 2022