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
Shellcode runner to execute malicious payload and bypass AV

buffshark-shellcode-runner Python Shellcode Runner to execute malicious payload and bypass AV This script utilizes mmap(for linux) and win api wrapper

Momo Lenard 9 Dec 29, 2022
Dynamically Generate GitHub Stats as like Terminal Interface

GitHub Stats Terminal Style Dynamically Generate GitHub Stats as like Terminal Interface Usage Create a New Repository using this Template or click he

YOGESHWARAN R 63 Jan 03, 2023
A basic molecule viewer written in Python, using curses; Thus, meant for linux terminals

asciiMOL A basic molecule viewer written in Python, using curses; Thus, meant for linux terminals. This is an alpha version, featuring: Opening defaul

Dominik Behrens 328 Dec 11, 2022
Standalone script written in Python 3 for generating Reverse Shell one liner snippets and handles the communication between target and client using custom Netcat binaries

Standalone script written in Python 3 for generating Reverse Shell one liner snippets and handles the communication between target and client using custom Netcat binaries. It automates the boring stu

Yash Bhardwaj 3 Sep 27, 2022
CryptoCo-py is a Python CLI application that uses CoinGecko API to allow the user to query cryptocurrency information by typing simple commands.

CryptoCo-py is a Python CLI application that uses CoinGecko API to allow the user to query cryptocurrency information by typing simple com

1 Jan 10, 2022
Patool is a portable command line archive file manager

Patool Patool is an archive file manager. Various archive formats can be created, extracted, tested, listed, searched, repacked and compared with pato

318 Jan 04, 2023
Python commandline tool for remembering linux/terminal commands

ehh Remember linux commands Commandline tool for remembering linux/terminal commands. It stores your favorite commands in ~/ehh.json in your homedir a

56 Nov 10, 2022
πŸ”– Lemnos: A simple, light-weight command-line to-do list manager.

πŸ”– Lemnos: CLI To-do List Manager This is a simple program that allows one to manage a to-do list via the command-line. Example $ python3 todo.py add

Rohan Sikand 1 Dec 07, 2022
Convert shellcode into :sparkles: different :sparkles: formats!

Bluffy Convert shellcode into ✨ different ✨ formats! Bluffy is a utility which was used in experiments to bypass Anti-Virus products (statically) by f

pre.empt.dev 305 Dec 17, 2022
🌌 A Python script to generate blog banners from command line.

Auto Blog Banner Generator A Python script to generate blog banners. This script is used at RavSam. The following image is an example of the blog bann

RavSam 10 Sep 20, 2022
This project contains the ClonedPerson dataset and code described in our paper "Cloning Outfits from Real-World Images to 3D Characters for Generalizable Person Re-Identification".

ClonedPerson This is the official repository for the ClonedPerson project, which contains the ClonedPerson dataset and code described in our paper "Cl

Yanan Wang 55 Dec 27, 2022
A command-line tool to flash python code to Codey Rocky without having to use the online mblock5 IDE.

What? A command-line tool to flash python code to Codey Rocky without having to use the online mblock5 IDE. Description This is a very low-effort proj

1 Dec 29, 2021
Output Analyzer for you terminal commands

Output analyzer (OZER) You can specify a few words inside config.yaml file and specify the color you want to be used. installing: Install command usin

Ehsan Shirzadi 1 Oct 21, 2021
A simple cli tool to commit Conventional Commits

convmoji A simple cli tool to commit Conventional Commits. Requirements Install pip install convmoji convmoji --help Examples A conventianal commit co

3 Jul 04, 2022
An easy-to-bundle GTK terminal emulator.

EasyTerm An easy-to-bundle GTK terminal emulator. This project is meant to be used as a dependency for other

Bottles 4 May 15, 2022
A python CLI app that converts a mp4 file into a gif with ASCII effect added.

Video2ASCIIgif This CLI app takes in a mp4 format video, converts it to a gif with ASCII effect applied. This also includes full control over: backgro

Sriram R 6 Dec 31, 2021
Tidier - a simple command line tool that helps you make your files tidy up

Tidier - a simple command line tool that helps you make your files tidy up

AmirMohammad Hosseini Nasab 8 Aug 16, 2022
Features terminal for python

Features Terminal V1.0 (23/10/2021) Um programa para linux com diferentes ferramentas! Recursos: Criador de QR code Gerador de senhas Teste de velocid

1 Oct 26, 2021
A CLI tool that scans through a directory and organizes all loose files into folders by file type.

Organizer CLI Organizer CLI is a python command line tool that goes through a given directory and organizes all un-folder bound files into folders by

Mulaza Jacinto 6 Dec 14, 2022
A simple reverse shell in python

RevShell A simple reverse shell in python Getting started First, start the server python server.py Finally, start the client (victim) python client.py

Lojacopsen 4 Apr 06, 2022